Anda di halaman 1dari 8

Workflows (Disciplines) do processo de desenvolvimento ...

UML Components

Engenharia de Software II,


DSC/COPIN, 2004.1
Patrícia D. L. Machado

Processo evolucionário Usando UML

„ Voltada para desenvolvimento orientado a


objetos.
„ Componentes – Utilização de conceitos em
UML de outras formas –
„ Técnica x Notação – um mesmo diagrama
pode ser usado de diferentes formas.
„ Potencialidade para extensão.
Precisão, exatidão e UML – Diagramas de
completude Especificação
„ OCL (Object Constraint Language) – linguagem textual para
criação de expressões lógicas.
„ Especificação precisa do comportamento de componentes.
„ Precisão ≠ exatidão ≠ completude
„ Qual a sua idade ?
„ mais de 30 (preciso, mais incompleto e inexato)
„ Estou ficando velho (impreciso, inexato e incompleto)
„ 42 anos (preciso, completo e exato)
„ Precisão torna possível testar a exatidão – modelos precisos são
úteis na geração de testes, pois permitem um entendimento do
que representa.

Projeto de Arquitetura Arquitetura Típica de Sistema

„ Quais são as partes?


HTTP Active/Java
Server Page

„ Como combiná-las? DCOM/RMI


SQL,etc.

Componente
Componente Banco de
(objeto)
Qual o impacto de mudanças? (objeto) Dados
„
Componente
(objeto)
Componente Banco de
(objeto) Dados
Componente
(objeto)
Arquitetura em Camadas:
Arquitetura em Camadas Exemplo de Componentes
Interface do Usuário (UI) Interface do Usuário (UI)
Cria que o usuário vê. Gerencia a lógica
de interface com o usuário. JSP exibindo a página “Alugar carro”

A
Diálogo do Usuário Diálogo do Usuário
P Gerenciamento de sessão do usuário. Pode ser Cliente Bean para gerenciar o estado do diálogo
L usada com múltiplos UI. Estado transiente do diálogo. referente a “Alugar Carro”
I
C
Serviços do Sistema
A
S Representação externa através do qual serviços do negócio são Servidor Serviços do Sistema
Ç
à I combinados para constituir uma aplicação. Operações=transações. Bean EJB que suporta a interface de sistema
S
O
T
Múltiplos dialogs ou batchs. Componentes=Sistemas de Negócio. “Auto Rental”
E Serviços do Negócio
M
Informações, regras e transformações do negócio. Usado por vários
Serviços do Negócio
A
sistemas. Componentes=grupos ou tipos do negócio. Operações
podem ser combinadas com outras para formar transações. Bean que representa um contrato de aluguel

Arquitetura de Componentes Relações de Dependência

„ Conjunto de componentes de software, suas relações A B A depende de B – Alterações em B podem implicar


em alterações em A.
estruturais e dependências de comportamento.
Interface Æ interface

„ Definição lógica e independente de tecnologia.

„ Relações estruturais: associações e herança entre Componente Æ Interface


interfaces e especificações de componentes e Componente Æ
Componente
relações de composição entre componentes.

„ Dependências de comportamento: relações de


dependência entre diferentes componentes, Componente Æ Sub-componente

componentes e suas interfaces, e entre interfaces.


Tipos de Arquitetura
Especificando contratos
de Componentes
„ Especificação de Componentes – especificações e „ Descrevem serviços oferecidos e serviços
interfaces requisitados – responsabilidades e obrigações
Toda dependência é parte da especificação do componente
„
e deve ser respeitada por qualquer implementação
de cada parte cliente e fornecedor do
componente.
„ Implementação de Componentes –
dependências entre implementações específicas
„ Tipos:
„ Objetos – Instâncias reais „ Contrato de Uso
„ Contrato de Realização

Especificando Contratos Contrato de Uso


Interface Uso
„ Operações – assinaturas e definições
Especificação do Cliente
Componente
„ Modelo de Informação – definição abstrata de qualquer
informação ou estado que é mantido pelo componente como
Realização resultado de requisições sucessivas de clientes e restrições
sobre estas informações.

