© - todos os direiros reservados engenharia de software “a nossa visão” joão macedo cunha...

53
© - Todos os direiros res www.quatrosi.pt Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento [email protected]

Upload: internet

Post on 21-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Engenharia de Software“A nossa visão”

João Macedo CunhaDirector Desenvolvimento

[email protected]

Page 2: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Agenda

• A Quatro• O Projecto• Métodos e Processos

Page 3: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

• Fundada em 1989• Escritórios : Porto , Lisboa ,

Madrid• Volume Vendas 2000 : 2,6

milhões contos• Recursos Humanos : 180

colaboradores

www.quatrosi.ptwww.quatrosi.pt

Page 4: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

+ 600 Clientes

LusomudoLactogalMitsubishi TrucksMota e CompanhiaCreditusIndasaTintas RobbialacIntraplasCartier (Espanha)...

Page 5: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Reconhecimentos

Page 6: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

O Projecto

Page 7: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Projecto

J2EE Application Server

Base Tecnológica

Componentes de uso comum

GL

OE AP & AR

INV

CC

HR

Page 8: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Enquadramento

• Tecnologia Disponível– limites– “buy or build”

• Prazos e Custos– objectivos e orçamento

• Recursos Humanos– tempo de Formação

Page 9: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Arquitectura

Page 10: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

J2EE : Java 2 Enterprise Edition

• EJBs Object Model• JDBC DataBase• JNDI Naming & Directory Services• RMI-IOP Transport• JMS Messaging• JTA Transações

Suporte na Indústria SWSUN , IBM , Oracle , Compaq , HP ......

PlataformasAIX , Linux , W2000, NT, AS/400 , Mac , OS/390Solaris, ....

Suporte na Indústria SWSUN , IBM , Oracle , Compaq , HP ......

PlataformasAIX , Linux , W2000, NT, AS/400 , Mac , OS/390Solaris, ....

Page 11: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

J2EE

Page 12: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Enterprise Java Beans

www.javasoft.com/ejb

Page 13: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Métodos e Processos

Page 14: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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.”

Page 15: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Processo de Desenvolvimento

Necessidade

Contexto

Arquitectura

Sistema

Solução

Conhecimentodo Domínio

Experiência

Componentes

Page 16: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Tecn

ologia

Tecn

ologia Dom

ínio

Domínio

Equipa de trabalho

Page 17: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Funções

• Arquitectura e Pgm Model• Captura de Requisitos• Revisão de Requisitos• Desenvolvimento

– Business Objects– Gui

• Testes qualidade e conformidade

Page 18: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Equipa de Trabalho

Grupo de Arquitectura e TecnologiaGrupo de Arquitectura e Tecnologia

DesenvolvimentoDesenvolvimento

Business RequirementsBusiness Requirements

Page 19: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Levantamento de Requisitos

Page 20: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Objectivo

O quêO quê

ComoComo

Requisitofuncional

Detalhe deimplementação

Page 21: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Exemplo

• Valor monetário– representar uma quantidade

monetária expressa em duas moedas

– permitir operações de• adição• subtração

Page 22: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Metodologia

• Process driven– re-utilização

• Use Case driven– descrição clara da utilização prevista

Page 23: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Componentes

Java Business Components

Page 24: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Decomposição de Processos

Processo 1

Tarefa A

Tarefa B

Cenário A1

Cenário A2

Cenário B1

Cenário B2

Page 25: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Use Cases

Use Case 1

Use Case 2

Tarefa A

Tarefa B

Page 26: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

eXtreme Programming

Múltiplas Iterações

Desenho Simples

Testes Unitários

XP advocates keeping designs as simple as possible

Page 27: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Vantagens

• Prioridades– Versão 1– Versão 2

• Protótipos• Diferir implementação• Métrica simplificada

Page 28: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 29: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 30: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 31: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 32: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 33: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 34: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Page 35: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

Page 36: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

Page 37: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Experiência

• Re-utilização• Conhecimento• Vocabulário• Qualidade• Normalização• Produtividade

Page 38: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

Page 39: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Re-utilizar

BlackBox

WhiteBox

Page 40: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Re-use

Design

Comportamento

Aplicação

Page 41: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Exemplos

• Singleton : Logging• AbstractFactory : Users• Facade : Order• Command : Batch• Proxy : Gui• Policy :

CreditCheck

Page 42: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

ClasseAbstractaPatternClass

FrameWork

Page 43: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

Page 44: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Abstracção

• OO– Herança

• comportamento concreto comum

– Interface• comportamento abtracto comum

Page 45: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Exemplos : Herança

• Descrições multilingua• Adição dinâmica de propriedades• Workflow / State Machine

Page 46: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Exemplo : interface

• Adicionável– Valor monetário– Quantidade (classificada)

QuantidadeQualificadaUnidadeMedida

ValorMonetarioMoeda

Adicionavel

add()

<<Interface>>

Page 47: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Desenho

Pattern Diagram

Class Diagrams

Page 48: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Programming Model

• Documentação actualizada• Exemplos claros• Erros típicos• Politicas

– Logging,Exception handling,etc

Desenhado para re-utilização futura

Page 49: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Logging & Exception

• Exportar os comentários• Registo de situações inesperadas• Debugging • Tratamento coerente das

excepções

Page 50: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Testes

• Verificação automática– testes repetitivos automatizados

• Verificação funcional– use cases

• Performance– volume de informação adequada

Page 51: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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

Page 52: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

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.”

Page 53: © - Todos os direiros reservados  Engenharia de Software “A nossa visão” João Macedo Cunha Director Desenvolvimento jcunha@mail.quatrosi.pt

© - Todos os direiros reservadoswww.quatrosi.pt

Perguntas

João Macedo CunhaDirector Desenvolvimento

[email protected]

?