More Related Content Similar to Desenhando Componentes de Software com UML (20) More from Rildo (@rildosan) Santos (20) Desenhando Componentes de Software com UML1. Desenhado Componente de Software com UML Rildo F Santos
rildosan@uol.com.br
rildo.santos@companyweb.com.br
Twitter: http://twitter.com/rildosan
Blog: http://rildosan.blogspot.com/
Desenhando Componentes de Software com UML®
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) Arquitetura de Software
Todos os direitos reservados e protegidos © 2006 e 2007
1
2. Desenhado Componente de Software com UML Quem sou
Rildo F Santos
Coach e Consultor de Gestão de Negócios, Inovação e Tecnologia para a Gestão 2.0, a Gestão Ágil.
A Gestão Ágil ajuda as empresas a responder mais rápido as demandas de negócio e mudanças. A Gestão 2.0, abrange
Planejamento Estratégico, Gestão por Processos Ágeis, Gestão de Projetos Ágeis, Tecnologia da Informação (Métodos
Ágeis), Inovação e Liderança.
Minha Experiência:
Tenho mais de 10.000 horas de experiência em Gestão de Negócios, Gestão de Inovação, Governança e Engenharia de
Software. Formado em Administração de Empresas, Pós-Graduado em Didática do Ensino Superior e Mestre em
Engenharia de Software pela Universidade Mackenzie.
Fui instrutor de Tecnologia de Orientação a Objetos, UML e Linguagem Java na Sun Microsystems e na IBM.
Conheço Métodos Ágeis (SCRUM, Lead, FDD e XP), Arquitetura de Software, SOA (Arquitetura Orientado a Serviço),
RUP/UP - Processo Unificado, Business Intelligence, Gestão de Risco de TI entre outras tecnologias.
Sou professor de curso de MBA da Fiap e fui professor de pós-graduação da Fasp e IBTA.
Possuo fortes conhecimentos de Gestão de Negócio (Inteligência de Negócio, Gestão por Processo, Inovação, Gestão de
Projetos e GRC - Governance, Risk and Compliance), SOX, Basel II e PCI;
E experiência na implementação de Governança de TI e Gerenciamento de Serviços de TI. Conhecimento dos principais
frameworks e padrões: ITIL, Cobit, ISO 27001 e ISO 15999;
Desempenhei diversos papéis como: Estrategista de Negócio, Gerente de Negócio, Gerente de Projeto, Arquiteto de
Software, Projetista de Software e Analista de Sistema em diversos segmentos: Financeiro, Telecomunicações, Seguro,
Saúde, Comunicação, Segurança Pública, Fazenda, Tecnologia, Varejo, Distribuição, Energia e Petróleo e Gás.
Possuo as certificações: CSM - Certified SCRUM Master, CSPO - Certified SCRUM Product Owner , SUN Java Certified
Instrutor, ITIL Foundation e sou Instrutor Oficial de Cobit Foundation e Cobit Games;
Sou membro do IIBA-International Institute of Business Analysis (Canada)
Onde estou:
Twitter: http://twitter.com/rildosan
Blog: http://rildosan.blogspot.com/
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 2
3. Desenhado Componente de Software com UML Sobre o Apresentação
Esta apresentação discute e fornece informações sobre o desenho de componentes de
software utilizando a UML.
É abordado as principais técnicas, ferramentas e melhores práticas para desenho de
componentes de software.
Ela é recomendada para quem atua como Arquiteto de Software e demais pessoas ligadas
ao processo de desenvolvimento de software.
Para facilitar o entendimento do assunto, ela foi dividida em duas partes:
A primeira parte discute sobre componentes, abordagem CBD (Component Based
Delevopment – Desenvolvimento baseado em componentes), e reúso de software.
A segunda parte demonstra como desenhar os componentes utilizando a UML (versão 1.4)
- diagramas de componentes e de deployment.
Também é apresentado um estudo de caso para monstrar como identificar os componentes
de software.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 3
4. Desenhado Componente de Software com UML Primeira Parte
- Introdução aos Componentes
- O que é Componentização
- Reúso de Software
- RAS (Reusable Asset Specification)
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 4
5. Desenhado Componente de Software com UML Componentes
Introdução
Apresentar e discutir a Componentes de Software , Reúso de Software e o padrão RAS (mantido pela
OMG) .
Versão 7.0
Todos os direitos reservados e protegidos © 2006 e 2007 5
Rildo F Santos (rildosan@uol.com.br)
6. Desenhado Componente de Software com UML Componentes
Componentes no Mundo Real
O segmento de mercado vertical, já faz bom tempo que trabalhar com a
montagem de peças e partes é realidade, a industrias como: de
Automóvel, Construção Cível e Eletro-Eletrônica, são exemplos de como
produtos podem ser construídos (montados) e distribuídos.
E a industria de software....?
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
7. Desenhado Componente de Software com UML Componentes
E a industria de software....?
CBD (Desenvolvimento Baseado em Componentes)
representa a industrialização do desenvolvimento de
software.
Como em qualquer processo de manufatura que envolve
pontos que podem ser baseados em blocos pré-construídos,
aí temos a redução do tempo da produção, redução do custo
e aperfeiçoamento da qualidade.
Este principio aplica-se também ao desenvolvimento de
software, permitindo vantagem competitiva, no processo de
desenvolvimento, custo de produção e gerenciamento de
mudanças
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
8. Desenhado Componente de Software com UML Componentes
Evolução Modelo de Componentes:
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
9. Desenhado Componente de Software com UML Componentes
CBD
Definição de Componentes
Componente é uma unidade funcional e coesa, que pode ser
distribuída, tem interfaces bem definidas, pode ser composto com
outros componentes para prover e usar serviços é independente de
linguagem, sistema operacional e sistema.
Componente é parte física e substituível de um sistema que satisfaz
os requisitos de um conjunto de interfaces e fornece a sua
implementação;
O que
são componentes?
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
10. Desenhado Componente de Software com UML Componentes
Elementos de um componentes:
Tem uma especificação
public class Item {
public Item(){
}
...
}
Tem uma
implementação
Componente
Pode ser distribuído
(“deployment”)
Aderência a
padrões
Pode ser empacotados
dentro de módulos
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
11. Desenhado Componente de Software com UML Componentes
CBD. UML Components. Elementos de um componentes:
Especificação:
Componente Um componente requer uma descrição abstrata dos
serviços que ele oferece servindo como um contrato
entre o cliente e o fornecedor do serviço.
A especificação, além da relação das operações
disponíveis, orienta o cliente a como interagir com o
componente e informa as restrições dos estados que
Tem uma especificação componente pode assumir
Possibilidade de implementações:
Componente Um componente deve suportar uma ou mais
implementações, as quais devem estar em
conformidade com a especificação.
public class Item {
A especificação deve ser flexível para que o
public Item(){ implementador possa escolher a linguagem adequada,
}
...
configuração adequada outros recursos que julgar
} necessário.
Tem uma implementação
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
12. Desenhado Componente de Software com UML Componentes
CBD. UML Components. Elementos de um componentes:
Padrão de Componente:
Componente Um componente deve aderir a um modelo de
componentes. Os modelos de componentes suportam um
conjunto de serviços.
Os principais modelos de componentes são: Microsoft
COM+/DCOM, (OMG Corba CCM) e Sun EJB.
Aderência a padrões
Empacotamento:
Componente Os componentes podem ser agrupados em unidades
funcionais conhecidas como pacotes (package),
permitindo que o conjunto de serviços oferecidos por eles
possa ser substituído por outro componente similar e que
possa ser distribuído e instalado.
Distribuído (Deployment):
Pode ser empacotados
dentro de módulos A instalação dos componentes.
Pode ser distribuído
(“deployment”)
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
13. Desenhado Componente de Software com UML Componentes
Principais Padrões da Industria de Componentes
Encapsulamento
CCM Corba Component Model
Coesão
Polimorfismo
Responsabilidade Componente EJB Enterprise JavaBeans
JavaBeans
Contratos
Microsoft Components
Abstração
Activex
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
14. Desenhado Componente de Software com UML Componentes
Definição de Componentes
Benefícios:
Quais são os benefícios que são proporcionados pelo CBD ?
Temos dois tipos: Técnicos e de Negócios
Técnico Negócio
• Melhor gerenciamento da complexidade. • Melhor qualidade do produto.
(Decomposição funcional), a busca pela
• Reduz Time-to-market.
simplicidade.
• Melhor alocação de recursos humanos
• Funcionalidade complexa que não é regra de
negócio pode ser concentrada em um • Pronto para responder a mudanças
“Framework”
• Redução de custo de desenvolvimento.
• Desenvolvimento e testes em paralelo
• Habilita a capacidade de Reúso
• Baixo acoplamento
• Consistência
• Reúso
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
15. Desenhado Componente de Software com UML Componentes
CBD. Desenvolvimento com simplicidade:
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
16. Desenhado Componente de Software com UML Reúso
Introdução:
Expectativas no desenvolvimento de Software:
Como conseguir alcançar estas expectativas ???
Existem diversas técnicas que podem ser utilizadas
para alcançar tais expectativas, entre elas está o
“Reúso...”
O que é reúso ?
Reúso de software é a prática sistemática de desenvolver
ou atualizar novas aplicações a partir de “ativos de
software” pré-construídos nos quais são identificados
similaridades de requisitos e/ou arquiteturas com o que
está sendo desenvolvido.
Reúso de software portanto, não é apenas adotar os conceitos
do paradigma de OO, mas também, adotar uma estratégia
sistemática para tal.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
17. Desenhado Componente de Software com UML Reúso
Introdução
Como implementar o reúso sistematizado ?
Devemos considerar 3 ações relevantes para a
implementação:
- Planejamento:
Planejamento refere-se à compreensão de como o
reúso pode contribuir para se atingir os objetivos da
organização como um todo;
- Disciplina:
Definição de medidas para mensurar e controlar o
sucesso do reúso e ao estabelecimento de suporte
organizacional, técnico e orçamentário apropriados
- Envolvimento:
Preparação dos trabalhadores envolvidos para
executar o reúso.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
18. Desenhado Componente de Software com UML Reúso
Como nasceu o conceito de reúso ?
História do reúso de software:
Por que reusar software ?
Há 50 anos atrás, não havia software.
Hoje há aproximadamente mais de 100 bilhões de linhas de código em
bibliotecas de funções para todas as áreas especializadas.
“Seu problema” já foi resolvido por alguém antes.
Exercite “seu problema” desde uma pequena rotina até um módulo
inteiro de um sistema.
Reúso: “uma simples idéia”
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
19. Desenhado Componente de Software com UML Reúso
Quais são os artefatos reusáveis ?
Devemos considerar que todos os artefatos que tenha um potencial de
reúso seja classificado como um Ativo Digital.
Ativo:
- Fragmentos de código de - Componentes;
programas; - Projeto e Modelo (framework e
- Documentações; designer patterns);
- Planos, estratégias e regras de - Módulos;
negócios; - Bibliotecas;
- Código Fonte, Código executável; - APIs;
- Objetos executáveis; - Descrições de domínio;
- Especificações; - Arquiteturas de software;
- Requisitos; - Diagramas
- Serviços (SOA) - Etc...
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
20. Desenhado Componente de Software com UML Reúso
Quais são os artefatos reusáveis ?
O que não devemos considerar
Ativo Digital ?
Não devemos considerar coisas como:
- Software integrados, tal como: ERPs
- Legado: Softwares construídos na
“era” Mainframe
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
21. Desenhado Componente de Software com UML Reúso
Classificação das Formas de Reúso:
Quando um artefato é reusado, pode-se classificar esse reúso quanto à
necessidade ou não de haver adaptações para se atender às requisições do
sistema e nos casos em que se façam necessárias essas adaptações, como
elas foram feitas.
. Reúso Caixa Preta (black box reuse) - Quando os ativos são inseridos ao
sistema sem qualquer modificação.
. Reúso Caixa Branca (white box reuse) - Quando há necessidade de
reengenharia, ou seja, quando for necessário a modificação do corpo do ativo
para se obter as propriedades requeridas pelo sistema.
. Reúso Caixa Cinza ou Cinzento (grey box reuse) – Intermediário dos dois
anteriores, quando as alterações são feitas via configuração de parâmetros.
. Reúso Transparente (glass box reuse) – Em situações nas quais não se faz
necessário fazer alterações, mas para descobrir as propriedades do ativo é
preciso olhar dentro dele, pois a descrição disponível não traz informações
adequadas dessas propriedades.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
22. Desenhado Componente de Software com UML Reúso
Estratégia de Implementação de um Ativo de Acordo com sua Forma
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
23. Desenhado Componente de Software com UML Reúso
Implementação de Reúso
A implementação de reúso requer:
· Mudança nos Processos de Desenvolvimento:
Definição e análise de requisitos, projeto de alto nível e teste requerem
mudanças específicas para se levar em conta a disponibilidade dos ativos.
O gerenciamento de projeto também sofre impacto, assim como aspectos de
cronograma, custos e produtividade.
· Adição de Processos de Reúso:
Análise de domínio pode ou não ser usada para
direcionar a identificação de ativos reusáveis. Ativos podem ser menores ou
maiores, incluindo ou não projeto e requisitos. Podem ser produzidos e
mantidos por um grupo específico ou por projeto, antes de serem necessários
ou no momento que forem requisitados pela primeira vez.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
24. Desenhado Componente de Software com UML Reúso
Implementação de Reúso
• Trabalhar fatores humanos:
Criar uma política de incentivos.
Uma ou mais técnicas podem ser usadas, como treinamento, eventos de
conscientização, grupos de discussões e notícias.
Dar prêmios isolados não são suficientes.
· Instalação de repositório:
Definir a política de implantação de repositório.
Como será implementado, quais os processos que serão usados, como
qualidade e gerenciamento de configuração. Pode ser usado uma ferramenta
específica ou um add-on para implementar um sistema de gerenciamento de
configuração.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
25. Desenhado Componente de Software com UML Reúso
Implementação de Reúso
Para administrar de forma eficiente um Repositório, ter procedimentos para:
- Gerenciamento de versões: um repositório pode conter várias versões de
um mesmo ativo e, sendo assim, é recomendável que haja algum mecanismo
para controlar essas versões e estabelecer o relacionamento entre elas.
- Gerência de Controle e Mudanças: é recomendável que sejam providas
algumas funcionalidades para se fazer o gerenciamento de modificações dos
ativos num repositório. Essas funcionalidades incluem procedimentos para
solicitação de alterações, discussões e permissão para as mesmas.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
26. Desenhado Componente de Software com UML Reúso
Benefícios de se adotar a prática do reúso
• Simplificação do desenvolvimento de software;
• *Redução de custos, prazos de entrega e esforço para se desenvolver e
A adoção da cultura de reúso pode trazer uma série de benefícios:
manter o software;
• Aumento de produtividade;
• Desenvolvimento de software de maior qualidade, e portanto, de maior
confiabilidade;
• Redução de erros;
• Conhecimentos sobre sistemas e como construí-los podem ser
compartilhados;
• Facilidade em aprender sobre arquiteturas de sistemas
• Compartilhamento de conhecimentos adquiridos com a experiência, ou
seja, compartilhamento das melhores práticas.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
27. Desenhado Componente de Software com UML Reúso
Benefícios de se adotar a prática do reúso. Exemplo:
Redução de Custos:
*Quando um componente é desenvolvido aplicando-se técnicas de reúso, este precisa
ser usado de três a cinco vezes em aplicação para recuperar seu investimento inicial.
Componentes podem custar de 1.5 a 3.0 vezes mais para criar um componente com
suporte a reúso, do que os componentes sem características de reúso.
Componentes reusáveis têm custo de apenas um quarto (1/4) do valor de
desenvolvimento de novo componente.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
28. Desenhado Componente de Software com UML Reúso
Cenário desenvolvimento focado em Projeto
Ciclo de Desenvolvimento focado Domínio do Problema
Projeto 1 Projeto 2
Requisitos Requisitos
Análise Análise
Projeto Projeto
Construção Construção
Aplicação Reúso na maioria das Aplicação
vezes de programas ou
partes do código
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 28
29. Desenhado Componente de Software com UML Reúso
Cenário desenvolvimento focado em Reúso
Ciclo de Desenvolvimento focado em Reúso de Componentes
Requisitos
Novos Projetos
Análise
Projeto
Planejamento
Construção e preparação
para reúso
Seleção
+ Produto
Modificação
Registro
Repositório
29
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
30. Desenhado Componente de Software com UML Reúso
As camada de Domínios das classes:
Domínio da Aplicação
Domínio do Negócio
Domínio da Arquitetura
Domínio Base
Uma aplicação que segue a orientação a objetos conterá classes de quatro
principais domínios:
– O domínio da Aplicação;
– Domínio de Negócio;
– Domínio da Arquitetura e
– Domínio Base.
Cada um destes domínios tem inúmeros grupos de classes dentro deles:
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 30
31. Desenhado Componente de Software com UML Reúso
As camada de Domínios das classes:
Domínio da Aplicação:
• Contém classes importantes para uma aplicação. Por exemplo: classes de regras de negócios de
uma aplicação.
Domínio do Negócio:
• Contém classes importantes para um tipo de negócio, tais como: Financeiro, Seguros e etc. Estas
classes têm um conjunto de regras válidas para todo o segmento.
Domínio da Arquitetura:
• Contém classes importantes para uma arquitetura de implementação. Por exemplo, classes de
interface com usuário, classes de manipulação de banco de dados e classes de comunicação entre
computadores e outros dispositivos.
Domínio Base:
• Contém classes importantes para todas as arquiteturas, áreas de negócios e aplicação. Por
exemplo classes bases, classes estruturais e etc. Estas classes geralmente são tipos de dados,
coleções e etc.
Geralmente estas classes estão atrelados a linguagem de programação.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 31
32. Desenhado Componente de Software com UML Reúso
As camada de Domínios das classes vs Reúso:
Domínios das Classes Grau de Reusibilidade
Domínio da Aplicação Baixo reúso
Domínio do Negócio
Médio reúso
Domínio da Arquitetura
Domínio Base Alto reúso
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 32
33. Desenhado Componente de Software com UML Reúso
Falhas no processo...
Alguns fatores que podem ser considerados como determinantes de
fracassos no processo de implementação da cultura de reúso são:
• Não envolvimento e comprometimento por parte das pessoas e
principalmente pela alta gerência das empresas;
• Não introdução de processos de qualificação e classificação;
• Não alteração de processos diferentes do reúso, como análise de
requisitos, de projeto;
• Nenhuma preocupação ou direcionamento para fatores humanos,
como treinamento e motivação e
•Entendimento da empresa que repositório ou tecnologia orientada a
objetos tratados isoladamente, sem ações complementares, significam
reúso.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
34. Desenhado Componente de Software com UML Reúso
Como evitar as falhas ?
1. Potencial de Reúso
Avalie o potencial de reúso, o qual é maior quando as empresas
desenvolvem
produtos de software similares que evoluem com o tempo e são mais ou
menos
adaptados para cada cliente.
2. Capacidade de Reúso
Consiga um comprometimento da alta gerência para obter recursos
necessários e
poder para:
· Mudar processos de desenvolvimento
· Adicionar processos de reúso
· Trabalhar fatores humanos
· Instalar um repositório
· Definir pessoas chaves para o reúso
A ordem em que esses itens aparecem não é importante, todos esses
aspectos devem ser executados. Se dois ou mais deles não forem
direcionados, o fracasso é bem provável de acontecer.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
35. Desenhado Componente de Software com UML Reúso
Considerações Finais:
Reúso não é uma tecnologia e sim procedimento de trabalho.
Os resultados são a médio e a longo prazo. A implementação do reúso tem
custo inicial, pois é preciso mudar a empresa e as pessoas para adoção da
cultura do reúso.
Os ganhos são maiores quando há escala.
Devemos fazer reúso de todos os artefatos e não somente de componentes
de software.
O comprometimento da equipe é fundamental.
Gerenciamento do repositório de componentes exige cuidado especial, pois
nele encontra-se toda a base de conhecimento da empresa.
"No Silver Bullet” (F. Brooks)
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
36. Desenhado Componente de Software com UML RAS (Reusable Asset Specification)
RAS - Reusable Asset Specification
Especificação:
http://www.omg.org/cgi-bin/doc?formal/2005-11-02
Mantido pela OMG (www.omg.org)
Patrocinadores:
- IBM Rational
- LogicLibrary
- Borland
- Componentsource
Ativos
Alguns conceitos:
- Ativo: Alto nível de abstração
- Artefato: Qualquer produto que faz parte
ou decorre do ciclo de desenvolvimento de
software, tais como: Documentos de
Requisitos, Modelos, Código fonte,
Templates, fragmento de código,
componentes, bibliotecas, APIs, scripts e
etc.
Geralmente um ativo está associado a um
arquivo.
- XML Schema and MOF XMI
Tipos de Ativos Reusáveis de Software
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
Todos os direitos reservados e protegidos © 2006 e 2007 36
37. Desenhado Componente de Software com UML RAS (Reusable Asset Specification)
Tipos de Ativos:
O RAS utilização de 3 critérios para a classificação de um ativo:
Granularidade: determina o número de problemas endereçado por um ativo. Pode ser pequena,
quando trata de um único problema. Um algoritmo para cálculo do dígito verificador do CPF ou uma
combo box, por exemplo. Ou pode ser grande, apresentando soluções para um ampla gama de
problemas.
Visibilidade (Variabilidade): indica quanto de um ativo pode ser visualizado e manipulado. Apesar de
algumas diferenças na nomenclatura utilizada, é consenso que existem 4 níveis distintos de
visibilidade / variabilidade de um ativo:
Caixa Preta: o ativo não pode ser alterado e seu interior não pode ser visualizado. Normalmente
representa código binário – módulos executáveis adquiridos de terceiros.
Caixa de Vidro (ou Limpa): detalhes da implementação são expostos (via modelos,
documentação ou até mesmo o código-fonte), mas o ativo não pode ser alterado. A
transparência visa exclusivamente o apoio na utilização daquele software.
Caixa Cinza: interior do ativo é parcialmente exposto e manipulado, normalmente através de
parâmetros. São componentes ou serviços desenvolvidos com o objetivo de serem reutilizados.
Caixa Branca: o ativo oferece total visibilidade e variabilidade. Além da total disponibilidade do
código-fonte, ativos com este nível de visibilidade também apresentam seus requisitos, casos
de uso, modelos, e todos os demais artefatos relevantes gerados no processo de
desenvolvimento.
Articulação: descreve o grau de completitude de um determinado ativo. Ou seja, o quão pronto um
ativo está para a solução de um dado problema. Um conjunto de requisitos, por exemplo, está longe
de solucionar efetivamente o problema. Diz-se que seu grau de articulação é baixo. Já um
componente em sua forma executável apresenta um alto grau de articulação.
Fonte: http://www.pfvasconcellos.eti.br/blog/2006/12/21/ativos-de-software/
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
Todos os direitos reservados e protegidos © 2006 e 2007 37
38. Desenhado Componente de Software com UML RAS (Reusable Asset Specification)
Um “ativo digital” tem um conceito parecido como de item do
patrimônio de uma empresa, ou seja, uma etiqueta que facilita a sua
identificação.
O RAS foi criado exatamente para funcionar como essa „etiqueta de
patrimônio‟ para ativos de software reutilizáveis. Ele é estruturado
em 2 categorias: Núcleo (Core RAS) e Perfis.
- Núcleo:
O núcleo representa todos os elementos fundamentais de um ativo.
- Perfis:
Os perfis são utilizados para descrever características específicas de
um ativo.
Exemplo:
Podemos ter um ativo que gera orçamentos para o seguro de vida;
este ativo possui dois perfis distintos: um para sua versão off-line e
outro para a versão web service. Uma etiqueta RAS básica,
descrevendo apenas o núcleo.
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
Todos os direitos reservados e protegidos © 2006 e 2007 38
39. Desenhado Componente de Software com UML RAS (Reusable Asset Specification)
Core RAS UML Model for XML Schema
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
Todos os direitos reservados e protegidos © 2006 e 2007 39
40. Desenhado Componente de Software com UML Reúso
Como evitar as falhas ? Mitos e lendas...
Muitas empresas acreditam que a adoção da
orientação da orientação a objetos sozinha pode
prover “reúso”...
Alguns empresas imaginam que reúso somente
alcançará o sucesso se implementado em
empresas que desenvolvem software em larga
escala...
Outras empresas não acreditam que seja possível a
implementação da cultura de “reúso”...
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
41. Desenhado Componente de Software com UML Segunda Parte
- Processo de Desenvolvimento de Software
- UML e a visão 4+1
- Workflows
- Workflow de Design (Arquitetura)
- Road da Arquitetura
- Diagrama de Deployment
- Diagrama de Componentes
- Estudo de Caso: Identificando Componentes
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 41
42. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Introdução
Apresentar e discutir a Arquitetura de Software, explorando o contexto de Reúso. Arquitetura é parte
do Workflow de Design, nesta fase criamos os componentes, modelos físicos e como serão distribuídos.
Os principais diagramas (UML) são:
- Diagrama de Deployment e Diagrama de Componentes.
Versão 7.0
Todos os direitos reservados e protegidos © 2006 e 2007 42
Rildo F Santos (rildosan@uol.com.br)
43. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Processo Unificado (Fases e Workflows)
Fases
Workflows Concepção Elaboração Construção Transição
Modelagem Negócios
Requisitos
Análise e Design
Implementação
Testes
Controle de Mudanças
Gerência de projeto
Ambiente
Inicial E #1 E #2 C #1 C #2 C #3 T #1 T #2
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 43
44. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Introdução. UML, Visões:
Visão de Visão da
Projeto Implementação
Codificação
Funcionalidade Montagem
Vocabulário
Visão de
Caso de Uso
Visão do Visão da
Processo Implantação
Desempenho Topologia do Sistema
Escalabilidade Distribuição
Throughput Instalação
Conceitual Físico
Versão 7.0 Rildo F Santos (rildosan@uol.com.br)
Todos os direitos reservados e protegidos © 2006 e 2007 44
45. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Big Picture. Requisitos e Análise
Business Case Levantamento de Dados
Workflow Análise
Documento Modelo Conceitual
de Visão
Engenharia de Requisitos
Análise de Requisitos Especificação de Requisitos
(Visão de Caso de Uso)
Requisitos Funcionais
Casos de Uso
Vocabulário de
Conceitos de Negócio
Requisitos Não
Funcionais Arquitetura Inicial
Versão 7.0
Todos os direitos reservados e protegidos © 2006 e 2007 45
Rildo F Santos (rildosan@uol.com.br)
46. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Workflow, Artefatos e Papéis: Requisitos e Análise
Workflow Artefatos Papéis
Requisitos Documento de Visão
Documento de Requisitos
Analista de Sistema
Analista de Negócios
Analista de Requisitos
Especificação de Requisitos
(Casos de Uso)
Análise
Modelo Conceitual ou Modelo
de Domínio
Analista de Sistema
Analista de Negócios
Vocabulário do Sistema
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 46
47. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Big Picture. Design
Análise Projeto (Visão Lógica)
Modelo Conceitual Diagrama de Classes
Receber Pedido
Preencher Pedido Enviar Fatura
Entrega
[pedido urgente] [senão]
Receber Pagamento
Entrega durante Entrega Regular
Especificação de Requisitos a noite
(Visão de Caso de Uso)
: FormBusca : Categoria : Produto : Catalogo
: visitante
getDescricao( )
exibirCategoria( )
selecionarCategoria
getDescricao( ) getQuantidade( )
exibirProduto( )
Encerrar Pedido
selecionarProduto( )
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 47
48. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Workflow, Artefatos e Papéis: Design
Workflow Artefatos Papéis
Projeto Digrama de
Seqüência ou de
Colaboração Analista de Sistema
Projetista de Software
Diagrama de Atividades
Arquiteto
Diagrama de Estados
Diagrama de Classes
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 48
49. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Big Picture. Design &Arquitetura
Projeto (Visão Lógica)
Diagramas Arquitetura
Projeto (Visão de Componentes e
Visão de Deployment)
Receber Pedido
: FormBusca : Categoria : Produto : Catalogo
Preencher Pedido Enviar Fatura
: visitante
getDescricao( )
Entrega
exibirCategoria( )
selecionarCategoria [pedido urgente] [senão]
getDescricao( ) getQuantidade( )
Receber Pagamento
exibirProduto( )
Entrega durante Entrega Regular
selecionarProduto( )
a noite
Encerrar Pedido
Diagrama de Componentes
Diagrama de Deployment
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 49
50. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Workflow, Artefatos e Papéis: Arquitetura
Workflow Artefatos Papéis
Arquitetura
Digrama de
Componentes
Analista de Sistema
Projetista de Software
Diagrama de Arquiteto de Software
Deployment
Modelo de Arquitetura
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 50
51. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Arquitetura: Road Map
Digrama de
Modelo de Deployment
Especificação Fazer Diagramas
Digrama de
Componentes
Fazer Modelo de View Controller Model Resources
Documentos Arquitetura
de Requisitos
Banco de
JSP/HTML Servlet EJB
Dados
Caso de Uso
As principais atividades e artefatos são:
Atividades:
- Fazer Diagrama de Deployment; Fazer Diagrama de Componentes; Fazer o Modelo de Arquitetura
Artefatos:
- Diagrama de Deployment; Diagrama de Componentes e Modelo de Arquitetura
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 51
52. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Arquitetura. Atividades e Passos:
Fazer Modelo Arquitetura
Selecionar uma
Arquitetura
Fazer Diagrama de Digrama de
Deployment
Deployment
Fazer Diagrama de Digrama de
Componentes Componentes
Refinar Modelo de
Arquitetura (RNFs)
Refinar o Modelo Modelo de
de Especificação Arquitetura
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 52
53. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Deployment
O que é Diagrama de Deployment?
Variações tradução:
• Diagrama de Deployment <=> Diagrama de Implantação
• Diagrama de Deployment <=> Diagrama de Distribuição
É um diagrama que exibe a arquitetura física do hardware e do software no sistema.
Pode apresentar os computadores e periféricos, juntamente com as conexões que eles
estabelecem entre si. Podemos mostrar também os tipos de conexões entre esses
computadores.
Especifica-se os componentes executáveis e objetos que são alocados para exibir quais
unidades de software são executados e quais computadores.
O diagrama de deployment demonstra a arquitetura “runtime” de processadores,
dispositivos físicos e de software que executam no ambiente onde o sistema
desenvolvido será utilizado. É o último diagrama da topologia do sistema, descrevendo
a estrutura de hardware e software que executam em cada unidade.
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 53
54. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Deployment
Elementos:
Processor (Processador): É qualquer máquina que possua a capacidade de
processamento. Os servidores, estações de trabalho por exemplo.
Servidor
processador
Device (Dispositivo): É qualquer máquina com finalidade ou finalidade limita. Os
dispositivos são os itens como impressoras, roteadores, raids, storages, scanners,
leitoras de código de barra e etc.
Impressora
Dispositivo
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 54
55. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Deployment
Elementos:
Connection (conexão): A conexão é o vinculo entre processadores e dispositivos.
Geralmente representam as conexões de rede físicas (rede local ou distribuída).
estereotipo
Servidor
Cliente <<TCP/IP>>
<<RS 232>>
Processador
Impressora (Nó)
conexão
Dispositivo
(Nó)
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 55
56. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Deployment
Elementos:
Os processadores e os dispositivos podem ser chamados de nó. Um nó é um elemento
físico que existe em tempo de execução e representa um recurso computacional.
<<WebServer>>
<<Cliente>> Apache
WebBrowser <<HTTP>>
<<RS 232>>
Impressora
Nós
<<Application Server>> <<Banco de Dados>>
JBoss Oracle
<<RMI>>
<<Client-Server>>
Cliente
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 56
57. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Componentes. Introdução:
Os componentes são utilizados para a modelagem de coisas físicas que podem residir em
nó, como executáveis, bibliotecas, tabelas, arquivos e documentos.
Um componente tipicamente representa o pacote físico de elementos lógicos, como
classes, interfaces, colaborações.
Bons componentes definem abstrações com interfaces bem-definidas, desta forma é
possível atualização de componentes, ou seja, trocar os componentes mais velhos por
outros componentes mais novos ou por novas versões.
Dependência Componente
A
Componente
genérico
Componente Nome do
B componente
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 57
58. Desenhado Componente de Software com UML Workflow de Design (Arquitetura):
Diagrama de Componentes
O que é um Diagrama de Componentes?
É um diagrama que exibe o sistema por um lado funcional, expondo as relações entre
seus componentes e a organização de seus módulos durante sua execução.
O diagrama de componente descreve os componentes de software e suas dependências
entre si, representando a estrutura do código gerado. Eles são tipicamente os arquivos
implementados no ambiente de desenvolvimento.
Diagrama de componente representa uma visão física, é um pedaço de software de
sistema e seus relacionamentos.
Quando um componente colabora com outro componente, está colaboração é ilustrada
com uma dependência entre o componente cliente e o componente de serviço.
ReservaService
ReservaUI
Dependência Reserva
Service_ Interface
stub
Room Component
Todos os direitos reservados e protegidos © 2006 e 2007
Versão 7.0 Rildo F Santos (rildosan@uol.com.br) 58