© - Todos os direiros reservados Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento
© - Todos os direiros reservados Agenda A Quatro O Projecto Métodos e Processos
© - Todos os direiros reservados Fundada em 1989 Escritórios : Porto, Lisboa, Madrid Volume Vendas 2000 : 2,6 milhões contos Recursos Humanos : 180 colaboradores
© - Todos os direiros reservados Clientes Lusomudo Lactogal Mitsubishi Trucks Mota e Companhia Creditus Indasa Tintas Robbialac Intraplas Cartier (Espanha)...
© - Todos os direiros reservados Reconhecimentos
© - Todos os direiros reservados O Projecto
© - Todos os direiros reservados Projecto J2EE Application Server Base Tecnológica Componentes de uso comum GL OE AP & AR INV CC HR
© - Todos os direiros reservados Enquadramento Tecnologia Disponível –limites –“buy or build” Prazos e Custos –objectivos e orçamento Recursos Humanos –tempo de Formação
© - Todos os direiros reservados Arquitectura
© - Todos os direiros reservados J2EE : Java 2 Enterprise Edition EJBsObject Model JDBCDataBase JNDINaming & Directory Services RMI-IOPTransport JMSMessaging JTATransações Suporte na Indústria SW SUN, IBM, Oracle, Compaq, HP Plataformas AIX, Linux, W2000, NT, AS/400, Mac, OS/390 Solaris,.... Suporte na Indústria SW SUN, IBM, Oracle, Compaq, HP Plataformas AIX, Linux, W2000, NT, AS/400, Mac, OS/390 Solaris,....
© - Todos os direiros reservados J2EE
© - Todos os direiros reservados Enterprise Java Beans
© - Todos os direiros reservados Métodos e Processos
© - Todos os direiros reservados Software Architecture “As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system -- the software architecture -- presents a new set of design problems.”
© - Todos os direiros reservados Processo de Desenvolvimento Necessidade Contexto Arquitectura Sistema Solução Conhecimento do Domínio Experiência Componentes
© - Todos os direiros reservados Tecnologia Domínio Equipa de trabalho
© - Todos os direiros reservados Funções Arquitectura e Pgm Model Captura de Requisitos Revisão de Requisitos Desenvolvimento –Business Objects –Gui Testes qualidade e conformidade
© - Todos os direiros reservados Equipa de Trabalho Grupo de Arquitectura e Tecnologia Desenvolvimento Business Requirements
© - Todos os direiros reservados Levantamento de Requisitos
© - Todos os direiros reservados Objectivo O quê Como Requisito funcional Detalhe de implementação
© - Todos os direiros reservados Exemplo Valor monetário –representar uma quantidade monetária expressa em duas moedas –permitir operações de adição subtração
© - Todos os direiros reservados Metodologia Process driven –re-utilização Use Case driven –descrição clara da utilização prevista
© - Todos os direiros reservados Componentes Java Business Components
© - Todos os direiros reservados Decomposição de Processos Processo 1 Tarefa A Tarefa B Cenário A1 Cenário A2 Cenário B1 Cenário B2
© - Todos os direiros reservados Use Cases Tarefa A Tarefa B
© - Todos os direiros reservados eXtreme Programming Múltiplas Iterações Desenho Simples Testes Unitários XP advocates keeping designs as simple as possible
© - Todos os direiros reservados Vantagens Prioridades –Versão 1 –Versão 2 Protótipos Diferir implementação Métrica simplificada
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados
© - Todos os direiros reservados Analysis & Design Patterns “A pattern is an idea that has been useful in one practical context and will probably be useful in others” Martin Fowler
© - Todos os direiros reservados Experiência Não - tangível Recurso a soluções testadas –obtidas da prática Solução adequada à dimensão do problema –relação custo/resultado Um modelo simples é sempre melhor que um complexo, se ambos resolvem o problema no contexto pretendido
© - Todos os direiros reservados Experiência Re-utilização Conhecimento Vocabulário Qualidade Normalização Produtividade
© - Todos os direiros reservados Patterns Os Patterns representam experiência, que pode ser transmitida/ensinada Podem ser definidos como –“best practices” –“lições aprendidas” Desenvolvidos a partir de experiências reais
© - Todos os direiros reservados Re-utilizar BlackBox WhiteBox
© - Todos os direiros reservados Re-use Design Comportamento Aplicação
© - Todos os direiros reservados Exemplos Singleton :Logging AbstractFactory :Users Facade : Order Command : Batch Proxy : Gui Policy : CreditCheck
© - Todos os direiros reservados Patterns: Geração de Código Geração de acordo com o modelo do Pattern Modelos simplificados Definido durante a fase de Analise/Desenho ClasseConcreta ClasseAbstracta PatternClass FrameWork
© - Todos os direiros reservados Abstracção Uma abstracção desenvolve-se generalizando exemplos concretos O número de casos concretos permite aumentar a capacidade da extensão e aplicabilidade de uma abstracção
© - Todos os direiros reservados Abstracção OO –Herança comportamento concreto comum –Interface comportamento abtracto comum
© - Todos os direiros reservados Exemplos : Herança Descrições multilingua Adição dinâmica de propriedades Workflow / State Machine
© - Todos os direiros reservados Exemplo : interface Adicionável –Valor monetário –Quantidade (classificada)
© - Todos os direiros reservados Desenho Pattern Diagram Class Diagrams
© - Todos os direiros reservados Programming Model Documentação actualizada Exemplos claros Erros típicos Politicas –Logging,Exception handling,etc Desenhado para re- utilização futura
© - Todos os direiros reservados Logging & Exception Exportar os comentários Registo de situações inesperadas Debugging Tratamento coerente das excepções
© - Todos os direiros reservados Testes Verificação automática –testes repetitivos automatizados Verificação funcional –use cases Performance –volume de informação adequada
© - Todos os direiros reservados Ferramentas Requirements :Tool interno Model:Rational Rose Code Generation :Tool Interno + Rose IDE:JBuilder App server:OrionServer + IBM WebSphere Controlo Versões :MS Source Safe
© - Todos os direiros reservados Software Architecture “As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system -- the software architecture -- presents a new set of design problems.”
© - Todos os direiros reservados Perguntas João Macedo Cunha Director Desenvolvimento ?