Processo de Desenvolvimento de
Software – RUP
3. Análise & Projeto
Márcio Aurélio Ribeiro Moreira
[email protected]
http://si.lopesgazzani.com.br/docentes/marcio/
Evolução da análise
Década
60-70
Análise
Abordagens
Ferramentas
Tradicional
Funcional
•Textos e Fluxogramas
Funcional
Dados
•Diagrama de Fluxo de Dados (DFD)
•Diagrama de Estrutura de Dados (Modelo Conceitual)
•Mini-especificações e Normalização
•Dicionário de Dados
Funcional
Dados
Controle
•Lista de Eventos e DFD
•Diagrama Entidade-Relacionamento (DER)
•Diagrama de Transição de Estados (DTE)
•Mini-especificações e Normalização
•Dicionário de Dados
80
Estruturada
(Cris Gane,
Tony de Marco
e Yourdan)
90
Essencial
(Peter Chen,
Stephen
McMenamin &
John Palmer)
2000
Orientada a
Objetos
(Booch,
Rumbaugh &
Jacobson)
Márcio Moreira
Todos os
aspectos do
negócio e do
sistema
•Equivalentes aos anteriores
•Modelos de casos de uso, análise e projeto
•Modelos de distribuição, implementação e de testes
•Diagramas de seqüência, estado, atividades, etc.
3. Análise & Projeto – slide 2
Processo de Desenvolvimento de Software - RUP
Objetivos da disciplina de análise &
design
Transformar os requisitos em um design
(projeto) do sistema a ser criado.
Desenvolver uma arquitetura sofisticada
para o sistema.
Adaptar o design (projeto) para que
corresponda ao ambiente de
implementação, projetando-o para fins de
desempenho.
Márcio Moreira
3. Análise & Projeto – slide 3
Processo de Desenvolvimento de Software - RUP
Fluxo de trabalho de análise & design
Márcio Moreira
3. Análise & Projeto – slide 4
Processo de Desenvolvimento de Software - RUP
Objetivos das atividades
 Realizar Síntese Arquitetural (utilizada na Iniciação):
 Construir e avaliar uma Prova de Conceito Arquitetural, para demonstrar que o sistema idealizado
é factível.
 Definir uma Sugestão de Arquitetura:
 Criar um esboço inicial da arquitetura de software.
 Identificação de Serviço:
 Identificar e qualificar serviços candidatos.
 Analisar Comportamento:
 Transformar descrições comportamentais fornecidas pelos requisitos em um conjunto de
elementos, no qual o design possa se basear.
 Refinar a Arquitetura:
 Concluir a arquitetura para uma iteração.
 Projetar Componentes:
 Refinar o design do sistema.
 Projetar o Banco de Dados:
 Identificar as classes de design a serem persistidas em um banco de dados e projetar as
estruturas de banco de dados correspondentes.
 Especificação de Serviço:
 Especificar o comportamento de serviço e identificar os fornecedores de serviços e partições.
Márcio Moreira
3. Análise & Projeto – slide 5
Processo de Desenvolvimento de Software - RUP
A: Realizar síntese arquitetural
Márcio Moreira
3. Análise & Projeto – slide 6
Processo de Desenvolvimento de Software - RUP
A: Definir uma sugestão de arquitetura
Márcio Moreira
3. Análise & Projeto – slide 7
Processo de Desenvolvimento de Software - RUP
A: Identificação de serviço
 Esta atividade é composta por outras 3 atividades:
 Decomposição do Domínio:
 Decomposição guiada por negócio, top-down, para identificar:
 Serviços candidatos e Processos de negócios (fluxos de serviços)
 Áreas funcionais que identificam limites para subsistemas ( componentes
de serviços candidatos para realizar os serviços)
 Atributos comuns e variações da funcionalidade de negócios
 Modelagem de Serviço de Meta:
 Ajuda a descobrir serviços alinhados a negócios e assegura que
