Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Engenharia de Software
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Diagrama de fluxo de dados (DFD)
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Engenharia de Software
Processos de Software Introdução
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Engenharia de Software Professor Sandro de Paiva Carvalho.
FACULDADE DOS GUARARAPES
Metodologias Equipe do Curso de ES para SMA
Metodologias Orientadas a Agentes
Professora: Aline Vasconcelos
Introdução a diagrama de classes e UML
Processo Desenvolvimento de Software Tradicional
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
6. Análise estruturada 6.1 DFD
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
RUP: Fluxo de Análise e Projeto
Como Desenvolver Sistemas de Informação
Modelagem de Interações
Princípios e Conceitos de Software(v2)
Classes e objetos Modelagem
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
Conceitos.
Análise Estruturada.
Análise e Projeto de Sistemas
Ferramentas de modelagem do SI
Engenharia de Software
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Projeto de Banco de Dados
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Laboratório de Programação
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Processos de Software.
Processos de Software.
Requisitos de Software
Desenvolvimento de Software Dirigido a Modelos
A Linguagem Formal de Especificação VDM-SL
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Modelagem e arquitetura
Estilos Arquiteturais
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
Projeto de Banco de Dados
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/38 Análise e Projeto de Sistemas Introdução à Análise e ao Projeto de Software.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Interações entre objetos
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software.
©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas Augusto Sampaio Em co-autoria com.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
IF718 Análise e Projeto de Sistemas Augusto Sampaio - acas Vitor Braga - vtb (Estágio docência) Diogo Peixoto - dcp (Monitor) Parte do material.
Transcrição da apresentação:

Engenharia de Software Projeto de Software Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Projeto de Software Derivando uma solução que satisfaz os requisitos de software Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho 1

Características do Processo de Projeto Processo criativo Aprendizado Prática Experiência Estudo de Exemplos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Estágios de Projeto Entender o problema Olhar para o problema de diferente ângulos Descobrir os requisitos de projeto Identificar uma ou mais soluções Avaliar possíveis soluções Escolher a mais apropriada Descrever as abstrações da solução Usar notações gráficas ou descritivas para especificar os componentes do projeto Repetir este processo para cada abstração identificada até o projeto estar expresso em termos primitivos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Processo de Projeto Qualquer projeto pode ser modelado como um grafo direcionado Nós: entidades Processos Funções Tipos Arestas: relacionamentos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Refinamento de um Projeto O sistema é projetado iterativamente em diferentes níveis de abstração Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Fases do Processo de Projeto A separação entre fases não é bem definida Identificação útil por questões de gerenciamento Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Fases do Processo de Projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Fases do Processo de Projeto Projeto de arquitetura: Identifica sub-sistemas Especificação abstrata: Especifica sub-sistemas Projeto de interface: Descreve as interfaces dos sub-sistemas Projeto de componente: Decompõe sub-sistemas em componentes Projeto de estrutura de dados: Projeta estrutura de dados para armazenar os dados do problema Projeto de algoritmos: Descreve os algoritmos a serem usados na solução do problema Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Projeto Top-down Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Projeto Top-down Na prática, o projeto de grande sistemas nunca é verdadeiramente top-down. Os projetistas reutilizam experiência (e componentes) Orientação a objetos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Métodos Estruturados de Projeto 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 Vantagens Ferramentas CASE Documentação padronizada Redução de custo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Modelos dos Métodos Estruturados Modelo de fluxo de dados Transformação de dados Modelo entidade-relacionamento Estrutura lógica dos dados Modelo estrutural Componentes do sistema e suas interações Se o método for orientado a objetos Modelo de herança e composição de objetos Complementos: diagrama de estados, dicionário de dados, ... Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Deficiências dos métodos estruturados Existem diretrizes e não métodos no sentido matemático. Projetistas diferentes criam projetos bastante diferentes Não ajudam muito com a parte inicial, fase criativa do projeto. Em vez disso, ajudam ao projetista a estruturar e documentar as suas idéias de projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho 13

Notações para Descrição de Projeto Notações gráficas. Usadas para mostrar os relacionamentos dos componentes. Linguagens de descrição de programa. Baseadas em linguagens de programação, porém com mais flexibilidade para representar conceitos abstratos. Texto informal. Descrição em linguagem natural. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Estratégias de Projeto Projeto Funcional Decomposição do sistema em componentes funcionais O estado do sistema é centralizado e compartilhado entre as funções Projeto Orientado a Objetos O sistema é visto como uma coleção de objetos que interagem O estado do sistema é descentralizado Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Estratégia de Projeto Qual a melhor? As abordagens orientada a objeto e funcional são complementares Bons engenheiros de software selecionam a abordagem mais apropriada para o sistema ou fase do processo em questão Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Qualidade de Projeto Propriedade indefinível que depende das prioridades específicas da organização Os atributos discutidos aqui estão relacionados com a manutenção de um projeto Características de qualidade são igualmente aplicáveis a projetos orientados a objeto ou a função Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Coesão Medida da proximidade das partes de um sub-componente Um componente deve implementar uma única entidade lógica ou função Importância Quando uma mudança tiver que ser feita, ela será localizada Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Níveis de Coesão Coesão casual Associação lógica Coesão temporal As partes de um componente não são relacionadas Associação lógica Componentes que executam funções similares são agrupados Coesão temporal Componentes que são ativados na mesma hora são agrupados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Níveis de Coesão Coesão procedural Coesão de comunicação Componentes que fazem parte de uma única seqüência de controle são agrupados Coesão de comunicação Componentes que operam na mesma entrada ou produzem a mesma saída são agrupados Coesão seqüencial A saída de uma parte de um componente é a entrada de outra parte Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Níveis de Coesão Coesão funcional Coesão objeto Cada parte de um componente é necessária para execução de uma única função Coesão objeto Cada operação provê funcionalidade que permite que atributos de um objeto sejam modificados ou inspecionados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Acoplamento Medida da força das interconexões entre componentes do sistema Importância Baixo acoplamento implica que mudanças em um componente dificilmente afetará outros componentes Cuidados Variáveis compartilhadas Troca de informações de controle Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Acoplamento Forte Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Acoplamento Baixo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Níveis de Acoplamento Sem acoplamento Acoplamento de dados: passagem de dados simples Acoplamento de controle Passagem de informação de controle Acoplamento externo Dependência de dispositivos e protocolos Acesso a dados globais Acoplamento de conteúdo Uso de informações em outro módulo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Entendimento Relacionado a várias características do componente Coesão. Pode um componente ser entendido isoladamente? Nomes. São usados nomes que fazem sentido? Documentação. O projeto está bem documentado? Complexidade. Algoritmos complexos são utilizados? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Adaptabilidade Medida da facilidade de mudança dos componentes Fatores relevantes Componentes fracamente acoplados Componentes fortemente coesos Boa documentação Programas legíveis Correspondência óbvia entre os vários níveis de projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Pontos Principais Projeto é um processo criativo Atividades de projeto incluem Projeto de arquitetura Especificação de sistema Projeto de interface Projeto de componente Projeto de estrutura de dados Projeto de algoritmos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

Pontos Principais Decomposição funcional considera o sistema como um conjunto de unidades funcionais Orientação a objeto considera o sistema como uma coleção de objetos Projetistas devem procurar produzir sistemas Fortemente coesos Fracamente acoplados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho