análise e projeto de sistemas introdução prof. alexandre perin de souza...
TRANSCRIPT
![Page 2: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/2.jpg)
2
Sumário
• Introdução– Crise do Software– Engenharia de Software
• Conceitos básicos– Ciclo de vida básico do desenvolvimento de
software e fases– Ferramenta CASE & UML– Documentação
![Page 3: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/3.jpg)
3
Crise do Software
• Ganhou importância, principalmente, em razão da má qualidade dos softwares produzidos até a década de 70– Muitos deles eram entregues fora do prazo e com
algumas poucas funcionalidades– Muitas funcionalidades não funcionavam como
deveriam– O custo de produção era muito variável– O software era difícil de manter (atualizar)– ...– Insatisfação dos usuários
![Page 4: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/4.jpg)
4
Crise do Software
• Algumas consequências– Necessidade de criar e adotar melhores métodos
e ferramentas para produzir software– Criação de uma disciplina – Engenharia de
Software – destinada ao estudo de técnicas que permitam a produção de software de qualidade.
![Page 5: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/5.jpg)
5
Introdução
• Engenharia de Software
– É uma disciplina que se preocupa com todos os aspectos
da produção de software.
o Ela usa três elementos fundamentais:
Métodos (fornecem a técnica: orientação a objetos)
Ferramentas (fornecem o suporte para os métodos -
CASE: Computer-Aided Software Engineering)
Procedimentos (ações que unem métodos e as
ferramentas).
![Page 6: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/6.jpg)
6
Introdução
• Os métodos, ferramentas e procedimentos...
– São organizados em modelos de ciclo de desenvolvimento
de software ou modelos de processos (tradicional, ...,
processo unificado etc).
o Um modelo ou processo de desenvolvimento é:
Um conjunto de etapas ou fases que são seguidas
para que ao final se tenha um software.
![Page 7: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/7.jpg)
7
Introdução
• Os métodos, ferramentas e procedimentos...
– A aplicação de métodos, ferramentas e procedimentos deve
ser feita por especialistas, pois são tarefas que exigem
conhecimento para que o resultado final atenda as
necessidades do cliente.
![Page 8: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/8.jpg)
8
Introdução
• Software Engineering Body Of Knowledge - SWEBOK
– Em 2004, a Eng. de Software passou por um estudo para
definir suas fronteiras (assuntos de maior importância);
– Esse estudo foi conduzido pela IEEE e chama-se de
SWEBOK (Corpo de Conhecimento de Eng. de Software);
– O objetivo é concentrar mais esforço e organizar melhor o
conhecimento sobre Eng. de Software.
![Page 9: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/9.jpg)
9
Introdução
• Software Engineering Body Of Knowledge - SWEBOK– Requisitos (Requirements) de Software
– Projeto (Design) de Software
– Construção (Construction) de Software
– Teste (Testing) de Software
– Manutenção (Maintenance) de software
– Gerência de Configuração de Software
– Gerência de Engenharia de Software
– Processos de Engenharia de Software
– Ferramentas e Métodos de Engenharia de Software
– Qualidade (Quality) de Software
A seleção e organização de uma série de conteúdos deu
origem a disciplina de Análise e Projeto de Sistemas
![Page 10: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/10.jpg)
10
Introdução
• Mas, um software, é construído de que forma?
– Será que existe um passo a passo, uma receita de bolo?
Ciclo de vida de desenvolvimento de
software
![Page 11: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/11.jpg)
11
Introdução
• Ciclo de vida (padrão-básico) é composto por uma
série de fases ou etapas:
– Levantamento de requisitos
– Análise
– Projeto
– Implementação
– Testes
– Implantação
– Manutenção
Aglutinadas e/oupostas em ordem
diferente
![Page 12: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/12.jpg)
12
Introdução
• Requisito: tudo aquilo que um software deve fazer ou
respeitar
– Exemplo: quais requisitos poderiam estar associados a um
software para uma biblioteca.
• Cadastrar obras (livros)
• Fazer empréstimos
Restringir o número máximo de obras a serem
emprestadas (10)
• Reservar obras
• ...
Geralmente, quando alguém nos contrata para desenvolver um software este alguém fala “Eu preciso de um cadastro de produtos”, “Eu preciso do relatório X” ou “Eu preciso de um
cadastro de clientes”...
Estes são os requisitos
![Page 13: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/13.jpg)
13
Introdução
• Requisito serão classificados em:
– Funcionais
– Não Funcionais ou de Qualidade
– Complementares
![Page 14: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/14.jpg)
14
Introdução
• Requisitos Funcionais: são aqueles requisitos que
dizem respeito a uma função ou funcionalidade:
– Registrar vendas de automóveis;
– Gerar relatório de produtos armazenados;
– Registrar empréstimos de DVDs;
– Enviar email para um grupo de pessoas;
– ...
![Page 15: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/15.jpg)
15
Introdução• Requisitos não funcionais: são aqueles requisitos que
expressam limites ou restrições– Exemplo: quais requisitos de qualidade poderiam estar
associados a construção de uma casa:• Cor e Tamanho• Quantidade de portas• Número de pavimentos• ...
– Importante: a descrição de um requisito não funcional deve ser objetiva e clara. Cada requisito não funcional deve estar associada a uma dada funcionalidade• Funcionalidade: Empréstimo de Livro
O número máximo de livros a serem emprestados é 5 Livros com tarja prata não podem ser emprestados ...
![Page 16: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/16.jpg)
16
Introdução
• Há também os requisitos complementares que
expressam restrições que envolvem o software
como um todo
– Exemplo:
• Em toda interface do usuário deve haver um botão de
ajuda
• ...
Requisitos podem mudar durante o desenvolvimento de um software?
![Page 17: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/17.jpg)
17
Introdução
• Etapa: Levantamento de Requisitos
– É uma etapa inicial, destinada ao conhecimento das
funcionalidades e das restrições que o software deve
ter e/ou respeitar.
– Nela aplicam-se algumas técnicas, como:
• Questionário
• Entrevista
• Reunião
• Observação, análise de documentos
• ...
![Page 18: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/18.jpg)
18
Introdução
• Etapa de Levantamento de Requisitos
– Alguns pontos importantes:
• Deve ser bem planejada
• Não pode ser muito demorada
• Deve haver um registro
– Anotações devem ser feitas
• Dar ciência ao cliente em relação aos requisitos
levantados
• Procurar, sempre, ter o usuário como um elemento ativo
e participante do processo.
![Page 19: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/19.jpg)
19
Introdução
• Etapa: Análise
– Significa investigar, descobrir ou desvendar algo
– Consiste em encontrar os requisitos para um dado software
– É uma etapa que pode conter o levantamento de requisitos
– Nela requisitos são organizados, analisados e priorizados
– Utilizam-se ferramentas para poder descobrir o que será
realizado, sendo definida como sendo a etapa “do que
deverá ser feito”
– Quem atua nesta etapa deve possuir experiência e
conhecimento.
![Page 20: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/20.jpg)
20
Introdução
• Etapa: Análise (cont...)
– Espera-se que o resultado desta etapa aponte quais
recursos serão necessários:
• Equipe
• Tempo – cronograma
• Estimativa de custos
• ...
![Page 21: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/21.jpg)
21
Introdução
• Etapa: Projeto ou Design
– Mas por que fazer projeto?
• Nós somos profissionais!
– Um exemplo
• Imagine um Eng. Civil na tarefa de construir um prédio
– Ele faz uma série de plantas, pois não é possível iniciar
colocando um tijolo após o outro, sem desenhar quais
serão as aberturas os elevadores do prédio etc
– Estima e define quais materiais irá usar na construção etc
– ...
![Page 22: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/22.jpg)
22
Introdução
• Etapa: Projeto ou Design (Cont...)
– O projeto de software é semelhante ao projeto do
prédio!
• Precisamos também fazer uma planta, mas é óbvio que nela
não estarão salas, banheiros etc
• Nossa planta terá:
– Classes
– Relações entre as classes (como elas interagem)
– Esquema de banco de dados
• Definem-se, também, o hardware e as tecnologias que serão
usadas para colocar o software em funcionamento
![Page 23: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/23.jpg)
23
Introdução• Etapa: Implementação
– Aqui, com base no projeto, faz-se a programação ou
codificação, ou seja, o projeto guia a codificação evitando
que se perca o foco do trabalho ou se façam coisas
desnecessárias
• Etapa: Teste
– São as ações que permitem verificar se um software atende
ou não sua especificação (requisitos)
– É preciso testar com várias entradas e com várias situações
que podem ocorrer no dia a dia do cliente
![Page 24: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/24.jpg)
24
Introdução
• Etapa: Teste (Cont.)
– Unidade
– Integração
– Sistema
– ...
– Importante: Precisamos ser rigorosos nesta etapa!
• Etapa: Implantação
– Instalar o software na máquina do cliente, na rede do
cliente, no ambiente do cliente
– Dar um suporte inicial e se necessário um treinamento
![Page 25: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/25.jpg)
25
Introdução
• Etapa: Manutenção
– Pode ser:
• Corretiva: problemas ou erros no próprio software
• Adaptativa: um novo imposto por exemplo (software
refletir)
– Ela inicia com a instalação e só termina quando não houver
mais usuários usando o software
• Setor de suporte a usuários
![Page 26: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/26.jpg)
26
Introdução
• Ferramenta CASE (Computer-Aided Software
Engineering)
– Qualquer ferramentas baseada em computador que auxilie
no desenvolvimento de software
– Ex. JUDE, Rational Rose, EA, Umbrello, ArgoUML ...
![Page 27: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/27.jpg)
27
Introdução
• Histórico
– Foi inspirada para dar suporte à modelagem orientada a
objetos;
– Os esforços para a criação da UML tiveram início em
outubro de 1994 e em junho de 1996, a versão 0.9 da UML;
– Em 1997 a UML foi aprovada como um padrão pelo OMG
(Object Management Group);
– OMG consórcio internacional de empresas que definem
padrões para orientação a objetos.
![Page 28: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/28.jpg)
28
Introdução
• Visão geral
– Atualmente a UML está na versão 2.2 e possui 14 diagramas,
divididos em duas grandes categorias: Estruturais (sete) e
comportamentais(sete)
![Page 29: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/29.jpg)
29
Introdução
• O que ela é ?
– UML (Unified Modeling Language) Linguagem de
Modelagem Unificada (Padrão);
– UML é uma linguagem para:
• Visualizar (sob diversos ângulos o software)
• Especificar (construir modelos precisos sem
ambiguidades)
• Construir (seus modelos podem ser transformados em
código)
• Documentar (Requisitos, testes, código-fonte etc)
![Page 30: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/30.jpg)
30
Introdução
• O que ela NÃO é ?
– UML não é uma metodologia
• Ela não diz quem deve fazer o quê, quando
e como
– UML não é uma linguagem de programação.
![Page 31: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/31.jpg)
31
Introdução
• Valor da UML
– É um padrão aberto
• São padrões disponíveis para livre acesso e implementação, que
independem de royalties e outras taxas e sem discriminação de
uso;
– É suportada por diversas ferramentas;
– Baseada em experiências anteriores;
– Suporta todo o ciclo de vida de desenvolvimento.
![Page 32: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/32.jpg)
32
Introdução
• Documentação
– Exemplo: imagina que você irá fazer uma reformar na sua
casa e precisa fazer furos em um quarto que fica ao lado do
banheiro. É possível que você acerte um cano d’água, mas
se tiver uma planta/documento de projeto que informe
detalhes da instalação hidráulica, você ficará longe deste
problema.
– ...
– Entrada de um novo membro na equipe
![Page 33: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/33.jpg)
33
Introdução• Em relação as fases ou etapas do ciclo de vida
– Dependendo da metodologia que se usa a sequência de
execução delas pode mudar
• Algumas etapas podem ser aglutinadas ou agrupadas
– Em alguns casos, algumas fases pode ter maior
importância que outras
– Em geral, as metodologias variam quanto a forma e a
ordem, mas os conceitos aqui apresentados fazem
parte e são usados no desenvolvimento de software
minimamente complexo.
![Page 34: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/34.jpg)
34
Introdução
• Em relação as fases ou etapas do ciclo de vida (Cont.)
– Nosso objetivo foi apresentar cada uma das fases
– Em aulas posteriores, cada uma delas será estuda em
detalhes
![Page 35: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/35.jpg)
35
Introdução
• Tudo o que foi visto e trabalhado pretende evitar que:
– Software não funcione corretamente;
– Custos desnecessários;
– Re-trabalhos;
– Cronograma seja ultrapassado;
– Insatisfação do cliente;
– ...
Evitar que a crise do software seja atual!
![Page 36: Análise e Projeto de Sistemas Introdução Prof. Alexandre Perin de Souza alexandre.perin@ifsc.edu.br](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc134497959413d8d7f1a/html5/thumbnails/36.jpg)
36
Introdução