importantes serviços não tenham sido perdidos durante a
decomposição (objetivos  serviços  KPIs, métricas e eventos)
 Análise de Recurso Existente:
 Avaliar os recursos existentes para projetar serviços que preservem o
máximo destes recursos sem a necessidade de mudanças.
Márcio Moreira
3. Análise & Projeto – slide 8
Processo de Desenvolvimento de Software - RUP
A: Decomposição de domínio
Domínio de
Negócio
Márcio Moreira
3. Análise & Projeto – slide 9
Processo de Desenvolvimento de Software - RUP
A: Modelagem de serviço de meta
Márcio Moreira
3. Análise & Projeto – slide 10
Processo de Desenvolvimento de Software - RUP
A: Análise de recurso existente
Márcio Moreira
3. Análise & Projeto – slide 11
Processo de Desenvolvimento de Software - RUP
A: Analisar comportamento 1
Márcio Moreira
3. Análise & Projeto – slide 12
Processo de Desenvolvimento de Software - RUP
A: Analisar comportamento 2
Márcio Moreira
3. Análise & Projeto – slide 13
Processo de Desenvolvimento de Software - RUP
A: Refinar a arquitetura 1
Márcio Moreira
3. Análise & Projeto – slide 14
Processo de Desenvolvimento de Software - RUP
A: Refinar a arquitetura 2
Márcio Moreira
3. Análise & Projeto – slide 15
Processo de Desenvolvimento de Software - RUP
A: Projetar componentes 1
Márcio Moreira
3. Análise & Projeto – slide 16
Processo de Desenvolvimento de Software - RUP
A: Projetar componentes 2
Márcio Moreira
3. Análise & Projeto – slide 17
Processo de Desenvolvimento de Software - RUP
A: Projetar banco de dados
Márcio Moreira
3. Análise & Projeto – slide 18
Processo de Desenvolvimento de Software - RUP
A: Especificação de serviço
 Esta atividade é composta por outras 3 atividades:
 Executar Especificação de Serviço:
Definir os limites do serviço e definir as mensagens.
 Executar Análise de Subsistema:
Fazer o projeto do subsistema de SOA (Service Oriented
Architecture ou Arquitetura Orientada a Serviços).
 Executar Especificação de Componente:
