Processo de desenvolvimento proposto Eliane Martins Criação: mar/2011 Eliane Martins - Instituto de Computação - UNICAMP Tópicos • O processo ROPES Eliane Martins - Instituto de Computação - UNICAMP 2 Referências • B.P.Douglass. Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns. Addison-Wesley. Object Technology Series. 1999 (cap. 4) • B.P.Douglass. ROPES: Rapid Object-Oriented Process for Embedded Systems. Obtido mar/2010 em http://citeseerx.ist.psu.edu Eliane Martins - Instituto de Computação - UNICAMP 3 Processo base • ROPES: Rapid Object-Oriented Process for Embedded Systems – – – – Proposto por Bruce Powel Douglass em 1999 Baseado em artefatos da UML Voltado para sistemas embarcados e de tempo real Ênfases: • Tempo de resposta curto • Validação desde cedo no ciclo de vida • Baixo risco Eliane Martins - Instituto de Computação - UNICAMP 4 O processo ROPES A cada iteração: novo protótipo [Extraído de Douglass99, pg167] Eliane Martins - Instituto de Computação - UNICAMP 5 Fases e Artefatos Fases de uma iteração Análise Artefatos Documento de Requisitos Classes de Análise Casos de uso Cenários Vetores de teste Projeto Modelo de arquitetura Modelo Intermediário Modelo de Projeto Detalhado Tradução Componentes da Aplicação Testes Falhas de Análise Falhas de Projeto Falhas de Tradução Aplicação Testada Eliane Martins - Instituto de Computação - UNICAMP 6 Análise Análise Análise de Requisitos Análise de Sistemas Análise de Objetos Eliane Martins - Instituto de Computação - UNICAMP 7 Análise Análise de Requisitos • Identificar casos de uso e atores • Decompor casos de usos • Identificar eventos externos Análise Análise de Sistemas • Definir cenários que caracterizam o comportamento do sistema • Identificar restrições: interfaces com outros sistemas, desempenho, ... • Lista de perigos Análise de Objetos Eliane Martins - Instituto de Computação - UNICAMP 8 Análise Análise de Requisitos • Identificar unidades de processamento (larga escala) e seus componentes Análise Análise de Sistemas • Modelar comportamento dos componentes (modelo de estados) • Determinar quais componentes são de hw, quais de sw Análise de Objetos • Validar o comportamento do sistema utilizando modelos executáveis Eliane Martins - Instituto de Computação - UNICAMP 9 Análise Análise de Requisitos Análise Análise de Sistemas • Identificar os objetos • Identificar as classes correspondentes aos objetos • Modelar a interação entre objetos que atendam aos casos de uso • Identificar comportamento de objetos reativos • Identificar as operações e atributos Análise de Objetos • Validar os objetos usando os cenários definidos em sub-fase anterior • Associar às operações das classes as restrições de desempenho, ... Eliane Martins - Instituto de Computação - UNICAMP 10 Projeto Projeto Arquitetural Projeto Projeto Intermediário Projeto Detalhado Eliane Martins - Instituto de Computação - UNICAMP 11 Projeto • Definir componentes e sua distribuição • Aplicar padrões arquiteturais para: Projeto Arquitetural - Tratamento de erros global - Tratamento de inocuidade (safety) Projeto - Tolerância a falhas Projeto Intermediário Projeto Detalhado Eliane Martins - Instituto de Computação - UNICAMP 12 Projeto Projeto Arquitetural Projeto • Detalhar as colaborações entre objetos Projeto Intermediário • Aplicar padrões de projeto Projeto Detalhado Eliane Martins - Instituto de Computação - UNICAMP 13 Projeto Projeto Arquitetural Projeto Projeto Intermediário Projeto Detalhado • Definir implementação das relações entre objetos • Definir contratos para as operações e para as classes • Definir modelo de tratamento de exceções para as classes • Definir precisamente os tipos e domínios de valores de atributos • Definir algoritmos para operações mais complexas Eliane Martins - Instituto de Computação - UNICAMP 14 Tradução • Definir implementação das relações entre objetos • Definir contratos para as operações e para as classes Tradução • Definir modelo de tratamento de exceções para as classes • Definir precisamente os tipos e domínios de valores de atributos • Definir algoritmos para operações mais complexas • Preparar, projetar e executar os Testes de Unidade Eliane Martins - Instituto de Computação - UNICAMP 15 Testes • Criar planos de testes: - Testes de Integração Testes - Testes Validação • Projetar, implementar e executar os casos de teste Eliane Martins - Instituto de Computação - UNICAMP 16