Implementação „ Pré-condições – definição de situações sobre a qual pós-


do Componente condições serão válidas
Interface
„ Pós-condições – descrição dos efeitos da operação sobre seus
Facilitar Mudanças! parâmetros e sobre o modelo de informações.
Exemplo Contrato de Uso
<<interface type>>
IMakeReservation

getHotelDetails (in match: String) : HotelDetails [] „ É responsabilidade do cliente garantir que a pré-
getRoomInfo (in res: ReservationDetails, out availability : Boolean, out price: Currency)
makeReservation (in res: ReservationDetails, in cus: CustomerDetails, out : resRef : String): Integer condição é verdadeira antes de chamar a operação

Hotel
„ Se for falsa, o fornecedor do componente não pode
*
Reservation
* 1 1 1..*
Room
garantir que o comportamento desejado irá
resRef: String
Dates: DateRange
id: HotelId
Name: String acontecer – qualquer coisa pode acontecer
claimed: Boolean

* 0..1
1 „ Elaborar uma especificação precisa é extremamente
Customer importante na definição de componentes que podem
name: String ser substituídos
postCode : String Modelo de Informação
Email : String

„ Linguagens utilizadas: UML/OCL

Interfaces Oferecidas e
Contrato de Realização
Interfaces Usadas
„ Entre a especificação e implementação IMakeReservation
<< comp spec>>
„ Conjunto de interfaces a serem implementadas e ITakeUpReservation
Reservation System
seus relacionamentos
„ Que outros componentes serão utilizados na
implementação
1 1 1
„ Informações que não interessam diretamente ao
cliente. IBilling IHotelMgt ICustomer

„ Linguagem de especificação: diagramas de


colaboração ou OCL
Especificação Especificação
Níveis de Modelo
de Interface X de Componente
„ Modelo = perspectiva ou visão que enfatiza „ Lista de operações „ Lista de interfaces
certas coisas e exclui outras „ Modelo lógico de „ Relacionamentos entre
informações os diferentes modelos
de informação das
„ Contrato com o cliente diferentes interfaces
„ UML pode ser usada para gerar modelos em Especifica como
„ „ Contrato com o
diferentes níveis semânticos: operações afetam ou implementador
„ Modelo conceitual dependem do modelo „ Como operações devem
„ Modelo de especificação de informação ser implementadas em
„ Modelo de implementação „ Descreve apenas efeitos termos da utilização de
locais outras interfaces.

Especificação Identificação de Componentes

„ Identificação de componentes „ Entrada: Business concept model e use


„ Interação entre componentes case model
„ Especificação de componentes „ Identificar interfaces e organizá-las em
uma arquitetura
„ Identificar operações –
responsabilidades do sistema
Interação de componentes Especificação de Componentes
„ Identificar como cada operação do sistema será „ Especificação detalhada de operações e restrições.
realizada considerando a arquitetura de „ Modelo de informação – estado potencial do componente
componentes.
„ Invariantes, pré e pós-condições
„ Modelos de interação
„ Regras do negócio capturadas como restrições
„ Operações comuns e padrões de interação são identificados
„ Responsabilidades se tornam mais claras e são movidas para „ Só deve começar quando a arquitetura de
interfaces apropriadas. componentes estiver estável
„ Minimização de dependências. „ A elaboração da especificação pode ajudar a
„ Em suma: detalha a estrutura do sistema, deixando identificar omissões, inconsistências e ambigüidades.
claro as dependências existentes.

Business concept model Business Type Model


„ Modelo de informações no domínio do problema „ Modelagem precisa de informações do negócio que são
relevantes para o escopo do sistema sendo desenvolvido.
Especificação de Interface
context ICustomerMgt::
deleteCustomer(name : String)
pre:
-- name exists
costumer->exists (c | c.name = name)
pos:
-- costumer is deleted
costumer->exists (c | c.name = name) = false

Anda mungkin juga menyukai