Especificar os componentes necessários aos serviços.
Márcio Moreira
3. Análise & Projeto – slide 19
Processo de Desenvolvimento de Software - RUP
A: Executar especificação de serviço
Teste Litmus:
É um tipo de teste para serviços de SOA
Objetivos:
• Assegurar que o serviço seja alinhado com os negócios
• Assegurar que o serviço possa ser composto
• Assegurar que o serviço tenha descrição externa
• Assegurar que o serviço seja reutilizável
• Assegurar que o serviço seja viável tecnicamente
Márcio Moreira
3. Análise & Projeto – slide 20
Processo de Desenvolvimento de Software - RUP
A: Executar análise de subsistema
Márcio Moreira
3. Análise & Projeto – slide 21
Processo de Desenvolvimento de Software - RUP
A: Executar especificação de componente
Márcio Moreira
3. Análise & Projeto – slide 22
Processo de Desenvolvimento de Software - RUP
Arquitetura do
Software
Descrição Arquitetural e
M. de Análise e de Serviços
Modelo de
Análise
Casos de Uso
Análise de realização dos
Casos de Uso
Pacotes de
Análise
Especificar o
Software
Estruturar o
software
Essência da análise & projeto
Márcio Moreira
Classes de análise
Mapa de navegação
Projeto
Arquitetural
Descrição Arquitetural e
M. de Projeto e Implementação
Projeto de
Casos de Uso
Projeto de
Classes
Modelo de Dados
Classes de Projeto e Testes
Componentes de Serviços
Projeto de
sub-sistemas
3. Análise & Projeto – slide 23
Projetos de realização
dos Casos de Uso
Projeto de sub-sistemas
Projeto de interfaces
Processo de Desenvolvimento de Software - RUP
P: Modelo de análise
pd Visão Niv elada de Pacotes de Análise
Name:
Visão Nivelada de Pacotes de Análise
Package: «view» Análise
Version: 1.0
Author:
Uso Específico da Aplicação
«analysis-package»
Acompanhamento Promocional
«analysis-package»
Planej amento
«analysis-package»
Organização de Produtos
Uso Específico do Negócio
«analysis-package»
Distribuição de Materiais
«analysis-package»
Análise de Mercado
«analysis-package»
Gestão de Suprimentos
«analysis-package»
Vendas
«analysis-package»
Planej amento e Controle de Produção
«analysis-package»
Coletor de Fatos
Márcio Moreira
3. Análise & Projeto – slide 24
Processo de Desenvolvimento de Software - RUP
P: Modelo de serviços
Feasibility Check & Reservation - Context Diagram
Siebel
SOA
OSM
1. Generate Quote
2. Determine Order Feasibility
3. Create Feasibility Order
(Business Rule to define
if is necessary
Feasibility Order)
4. Call Feasibility Flow
4.1. Infrastructure Feasibility
4.1a. Network Feasibility
4.1b. Workforce Feasibility
4.1c. S/P Feasibility [Last Mile]
5. Authorize Credit
6. Invoke Authorize Credit
(in Gestor Serasa)
7. Allocate Service Specific
Parameter
8. Create Reservation
Order
(Business Rule to define
moment of reservation)
9. Call Reservation Flow
(If is the moment of
reservation)
12. Create Order
Reservation
(Business Rule to define
moment of reservation)
13. Call Reservation Flow
(If is the moment of
reservation)
15. Create Provisioning
Order
16. Call Provisioning Flow
17. …
10. Negotiate Sales (Contract)
11. Allocate Service Specific
Parameter
14. Issue Customer Order
Márcio Moreira
3. Análise & Projeto – slide 25
Processo de Desenvolvimento de Software - RUP
P: Projeto de serviços
1. Submit Order
Siebel
Siebel XML
To
SID XML
SubmittedOrder
2. Response Submit Order
SID XML
To
Siebel XML
callBackClient
Provisioning
Order
SID XML
To
P6 XML
3. Execute Order
P6 XML
To
SID XML
4. Retun Resp Execute Order
Metasolv’s
Products
CompletedOrder
CompletedOrder
5a. Close Order
SID XML
To
Siebel XML
Update
CustomerOrder
ActivateBilling
Oracle ESB
(Virtualization,
Transformation and
Routing)
Márcio Moreira
SID XML
To
Kenan XML
5b. Activate Billing
Kenan
Oracle ESB
Oracle BPEL Manager
3. Análise & Projeto – slide 26
(Virtualization,
Transformation and
Routing)
Processo de Desenvolvimento de Software - RUP
P: Realização de casos de uso
ud Transferir Dinheiro - Realizacoes
«service subsystem»
Conta-corrente
Transferir Dinheiro
(from GerenciadorConta)
(from Auto Servico)
«realize»
«realize»
«use case
realization»
Transferir Dinheiro
«service subsystem»
Autenticação
«realize»
(from GerenciadorConta)
«realize»
«service subsystem»
Transferidor
«realize»
«realize»
«realize»
«service subsystem»
Interface
(from GerenciadorTransacao)
«service subsystem»
RoteadorTransacao
(from GerenciadorConsole)
«service subsystem»
Autenticador
(from GerenciadorTransacao)
(from GerenciadorConsole)
Márcio Moreira
3. Análise & Projeto – slide 27
Processo de Desenvolvimento de Software - RUP
P: Mapa de navegação
sd GED :: Nav egação de páginas
Inicio
Pagina inicial
[busca detalhada ou
simples]
Pesquisa de
documento
[escolha da
contratante]
Mesma página
[usuario
ADMIN]
Criação de
documento
[usuario
ADMIN]
Configuracao
«automatic»
[usuario
ADMIN]
Edição de
documento
[usuario
ADMIN]
[usuario
ADMIN]
{weight=elemento selecionado na
listagem}
Resultados da busca
{weight=elemento selecionado na
listagem}
View TIFF
Fim
Márcio Moreira
3. Análise & Projeto – slide 28
Processo de Desenvolvimento de Software - RUP
P: Pacotes de análise
cd GerenciadorTransacao
Name:
GerenciadorTransacao
Package: «subsystem» GerenciadorTransacao
Version: 1.0
Author:
«service subsystem»
RoteadorTransacao
«realize»
TransacaoAutorizada
Transacao
«realize»
«service subsystem»
Transferidor
Autorizacao
«realize»
«service subsystem»
Sacador
Movimentacao
«realize»
«realize»
GerenciadorConta
Márcio Moreira
3. Análise & Projeto – slide 29
Processo de Desenvolvimento de Software - RUP
P: Modelo de projeto
pd Design Model
Application Specific
GerenciadorConsole
«service subsystem»
Interface
GerenciadorTransacao
«service subsystem»
DispensadorCedulas
«service subsystem»
Autenticador
«service subsystem»
RoteadorTransacao
«service subsystem»
Transferidor
«service subsystem»
Sacador
Business Specific
GerenciadorConta
«service subsystem»
Autenticação
«service subsystem»
Conta-corrente
Márcio Moreira
3. Análise & Projeto – slide 30
Processo de Desenvolvimento de Software - RUP
P: Projeto de realização
sd Transferir Dinheiro
«service subsystem»
«service subsystem»
«interface»
«interface»
«interface»
«interface»
Autenticador
Interface
Transacao
TransacaoAutorizada
Autorizacao
Movimentacao
:Correntista
insereCartao
escolheTransferencia
digitaValores
informaSenha
resultado:= Submete(conta, transferencia, senha)
ok:= autentica(conta, senha)
[ok]: submete(contaDestino,data,v alor,contaOrigem,tipo)
ok:= debito(documento,historico,valor,data)
ok:= credito(documento,historico,valor,data)
Márcio Moreira
3. Análise & Projeto – slide 31
Processo de Desenvolvimento de Software - RUP
P: Projeto de componentes
Márcio Moreira
3. Análise & Projeto – slide 32
Processo de Desenvolvimento de Software - RUP
Modelos de: casos de uso x análise
x projeto
Modelo de Caso de Uso
Modelo de Análise
Modelo de Projeto
Descrito na linguagem do cliente
Usa diagramas de análise (modelo lógico)
Usa diagramas de projeto (modelo físico)
Visão externa do sistema
Visão interna estrutural do sistema
Visão interna comportamental do sistema
Estruturado pelos casos de uso
(1 página)
Estruturado por sub-sistemas, pacotes e
classes (interface, controle e persistência)
genéricas do projeto (poucas camadas)
Estruturado por componentes e dependente
da linguagem de implementação (várias
camadas)
Contrato entre o cliente e o
desenvolvedor (escopo)
Usado pelos analistas para entender como
o sistema deve ser estruturado
Contrato entre analistas e desenvolvedores
do comportamento do sistema
Pode conter redundâncias,
inconsistências, etc.
Não deve conter redundâncias,
inconsistências, etc.
Deve ser objetivo, claro e limpo
Captura funcionalidades do
sistema, inclusive arquiteturais
Esboça como realizar as funcionalidades
Funciona como primeiro corte do projeto
Detalha a realização das funções do sistema
até o nível necessário para desenvolve-las
Define os casos de uso que
integrarão o Modelo de Análise
Define as realizações dos casos de uso e
as necessidades de projeto
Define as realizações do Modelo de Análise
Raramente modificado
Muda pouco no ciclo de vida do projeto
Muda bastante e deve ser atualizado
Márcio Moreira
3. Análise & Projeto – slide 33
Processo de Desenvolvimento de Software - RUP
Do negócio ao software
Negócio
Direcionador
Diagramas de
Comportamentais
Comportamento
Modelagem de
Negócio
&
Requisitos
Sistema
Software
Análise
&
Arquitetura
Design
(Projeto)
Direcionador
Diagramas de
Estruturais
Informações
Identificar
Necessidades
Márcio Moreira
3. Análise & Projeto – slide 34
Modelar
Solução
Validar
Solução
Processo de Desenvolvimento de Software - RUP
Persistência
Controle
Control
DataBase
Model
Apresentação
View
Exercício 2: Contexto
 Considerando o mesmo projeto do exercício 1 e mais:
 A empresa adquiriu o Siebel, um software pronto, de CRM para ser
