Módulo: GERÊNCIA DE REQUISITOS DE SOFTWARE Aula: Análise de Sistemas
Prof. Giuliano Prado de Morais Giglio, M.Sc.
giucontato@gmail.com
Motivação
Padrão internacional de modelagem (OMG – Object Management Group ou Grupo de Gerenciamento de Projetos)
Valorização e procura de profissionais que dominem esta linguagem por parte de mercado
Parte do conteúdo do Poscomp: http://www.sbc.org.br Ocorrência de questões relacionadas em concursos públicos
Certificação: http://www.omg.org/uml-certification/
Salários
2Motivação (continuação)
3
Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO
Grandes Verdades Grandes Verdades
Sobre o Sobre o
Desenvolvimento e Desenvolvimento e
Manutenção
Manutenção
de Software
de Software
Nada pode parar a automação
5
Não estabeleça prazos audaciosos demais
6
Sempre ouça o mercado
7
Usuários odeiam bugs
Experiência em simulações ajuda
9
Nem toda apresentação será um sucesso
10
O que serve pra um cliente pode não servir para o próximo
11
Busque soluções eficientes
Suporte! Ferramentas diferentes para situações diferentes
13
Ajuda on-line pode ser útil
14
Previsão e otimização podem ser complexas
15
Escolha atributos significativos
para se cliente
Matemática não é tudo
17
18
Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO
A ANÁLISE A ANÁLISE
ORIENTADA A ORIENTADA A
OBEJTOS OBEJTOS
19
Análise
O objetivo da fase de análise é modelar o problema a ser solucionado.
O resultado é uma descrição precisa e completa dos requisitos e condições presentes no
problema que se propõe resolver.
A análise orientada a objetos é o método de
análise que enquadra os dados do problema a
partir de uma perspectiva de classes e objetos.
Análise
Conhecer a situação construindo um modelo representativo.
Descobrir e apresentar todas as propriedades relevantes dentro do problema.
O modelo deve apresentar “o que” o sistema deverá fazer e não o “como” ele fará.
21
Análise – Produtos Finais
Criação de um modelo representativo;
Esclarecer dúvidas com o usuário;
Apresentar mapa de solução do problema;
A etapa de análise apresentará o PROJETO LÓGICO;
22
Análise Orientada a Objetos
obter dos usuários os requisitos do sistema, e o contexto onde ele será usado
estudo dos conceitos e processos existentes no domínio do problema
criar um conjunto de classes e objetos candidatos enumerar as situações de utilização do sistema determinar o papel dos objetos, definindo as operações e atributos necessários
organizar as classes em hierarquias
repetir os passos, eventualmente desde o
princípio, com o objetivo de cobrir as situações de
uso do sistema.
23Cenário
Software está ficando mais complexo;
Não cumprimento de cronogramas é comum na área;
Custos de desenvolvimento são muito altos;
Elevam-se os custos de manutenção:
– década de 70 e 80: 60 - 65 % dos custos totais
– atualmente: 70 - 80 % dos custos totais
Cenário
Flexibilidade frente a mudanças:
Mudanças nos processos de negócio do usuário:
década de 40: 10 anos década de 60-70: 5 anos década de 90: 2 anos século 21: 6 meses
25
Onde está o Nirvana ?
Porém a reutilização é peça chave para aumento da produtividade e melhoria da qualidade.
26
Reutilização
Usar novamente algo que foi feito.
Em hardware:
projetar baseado em componentes;
integrar componentes;
desenvolver novos quando necessário.
Em software:
código (rotinas);
???
27
Objetivos da Reutilização
Permitir uma ampla utilização de todos os tipos de informação encontradas na situação de
desenvolvimento.
Exemplo:
requisitos especificação código
testes
ou seja, todas as atividades.
Benefícios da reutilização
Menor produção de software novo:
aumento de produtividade ganho de qualidade
ganho de confiabilidade
conhecimento adquirido pode ser compartilhado
29
Várias técnicas para reutilização
Repositórios (meio de armazenamento) Análise de domínio
Engenharia reversa Orientação a objetos ...
30
Orientação a Objetos (OO)
Tecnologia que enxerga os sistemas como sendo coleção de objetos interagentes.
Novo paradigma de desenvolvimento Envolve todas as atividades de
desenvolvimento:
análise , projeto , programação , testes, ...
31
Fundamento da OO
Na compreensão do mundo, os seres humanos utilizam-se de três métodos de organização dos pensamentos:
Diferenciação;
Distinção entre todo e parte;
Classificação.
Diminui a diferença semântica
33
Qual a motivação para estudarmos Orientação a Objetos ?
Para produzirmos sistemas com maior qualidade e produtividade;
Para fazermos uma análise e projeto coerente com as linguagens de programação orientadas a objetos;
Para usarmos todo o potencial das ferramentas e linguagens de desenvolvimento baseadas em objetos.
34
Evolução (Estruturado ==> Objetos)
Programação orientada a objetos é uma evolução da programação estruturada;
Na programação estruturada temos funções (procedures ou rotinas) e dados (normalmente globais) que podem ser acessados por qualquer função;
Na programação orientada a objetos, temos funções agregadas aos dados em uma unidade chamada objeto, ou seja, os dados não estão separados das funções, mas sim unidos as mesmas;
A tendência para os próximos anos é que a maioria das linguagens de programação sejam baseadas
em objetos.
35Desenvolvimento voltado para Objetos
Surgiu nos meios acadêmicos nos anos 60.
Busca basicamente o reaproveitamento de código e reutilização de seus elementos.
Muda o paradigma de desenvolvimento de
sistemas.
Histórico das Linguagens O.O.
Simula 67(introduz conceitos de classes e objetos) [1967];
Smalltalk 1972, 74, 76, 78, 80;
Ada 1983 (uso militar-EUA), Eilffel 1984
(características formais), Object pascal 1986;
C++ 1.0 1980, C++ 2.0 1989, C++ 3.0 1990 (linguagem híbrida, derivada da linguagem C);
JAVA 1995(Linguagem puramente orientada a objetos);
1995 --> Várias linguagens agregando conceitos
OO
37Benefícios de Análise e Projeto OO
Reduz complexidade através de melhoria do grau de abstração;
Melhora produtividade a longo prazo, permitindo o uso da reutilização pelos desenvolvedores;
Torna mais fácil a comunicação entre clientes e desenvolvedores
38
Modelos que refletem seu Negócio
A Forma Tradicional ...
Dados e processos são separados no início;
Os modelos de dados e processos não são
facilmente relacionados com entidades e conceitos de negócio;
Coordenação entre processamento e dados sempre foi difícil;
A Forma OO ...
Dados e processos estão integrados nos modelos;
Componentes dos modelos correspondem às entidades de negócio;
Sistemas são gerenciados mais facilmente e melhor
compreendidos.
39Maximiza Reutilização de Código
Reduz esforço de codificação;
Reduz teste, melhora confiabilidade;
Reutilização customizada através de componentes “white box” (ex:classes C++, Delphi);
Distribuição de objetos “black box” (ex.,
OLE, IDL) como componentes.
Aceitação de OO está crescendo
41
Conclusões iniciais
Como todo paradigma, necessita de mudança cultural.
Tecnologia poderosa, porém deve ser adotada de forma consciente.
Não é moda, é tendência tecnológica.
42