© - todos os direiros reservados engenharia de software “a nossa visão” joão macedo cunha...
Post on 21-Apr-2015
106 Views
Preview:
TRANSCRIPT
© - Todos os direiros reservadoswww.quatrosi.pt
Engenharia de Software“A nossa visão”
João Macedo CunhaDirector Desenvolvimento
jcunha@mail.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
Agenda
• A Quatro• O Projecto• Métodos e Processos
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
+ 600 Clientes
LusomudoLactogalMitsubishi TrucksMota e CompanhiaCreditusIndasaTintas RobbialacIntraplasCartier (Espanha)...
© - Todos os direiros reservadoswww.quatrosi.pt
Reconhecimentos
© - Todos os direiros reservadoswww.quatrosi.pt
O Projecto
© - Todos os direiros reservadoswww.quatrosi.pt
Projecto
J2EE Application Server
Base Tecnológica
Componentes de uso comum
GL
OE AP & AR
INV
CC
HR
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Arquitectura
© - 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, ....
© - Todos os direiros reservadoswww.quatrosi.pt
J2EE
© - Todos os direiros reservadoswww.quatrosi.pt
Enterprise Java Beans
www.javasoft.com/ejb
© - Todos os direiros reservadoswww.quatrosi.pt
Métodos e Processos
© - 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.”
© - Todos os direiros reservadoswww.quatrosi.pt
Processo de Desenvolvimento
Necessidade
Contexto
Arquitectura
Sistema
Solução
Conhecimentodo Domínio
Experiência
Componentes
© - Todos os direiros reservadoswww.quatrosi.pt
Tecn
ologia
Tecn
ologia Dom
ínio
Domínio
Equipa de trabalho
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Equipa de Trabalho
Grupo de Arquitectura e TecnologiaGrupo de Arquitectura e Tecnologia
DesenvolvimentoDesenvolvimento
Business RequirementsBusiness Requirements
© - Todos os direiros reservadoswww.quatrosi.pt
Levantamento de Requisitos
© - Todos os direiros reservadoswww.quatrosi.pt
Objectivo
O quêO quê
ComoComo
Requisitofuncional
Detalhe deimplementação
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Metodologia
• Process driven– re-utilização
• Use Case driven– descrição clara da utilização prevista
© - Todos os direiros reservadoswww.quatrosi.pt
Componentes
Java Business Components
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Use Cases
Use Case 1
Use Case 2
Tarefa A
Tarefa B
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Vantagens
• Prioridades– Versão 1– Versão 2
• Protótipos• Diferir implementação• Métrica simplificada
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.quatrosi.pt
© - Todos os direiros reservadoswww.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
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Experiência
• Re-utilização• Conhecimento• Vocabulário• Qualidade• Normalização• Produtividade
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Re-utilizar
BlackBox
WhiteBox
© - Todos os direiros reservadoswww.quatrosi.pt
Re-use
Design
Comportamento
Aplicação
© - Todos os direiros reservadoswww.quatrosi.pt
Exemplos
• Singleton : Logging• AbstractFactory : Users• Facade : Order• Command : Batch• Proxy : Gui• Policy :
CreditCheck
© - 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
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Abstracção
• OO– Herança
• comportamento concreto comum
– Interface• comportamento abtracto comum
© - Todos os direiros reservadoswww.quatrosi.pt
Exemplos : Herança
• Descrições multilingua• Adição dinâmica de propriedades• Workflow / State Machine
© - Todos os direiros reservadoswww.quatrosi.pt
Exemplo : interface
• Adicionável– Valor monetário– Quantidade (classificada)
QuantidadeQualificadaUnidadeMedida
ValorMonetarioMoeda
Adicionavel
add()
<<Interface>>
© - Todos os direiros reservadoswww.quatrosi.pt
Desenho
Pattern Diagram
Class Diagrams
© - 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
© - Todos os direiros reservadoswww.quatrosi.pt
Logging & Exception
• Exportar os comentários• Registo de situações inesperadas• Debugging • Tratamento coerente das
excepções
© - 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
© - 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
© - 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.”
© - Todos os direiros reservadoswww.quatrosi.pt
Perguntas
João Macedo CunhaDirector Desenvolvimento
jcunha@mail.quatrosi.pt
?
top related