utilizado no projeto, com base nas seguintes ponderações:
 O Siebel é um dos mais utilizados na indústria que a empresa está inserida
 O Siebel é compatível com o eTOM e foi desenvolvido na arquitetura MVC
(Model View Control ou Persistência, Controle e Apresentação) que facilita a
integração via SOA
 Para atender as funcionalidades específicas da empresa, serão feitas
pequenas customizações no Siebel, priorizando:
 As customizações devem ficar restritas à camada de Apresentação
 Somente serão permitidas customizações na camada de Controle e de
Persistência com autorização dos executivos e da Oracle (fabricante)
 Você faz parte de uma equipe constituída para implementar o Siebel e:
 Existe uma outra equipe que cuida de arquitetura e da integração via SOA e
outra que cuida de processos de negócio
 Todas as integrações do Siebel com legados e outros softwares são via SOA
 Todas as solicitações da área de negócio são alinhadas à processo
Márcio Moreira
3. Análise & Projeto – slide 35
Processo de Desenvolvimento de Software - RUP
Exercício 2: Questões
1. Que Atividades e Tarefas de Requisitos e Análise
& Design (Projeto) do RUP vocês recomendam
que sejam utilizadas neste caso?
2. Justifique porque vocês incluíram ou excluíram
cada Atividade e Tarefa.
3. Considerando somente as Atividades e Tarefas
selecionadas, na construção de quais artefatos o
“as-is” de processos poderia ajudar e porque?
4. A consultoria resolveu fazer o Design (projeto
técnico) junto com a Implementação. O que vocês
acham disto? Quais as possíveis conseqüências?
Márcio Moreira
3. Análise & Projeto – slide 36
Processo de Desenvolvimento de Software - RUP
Referências
Sigla
Referência
BOO98 G. Booch, J. Rumbaugh e I. Jacobson, 1998. UML User Guide. Addison-Wesley Longman.
DEM89 DeMARCO, Tom. Análise estruturada e especificação de sistemas. Rio de Janeiro: Campus, 1989.
JAC98
Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. 1998. Addison
Wesley Longman.
KRO03
Per Kroll e Philippe Kruchten 2003. The Rational Unified Process Made Easy, A Practitioners Guide to the RUP. Addison
Wesley Longman.
KRU95 Philippe Kruchten 1995, "The 4+1 view model of architecture," IEEE Software. 12(6), 1995.
KRU98 P. Kruchten; The Rational Unified Process: An Introduction, Object Technology Series, Addison-Wesley, 1998.
MAR05 Márcio Moreira. Resumo do livro Unified Process. Márcio. Uberlândia (MG). 2005.
MAR06 Márcio Moreira. Engenharia de Software - RUP . Uniube - Universidade de Uberaba - Uberlândia (MG). 2006.
MCP91 MCMENAMIN, Stephen & PALMER, John. Análise essencial de sistemas. São Paulo : McGraw-Hill, 1991.
PRE95
PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995.
RUP08 IBM Rational. RUP – Rational Unified Process – 7.5 – For Large and Small Projects. 2008. IBM Rational.
SUM07 Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007.
YOU92 YOURDON, Edward. Análise estruturada moderna. Rio de Janeiro: Campus, 1992.
Márcio Moreira
3. Análise & Projeto – slide 37
Processo de Desenvolvimento de Software - RUP
Download

3. Análise & Projeto