![Page 1: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/1.jpg)
CIn-UFPECIn-UFPE 11/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
www.cin.ufpe.br/~if718www.cin.ufpe.br/~if718
Augusto SampaioAugusto Sampaio2008.22008.2
• Em co-autoria com Alexandre Vasconcelos• Parte do material cedido pela Qualiti Software Processes
![Page 2: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/2.jpg)
CIn-UFPECIn-UFPE 22/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Objetivos do CursoObjetivos do Curso
Visão geral de Análise e Projeto de Software (Orientado a Objetos)
Construção sistematizada de modelos de análise a partir de requisitos
Evolução dos modelos de análise em modelos de projeto (concorrentes e distribuídos)
Estudo detalhado da Disciplina de Análise e Projeto do RUP e modelagem com o ROSE-RT
Exemplo (projeto) único ilustrando todo o processo
![Page 3: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/3.jpg)
CIn-UFPECIn-UFPE 33/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Planejamento do CursoPlanejamento do Curso
Programa, cronograma, transparências, referências, avaliação, projetos e ferramentas:http://www.cin.ufpe.br/~if718
![Page 4: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/4.jpg)
CIn-UFPECIn-UFPE 44/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Introdução à Análise e ao Projeto de Introdução à Análise e ao Projeto de SoftwareSoftware
![Page 5: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/5.jpg)
CIn-UFPECIn-UFPE 55/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Agenda da AulaAgenda da Aula
Análise e projeto no ciclo de vida de software
Análise versus Projeto
Exemplo de processo de análise e projeto de software
Estratégias top-down e bottom-up
Decomposição funcional e baseada em dados
Atributos de qualidade de projeto de software
![Page 6: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/6.jpg)
CIn-UFPECIn-UFPE 66/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
A&P no modelo Cascata A&P no modelo Cascata
Análise e Projeto
![Page 7: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/7.jpg)
CIn-UFPECIn-UFPE 77/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
A&P no modelo Espiral A&P no modelo Espiral
![Page 8: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/8.jpg)
CIn-UFPECIn-UFPE 88/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
A&P no modelo iterativo do RUPA&P no modelo iterativo do RUP
Planejamento e Gerenciamento.....
Fluxos de SuporteGerê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 9: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/9.jpg)
CIn-UFPECIn-UFPE 99/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Análise versus ProjetoAnálise versus Projeto
Na Análise, investigamos o problema e descobrimos o QUE precisa estar no sistema
Durante o Projeto: detalhamos a Análise de modo a encontrar uma solução
computacional que satisfaça os requisitos do software estruturamos COMO o sistema será implementado
O projeto oferece uma ponte entre a Análise e a Implementação
![Page 10: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/10.jpg)
CIn-UFPECIn-UFPE 1010/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Análise versus ProjetoAnálise versus Projeto
No conceito de MDA (Model Driven Architecture) 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 11: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/11.jpg)
CIn-UFPECIn-UFPE 1111/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Análise versus ProjetoAná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 12: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/12.jpg)
CIn-UFPECIn-UFPE 1212/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Modelo de Análise e ProjetoModelo 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 13: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/13.jpg)
CIn-UFPECIn-UFPE 1313/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Características da Análise/Projeto de SoftwareCaracterísticas da Análise/Projeto de Software
Processo criativo, porém deve ser sistematizado Baseado no aprendizado
Prática
Experiência, exemplos
Padrões
Deriva uma solução que satisfaz os requisitos de software
Influenciado pela implementação computacional (projeto)
![Page 14: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/14.jpg)
CIn-UFPECIn-UFPE 1414/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Principais Fases do ProcessoPrincipais Fases do Processo
Analisar o problema Analisar o problema sob diferentes ângulos Analisar/identificar abstrações (tipicamente de componentes)
a partir dos requisitos de projeto Identificar uma ou mais soluções (arquiteturais)
Avaliar possíveis soluções Escolher a mais apropriada
Detalhar as abstrações da solução Usar notações gráficas ou descritivas para especificar os
componentes do projeto Repetir este processo para cada nova abstração identificada
até o projeto estar expresso em termos primitivos
![Page 15: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/15.jpg)
CIn-UFPECIn-UFPE 1515/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Refinamento da Análise/ProjetoRefinamento da Análise/Projeto
O sistema é projetado iterativamente emdiferentes níveis de abstração
Informal Informaldesign
Moreformaldesign
Finisheddesign
designoutline
Nível crescente de estruturação
Nível decrescente de abstração
![Page 16: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/16.jpg)
CIn-UFPECIn-UFPE 1616/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Atividades típicas de análise e projetoAtividades típicas de análise e projeto
Architecturaldesign
Abstractspecificatio
n
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
![Page 17: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/17.jpg)
CIn-UFPECIn-UFPE 1717/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Detalhamento das atividadesDetalhamento das atividades
Projeto de arquitetura: Identifica subsistemas e outros elementos de projeto
Especificação abstrata: Para cada subsistema (e outros elementos de projeto) é produzida uma especificação abstrata de suas funções e das restrições dentro das quais deve operar.
Projeto de interface: Especifica as interfaces entre subsistemas
![Page 18: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/18.jpg)
CIn-UFPECIn-UFPE 1818/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Detalhamento das atividadesDetalhamento das atividades
Projeto de componentes: Transforma (possivelmente decompondo) subsistemas em componentes individuais para se ajustar à arquitetura
Projeto de estrutura de dados: Projeta estrutura de dados para armazenar os dados do sistema
Projeto de algoritmos: Descreve os algoritmos a serem usados na solução do problema
![Page 19: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/19.jpg)
CIn-UFPECIn-UFPE 1919/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Notações para ModelagemNotações para Modelagem
Notações gráficas: Usadas para descrever os elementos de projeto e relacionamentos
Linguagens de descrição de programa: Baseadas em linguagens de programação, porém com mais flexibilidade para representar conceitos abstratos
Notações formais: baseadas em linguagens de especificação formal
Texto informal: Descrição em linguagem natural.
![Page 20: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/20.jpg)
CIn-UFPECIn-UFPE 2020/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Notações Gráficas Notações Gráficas para Modelagem para Modelagem
Qualquer projeto pode ser modelado como um grafo
direcionado
Nós: entidades (elementos de projeto)
Classes, Tipos, processos, subsistemas,
funções, ...
Arestas: relacionamentos
![Page 21: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/21.jpg)
CIn-UFPECIn-UFPE 2121/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Métodos Estruturados Métodos Estruturados
Características Notações para expressar o projeto Diretrizes para criar e avaliar um projeto
Exemplos Projeto Estruturado (Yourdon) JSD (Jackson Method) Booch, OMT, UML + RUP
Suporte de Ferramentas CASE Documentação padronizada Redução de custo (treinamento, manutenção) Produtividade
Mas padronização é fundamental ...
![Page 22: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/22.jpg)
CIn-UFPECIn-UFPE 2222/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Estratégias de decomposiçãoEstratégias de decomposiçãoProjeto Top-down x Bottom-upProjeto Top-down x Bottom-up
System level
Sub-systemlevel
![Page 23: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/23.jpg)
CIn-UFPECIn-UFPE 2323/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Projeto Top-down x Bottom-upProjeto 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 24: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/24.jpg)
CIn-UFPECIn-UFPE 2424/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Estratégias de DecomposiçãoEstratégias de DecomposiçãoFuncional x DadosFuncional x Dados
Decomposição Funcional Decomposição do sistema em componentes
funcionais 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 25: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/25.jpg)
CIn-UFPECIn-UFPE 2525/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Estratégias de DecomposiçãoEstratégias de DecomposiçãoFuncional x DadosFuncional 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 Pode existir uma considerável sobreposição entre
os modelos de análise e de projeto Na prática muitas porções do modelo de
análise podem ser reusadas no projeto Mostrou-se adequada como mecanismo de
estruturação (estabilidade de dados com relação a funções) de modelos de análise e projeto
![Page 26: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/26.jpg)
CIn-UFPECIn-UFPE 2626/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Visão Funcional de um CompiladorVisão Funcional de um Compilador
AnalyseBuild
symboltable
Scansource
Generatecode
Symboltable
Outputerrors
Sourceprogram
Tokens Tokens Syntaxtree
Objectcode
ErrorindicatorSymbols Symbols
Errormessages
![Page 27: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/27.jpg)
CIn-UFPECIn-UFPE 2727/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Visão Orientada a Objetos de um CompiladorVisão Orientada a Objetos de um Compilador
Sourceprogram
Tokenstream
Symboltable
Syntaxtree
Grammar Errormessages
Abstractcode
Objectcode
Scan Add
Check Get
Build Print
Generate
Generate
![Page 28: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/28.jpg)
CIn-UFPECIn-UFPE 2828/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Top-down x Bottom-up e Top-down x Bottom-up e Funcional X DadosFuncional X Dados
Estratégias ortogonais (independentes) Por exemplo, uma estratégia Top-Down baseada
em dados decompõe classes usando o mecanismo de herança
Uma estratégia Bottom-Up baseada em dados usaria generalização
Uma estratégia Top-Down funcional inicia com a visão funcional do sistema e decompõe em subunidades
Uma estratégia Bottom-Up funcional reutilizaria bibliotecas de funções no projeto de funções mais complexas
![Page 29: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/29.jpg)
CIn-UFPECIn-UFPE 2929/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Atributos de Qualidade de ProjetoAtributos de Qualidade de Projeto
A qualidade é uma propriedade relativa a prioridades específicas da organização
Características de qualidade são igualmente aplicáveis a projetos orientados a objeto ou a função
Os atributos discutidos aqui estão relacionados principalmente a facilidades de evolução e manutenção de um projeto
![Page 30: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/30.jpg)
CIn-UFPECIn-UFPE 3030/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
O Atributo Coesão O Atributo Coesão
Medida da proximidade das partes (elementos) de um sub-componente
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 ...
![Page 31: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/31.jpg)
CIn-UFPECIn-UFPE 3131/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Coesão em Orientação a ObjetosCoesão em Orientação a Objetos
Classes que modelam mais de uma entidade são fracamente coesas
Herança de atributos de uma superclasse enfraquece a coesão Para entender a estrutura de uma classe, a superclasse e a
própria classe precisam ser examinadas
![Page 32: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/32.jpg)
CIn-UFPECIn-UFPE 3232/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Medida da intensidade das interconexões entre componentes do sistema
Importância Baixo acoplamento implica que mudanças em um componente
tendem a não afetar outros componentes Reuso ...
O Atributo AcoplamentoO Atributo Acoplamento
![Page 33: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/33.jpg)
CIn-UFPECIn-UFPE 3333/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Acoplamento ForteAcoplamento Forte
Module A Module B
Module C Module D
Shared dataarea
![Page 34: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/34.jpg)
CIn-UFPECIn-UFPE 3434/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Acoplamento FracoAcoplamento Fraco
Module A
A’s data
Module B
B’s data
Module D
D’s data
Module C
C’s data
![Page 35: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/35.jpg)
CIn-UFPECIn-UFPE 3535/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
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 ObjetosAcoplamento em Orientação a Objetos
![Page 36: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/36.jpg)
CIn-UFPECIn-UFPE 3636/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Relacionado a várias características do componente Acoplamento e Coesão. Cada componente modela
(completamente) uma única abstração?
Nomes. São usados nomes sugestivos?
Documentação. O projeto está bem documentado?
Complexidade. Algoritmos complexos são utilizados?
Padrões. Soluções conhecidas são utilizadas?
O Atributo EntendimentoO Atributo Entendimento
![Page 37: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/37.jpg)
CIn-UFPECIn-UFPE 3737/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Medida da facilidade de mudança nos componentes Alguns fatores relevantes
Componentes fracamente acoplados Componentes fortemente coesos Boa documentação
O Atributo AdaptabilidadeO Atributo Adaptabilidade
![Page 38: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/38.jpg)
CIn-UFPECIn-UFPE 3838/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Herança aumenta a adaptabilidade Componentes podem ser adaptados sem mudanças através da
definição de uma subclasse que é efetivamente modificada
Por outro lado ... O aumento da profundidade da hierarquia a torna mais complexa
Adaptabilidade em Orientação a ObjetosAdaptabilidade em Orientação a Objetos
![Page 39: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/39.jpg)
CIn-UFPECIn-UFPE 3939/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Fatores que Influenciam o ProjetoFatores que Influenciam o Projeto
Funcionalidade Performance - tempo de resposta, tempo total de execução Eficiência - uso eficiente do dispositivo de armazenamento
e do hardware Portabilidade - funcionar em novas plataformas Segurança Disponibilidade - disponível quando requerido Robustez Generalidade Usabilidade Reusabilidade
![Page 40: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/40.jpg)
CIn-UFPECIn-UFPE 4040/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Compromissos de ProjetoCompromissos de Projeto
É impossível alcançar todos os objetivos Performance X Portabilidade Performance X Generalidade
![Page 41: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/41.jpg)
CIn-UFPECIn-UFPE 4141/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Compromissos de ProjetoCompromissos de Projeto
Projeto acontece no contexto do mundo real Portanto, deve levar em consideração:
Investimento custos de projeto e execução
Prazos bom projeto leva mais tempo Os resultados obtidos a partir do sistema implementado
devem acontecer na data apropriada Integração com outros sistemas Habilidades
da equipe de projeto e usuários Padrões
internos e externos
![Page 42: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/42.jpg)
CIn-UFPECIn-UFPE 4242/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Medindo a Eficiência do ProjetoMedindo a Eficiência do Projeto
Sucesso deve ser mostrado em termos de objetivos mensuráveis Funcionalidade - presente ou ausente Eficiência
tempo de resposta Portabilidade
plataformas
![Page 43: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/43.jpg)
CIn-UFPECIn-UFPE 4343/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Disponibilidade ex. Sistema funcionando 98% do tempo.
Robustez ex. 90% das falhas são recuperadas em uma hora
Usabilidade tempo para aprender a usar o sistema freqüência de erros tempo para recuperar de erros específicos tempo para re-aprender o sistema depois de um período sem
usá-lo atitude e satisfação do usuário (questionário)
Medindo a Eficiência do ProjetoMedindo a Eficiência do Projeto
![Page 44: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/44.jpg)
CIn-UFPECIn-UFPE 4444/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Projeto é um processo de engenharia (modelagem), mas exige criatividade
Atividades de projeto incluem Projeto de arquitetura Especificação de sistema Projeto de interface Projeto de componentes Projeto de estrutura de dados Projeto de algoritmos
Pontos PrincipaisPontos Principais
![Page 45: ©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas if718 Augusto Sampaio 2008.2 Em co-autoria com](https://reader036.vdocuments.pub/reader036/viewer/2022062316/570638701a28abb82390726f/html5/thumbnails/45.jpg)
CIn-UFPECIn-UFPE 4545/45/45©2008, Alexandre Vasconcelos & Augusto Sampaio©2008, Alexandre Vasconcelos & Augusto Sampaio
Pontos PrincipaisPontos Principais
Decomposição funcional considera o sistema como um conjunto de unidades funcionais (estado centralizado) Importante para definir escopo, planejar, gerenciar e testar
Orientação a objetos considera o sistema como uma coleção de objetos (estado descentralizado) Importante na modelagem estrutural e de dados
Projetistas devem procurar produzir sistemas Fortemente coesos Fracamente acoplados