Processo de Desenvolvimento de Software – RUP 3. Análise & Projeto Márcio Aurélio Ribeiro Moreira [email protected] http://si.lopesgazzani.com.br/docentes/marcio/ Evolução da análise Década 60-70 Análise Abordagens Ferramentas Tradicional Funcional •Textos e Fluxogramas Funcional Dados •Diagrama de Fluxo de Dados (DFD) •Diagrama de Estrutura de Dados (Modelo Conceitual) •Mini-especificações e Normalização •Dicionário de Dados Funcional Dados Controle •Lista de Eventos e DFD •Diagrama Entidade-Relacionamento (DER) •Diagrama de Transição de Estados (DTE) •Mini-especificações e Normalização •Dicionário de Dados 80 Estruturada (Cris Gane, Tony de Marco e Yourdan) 90 Essencial (Peter Chen, Stephen McMenamin & John Palmer) 2000 Orientada a Objetos (Booch, Rumbaugh & Jacobson) Márcio Moreira Todos os aspectos do negócio e do sistema •Equivalentes aos anteriores •Modelos de casos de uso, análise e projeto •Modelos de distribuição, implementação e de testes •Diagramas de seqüência, estado, atividades, etc. 3. Análise & Projeto – slide 2 Processo de Desenvolvimento de Software - RUP Objetivos da disciplina de análise & design Transformar os requisitos em um design (projeto) do sistema a ser criado. Desenvolver uma arquitetura sofisticada para o sistema. Adaptar o design (projeto) para que corresponda ao ambiente de implementação, projetando-o para fins de desempenho. Márcio Moreira 3. Análise & Projeto – slide 3 Processo de Desenvolvimento de Software - RUP Fluxo de trabalho de análise & design Márcio Moreira 3. Análise & Projeto – slide 4 Processo de Desenvolvimento de Software - RUP Objetivos das atividades Realizar Síntese Arquitetural (utilizada na Iniciação): Construir e avaliar uma Prova de Conceito Arquitetural, para demonstrar que o sistema idealizado é factível. Definir uma Sugestão de Arquitetura: Criar um esboço inicial da arquitetura de software. Identificação de Serviço: Identificar e qualificar serviços candidatos. Analisar Comportamento: Transformar descrições comportamentais fornecidas pelos requisitos em um conjunto de elementos, no qual o design possa se basear. Refinar a Arquitetura: Concluir a arquitetura para uma iteração. Projetar Componentes: Refinar o design do sistema. Projetar o Banco de Dados: Identificar as classes de design a serem persistidas em um banco de dados e projetar as estruturas de banco de dados correspondentes. Especificação de Serviço: Especificar o comportamento de serviço e identificar os fornecedores de serviços e partições. Márcio Moreira 3. Análise & Projeto – slide 5 Processo de Desenvolvimento de Software - RUP A: Realizar síntese arquitetural Márcio Moreira 3. Análise & Projeto – slide 6 Processo de Desenvolvimento de Software - RUP A: Definir uma sugestão de arquitetura Márcio Moreira 3. Análise & Projeto – slide 7 Processo de Desenvolvimento de Software - RUP A: Identificação de serviço Esta atividade é composta por outras 3 atividades: Decomposição do Domínio: Decomposição guiada por negócio, top-down, para identificar: Serviços candidatos e Processos de negócios (fluxos de serviços) Áreas funcionais que identificam limites para subsistemas ( componentes de serviços candidatos para realizar os serviços) Atributos comuns e variações da funcionalidade de negócios Modelagem de Serviço de Meta: Ajuda a descobrir serviços alinhados a negócios e assegura que importantes serviços não tenham sido perdidos durante a decomposição (objetivos serviços KPIs, métricas e eventos) Análise de Recurso Existente: Avaliar os recursos existentes para projetar serviços que preservem o máximo destes recursos sem a necessidade de mudanças. Márcio Moreira 3. Análise & Projeto – slide 8 Processo de Desenvolvimento de Software - RUP A: Decomposição de domínio Domínio de Negócio Márcio Moreira 3. Análise & Projeto – slide 9 Processo de Desenvolvimento de Software - RUP A: Modelagem de serviço de meta Márcio Moreira 3. Análise & Projeto – slide 10 Processo de Desenvolvimento de Software - RUP A: Análise de recurso existente Márcio Moreira 3. Análise & Projeto – slide 11 Processo de Desenvolvimento de Software - RUP A: Analisar comportamento 1 Márcio Moreira 3. Análise & Projeto – slide 12 Processo de Desenvolvimento de Software - RUP A: Analisar comportamento 2 Márcio Moreira 3. Análise & Projeto – slide 13 Processo de Desenvolvimento de Software - RUP A: Refinar a arquitetura 1 Márcio Moreira 3. Análise & Projeto – slide 14 Processo de Desenvolvimento de Software - RUP A: Refinar a arquitetura 2 Márcio Moreira 3. Análise & Projeto – slide 15 Processo de Desenvolvimento de Software - RUP A: Projetar componentes 1 Márcio Moreira 3. Análise & Projeto – slide 16 Processo de Desenvolvimento de Software - RUP A: Projetar componentes 2 Márcio Moreira 3. Análise & Projeto – slide 17 Processo de Desenvolvimento de Software - RUP A: Projetar banco de dados Márcio Moreira 3. Análise & Projeto – slide 18 Processo de Desenvolvimento de Software - RUP A: Especificação de serviço Esta atividade é composta por outras 3 atividades: Executar Especificação de Serviço: Definir os limites do serviço e definir as mensagens. Executar Análise de Subsistema: Fazer o projeto do subsistema de SOA (Service Oriented Architecture ou Arquitetura Orientada a Serviços). Executar Especificação de Componente: Especificar os componentes necessários aos serviços. Márcio Moreira 3. Análise & Projeto – slide 19 Processo de Desenvolvimento de Software - RUP A: Executar especificação de serviço Teste Litmus: É um tipo de teste para serviços de SOA Objetivos: • Assegurar que o serviço seja alinhado com os negócios • Assegurar que o serviço possa ser composto • Assegurar que o serviço tenha descrição externa • Assegurar que o serviço seja reutilizável • Assegurar que o serviço seja viável tecnicamente Márcio Moreira 3. Análise & Projeto – slide 20 Processo de Desenvolvimento de Software - RUP A: Executar análise de subsistema Márcio Moreira 3. Análise & Projeto – slide 21 Processo de Desenvolvimento de Software - RUP A: Executar especificação de componente Márcio Moreira 3. Análise & Projeto – slide 22 Processo de Desenvolvimento de Software - RUP Arquitetura do Software Descrição Arquitetural e M. de Análise e de Serviços Modelo de Análise Casos de Uso Análise de realização dos Casos de Uso Pacotes de Análise Especificar o Software Estruturar o software Essência da análise & projeto Márcio Moreira Classes de análise Mapa de navegação Projeto Arquitetural Descrição Arquitetural e M. de Projeto e Implementação Projeto de Casos de Uso Projeto de Classes Modelo de Dados Classes de Projeto e Testes Componentes de Serviços Projeto de sub-sistemas 3. Análise & Projeto – slide 23 Projetos de realização dos Casos de Uso Projeto de sub-sistemas Projeto de interfaces Processo de Desenvolvimento de Software - RUP P: Modelo de análise pd Visão Niv elada de Pacotes de Análise Name: Visão Nivelada de Pacotes de Análise Package: «view» Análise Version: 1.0 Author: Uso Específico da Aplicação «analysis-package» Acompanhamento Promocional «analysis-package» Planej amento «analysis-package» Organização de Produtos Uso Específico do Negócio «analysis-package» Distribuição de Materiais «analysis-package» Análise de Mercado «analysis-package» Gestão de Suprimentos «analysis-package» Vendas «analysis-package» Planej amento e Controle de Produção «analysis-package» Coletor de Fatos Márcio Moreira 3. Análise & Projeto – slide 24 Processo de Desenvolvimento de Software - RUP P: Modelo de serviços Feasibility Check & Reservation - Context Diagram Siebel SOA OSM 1. Generate Quote 2. Determine Order Feasibility 3. Create Feasibility Order (Business Rule to define if is necessary Feasibility Order) 4. Call Feasibility Flow 4.1. Infrastructure Feasibility 4.1a. Network Feasibility 4.1b. Workforce Feasibility 4.1c. S/P Feasibility [Last Mile] 5. Authorize Credit 6. Invoke Authorize Credit (in Gestor Serasa) 7. Allocate Service Specific Parameter 8. Create Reservation Order (Business Rule to define moment of reservation) 9. Call Reservation Flow (If is the moment of reservation) 12. Create Order Reservation (Business Rule to define moment of reservation) 13. Call Reservation Flow (If is the moment of reservation) 15. Create Provisioning Order 16. Call Provisioning Flow 17. … 10. Negotiate Sales (Contract) 11. Allocate Service Specific Parameter 14. Issue Customer Order Márcio Moreira 3. Análise & Projeto – slide 25 Processo de Desenvolvimento de Software - RUP P: Projeto de serviços 1. Submit Order Siebel Siebel XML To SID XML SubmittedOrder 2. Response Submit Order SID XML To Siebel XML callBackClient Provisioning Order SID XML To P6 XML 3. Execute Order P6 XML To SID XML 4. Retun Resp Execute Order Metasolv’s Products CompletedOrder CompletedOrder 5a. Close Order SID XML To Siebel XML Update CustomerOrder ActivateBilling Oracle ESB (Virtualization, Transformation and Routing) Márcio Moreira SID XML To Kenan XML 5b. Activate Billing Kenan Oracle ESB Oracle BPEL Manager 3. Análise & Projeto – slide 26 (Virtualization, Transformation and Routing) Processo de Desenvolvimento de Software - RUP P: Realização de casos de uso ud Transferir Dinheiro - Realizacoes «service subsystem» Conta-corrente Transferir Dinheiro (from GerenciadorConta) (from Auto Servico) «realize» «realize» «use case realization» Transferir Dinheiro «service subsystem» Autenticação «realize» (from GerenciadorConta) «realize» «service subsystem» Transferidor «realize» «realize» «realize» «service subsystem» Interface (from GerenciadorTransacao) «service subsystem» RoteadorTransacao (from GerenciadorConsole) «service subsystem» Autenticador (from GerenciadorTransacao) (from GerenciadorConsole) Márcio Moreira 3. Análise & Projeto – slide 27 Processo de Desenvolvimento de Software - RUP P: Mapa de navegação sd GED :: Nav egação de páginas Inicio Pagina inicial [busca detalhada ou simples] Pesquisa de documento [escolha da contratante] Mesma página [usuario ADMIN] Criação de documento [usuario ADMIN] Configuracao «automatic» [usuario ADMIN] Edição de documento [usuario ADMIN] [usuario ADMIN] {weight=elemento selecionado na listagem} Resultados da busca {weight=elemento selecionado na listagem} View TIFF Fim Márcio Moreira 3. Análise & Projeto – slide 28 Processo de Desenvolvimento de Software - RUP P: Pacotes de análise cd GerenciadorTransacao Name: GerenciadorTransacao Package: «subsystem» GerenciadorTransacao Version: 1.0 Author: «service subsystem» RoteadorTransacao «realize» TransacaoAutorizada Transacao «realize» «service subsystem» Transferidor Autorizacao «realize» «service subsystem» Sacador Movimentacao «realize» «realize» GerenciadorConta Márcio Moreira 3. Análise & Projeto – slide 29 Processo de Desenvolvimento de Software - RUP P: Modelo de projeto pd Design Model Application Specific GerenciadorConsole «service subsystem» Interface GerenciadorTransacao «service subsystem» DispensadorCedulas «service subsystem» Autenticador «service subsystem» RoteadorTransacao «service subsystem» Transferidor «service subsystem» Sacador Business Specific GerenciadorConta «service subsystem» Autenticação «service subsystem» Conta-corrente Márcio Moreira 3. Análise & Projeto – slide 30 Processo de Desenvolvimento de Software - RUP P: Projeto de realização sd Transferir Dinheiro «service subsystem» «service subsystem» «interface» «interface» «interface» «interface» Autenticador Interface Transacao TransacaoAutorizada Autorizacao Movimentacao :Correntista insereCartao escolheTransferencia digitaValores informaSenha resultado:= Submete(conta, transferencia, senha) ok:= autentica(conta, senha) [ok]: submete(contaDestino,data,v alor,contaOrigem,tipo) ok:= debito(documento,historico,valor,data) ok:= credito(documento,historico,valor,data) Márcio Moreira 3. Análise & Projeto – slide 31 Processo de Desenvolvimento de Software - RUP P: Projeto de componentes Márcio Moreira 3. Análise & Projeto – slide 32 Processo de Desenvolvimento de Software - RUP Modelos de: casos de uso x análise x projeto Modelo de Caso de Uso Modelo de Análise Modelo de Projeto Descrito na linguagem do cliente Usa diagramas de análise (modelo lógico) Usa diagramas de projeto (modelo físico) Visão externa do sistema Visão interna estrutural do sistema Visão interna comportamental do sistema Estruturado pelos casos de uso (1 página) Estruturado por sub-sistemas, pacotes e classes (interface, controle e persistência) genéricas do projeto (poucas camadas) Estruturado por componentes e dependente da linguagem de implementação (várias camadas) Contrato entre o cliente e o desenvolvedor (escopo) Usado pelos analistas para entender como o sistema deve ser estruturado Contrato entre analistas e desenvolvedores do comportamento do sistema Pode conter redundâncias, inconsistências, etc. Não deve conter redundâncias, inconsistências, etc. Deve ser objetivo, claro e limpo Captura funcionalidades do sistema, inclusive arquiteturais Esboça como realizar as funcionalidades Funciona como primeiro corte do projeto Detalha a realização das funções do sistema até o nível necessário para desenvolve-las Define os casos de uso que integrarão o Modelo de Análise Define as realizações dos casos de uso e as necessidades de projeto Define as realizações do Modelo de Análise Raramente modificado Muda pouco no ciclo de vida do projeto Muda bastante e deve ser atualizado Márcio Moreira 3. Análise & Projeto – slide 33 Processo de Desenvolvimento de Software - RUP Do negócio ao software Negócio Direcionador Diagramas de Comportamentais Comportamento Modelagem de Negócio & Requisitos Sistema Software Análise & Arquitetura Design (Projeto) Direcionador Diagramas de Estruturais Informações Identificar Necessidades Márcio Moreira 3. Análise & Projeto – slide 34 Modelar Solução Validar Solução Processo de Desenvolvimento de Software - RUP Persistência Controle Control DataBase Model Apresentação View Exercício 2: Contexto Considerando o mesmo projeto do exercício 1 e mais: A empresa adquiriu o Siebel, um software pronto, de CRM para ser utilizado no projeto, com base nas seguintes ponderações: O Siebel é um dos mais utilizados na indústria que a empresa está inserida O Siebel é compatível com o eTOM e foi desenvolvido na arquitetura MVC (Model View Control ou Persistência, Controle e Apresentação) que facilita a integração via SOA Para atender as funcionalidades específicas da empresa, serão feitas pequenas customizações no Siebel, priorizando: As customizações devem ficar restritas à camada de Apresentação Somente serão permitidas customizações na camada de Controle e de Persistência com autorização dos executivos e da Oracle (fabricante) Você faz parte de uma equipe constituída para implementar o Siebel e: Existe uma outra equipe que cuida de arquitetura e da integração via SOA e outra que cuida de processos de negócio Todas as integrações do Siebel com legados e outros softwares são via SOA Todas as solicitações da área de negócio são alinhadas à processo Márcio Moreira 3. Análise & Projeto – slide 35 Processo de Desenvolvimento de Software - RUP Exercício 2: Questões 1. Que Atividades e Tarefas de Requisitos e Análise & Design (Projeto) do RUP vocês recomendam que sejam utilizadas neste caso? 2. Justifique porque vocês incluíram ou excluíram cada Atividade e Tarefa. 3. Considerando somente as Atividades e Tarefas selecionadas, na construção de quais artefatos o “as-is” de processos poderia ajudar e porque? 4. A consultoria resolveu fazer o Design (projeto técnico) junto com a Implementação. O que vocês acham disto? Quais as possíveis conseqüências? Márcio Moreira 3. Análise & Projeto – slide 36 Processo de Desenvolvimento de Software - RUP Referências Sigla Referência BOO98 G. Booch, J. Rumbaugh e I. Jacobson, 1998. UML User Guide. Addison-Wesley Longman. DEM89 DeMARCO, Tom. Análise estruturada e especificação de sistemas. Rio de Janeiro: Campus, 1989. JAC98 Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. 1998. Addison Wesley Longman. KRO03 Per Kroll e Philippe Kruchten 2003. The Rational Unified Process Made Easy, A Practitioners Guide to the RUP. Addison Wesley Longman. KRU95 Philippe Kruchten 1995, "The 4+1 view model of architecture," IEEE Software. 12(6), 1995. KRU98 P. Kruchten; The Rational Unified Process: An Introduction, Object Technology Series, Addison-Wesley, 1998. MAR05 Márcio Moreira. Resumo do livro Unified Process. Márcio. Uberlândia (MG). 2005. MAR06 Márcio Moreira. Engenharia de Software - RUP . Uniube - Universidade de Uberaba - Uberlândia (MG). 2006. MCP91 MCMENAMIN, Stephen & PALMER, John. Análise essencial de sistemas. São Paulo : McGraw-Hill, 1991. PRE95 PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995. RUP08 IBM Rational. RUP – Rational Unified Process – 7.5 – For Large and Small Projects. 2008. IBM Rational. SUM07 Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007. YOU92 YOURDON, Edward. Análise estruturada moderna. Rio de Janeiro: Campus, 1992. Márcio Moreira 3. Análise & Projeto – slide 37 Processo de Desenvolvimento de Software - RUP