if718 análise e projeto de sistemas
DESCRIPTION
IF718 Análise e Projeto de Sistemas. Augusto Sampaio - acas Pedro Antonino – prga2 (Estágio docência) 2013.2. Parte do material cedido pela Qualiti Software Processes. Motivação. Essência de Análise e Projeto: construção de modelos. O que é um modelo? Por que construir modelos? - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/1.jpg)
IF718Análise e Projeto de Sistemas
Augusto Sampaio - acasPedro Antonino – prga2 (Estágio
docência)
2013.2
• Parte do material cedido pela Qualiti Software Processes
![Page 2: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/2.jpg)
Motivação
![Page 3: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/3.jpg)
O que é um modelo?Por que construir modelos?Quantos modelos construir para: capturar os elementos do problema
Representar diferentes níveis de abstração
Em Engenharia de Software O que é Desenvolvimento Baseado em
Modelos?
Essência de Análise e Projeto: construção de
modelos
![Page 4: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/4.jpg)
- 4 -
Sistema respiratório
Outros modelos:•Muscular,•Nervoso,•Circulatório,•Digestivo,•etc.
Esqueleto
RealidadeModelos (visões parciais)
Representa
Um modelo é uma visão parcial (representação) da
realidade
![Page 5: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/5.jpg)
Multiplas visões: controle da complexidade
Carpenter'sview
Mason'sview
Plumber'sview
Architect'sview
Landlord'sview
Renter'sview
InteriorDesigner'sview
TaxCollector'sview
Electrician'sview
ModelrepOfSystem
![Page 6: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/6.jpg)
Desenvolvimento baseado em modelos
A principal motivação é aumentar a produtividade: Independência de tecnologia
Reutilização
Automação
Aumentar o nível de abstração Foco no modelo, não no código
“O modelo é o código ...”
Processos são essenciais para sistematizar o desenvolvimento
![Page 7: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/7.jpg)
O grande desafio ...
![Page 9: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/9.jpg)
Objetivos do curso
Processo de Análise e Projeto no RUPAspectos de modelagem de paradigmas recentes:
SOA (Software-Oriented Architecture)
MDD (Model-Driven Development)
Técnicas de modelagem OO em UMLÊnfase em Padrões de Projeto e ArquiteturaisConsolidação dos conceitos em um exemplo construído incrementalmenteUso de ferramentas de modelagemGeração de esqueleto de código
![Page 10: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/10.jpg)
Conteúdo do cursoAnálise/projeto no RUP Disciplina de A&P
Análise de caso de uso
Projetar arquitetura
Projetar casos de uso
Considerando SOA e MDD Modelo de negócio
Analisar serviços
Projetar serviços
• Padrões de projeto e arquiteturais • Projetar subsistemas (componentes)
• Projetar classes• Projetar concorrrência e distribuição
• Projetar base de dados
Aulas conceituais e prática em laboratórioExemplo único para ilustrar conceitos
![Page 11: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/11.jpg)
Processos de software
![Page 12: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/12.jpg)
Para ser uma atividade sistematizada, Análise e Projeto deve ser parte de um processoProcesso: O que é?
Representação?
Ciclo de vida?
Execução?
Modelos de processo
Processo de software
![Page 13: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/13.jpg)
Análise e Projeto no modelo Cascata
![Page 14: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/14.jpg)
Análise e Projeto no modelo Espiral
![Page 15: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/15.jpg)
Análise e Projeto no modelo iterativo do
RUP
Planejamento e Gerenciamento.....
Fluxos de Suporte
Gerência de Configuração............
Requisitos...............................
Análise e Projeto......................
Implementação........................Testes...................................Implantação............................
Fluxos de Processo
Iterações
FasesConcepção Elaboração Construção Transição
Inicial
![Page 16: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/16.jpg)
Análise e Projeto em SOA(Service Oriented Architecture)
Especificação do modelo de negócios
Analisar serviços
Implementação
TesteAvaliação
PlanejamentoInicial
Planejamento
Modelagem do Negócio
Requisitos
Projetar Serviços
![Page 17: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/17.jpg)
Análise versus Projeto
![Page 18: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/18.jpg)
Análise versus Projeto
Análise
Foco no problema
Comportamento (caixa preta, sem detalhes de implementação)
Estrutura geral da arquitetura do sistema
Requisitos funcionais
Modelo simples
Projeto
Foco em uma solução
Operações e atributos
Representação próxima do código
Requisitos não-funcionais (exemplo: desempenho), além dos funcionais
Modelo complexo
Fonte: Rational
![Page 19: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/19.jpg)
Análise versus Projeto
Em MDD (Model Driven Development) da OMG (Object Management Group) ... Análise corresponde aos modelos
independentes de plataforma (PIM – Platform Independent Model)
No projeto, os modelos podem estar vinculados a uma tecnologia particular (PSM – Platform Specific Model)
![Page 20: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/20.jpg)
Modelo de Análise e Projeto
Pode ser um só artefato evoluindo de uma visão abstrata (nas
atividades de análise), para uma visão detalhada (nas atividades de projeto)
Podem ser feitos dois artefatos um modelo de análise
um modelo de projeto (inicia igual à última versão do modelo de análise e evolui independentemente)
Documentação x esforço e disciplina de manutenção
![Page 21: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/21.jpg)
Estratégias de decomposição
![Page 22: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/22.jpg)
Estratégias de Decomposição
Funcional x Dados
Decomposição Funcional Decomposição do sistema em componentes
funcionais (exemplo: casos de uso)
O estado do sistema é centralizado e compartilhado entre as funções
Experiência mostrou inadequação para estruturação de modelos de análise e projeto (as regras de negócio mudam constantemente)
Entretanto, útil para estruturar requisitos, planejar e gerenciar projetos, e realizar testes
![Page 23: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/23.jpg)
Estratégias de Decomposição
Funcional x Dados
Decomposição Baseada em Dados O sistema é visto como uma coleção de
entidades que interagem (ou objetos, no paradigma OO)
O estado do sistema é descentralizado
Mostrou-se adequada como mecanismo de estruturação (estabilidade de dados com relação a funções) de
• modelos de análise• projeto e • implementação
![Page 24: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/24.jpg)
Estratégias de decomposição
Projeto Top-down x Bottom-up
System level
Sub-systemlevel
![Page 25: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/25.jpg)
Projeto Top-down x Bottom-up
Na prática, o projeto de grandes
sistemas nunca é inteiramente top-
down
Os projetistas reutilizam experiência (e
componentes)
No processo, ocorre brainstorm nos dois
sentidos
![Page 26: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/26.jpg)
Atributos de qualidade de modelos de análise e
projeto
![Page 27: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/27.jpg)
Atributos de Qualidade
A qualidade é uma propriedade relativa a prioridades específicas da organizaçãoCaracterísticas de qualidade são igualmente aplicáveis a projetos orientados a objeto ou à funçãoDois atributos importantes são coesão e acoplamento
![Page 28: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/28.jpg)
O Atributo Coesão
Medida da proximidade das partes (elementos) de um componente do sistema Um componente deve implementar uma única entidade lógica ou função (abstração)Importância Quando uma mudança tiver que ser feita, ela será
facilmente localizada
Reuso ...
Em Orientação a objetos, cada classe deve modelar uma única entidade
![Page 29: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/29.jpg)
Medida da intensidade das interconexões entre componentes do sistemaImportância Baixo acoplamento implica que mudanças em
um componente tendem a não afetar outros componentes
Reuso ...
O Atributo Acoplamento
![Page 30: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/30.jpg)
Acoplamento Forte
Module A Module B
Module C Module D
Shared dataarea
![Page 31: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/31.jpg)
Acoplamento Fraco
Module A
A’s data
Module B
B’s data
Module D
D’s data
Module C
C’s data
![Page 32: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/32.jpg)
Sistemas orientados a objeto são, potencialmente, fracamente acoplados
Geralmente não compartilham estado
A comunicação é feita através de passagem de mensagens
Entretanto...
uma classe está acoplada a sua superclasse (mudanças nos atributos ou operações se propagam a todas as subclasses)
Relacionamentos cíclicos (em particular, bidirecionais) também geram forte acoplamento
Acoplamento em Orientação a Objetos
![Page 33: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/33.jpg)
Padrões, anti-padrões e frameworks
![Page 34: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/34.jpg)
Padrões de Projeto e Arquiteturais
Projetistas experientes (re)utilizam soluções bem sucedidas no passadoPadrões sistematizam soluções, incluindo
• Nome• Problema• Solução• Conseqüência• Exemplo, ...
Durante as duas última décadas, surgiu uma “comunidade” voltada a padrões
![Page 35: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/35.jpg)
Exemplo: Padrão Fachada
Fachada
![Page 36: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/36.jpg)
Anti-Padrões
São uma maneira de documentar soluções recorrentes que não tiveram sucesso
• Podem também incluir soluções re-trabalhadas que sejam efetivas
![Page 37: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/37.jpg)
Frameworks
Usualmente baseado em padrões, mas já voltados para uma linguagem de programaçãoEspecialização/instanciação Hot spots
Herança
![Page 38: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/38.jpg)
Relacionamento com outras disciplinas do processo de
software
Planejamento e Gerenciamento – planeja e acompanha todo o desenvolvimento Requisitos – entrada para a análise e projeto do sistemaImplementação – o modelo de análise e projeto é entrada a implementaçãoGerência de Configuração e Ambiente – oferece suporte aos artefatos gerados (incluindo modelos)
![Page 39: IF718 Análise e Projeto de Sistemas](https://reader036.vdocuments.net/reader036/viewer/2022062810/56815c81550346895dca9694/html5/thumbnails/39.jpg)
Planejamento do Curso
Programa, cronograma, transparências, referências, avaliação, projetos e ferramentas:
http://www.cin.ufpe.br/~if718
MAS SÓ DEPOIS DA QUINTA-FEIRA