DESENVOLVIMENTO BASEADO EM COMPONENTES
Grupo: DBC
Dávisson Húdson (5º - SI)João Marques (3º - SI)Nelcir Júnior (1º - SI)
Orientador: Irineu Lima
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
Referencial Teórico
Programação Estruturada• Estrutura e características
Programação Orientada a Objetos• Características• Classes• Objetos• Métodos• Encapsulamento• Herança• Polimorfismo
Reutilização
• O que é?
• Importância da reutilização
• Sub-área da Engenharia de Software
• Desenvolvimento para reutilização
• Desenvolvimento com reutilização
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
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
Componentes de uma Arquitetura em Camadas
Componentes de uma arquitetura em camadas (BLOIS, 2006)
DOO x DBC
Baseado em Componentes Orientado a ObjetoTrabalha 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
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
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)
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
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)
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
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
“Pode desistir se quiser, mas lembre-se, desistir é um hábito difícil de largar.”
(John Schneider, atuando como Jonathan Kent - Smallville)
Obrigado!!!!
Top Related