2. Objetivos
Objetivos Gerais
• Explorar a reutilização de software
• Possível estudo de caso: domínio Segurança e Medicina
do Trabalho
• Modelagem de um framework reutilizável
Objetivos Específicos
• Demonstrar conceitos de DBC
• Apresentar os conceitos de framework e reutilização de
software
4. Reutilização
• O que é?
• Importância da reutilização
• Sub-área da Engenharia de Software
• Desenvolvimento para reutilização
• Desenvolvimento com reutilização
5. Componentes de Software
• Pedaços pré-definidos de software
• Pacote coerente de artefatos
• Tamanho de um componente
• Separação entre a definição do componente e sua
implementação
• Modelos de componentes: CORBA, EJB, CCM e EJB 3
6. Desenvolvimento Baseado em Componentes
• Busca a geração de elementos auto-contidos
• Objetivos
• Vantagens
• Núcleo comum contendo pedaços de funcionalidades, e aberto
para desenvolvimento ou composição de novos componentes
• Desenvolvimento com componentes X desenvolvimento
baseado em componentes
• Arquitetura de aplicação e arquitetura técnica
7. Componentes de uma Arquitetura em Camadas
Componentes de uma arquitetura em camadas (BLOIS, 2006)
8. DOO x DBC
Baseado em Componentes Orientado a Objeto
Trabalha em um alto nível de abstração para a maior
produtividade do desenvolvedor
Trabalha em um nível de detalhe muito baixo
Divisão dos desenvolvedores em desenvolvedores de
aplicação e experts através do modelo
Fornecedor/Consumidor.
O encapsulamento mascara a complexidade enquanto
API’s bem definidas facilitam o acesso a
funcionalidade.
Requer intensivo treinamento e experiência antes que
o desenvolvedor se torne produtivo.
Apresenta um risco pequeno devido a natureza
encapsulada dos componentes. A Herança é contida
dentro do encapsulamento dos componentes
eliminando as dependências.
Desenvolvimento de alto risco devido a complexidade e
as dependências.
Conta com padrões largamente suportados, garantindo
a interoperabilidade dos componentes.
Interoperabilidade entre diferentes objetos é difícil.
Usa ambientes de desenvolvimento altamente
proprietários e requer desenvolvimento proprietário ao
nível de API.
Larga indústria de suporte oferecendo ferramentas e
bibliotecas padrão baseadas em componentes.
Indústria de suporte limitada.
Fonte: http://www.guich.com/pf/capitulo3.html
9. Métodos de DBC - Catalysis
• Modelo de domínio baseado em tipos, objetos e ações
• Ênfases e articulações
• Análise de negócio e desenvolvimento através da UML
• Utiliza casos de uso, diagrama de estado e snapshots para
especificação de requisitos
• Componentes individuais são refinados a nível de
classes, interface ou componentes pré-existentes
10. Exemplo de Diagrama de Estado e Snapshot
Diagrama de estados com pré e pós-condições (MIRANDA e LAGES, 2003)
Action agendarCurso(cursoReq : Curso, iniciaReq : Data)
pré: A partir do fato que existe um instrutor qualificado para este
curso que está livre nesta data, durante toda a duração do curso.
post: Uma nova sessão confirmada está criada, com curso =
cursoReq, dataInicio = iniciaReq, e
dataFinal - dataInicio = cursoReq.duracao
Exemplo de Snapshots (MIRANDA e LAGES, 2003)
11. Métodos de DBC – UML Components
• Etapas:
Requisitos, Especificação, Provisão, Montagem, Teste e
Utilização
• Orienta por quantidades mínimas de documentos
• Modelo Conceitual de negócio
• Modelo de Casos de Uso
• Focado em componentes do lado servidor
• Componentes de Sistema e componentes de negócio
12. Organização em Pacotes e Fases do UML Components
Organização dos artefatos em pacotes
(CHEESMAN e DANIELS, 2000)
Atividades do UML Components (CHEESMAN e DANIELS, 2000)
13. Frameworks
• Conceito
• Ditam arquitetura da aplicação
• Funcionalidade abstrata
• Classificação de acordo com a forma de
reutilização
• Classificação em relação ao escopo
14. Considerações Finais
Conclusões Gerais
• Conhecer os conceitos de reutilização, DBC, frameworks
Propostas de Trabalhos Futuros
• Especificar conceitos sobre Análise e Engenharia de Domínio
• Conhecer uma ferramenta de auxílio na modelagem de software reutilizável
• Abordagem dos Padrões de Projeto (Design Patterns)
• Modelar um framework com uma parte do domínio de segurança e
medicina do trabalho
15. “Pode desistir se quiser, mas lembre-se, desistir
é um hábito difícil de largar.”
(John Schneider, atuando como Jonathan Kent - Smallville)
Obrigado!!!!