análise e projeto de software - ufuflavio/esof-files/files/2014-02/07-analise e... · análise e...
TRANSCRIPT
2/2/2015
1
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise e Projeto de Software
363
Material preparado pelo Prof. Marcelo Maia
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise e Projeto
364
2/2/2015
2
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Projeto e Modelos
CIM
PIM
PSM
Código
Elicitação deRequisitos
Projeto do Sistema
Implementação
Análise deRequisitos
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Artefatos de Projeto Razões das Decisões (Design Rationale) Modelos de Projeto
Modelos Arquiteturais Modelos de Dados Modelos da Interface com Usuário Modelos de Componentes Modelos de Implantação
Padrões Arquiteturais Padrões de Projeto
2/2/2015
3
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Influências no Projeto Requisitos funcionais
Requisitos não-funcionais
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architecture“The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” [SHA95a]
Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods
Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics.
Families of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design should have the ability to reuse
architectural building blocks.
Fonte: Pressman
2/2/2015
4
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Software architecture The design process for identifying the sub-systems making up a
system and the framework for sub-system control and communicationis architectural design.
The output of this design process is a description of the software architecture.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural design An early stage of the system design process.
Represents the link between specification and design processes.
Often carried out in parallel with some specification activities.
It involves identifying major system components and their communications (structural properties)
Fonte: Sommerville
2/2/2015
5
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Advantages of explicit architecture
Stakeholder communication Architecture may be used as a focus of discussion by
system stakeholders.
System analysis Means that analysis of whether the system can meet its
non-functional requirements is possible.
Large-scale reuse The architecture may be reusable across a range of
systems.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architecture and system characteristics
Performance Localise critical operations and minimise communications.
Use large rather than fine-grain components.
Security Use a layered architecture with critical assets in the inner
layers.
Safety Localise safety-critical features in a small number of sub-
systems.
Availability Include redundant components and mechanisms for fault
tolerance.
Maintainability Use fine-grain, replaceable components.
Fonte: Sommerville
2/2/2015
6
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural conflictsTrade-offs Using large-grain components improves
performance but reduces maintainability.
Introducing redundant data improves availabilitybut makes security more difficult.
Localising safety-related features usually means more communication so degraded performance.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
System structuring Concerned with decomposing the system into
interacting sub-systems.
The architectural design is normally expressed as a block diagram presenting an overview of the system structure.
More specific models showing how sub-systems share data, are distributed and interface with each other may also be developed.
Fonte: Sommerville
2/2/2015
7
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Box and line diagrams Very abstract - they do not show the nature of
component relationships nor the externally visible properties of the sub-systems.
However, useful for communication with stakeholders and for project planning.
Difficult for profound evaluation
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Packing robot control system
Fonte: Sommerville
2/2/2015
8
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Diagrama de componentes Abstract, but they do show the nature of
component relationships and the externally visible properties of the sub-systems.
Yet, useful for communication with stakeholders and for project planning.
Better for more profound evaluation
Next step: refine
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Diagrama de ComponentesSistema Web
2/2/2015
9
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural design decisions Architectural design is a creative process so the process differs
depending on the type of system being developed.
However, a number of common decisions span all design processes.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural design decisions
Is there a generic application architecture that can be used?
How will the system be distributed?
What architectural styles are appropriate?
What approach will be used to structure the system?
How will the system be decomposed into modules?
What control strategy should be used?
How will the architectural design be evaluated?
How should the architecture be documented?
Fonte: Sommerville
2/2/2015
10
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architecture reuse
Systems in the same domain often have similar architectures that reflect domain concepts.
Application product lines are built around a core architecture with variants that satisfy particular customer requirements.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural styles
Architecture patterns
The architectural model of a system may conform to a generic architectural model or style.
An awareness of these styles can simplify the problem of defining system architectures.
However, most large systems are heterogeneous and do not follow a single architectural style.
Fonte: Sommerville
2/2/2015
11
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Architectural models Used to document an architectural design.
Static structural model that shows the major system components.
Dynamic process model that shows the process structure of the system.
Interface model that defines sub-system interfaces.
Relationships model such as a data-flow model that shows sub-system relationships.
Distribution model that shows how sub-systems are distributed across computers.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Reference architectures Reference models are derived from a study of the application
domain rather than from existing systems.
May be used as a basis for system implementation or to compare different systems. It acts as a standard against which systems can be evaluated.
OSI model is a layered model for communication systems.
Fonte: Sommerville
2/2/2015
12
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
OSI reference model
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Key points
The software architecture is the fundamental framework for structuring the system.
Architectural design decisions include decisions on the application architecture, the distribution and the architectural styles to be used.
Different architectural visions such as a structural model, a control model may be developed.
System organisational models (patterns) include repository models, client-server models and abstract machine models.
Fonte: Sommerville
2/2/2015
13
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Key points Modular decomposition models include object models and pipelining
models.
Control models include centralised control and event-driven models.
Reference architectures may be used to communicate domain-specific architectures and to assess and compare architectural designs.
Fonte: Sommerville
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões de Arquitetura
2/2/2015
14
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e
seu contexto. Solução: elementos que definem o projeto, seus
relacionamentos, responsabilidades e colaborações. É como um “template”que pode ser usado em várias situações.
Conseqüências são resultados e trade-offs (compromissos) de se aplicar os padrões. Relacionadas aos trade-offs de espaço e tempo. Como o reúso é um fator importante as conseqüências incluem o impacto na flexibilidade, estensibilidade e portabilidade do sistema.
Fonte: GoF
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Classificação de PadrõesPadrões Os padrões de projeto podem ser classificados de acordo
com a fase de desenvolvimento em que são mais adequados: Padrões de Análise (Analysis patterns)
Seu foco é na fase de análise ou modelamento de negócio
Padrões ligados ao domínio do problema
Padrões de Arquitetura (Architectural patterns) Seu foco é na arquitetura do software
Padrões de Projeto (Design patterns) Foco no projeto de componentes do software
Muitas das vezes os padrões podem estar muito ligados tanto ao domínio da solução, quanto do problema
390
2/2/2015
15
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Classificação de PadrõesPadrões Padrões de Análise (Analysis patterns)
Martin Fowler , 1996
Padrões de Arquitetura (Architectural patterns) Apresentado inicialmente por Frank Buschmann et al., 1996
Computação Distribuída - Frank Buschmann et al., 2007
Padrões de Projeto (Design patterns) GOF (Gang of Four) E. Gamma, R. Helm, R. Johnson, J. Vlissides – 1995
Aplicações Concorrentes e em Rede - Frank Buschmann et al. – 2000
Enterprise Integration Patterns – Gregor Hohpe, 2003
Real-time Design Patterns – Bruce Douglass, 2003
.Net Design Patterns - Christian Thilmany, 2003
J2EE Design Patterns - Deepak Alur, 2003
Web Services Patterns – Paul Monday, 2003
Ajax Design Patterns - Michael Mahemoff, 2006
SOA Design Patterns – Thomas Erl, 2009
391
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões de Análise(Analysis Patterns) Proposto por Martin Fowler, em livro publicado em 1996
Notação do Livro não é baseada em UML
Baseada em áreas (domínios) específicas como: manufatura; financeira e saúde
Mesmo assim, padrões podem apresentados podem ser úteis em outros domínios
Alguns princípios apresentados Um modelo não está certo ou errado, eles podem ser mais ou menos úteis
Modelos conceituais estão ligados a tipos (interfaces) e não implementações (classes)
Padrões são o ponto de partida, não o destino
Sempre que possível, quando existir um tipo e um supertipo, considere colocar os recursos no supertipo, desde que isto faça sentido
Quando múltipos atributos possuam um comportamento relacionado e presente em muitos tipos, combine estes atributos em um novo tipo fundamental
392
2/2/2015
16
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões de Análise(Analysis Patterns) Exemplos de alguns padrões de projeto
Quantity (3.1)
Conversion Ratio (3.2)
Compound Units (3.3)
Measurement (3.4)
Observation (3.5)
Range (4.3)
Name (5.1)
Account (6.1)
Transaction (6.2)
Summary Account (6.3)
Plan (8.4)
Contract (9.1)
Product (10.3)
Associative Type (15.1)
393
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões de Arquitetura (Architectural patterns) Expressam uma organização fundamental de estrutura de um software
O ponto de partida da análise orientada a objetos é a criação do chamado Domain Model
O “Domain Model” expressa as classes ligadas ao domínio do problema
Os padrões de arquitetura auxiliam na concepção do software e na transição para o domínio da solução
Alguns padrões de arquitetura Layers
Model-View-Controler (MVC)
Pipes and Filters
Microkernel
Shared Repository
394
2/2/2015
17
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões de Projeto(Design Patterns) Trabalho proposto inicialmente por Erich Gamma, Richard Helm, Ralph
Jonhson, John Vlissides (Gang of Four) em 1995
Famílias de Padrões De Criação
Responsáveis pela criação de objetos
Permitem que o sistema fique independente da forma como os objetos são criados
Factory, Abstract Factory, Singleton, Builder, Prototype
Estruturais Relacionados com a forma com que classes e objetos são compostos a fim de
formar estruturas maiores
Adapter, Bridge, Composite, Decorator, Facade, Proxy
Comportamentais Relacionados com a atribuição de responsabilidades entre objetos
Descrevem a comunicação entre objetos
Chain of Responsibility, Command, Flyweigth, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor
395
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Layer Permite o desenvolvimento de forma independente de diferentes partes
do sistema de software
396
2/2/2015
18
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Layer Usos com outros padrões
397
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Estilos (padrões) de ArquiteturaCamadas
Fonte: Buschmann
2/2/2015
19
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Camadas (Windows NT)
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Pipes and Filters Arquitetura especializada em tratar fluxos de dados (data streams)
400
2/2/2015
20
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Pipes and Filters Uso com outros padrões
401
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Estilos (padrões) de ArquiteturaDutos e Filtros
Fonte: Buschmann
2/2/2015
21
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Estilos (padrões) de ArquiteturaDutos e Filtros
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Dutos e FiltrosAtividade começando com o data source
Fonte: Buschmann
2/2/2015
22
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Dutos e FiltrosAtividade começando com o data sink
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Dutos e FiltrosMix pull-push (Source/Sink passivos)
Fonte: Buschmann
2/2/2015
23
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Dutos e FiltrosFiltros ativos
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Broker - estrutura
Fonte: Buschmann
2/2/2015
24
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Broker – dinâmicarequisição de serviço pelo cliente
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Broker – dinâmicauso de pontes
Fonte: Buschmann
2/2/2015
25
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Model-View-Controller Uso
Em situações onde a interface do usuário de uma aplicação pode mudar de forma mais frequente que o seu domínio
411
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Model-View-Controller Uso do MVC com outros padrões
412
2/2/2015
26
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
MVC - Estrutura
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
MVC – Dinâmica –Inicialização
Fonte: Buschmann
2/2/2015
27
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
MVC – Dinâmica
Tratamento de eventos
Fonte: Buschmann
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Microkernel Uso
Arquitetura com suporte para escalabilidade funcional e adaptável para diferentes cenários de implantação
416
2/2/2015
28
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Microkernel Uso com outros padrões
417
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Microkernel
2/2/2015
29
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
MicrokernelCliente chamando serviço
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
MicrokernelServidor externo requisitando serviço
2/2/2015
30
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Monolítico x Microkernel
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
JBoss - JMX
2/2/2015
31
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
JBoss – JMXCamadas - Microkernel
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Shared Repository Uso
Aplicações em que partes operam e são coordenadas através de um conjunto de dados compartilhados
Caso de aplicações orientadas a dados e onde a interação entre os componentes não seguem regras específicas que possibilitem sua conexão
A conexão entre os componentes e aplicações é feita através dos dados
424
2/2/2015
32
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Shared Repository Uso com outros padrões
425
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Integração de Aplicações Orientada a processos
Enterprise Application Integration Enterprise Service Bus
Orientada a Dados ETL (Expose, Transform, Load)
EII (Enterprise Information Integration)
2/2/2015
33
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Integração de Aplicações
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Comparação das abordagens
2/2/2015
34
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Enterprise Application Integration (EAI)EAI refers to message-based,
transaction-oriented,
application-to-application integration
using either an integration pattern point- to-point or;
a point-to-hub (brokering or bus)
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Padrões para integração orientada a processosHub (broker) x Ponto a ponto
2/2/2015
35
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de integração de aplicações 1960 – Hardware incompatível implicava em reescrever tudo (ex: 1991)
Aplicações em batch (lotes) escrita em silos e compartilhamento através de arquivos
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de integração de aplicações
Cliente-servidor Escolhas da infra-estrutura de rede. No início não havia arquitetura de rede
amplamente aceita.
Funções de comunicação tinham que ser adicionadas na aplicação requerendo maior habilidade dos programadores
As APIs eram bastante complexas, sendo necessário muito tratamento de exceção e lógica de recuperação para se ter sucesso.
2/2/2015
36
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de arquiteturas cliente-servidor
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
RPC requer o servidor sempre disponível...Middleware de Filas de Mensagens
2/2/2015
37
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Adaptadores de formato
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Message brokers
2/2/2015
38
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Integração via Business Process Management
Um requisição de serviço de um cliente pode chegar por inúmeros canais, tais como, telefone, mensagem de voz, fax, e-mail e até mesmo via carta convencional.
Tal evento precisa ser capturado, categorizado e enviado pela organização através de um caminho predefinido, sendo monitorado por um sistema de gerenciamento que garante que a solução (e satisfação do cliente) serão atingidas dentro de certo prazo, e que qualquer intercorrência seja detectada, escalonada e remediada de acordo
com parâmetros específicos de níveis de serviço.
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Impacto da Internet
Tecnologia para Web Services
Extensible Markup Language (XML)
SOAP (originally an acronym for Simple Object Access Protocol) is na application-to-application protocol that isolates network, transport, programming language, and platform differences to allow a client to call a remote service without knowledge of how the service is coded or where the service is hosted. The message format is XML.
Web Services Description Language (WSDL) is an XML-based interface and interface description language. The service provider uses a WSDL document in order to specify the operations a Web service provides, the parameters and data types of these operations and the location and transport bindings to be used to access the service.
Web Services Inspection Language (WSIL) is an XML-based specification about how to locate Web services without the necessity of using UDDI. However, WSIL can be also used together with UDDI, that is, it is orthogonal to UDDI and does not replace it.
Universal Description, Discovery, and Integration (UDDI) is both a client-side API and a SOAP-based server implementation that can be used to store and retrieve information on service providers and Web services.
2/2/2015
39
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de EAI
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Service-oriented Architecture SOA is an integration architecture approach
based on the concept of a service. The business and infrastructure functions
are provided as services that collectively, or individually, deliver application functionality
to either end-user applications or other services.
Applications collaborate by invoking each other’s services.
Services are composed into larger sequences to implement business processes.
SOA requires a consistent mechanism for services to communicate: loosely coupled use of explicit interfaces.
2/2/2015
40
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
O que é serviço?
A service is a discrete function that is offered to an external consumer. Consumer: Web page, another business function, or a
collection of functions that together form a process.
Additional aspects: Services encapsulate reusable business function.
Services are defined by explicit, implementation-independent interfaces.
Services are defined in a way that stress location and transport transparency.
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
SOA x Web Services
SOA
Architectural patterns for realizinga business design through theimplementation and composition ofsoftware services
A reference architecture model todecompose the functional componentsof an integration solution
A model for the life cycle andgovernance of services to help makereusability of services a reality
Web Services• A means to create well-
documented interfaces for services using standards such as Web services DefinitionLanguage (WSDL) anddocument-style SOAP
• A means to compose Web services using Business Process Execution Language for Web Services (WS-BPEL)
• Simple communication mechanisms that are location-transparent andinteroperable
2/2/2015
41
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de EAI
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
444
SOAService Oriented Architecture
Consumidor Provedor
Registro
PublicaProcura
Interage
Contrato
2/2/2015
42
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Abstrações de SOA
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Elementos do serviço
2/2/2015
43
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Elementos de SOA
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Tipos de serviços
2/2/2015
44
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Arquitetura tradicional x SOA
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Exemplocompanhia aérea
2/2/2015
45
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Evolução de EAI
• Providing a consumer view of a service decoupled from the deployed implementation of the underlying application or service
• Decoupling technical aspectsof service interactions
• Unifying access to applications using a common service model
• Providing dynamic access to services described in a service repository
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
SOA sem ESB
2/2/2015
46
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
SOA com ESB
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Funções de Middleware do ESB
Map service requests from one protocol and address to another.
Transform data formats.
Support a variety of security and transactional models between service consumersand service providers and recognize that consumers and providers may support or requiredifferent models.
Aggregate or disaggregate service requests and responses.
Support communication protocols between multiple platforms with appropriate qualitiesof service.
Provide messaging capabilities such as message correlation and publish/subscribe tosupport different messaging models such as events and asynchronous request/response.
E idealmente:
Support high volumes of individual interactions.
Support more established integration styles, such as message-oriented and event-driven integration, to extend the reach of the SOA.
2/2/2015
47
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visão de alto nível do ESB
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Arquitetura de referência SOA
2/2/2015
48
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Service component architecture
2/2/2015
49
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise e Projeto Orientado a Objetos Utilizando UML 2.0
459
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Orientação a ObjetosAlguns Conceitos OBJETO
MÉTODO
MENSAGEM
CLASSE
CLASSIFICAÇÃO
GENERALIZAÇÃO
ESPECIALIZAÇÃO
HERANÇA
POLIMORFISMO
SOBRECARGA
ENCAPSULAMENTO
ABSTRAÇÃO
MODULARIZAÇÃO
460
2/2/2015
50
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos (OOA)Projeto Orientado a Objetos (OOD) A utilização do orientação à Objetos solicita uma nova forma de abstrair e
entender o problema.
A linguagem UML é um padrão de diagramação para visualizar os resultados da análise e projeto orientados à objetos
461
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos (OOA)Projeto Orientado a Objetos (OOD) Exemplo
O conceito “Livro” em um sistema de biblioteca
462
2/2/2015
51
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) Objetivo básico
Identificar classes a partir das quais objetos serão representados como instâncias
Envolve as seguintes tarefas Identificação de Objetos
Especificação de Atributos
Definição de métodos
Comunicações entre objetos
463
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) IDENTIFICAÇÃO DE OBJETOS
Entidades externas (Outros sistemas; dispositivos;Pessoas)
Coisas ligadas ao domínio do problema (Relatórios;Displays;…)
Ocorrências ou Eventos (Conclusão de um movimento;Alarme disparado; Clique do mouse; etc.)
Papéis ou funções (Engenheiro; Gerente; Vendedor) desempenhados por pessoas
Unidades organizacionais (Grupo; Equipe;…)
Lugares (Piso de fábrica; área de descarga)
Estruturas (Sensores; veículos de quatro rodas;…)
464
2/2/2015
52
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) IDENTIFICAÇÃO DE OBJETOS – CRITÉRIOS
1. RETENÇÃO DE INFORMAÇÃO – Objeto deve guardar informação que será utilizada pelo sistema
2. SERVIÇOS NECESSÁRIOS – Conjunto de operações identificáveis que podem mudar o valor de seus atributos
3. MÚLTIPLOS ATRIBUTOS – Objeto deve conter mais de um atributo
4. ATRIBUTOS COMUNS – Conjunto de atributos deve ser aplicado a todos os objetos
5. OPERAÇÕES COMUNS – Conjunto de operações devem ser aplicáveis a todos os objetos.
6. REQUISITOS ESSENCIAIS – Entidades externas que aparecem no espaço problema que consomem e/ou produzem informação
465
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) Em uma especificação:
NOMES são potenciais objetos (e classes)
VERBOS são potenciais métodos
A regra acima deve ser utilizada apenas como referência.
O entendimento do contexto, das necessidades do usuário são fundamentais para classificar possíveis objetos e métodos
466
2/2/2015
53
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)Exemplo Especificação
O software SafeHome possibilita que o dono da casa configure o sistema de segurança quando ele for instalado, monitora todos os sensores ligados ao sistema de segurança e interage com o dono da casa através de um teclado (key pad) e teclas de função contidas no painel de controle do SafeHome.
Durante a instalação o painel de controle é usado para “programar” e configurar o sistema. A cada sensor é atribuído um número e um tipo, uma senha mestra é programada para armar e desarmar o sistema e números telefônicos são introduzidos para serem discados quando ocorrer um evento sensor.
Quando um evento sensor é sentido pelo software, ele dispara um alarme sonoro ligado ao sistema. Após um tempo de espera, que é especificado pelo dono da casa durante as atividades de configuração do sistema, o software disca um número telefônico do serviço de monitoração, oferece informações sobre o local, registrando a natureza do evento que foi detectado. O número será novamente discado a 20 segundos até que a ligação telefônica seja completada.
Todas as interações com o SafeHome são gerenciadas por um subsistema de interação com o usuário, que lê a entrada fornecida através do teclado e das chaves de função, exibe mensagens de prompting e informações sobre o status do sistema no mostrador de cristal líquido (LCD). A interação com o teclado assume a seguinte forma...
467
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)Exemplo Especificação
O software SafeHome possibilita que o dono da casa configure o sistema de segurançaquando ele for instalado, monitora todos os sensores ligados ao sistema de segurança e interage com o dono da casa através de um teclado (key pad) e teclas de funçãocontidas no painel de controle do SafeHome.
Durante a instalação o painel de controle é usado para “programar” e configurar o sistema. A cada sensor é atribuído um número e um tipo, uma senha mestra é programada para armar e desarmar o sistema e números telefônicos são introduzidospara serem discados quando ocorrer um evento sensor.
Quando um evento sensor é sentido pelo software, ele dispara um alarme sonoro ligado ao sistema. Após um tempo de espera, que é especificado pelo dono da casa durante as atividades de configuração do sistema, o software disca um número telefônico do serviço de monitoração, oferece informações sobre o local, registrando a natureza do eventoque foi detectado. O número será novamente discado a 20 segundos até que a ligação telefônica seja completada.
Todas as interações com o SafeHome são gerenciadas por um subsistema de interaçãocom o usuário, que lê a entrada fornecida através do teclado e das chaves de função, exibe mensagens de prompting e informações sobre o status do sistema no mostrador de cristal líquido (LCD). A interação com o teclado assume a seguinte forma...
468
2/2/2015
54
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)
469
NOME CRITÉRIOdono da casa Papel ou entidade externasistema de segurança Coisasensores Entidade externateclado Entidade externateclas de função Entidade externapainel de controle Entidade externanúmero Atributo do sensorTipo Atributo do sensorsenha mestra Coisanúmeros telefônicos Coisaevento sensor Ocorrênciaalarme sonoro Entidade externatempo de espera Atributo do sistemaServiço de monitoração Unidade Organizacional ou Ent. Externainformações sobre o local Atributo do sistema
natureza do evento Atributo do sistemasubsistema Entidade externaentrada Entidade externachaves de função Entidade externamensagens Entidade externamostrador de cristal líquido Entidade externa
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)NOME CRITÉRIO
dono da casa Rejeitado: 1 e 2 falham embora 6 se aplique
sistema de segurança Aceito: Todas se aplicamsensores Aceito: Todas se aplicamteclado Aceito: Todas se aplicamteclas de função Aceito: Todas se aplicam
painel de controle Aceito: Todas se aplicamnúmero Rejeitado: 3 falhaTipo Rejeitado: 3 falhasenha mestra Rejeitado: 3 falha
números telefônicos Rejeitado: 3 falhaevento sensor Aceito: Todas se aplicamalarme sonoro Aceito: 2, 3, 4, 5 e 6tempo de espera Rejeitado: 3 falha
Serviço de monitoração Rejeitado: 1 e 2 falham embora 6 se apliqueinformações sobre o local Rejeitado: 3 falhanatureza do evento Rejeitado: 3 falhasubsistema Aceito: Todas se aplicam
entrada Rejeitado: 3 falhachaves de função Aceito: Todas se aplicammensagens Aceito: Todas se aplicammostrador de cristal líquido Aceito: Todas se aplicam
470
2/2/2015
55
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação de Objetos Os objetos do painel de controle serão considerados separadamente.
Os objetos abaixo são o ponto de partida para o desenvolvimento do sistema
Objetos ainda não possuem atributos e métodos
471
class Classes
Sistema
- atributos
+ metodos() : void
PainelControle
- atributos
+ metodos() : void
Sensor
- atributos
+ metodos() : void
Ev entoSensor
- atributos
+ metodos() : void
AlarmeSonoro
- atributos
+ metodos() : void
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Especificação de Atributos
472
Necessário estudar e analisar a descrição do sistema
Pergunta Importante – “Quais informações definem este objeto?”
class Classes
Sistema
- senhaMestra- tempoEspera- numerosTelefonicos- informacoesLocal- naturezaEvento
+ metodos() : void
PainelControle
- atributos
+ metodos() : void
Sensor
- tipo- numero
+ metodos() : void
Ev entoSensor
- atributos
+ metodos() : void
AlarmeSonoro
- atributos
+ metodos() : void
2/2/2015
56
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Definição dos Métodos Necessário estudar e analisar a descrição do sistema
Verbos são potenciais operações
473
class Classes
Sistema
- senhaMestra- tempoEspera- numerosTelefonicos- informacoesLocal- naturezaEvento
+ programar() : void+ armar() : void+ desarmar() : void+ monitorar() : void+ dispararAlarme() : void+ discar() : void
Configure sentido
Instalado dispara
Monitora especificado
Ligados configuração
Interage disca
Instalação registrando
“programar” detectado
configurar Discado
programada ligação
armar interações
desarmar gerenciadas
introduzidos interação
serem discados lê
ocorrer fornecida
exibe
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)O departamento de obras públicas da cidade de Uberlândia decidiu desenvolver um sistema de computador para rastreamento e conserto de buracos de rua (SIRCOB).
À medida que são registrados buracos de rua, eles recebem um número de identificação e são armazenados de acordo com o endereço da rua, tamanho (numa escala de 0 a 10), localização (no meio dar rua; na calçada; etc.), bairro (determinado a partir do endereço da rua) e prioridade de reparo (determinada a partir do tamanho do buraco).
Dados de ordem de trabalho são associados a cada buraco, e eles incluem localização e tamanho do buraco, número de identificação da equipe de reparos, número de pessoas na equipe, equipamentos designados, horas aplicadas ao reparo, status do trabalho (em andamento, concluído, não concluído), quantidade de material de enchimento usado e custo do reparo (computado a partir das horas trabalhadas, número pessoas, material e equipamentos usados).
Finalmente, um arquivo de danos ocorridos é criado para guardar informações sobre danos registrados devido ao buraco, o qual inclui o nome do cidadão, endereço, número telefônico, tipo de dano e a quantia em reais a ser paga. O SIRCOB é um sistema on-line; as consultas devem ser feitas interativamente.
474
2/2/2015
57
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)O departamento de obras públicas da cidade de Uberlândia decidiu desenvolver um sistema de computador para rastreamento e conserto de buracos de rua (SIRCOB).
À medida que são registrados buracos de rua, eles recebem um número de identificaçãoe são armazenados de acordo com o endereço da rua, tamanho (numa escala de 0 a 10), localização (no meio dar rua; na calçada; etc.), bairro (determinado a partir do endereço da rua) e prioridade de reparo (determinada a partir do tamanho do buraco).
Dados de ordem de trabalho são associados a cada buraco, e eles incluem localização e tamanho do buraco, número de identificação da equipe de reparos, número de pessoas na equipe, equipamentos designados, horas aplicadas ao reparo, status do trabalho (em andamento, concluído, não concluído), quantidade de material de enchimento usado e custo do reparo (computado a partir das horas trabalhadas, número pessoas, material e equipamentos usados).
Finalmente, um arquivo de danos ocorridos é criado para guardar informações sobre danos registrados devido ao buraco, o qual inclui o nome do cidadão, endereço, número telefônico, tipo de dano e a quantia em reais a ser paga. O SIRCOB é um sistema on-line; as consultas devem ser feitas interativamente.
475
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação dos Objetos
476
NOMES CLASSIFICAÇÃO ANÁLISEdepartamento Unidade Organizacional Rejeitado: 1 e 2 Falhamsistema coisa Aceito: Todas se aplicamburacos coisa Aceito: Todas se aplicamnúmero de identificação coisa Rejeitado: 3 falhaendereço da rua coisa Rejeitado: 3 falhatamanho coisa Rejeitado: 3 falhalocalização coisa Rejeitado: 3 falhabairro bairro Rejeitado: 3 falhaprioridade coisa Rejeitado: 3 falhaordem de trabalho coisa Aceito: Todas se Aplicamnúmero de identificação da equipe coisa Rejeitado: 3 falhanúmero de pessoas coisa Rejeitado: 3 falhaequipamentos coisa Rejeitado: 3 falhahoras coisa Rejeitado: 3 falhaquantidade coisa Rejeitado: 3 falhacusto coisa Rejeitado: 3 falhaarquivo de danos estrutura Aceito: Todas se aplicamnome do cidadão coisa Rejeitado: 3 falhaEndereço coisa Rejeitado: 3 falhanúmero telefônico coisa Rejeitado: 3 falhatipo de dano coisa Rejeitado: 3 falha
2/2/2015
58
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação dos Atributos
477
NOMES CLASSIFICAÇÃO ANÁLISEdepartamento Unidade Organizacional Rejeitado: 1 e 2 Falhamsistema coisa Aceito: Todas se aplicamburacos coisa Aceito: Todas se aplicamnúmero de identificação coisa Rejeitado: 3 falha (ATRIBUTO)endereço da rua coisa Rejeitado: 3 falha (ATRIBUTO)tamanho coisa Rejeitado: 3 falha (ATRIBUTO)localização coisa Rejeitado: 3 falha (ATRIBUTO)bairro bairro Rejeitado: 3 falha (ATRIBUTO)prioridade coisa Rejeitado: 3 falha (ATRIBUTO)ordem de trabalho coisa Aceito: Todas se Aplicamnúmero de identificação da equipe coisa Rejeitado: 3 falha (ATRIBUTO)número de pessoas coisa Rejeitado: 3 falha (ATRIBUTO)equipamentos coisa Rejeitado: 3 falha (ATRIBUTO)horas coisa Rejeitado: 3 falha (ATRIBUTO)quantidade coisa Rejeitado: 3 falha (ATRIBUTO)
custo coisa Rejeitado: 3 falha (ATRIBUTO)arquivo de danos estrutura Aceito: Todas se aplicamnome do cidadão coisa Rejeitado: 3 falha (ATRIBUTO)Endereço coisa Rejeitado: 3 falha (ATRIBUTO)número telefônico coisa Rejeitado: 3 falha (ATRIBUTO)tipo de dano coisa Rejeitado: 3 falha (ATRIBUTO)
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificando Classes e Atributos Além dos objetos mostrados a seguir que são identificados diretamente
a partir da especificação do sistema outros objetos podem ser necessários dependendo de como o sistema será construído. (Ex.: Equipe; Trabalhador; etc.)
478
class Classes
Sistema
Buraco
- identificador- endereco- tamanho- localizacao- bairro- prioridade
+ metodos() : void
OrdemTrabalho
- localizacao- tamanho- equipe- equipamentos- horas- status- quantidadeMaterial- custo
+ metodos() : void
Dano
- cidadao- endereco- telefone- tipo- quantia
+ metodos() : void
Equipe
- numeroIdentificacao
+ metodos() : void
2/2/2015
59
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificando os Métodos Verbos destacados
registrados
Recebem
Armazenados
Associados
Guardar
Consultar
Outras operações serão necessárias para que o sistema funcione corretamente
479
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos (OOA)Projeto Orientado a Objetos (OOD) As técnicas tradicionais (Análise e Projeto Estruturado) não são
adequadas para o desenvolvimento de software utilizando a orientação à objetos.
A utilização do orientação à Objetos solicita uma nova forma de abstrair e entender o problema.
A linguagem UML é um padrão de diagramação para visualizar os resultados da análise e projeto orientados à objetos
480
2/2/2015
60
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos (OOA)Projeto Orientado a Objetos (OOD) Exemplo
O conceito “Livro” em um sistema de biblioteca
481
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) Objetivo básico
Identificar classes a partir das quais objetos serão representados como instâncias
Envolve as seguintes tarefas Identificação de Objetos
Especificação de Atributos
Definição de métodos
Comunicações entre objetos
482
2/2/2015
61
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) IDENTIFICAÇÃO DE OBJETOS
Entidades externas (Outros sistemas; dispositivos;Pessoas)
Coisas ligadas ao domínio do problema (Relatórios;Displays;…)
Ocorrências ou Eventos (Conclusão de um movimento;Alarme disparado; Clique do mouse; etc.)
Papéis ou funções (Engenheiro; Gerente; Vendedor) desempenhados por pessoas
Unidades organizacionais (Grupo; Equipe;…)
Lugares (Piso de fábrica; área de descarga)
Estruturas (Sensores; veículos de quatro rodas;…)
483
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) IDENTIFICAÇÃO DE OBJETOS – CRITÉRIOS
1. RETENÇÃO DE INFORMAÇÃO – Objeto deve guardar informação que será utilizada pelo sistema
2. SERVIÇOS NECESSÁRIOS – Conjunto de operações identificáveis que podem mudar o valor de seus atributos
3. MÚLTIPLOS ATRIBUTOS – Objeto deve conter mais de um atributo
4. ATRIBUTOS COMUNS – Conjunto de atributos deve ser aplicado a todos os objetos
5. OPERAÇÕES COMUNS – Conjunto de operações devem ser aplicáveis a todos os objetos.
6. REQUISITOS ESSENCIAIS – Entidades externas que aparecem no espaço problema que consomem e/ou produzem informação
484
2/2/2015
62
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA) Em uma especificação:
NOMES são potenciais objetos (e classes)
VERBOS são potenciais métodos
A regra acima deve ser utilizada apenas como referência.
O entendimento do contexto, das necessidades do usuário são fundamentais para classificar possíveis objetos e métodos
485
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)Exemplo Especificação
O software SafeHome possibilita que o dono da casa configure o sistema de segurança quando ele for instalado, monitora todos os sensores ligados ao sistema de segurança e interage com o dono da casa através de um teclado (key pad) e teclas de função contidas no painel de controle do SafeHome.
Durante a instalação o painel de controle é usado para “programar” e configurar o sistema. A cada sensor é atribuído um número e um tipo, uma senha mestra é programada para armar e desarmar o sistema e números telefônicos são introduzidos para serem discados quando ocorrer um evento sensor.
Quando um evento sensor é sentido pelo software, ele dispara um alarme sonoro ligado ao sistema. Após um tempo de espera, que é especificado pelo dono da casa durante as atividades de configuração do sistema, o software disca um número telefônico do serviço de monitoração, oferece informações sobre o local, registrando a natureza do evento que foi detectado. O número será novamente discado a 20 segundos até que a ligação telefônica seja completada.
Todas as interações com o SafeHome são gerenciadas por um subsistema de interação com o usuário, que lê a entrada fornecida através do teclado e das chaves de função, exibe mensagens de prompting e informações sobre o status do sistema no mostrador de cristal líquido (LCD). A interação com o teclado assume a seguinte forma...
486
2/2/2015
63
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)Exemplo Especificação
O software SafeHome possibilita que o dono da casa configure o sistema de segurançaquando ele for instalado, monitora todos os sensores ligados ao sistema de segurança e interage com o dono da casa através de um teclado (key pad) e teclas de funçãocontidas no painel de controle do SafeHome.
Durante a instalação o painel de controle é usado para “programar” e configurar o sistema. A cada sensor é atribuído um número e um tipo, uma senha mestra é programada para armar e desarmar o sistema e números telefônicos são introduzidospara serem discados quando ocorrer um evento sensor.
Quando um evento sensor é sentido pelo software, ele dispara um alarme sonoro ligado ao sistema. Após um tempo de espera, que é especificado pelo dono da casa durante as atividades de configuração do sistema, o software disca um número telefônico do serviço de monitoração, oferece informações sobre o local, registrando a natureza do eventoque foi detectado. O número será novamente discado a 20 segundos até que a ligação telefônica seja completada.
Todas as interações com o SafeHome são gerenciadas por um subsistema de interaçãocom o usuário, que lê a entrada fornecida através do teclado e das chaves de função, exibe mensagens de prompting e informações sobre o status do sistema no mostrador de cristal líquido (LCD). A interação com o teclado assume a seguinte forma...
487
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)
488
NOME CRITÉRIOdono da casa Papel ou entidade externasistema de segurança Coisasensores Entidade externateclado Entidade externateclas de função Entidade externapainel de controle Entidade externanúmero Atributo do sensorTipo Atributo do sensorsenha mestra Coisa
números telefônicos Coisaevento sensor Ocorrênciaalarme sonoro Entidade externatempo de espera Atributo do sistemaServiço de monitoração Unidade Organizacional ou Ent. Externainformações sobre o local Atributo do sistemanatureza do evento Atributo do sistemasubsistema Entidade externaentrada Entidade externachaves de função Entidade externamensagens Entidade externamostrador de cristal líquido Entidade externa
2/2/2015
64
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)NOME CRITÉRIO
dono da casa Rejeitado: 1 e 2 falham embora 6 se apliquesistema de segurança Aceito: Todas se aplicam
sensores Aceito: Todas se aplicamteclado Aceito: Todas se aplicamteclas de função Aceito: Todas se aplicampainel de controle Aceito: Todas se aplicam
número Rejeitado: 3 falhaTipo Rejeitado: 3 falhasenha mestra Rejeitado: 3 falhanúmeros telefônicos Rejeitado: 3 falha
evento sensor Aceito: Todas se aplicamalarme sonoro Aceito: 2, 3, 4, 5 e 6tempo de espera Rejeitado: 3 falhaServiço de monitoração Rejeitado: 1 e 2 falham embora 6 se aplique
informações sobre o local Rejeitado: 3 falhanatureza do evento Rejeitado: 3 falhasubsistema Aceito: Todas se aplicamentrada Rejeitado: 3 falha
chaves de função Aceito: Todas se aplicammensagens Aceito: Todas se aplicammostrador de cristal líquido Aceito: Todas se aplicam
489
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação de Objetos Os objetos do painel de controle serão considerados separadamente.
Os objetos abaixo são o ponto de partida para o desenvolvimento do sistema
Objetos ainda não possuem atributos e métodos
490
class Classes
Sistema
- atributos
+ metodos() : void
PainelControle
- atributos
+ metodos() : void
Sensor
- atributos
+ metodos() : void
Ev entoSensor
- atributos
+ metodos() : void
AlarmeSonoro
- atributos
+ metodos() : void
2/2/2015
65
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Especificação de Atributos
491
Necessário estudar e analisar a descrição do sistema
Pergunta Importante – “Quais informações definem este objeto?”
class Classes
Sistema
- senhaMestra- tempoEspera- numerosTelefonicos- informacoesLocal- naturezaEvento
+ metodos() : void
PainelControle
- atributos
+ metodos() : void
Sensor
- tipo- numero
+ metodos() : void
Ev entoSensor
- atributos
+ metodos() : void
AlarmeSonoro
- atributos
+ metodos() : void
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Definição dos Métodos Necessário estudar e analisar a descrição do sistema
Verbos são potenciais operações
492
class Classes
Sistema
- senhaMestra- tempoEspera- numerosTelefonicos- informacoesLocal- naturezaEvento
+ programar() : void+ armar() : void+ desarmar() : void+ monitorar() : void+ dispararAlarme() : void+ discar() : void
Configure sentido
Instalado dispara
Monitora especificado
Ligados configuração
Interage disca
Instalação registrando
“programar” detectado
configurar Discado
programada ligação
armar interações
desarmar gerenciadas
introduzidos interação
serem discados lê
ocorrer fornecida
exibe
2/2/2015
66
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)O departamento de obras públicas da cidade de Uberlândia decidiu desenvolver um sistema de computador para rastreamento e conserto de buracos de rua (SIRCOB).
À medida que são registrados buracos de rua, eles recebem um número de identificação e são armazenados de acordo com o endereço da rua, tamanho (numa escala de 0 a 10), localização (no meio dar rua; na calçada; etc.), bairro (determinado a partir do endereço da rua) e prioridade de reparo (determinada a partir do tamanho do buraco).
Dados de ordem de trabalho são associados a cada buraco, e eles incluem localização e tamanho do buraco, número de identificação da equipe de reparos, número de pessoas na equipe, equipamentos designados, horas aplicadas ao reparo, status do trabalho (em andamento, concluído, não concluído), quantidade de material de enchimento usado e custo do reparo (computado a partir das horas trabalhadas, número pessoas, material e equipamentos usados).
Finalmente, um arquivo de danos ocorridos é criado para guardar informações sobre danos registrados devido ao buraco, o qual inclui o nome do cidadão, endereço, número telefônico, tipo de dano e a quantia em reais a ser paga. O SIRCOB é um sistema on-line; as consultas devem ser feitas interativamente.
493
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Análise Orientada a Objetos(OOA)O departamento de obras públicas da cidade de Uberlândia decidiu desenvolver um sistema de computador para rastreamento e conserto de buracos de rua (SIRCOB).
À medida que são registrados buracos de rua, eles recebem um número de identificaçãoe são armazenados de acordo com o endereço da rua, tamanho (numa escala de 0 a 10), localização (no meio dar rua; na calçada; etc.), bairro (determinado a partir do endereço da rua) e prioridade de reparo (determinada a partir do tamanho do buraco).
Dados de ordem de trabalho são associados a cada buraco, e eles incluem localização e tamanho do buraco, número de identificação da equipe de reparos, número de pessoas na equipe, equipamentos designados, horas aplicadas ao reparo, status do trabalho (em andamento, concluído, não concluído), quantidade de material de enchimento usado e custo do reparo (computado a partir das horas trabalhadas, número pessoas, material e equipamentos usados).
Finalmente, um arquivo de danos ocorridos é criado para guardar informações sobre danos registrados devido ao buraco, o qual inclui o nome do cidadão, endereço, número telefônico, tipo de dano e a quantia em reais a ser paga. O SIRCOB é um sistema on-line; as consultas devem ser feitas interativamente.
494
2/2/2015
67
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação dos Objetos
495
NOMES CLASSIFICAÇÃO ANÁLISEdepartamento Unidade Organizacional Rejeitado: 1 e 2 Falhamsistema coisa Aceito: Todas se aplicamburacos coisa Aceito: Todas se aplicamnúmero de identificação coisa Rejeitado: 3 falhaendereço da rua coisa Rejeitado: 3 falhatamanho coisa Rejeitado: 3 falhalocalização coisa Rejeitado: 3 falhabairro bairro Rejeitado: 3 falhaprioridade coisa Rejeitado: 3 falhaordem de trabalho coisa Aceito: Todas se Aplicamnúmero de identificação da equipe coisa Rejeitado: 3 falhanúmero de pessoas coisa Rejeitado: 3 falhaequipamentos coisa Rejeitado: 3 falhahoras coisa Rejeitado: 3 falhaquantidade coisa Rejeitado: 3 falhacusto coisa Rejeitado: 3 falhaarquivo de danos estrutura Aceito: Todas se aplicamnome do cidadão coisa Rejeitado: 3 falhaEndereço coisa Rejeitado: 3 falhanúmero telefônico coisa Rejeitado: 3 falhatipo de dano coisa Rejeitado: 3 falha
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificação dos Atributos
496
NOMES CLASSIFICAÇÃO ANÁLISEdepartamento Unidade Organizacional Rejeitado: 1 e 2 Falhamsistema coisa Aceito: Todas se aplicamburacos coisa Aceito: Todas se aplicamnúmero de identificação coisa Rejeitado: 3 falha (ATRIBUTO)endereço da rua coisa Rejeitado: 3 falha (ATRIBUTO)tamanho coisa Rejeitado: 3 falha (ATRIBUTO)localização coisa Rejeitado: 3 falha (ATRIBUTO)bairro bairro Rejeitado: 3 falha (ATRIBUTO)prioridade coisa Rejeitado: 3 falha (ATRIBUTO)
ordem de trabalho coisa Aceito: Todas se Aplicamnúmero de identificação da equipe coisa Rejeitado: 3 falha (ATRIBUTO)número de pessoas coisa Rejeitado: 3 falha (ATRIBUTO)equipamentos coisa Rejeitado: 3 falha (ATRIBUTO)horas coisa Rejeitado: 3 falha (ATRIBUTO)quantidade coisa Rejeitado: 3 falha (ATRIBUTO)custo coisa Rejeitado: 3 falha (ATRIBUTO)arquivo de danos estrutura Aceito: Todas se aplicamnome do cidadão coisa Rejeitado: 3 falha (ATRIBUTO)Endereço coisa Rejeitado: 3 falha (ATRIBUTO)número telefônico coisa Rejeitado: 3 falha (ATRIBUTO)tipo de dano coisa Rejeitado: 3 falha (ATRIBUTO)
2/2/2015
68
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificando Classes e Atributos Além dos objetos mostrados a seguir que são identificados diretamente
a partir da especificação do sistema outros objetos podem ser necessários dependendo de como o sistema será construído. (Ex.: Equipe; Trabalhador; etc.)
497
class Classes
Sistema
Buraco
- identificador- endereco- tamanho- localizacao- bairro- prioridade
+ metodos() : void
OrdemTrabalho
- localizacao- tamanho- equipe- equipamentos- horas- status- quantidadeMaterial- custo
+ metodos() : void
Dano
- cidadao- endereco- telefone- tipo- quantia
+ metodos() : void
Equipe
- numeroIdentificacao
+ metodos() : void
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Identificando os Métodos Verbos destacados
registrados
Recebem
Armazenados
Associados
Guardar
Consultar
Outras operações serão necessárias para que o sistema funcione corretamente
498
2/2/2015
69
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas Um diagrama é a apresentação gráfica de um conjunto de elementos,
onde os vértices são ITENS e os arcos RELACIONAMENTOS
UML 2.0 possui os seguintes diagramas: Diagrama de Classes (Class Diagram)
Diagrama de Objetos (Object Diagram)
Diagrama de Componente (Component Diagram)
Diagrama de Implantação (Deployment Diagram)
Diagrama de Composição (Composite Struture Diagram)
Diagrama de Pacotes (Package Diagram)
Diagrama de Caso de Uso (Use Case)
Diagrama de Seqüência (Sequence Diagram)
Diagrama de Comunicação (Communication Diagram)
Diagrama de Atividade (Activity Diagram)
Diagrama de Estados (State Machine Diagram)
Diagrama de Interação (Interaction Overview Diagram)
Diagrama de Tempo (Timing Diagram)
499
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas Os diagramas da UML podem ser divididos em dois grandes
grupos: DIAGRAMAS ESTRUTURAIS e DIAGRAMAS COMPORTAMENTAIS
DIAGRAMA ESTRUTURAIS Permitem modelar os aspectos estáticos de um sistema.
DIAGRAMA COMPORTAMENTAIS Permitem modelar os aspectos dinâmicos de um sistema.
Os aspectos dinâmicos são as partes do sistema que sofrem alteração durante a utilização do sistema
500
2/2/2015
70
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas Estruturais Diagrama de Classes (Class Diagram)
Diagrama de Objetos (Object Diagram)
Diagrama de Componente (Component Diagram)
Diagrama de Implantação (Deployment Diagram)
Diagrama de Estrutura Composta (Composite Struture Diagram)
Diagrama de Pacotes (Package Diagram)
501
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas Comportamentais Diagrama de Caso de Uso (Use Case)
Diagrama de Seqüência (Sequence Diagram)
Diagrama de Comunicação (Communication Diagram)
Diagrama de Atividade (Activity Diagram)
Diagrama de Estados (State Machine Diagram)
Diagrama de Geral Interação (Interaction Overview Diagram)
Diagrama de Tempo (Timing Diagram)
502
2/2/2015
71
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Este diagrama representa um conjunto de casos de uso, atores e seus
relacionamento.
Permitem visualizar o comportamento de um sistema, subsistema ou classe a fim de que desenvolvedores e usuários possam se comunicar.
Usos Modelagem do Contexto do Sistema e Modelagem dos Requisitos de um
Sistema
Modelagem do Contexto do Sistema Mostra o sistema considerando os atores que se encontram de fora do
mesmo e sua ligação com o sistema.
Este diagrama é semelhante a um DFD de contexto.
Modelagem dos Requisitos do Sistema Neste caso o diagrama irá representar um requisito do projeto.
A preocupação não é “como” o sistema faz mas “o que” o sistema faz. Este tipo de diagrama está ligado à fase de ANÁLISE de cada uma das iterações.
503
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Normalmente os casos de uso possuem uma descrição que contém uma
combinação de nome/verbo Exemplo: Criar Conta; Realizar Venda; Efetuar Pedido
Os atores são aqueles que interagem com o caso de uso Exemplos: Pessoas; Equipamentos; Outros Sistemas;
Casos de uso definem o escopo do sistema, facilitando o entendimento da complexidade e tamanho do mesmo.
A “soma” dos casos de uso deve ser igual ao sistema como um todo. Desta forma o que não é mostrado como caso de uso, não é parte do sistema
O caso de uso descreve “o que” um sistema (ou subsistema) faz, mas não descreve “como” isto é feito
504
2/2/2015
72
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Os casos de uso podem ser organizados segundo suas
características: Casos de Alto Risco
Casos básicos da Arquitetura
Casos que utilizam amplas funcionalidades do sistema
Casos de uso que necessitam de pesquisa ou que utilizam novas tecnologias
Casos de Uso Acessórios
A partir da classificação dos casos de uso as iterações devem ser planejadas, com o foco nos casos de uso de maior prioridade, conforme a classificação realizada
505
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Os casos de uso são utilizados para a comunicação entre o
desenvolvedor e os usuários, devido a sua simplicidade
Os caso de uso são a base do desenvolvimento, pois podem ser utilizados para o planejamento de todas as fases do desenvolvimento e de cada uma das iterações.
Os casos de uso podem ser utilizados como base a criação de testes do sistema
Pode-se também utilizá-los como base para a criação da documentação para o sistema.
506
2/2/2015
73
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Complexidade
Um caso de uso não deve ser complexo
Basicamente o caso de uso deve: “Satisfazer o objetivo do Ator”
Esta regra é valida principalmente nas etapas iniciais
Posteriormente, o caso de uso de pode ser decomposto e detalhado nas etapas seguintes
507
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso Complexidade
Considere uma série de iterações entre o usuário e um sistema para saques bancários: Inserir Cartão
Entrar com a Senha
Selecionar o Valor a ser sacado
Confirmar o valor a ser sacado
Remover o Cartão
Nas etapas iniciais não é necessário um caso de uso com tantos detalhes.
A complexidade será tratada nas fases seguintes, inclusive,podendo ser utilizados outros diagramas
O ideal é que o diagrama acima tenha apenas um caso de uso: “Realizar Saque”
508
2/2/2015
74
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Relacionamentos Os seguintes relacionamentos são utilizados no diagrama de
casos de uso Associação
Generalização
Extensão
Inclusão
509
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Relacionamentos Associação
Representa a ligação entre um ator e um caso de uso
O ator pode ser um outro sistema, um usuário, um dispositivo de hardware; etc.
510
2/2/2015
75
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Relacionamentos Generalização
A generalização indica que o caso de uso filho herda o comportamento do caso de uso pai
Porém o caso de uso filho contém terá comportamentos que sobrescrevem aqueles do pai ou mesmo comportamentos particulares.
A generalização pode ser aplicada tanto ao caso de uso como ao ator.
511
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Relacionamentos Inclusão
Na relação de inclusão um caso de uso, inclui em seu comportamento, o comportamento de outro caso de uso
A inclusão permite que o caso de uso se complemente adicionando o comportamento do caso de uso incluído
O caso de uso depende do caso de uso incluído para efetuar suas operações
512
2/2/2015
76
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Relacionamentos Extensão
A extensão de um caso de uso é utilizada para modelar um comportamento opcional
Desta forma separa-se o comportamento obrigatório do comportamento opcional
Os pontos em que o caso de uso pode ser estendido são conhecidos como “pontos de extensão” e devem ser bem definidos
Através da extensão é possível adicionar diferentes comportamentos a um caso de uso
513
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Exemplo Diagrama de Contexto
Caso de uso que mostra a visão geral de um sistema com os seus principais casos de uso e atores envolvidos
Os casos de usos estão em pacotes.
Alguns atores como TEF, SPC e fornecedor na realidade representam outros sistemas
514
2/2/2015
77
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisCaso de Uso - Exemplo Caso de uso que mostra uma
parte do sistema anterior em maiores detalhes
O caso de uso principal –“Vender Produto” foi um pouco detalhado indicando diferentes operações de venda que podem ser realizadas e ainda a possível necessidade de atualizar o cadastro de cliente no momento da venda.
515
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Considerando o sistema que você está trabalhando atualmente criar um
diagrama de caso de uso, utilizando os seguintes conceitos: Associação; Generalização; Inclusão e Extensão
Considere um sistema na Web que será responsável por gerenciar contatos. Além de cadastrar os contatos é possível; consultar os contatos; alterar suas
informações; imprimir seus dados e finalmente enviar e-mail para um determinado contato
516
2/2/2015
78
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses Mostra um conjunto de classes, interfaces e colaborações
bem como seus relacionamentos
O diagrama de classes representa aspectos estruturais de um software
No uso da Orientação a Objetos em última análise o objetivo das etapas concepção e Elaboração é estabelecer quais as classes serão criadas, quais seus atributos e os seus métodos, além dos relacionamentos entre estas várias classes.
517
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses A medida que um software é modelado as classes necessárias bem
como suas características como atributos e métodos vão sendo detalhadas.
Existem classes que estão ligadas ao domínio do problema. Neste caso as classes representam objetos existentes no mundo real e ligados a um software em questão.
Exemplos: Pedido; Cliente; Produto; Empregado; Paciente; Curso; etc.
Existem classe que estão ligadas ao domínio da solução e que existem para representar objetos existentes do ponto de vista lógico para a construção de um software.
Exemplos: Janela; Fila; Lista; Pilha; Aplicacao; Menu; Form; Window; Vector; Conexao; HttpServlet; etc.
518
2/2/2015
79
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Usos O diagrama de classes pode ser representado em vários níveis de detalhamento
Diagrama de Classes em nível de Modelamento do Negócio e Especificação Requisitos Neste caso o diagrama contém poucos detalhes sobre cada classe, visto que as
características do sistema, seu escopo e requisitos ainda estão sendo especificados
Diagrama de Classes em nível de Análise Contém mais detalhes sobre as classes como seus atributos e alguns métodos
Em geral representa apenas classes ligadas ao domínio do problema
Diagrama de Classes em Nível de Projeto Contém todos os detalhes referentes aos atributos e ao métodos como seu tipo, já
mapeado em alguma linguagem de programação, os parâmetros de cada método e seu tipos de retorno
Contém classes ligadas tanto ao domínio do problema quanto ao domínio da solução.
519
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Usos USOS: Modelamento do Vocabulário; Modelamento de colaborações;
Modelamento lógico do banco de dados Modelamento do Vocabulário
O diagrama de classes pode ser utilizado para a modelagem do vocabulário do sistema que consiste nas classes, seus atributos e operações
Modelamento de Colaborações
Um colaboração é um conjunto de classes que realizam determinados papéis. Através do diagrama de classes é possível mostrar a sua parte estrutural
Modelamento Lógico do Banco de Dados
Os diagramas de classes da UML são um superconjunto dos diagramas de entidade-relacionamento (E-R). Os diagramas de classes vão um pouco além, permitindo ainda a modelagem de comportamentos, que poderão ser tornar procedimentos armazenados (stored procedures)
Um mesmo aspecto do sistema pode ser representado por diferentes diagramas de classe.
Exemplo: um diagrama pode privilegiar apenas os relacionamentos de herança, outro as dependências entre as classe e outro ainda as associações entre as mesmas
520
2/2/2015
80
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Exemplos Diagrama de Classe em nível de Especificação de
Requisitos
521
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Exemplos Diagrama de Classe em nível de Análise
522
2/2/2015
81
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Exemplos Diagrama de Classe em nível de Projeto
523
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas EstruturaisClasses - Exemplos Diagrama de Classe em nível de Projeto
524
2/2/2015
82
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Considere um sistema na Web que será responsável por gerenciar
contatos, conforme caso de uso anterior Além de cadastrar os contatos é possível; consultar os contatos; alterar suas
informações; imprimir seus dados e finalmente enviar e-mail para um determinado contato
Informações adicionais Um usuário pode possuir vários contatos e o sistema deverá manter os dados
de cada usuário individualmente
Um contato pode possui até 4 diferentes endereços de e-mail e para cada e-mail está associado um tipo (comercial; particular; prioritário; final de semana; etc.)
As informações associadas ao contato são as seguintes: Nome; Telefone Principal; Email
Construir os diagramas de classe em nível de análise
Construir um diagrama de classe que representa a modelagem de dados
525
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Informações adicionais x Representação em UML
1. Um usuário pode possuir vários contatos e o sistema deverá manter os dados de cada usuário individualmente
2. Um contato pode possui vários endereços de e-mail e para cada e-mail está associado um tipo (comercial; particular; prioritário; final de semana; etc.)
3. As informações associadas ao contato são as seguintes: Nome; Telefone Principal; Email
526
class Contatos-Class-Analysis
Usuario Contato
1 0..*
Regra 1
Regra 2
Regra 3
class Contatos-Class-...
- tipo: String- email: String
Contato
1
1..*
class Contatos-Class-An...
Contato
- nome: String- telefone: String- email: Email
2/2/2015
83
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Diagramas de classe em nível de análise
1. Um usuário pode possuir vários contatos e o sistema deverá manter os dados de cada usuário individualmente
2. Um contato pode possui vários endereços de e-mail e para cada e-mail está associado um tipo (comercial; particular; prioritário; final de semana; etc.)
3. As informações associadas ao contato são as seguintes: Nome; Telefone Principal; Email
527
class Contatos-Class-Analysis
Usuario
- login: String- senha: String
+ login()
- tipo: String- email: String
Contato
- nome: String- telefone: String- email: Email
+ create() : void+ read() : void+ update() : void+ delete() : void+ sendMail() : void
1 0..* 1 1..*
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Diagrama de classe que representa a modelagem de dados
528
class Contatos-Class-DataModel
TUsuario
«column»*PK id: ROWID login: VARCHAR2(30) senha: VARCHAR2(15)
«PK»+ PK_TUsuario(ROWID)
TContato
«column»*PK id: ROWID FK idUser: ROWID nome: VARCHAR2(50) telefone: VARCHAR2(15)
«FK»+ FK_TContato_TUsuario(ROWID)
«PK»+ PK_TContato(ROWID)
TEmail
«column»*PK id: ROWID FK idContact: ROWID tipo: VARCHAR2(30) email: VARCHAR2(50)
«FK»+ FK_TEmail_TContato(ROWID)
«PK»+ PK_TEmail(ROWID)
+FK_TEmail_TContato
0..*
(idContact = id)
«FK»
+PK_TContato
1
+FK_TContato_TUsuario
0..*
(idUser = id)
«FK»
+PK_TUsuario
1
2/2/2015
84
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Seqüência Este diagrama mostra as interações entre um conjunto de
objetos e seus relacionamentos, incluindo as mensagens que serão trocadas entre os mesmos.
Consiste de uma tabela que mostra objetos distribuídos no eixo X e mensagens em ordem crescente de tempo no eixo Y.
Os Diagramas de Seqüência são conhecidos também como Diagramas de Interação e a partir de um diagrama de seqüência é possível obter o diagrama de comunicação a ele relacionado
529
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Seqüência - Exemplo Diagrama de Seqüência em
nível de modelamento de negócio e especificação de requisitos
Mostra um fluxo de trabalho, indicando as mensagens trocadas no tempo.
Neste caso as mensagens ainda estão em um alto nível de abstração
530
2/2/2015
85
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Seqüência - Exemplo Diagrama de Seqüência em
nível implementação
Realiza o modelamento de um método (ou operação)
Neste caso as mensagens ainda estão em um baixo nível de abstração, sendo que o diagrama está muito próximo do código-fonte
531
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Comunicação Este diagrama mostra as interações entre um conjunto de
objetos e seus relacionamentos, incluindo as mensagens que serão trocadas entre os mesmos, considerando a ordem seqüencial que estas mensagens ocorrem entre os vários objetos.
Os Diagramas de Comunicação são conhecidos também como Diagramas de Interação e a partir de um diagrama de comunicação é possível obter o diagrama de seqüência a ele relacionado
USOS: Modelagem de Fluxos de Controle Por Organização
532
2/2/2015
86
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Comunicação - Exemplo Diagrama de comunicação em nível de implementação
Este diagrama é análogo ao diagrama de seqüência apresentado anteriormente
533
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades Este diagrama mostra o fluxo de uma atividade para outra.
Uma atividade é uma execução em andamento em uma máquina de estados.
Um diagrama de atividades pode ser decomposto em outro diagrama de atividades e além disso as atividades podem conter operações de alto nível.
A utilização das “raias de natação” são úteis para mostrar processos de negócio.
USOS: Modelagem de Fluxo de Trabalho (nível especificação); Modelagem de uma Operação (nível projeto);
534
2/2/2015
87
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades Modelagem do Fluxo de Trabalho
Através do diagrama é possível modelar os processo de negócios e regras, considerando o relacionamento entre vários sistemas e atores
É possível especificar e detalhar regras de negócios em sistemas, que muitas das vezes podem ser complexas, principalmente em sistemas de missão crítica e corporativos
Pode ser utilizado para modelar os fluxos de um caso de uso
Modelagem de uma Operação Neste caso o diagrama de atividades é semelhante a um fluxograma das ações de uma
operação.
A vantagem neste caso é que todos os elementos apresentados neste diagramas são semanticamente relacionados com outros diagramas.
535
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades - Exemplo Diagrama de Atividades em alto
nível Pode ser utilizado para detalhar aspectos
de um caso de uso
Desta forma o diagrama auxiliará no entendimento do caso de uso e nas atividades que serão realizadas
536
2/2/2015
88
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades - Exemplo Diagrama Atividades em nível de implementação
Neste caso a atividade representa a chamada de métodos
Pode ser utilizado para representar aspectos do código-fonte
537
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades - Exemplo Diagrama Atividades em nível de Especificação
Os diagramas abaixo mostram como podem ser utilizados sinais em um diagrama de atividade.
Um sinal pode ser enviado, recebido, ou ainda ser um sinal que indica algum momento no tempo
As junções (joint) e bifurcações (fork) podem ter associadas às mesmas critérios (joinspec) indicando quando a junção ou bifurcação pode acontecer
538
2/2/2015
89
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades - Ações Modelamento de Sinais (Estado de Ação)
539
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades – Reg. Expansão Regiões de Expansão
Indicam atividades que serão executadas para cada item de uma coleção de valores ou objetos
A execução pode ser:
iterativa(iteractive) – Execução das atividades são feitas de forma seqüencial
Paralela (parallel) – Execução das atividades podem ocorrer de forma concorrente
Fluxo (Stream) – Execução das atividades acontece de forma contínua
540
2/2/2015
90
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
UML – Diagramas ComportamentaisDiagrama de Atividades - Sinais É possível indicar a existência de parâmetros de entrada e de saída em uma
atividade
Além disso é possível indicar nós de expansão que representam uma coleção como parâmetro de entrada e/ou saída de uma região de expansão ou atividade. Esta coleção será então utilizada por outra atividade
Finalmente uma atividade pode possuir um nó objeto, também chamado pin. O Pin representa um objeto que é enviado de uma atividade para outra e consiste de uma outra forma de representar o fluxo de objeto
541
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos... Considere um sistema na Web que será responsável por gerenciar contatos,
conforme caso de uso anterior Além de cadastrar os contatos é possível; consultar os contatos; alterar suas
informações; imprimir seus dados e finalmente enviar e-mail para um determinado contato
Informações adicionais Um usuário pode possuir vários contatos e o sistema deverá manter os dados de cada
usuário individualmente
Um contato pode possui até 4 diferentes endereços de e-mail e para cada e-mail está associado um tipo (comercial; particular; prioritário; final de semana; etc.)
As informações associadas ao contato são as seguintes: Nome; Telefone Principal; Email
Construir os diagramas de classe em nível de análise
Construir um diagrama de classe que representa a modelagem de dados
Construir os diagramas de atividade. Cada atividade será então realizada por um diagrama de seqüência, neste caso o interesse são nos objetos envolvidos
542
2/2/2015
91
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Praticando seus conceitos...Sistema de Pedidos Informações Gerais
Existem 3 níveis de usuário: Supervisor; Gerente e Diretor, com acesso a diferentes funcionalidades
Supervisor pode cadastrar pedidos. O gerente aprova pedidos deste que o mesmo não ultrapasse o valor total associado ao cliente para cada pedido. Caso ultrapasse o diretor é o responsável pela aprovação.
Um pedido é associado a um cliente e o mesmo contém os itens de pedido. Cada item de pedido contém: Produto; Quantidade; Valor total.
Caso não seja aprovado o pedido poderá também ser cancelado.
Após realizar o login na página principal são mostradas os pedidos que necessitam de aprovação.
Um supervisor tem sob sua responsabilidade um ou mais clientes.
Pede-se: Criar os Diagramas de Casos de Uso
Modelar as classes considerando os conceitos de: Interface; Polimorfismo; Sobrecarga
Construir os diagramas de atividade que demonstre os fluxos principais do sistema.
Criar o diagrama de seqüência para os fluxos de aprovação, levando em conta os objetos de negócio envolvidos.
543
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visões da Arquitetura Cenários (Scenarios view)
Apresenta uma visão próxima do usuário, descrevendo cenários de uso da aplicação
Normalmente é a primeira visão construída
Diagramas: Casos de Uso
Lógica (Logical View) Foco nas funcionalidades, normalmente dividida em subsistemas apresentando a estrutura (classes)
envolvidas
Diagramas: Classe, Pacotes
Processos (Process View) Foco em aspectos não funcionais e de comunicação entre os subsistemas da arquitetura
Diagramas: Atividade; Sequencia (diagramas comportamentais da UML)
Implementação (Deployment View) Útil para gestão de configuração
Apresenta pacotes e componentes que serão implantados
Diagramas: Componente; Pacotes
Física (Physical View) Consiste do mapeamento do software no hardware onde será implantado
Diagramas: Implantação
544
2/2/2015
92
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visões da ArquiteturaDiagramas UML
545
http://www.sparxsystems.com/downloads/whitepapers/FCGSS_US_WP_Applying_4+1_w_UML2.pdf
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Disciplinas x Artefatos Modelagem de Negócios
Documento de Visão
Caso de Uso (Contexto do Sistema)
Requisitos Especificação de Casos de Uso
Modelo de Domínio (Diagrama de Classes)
Análise e Projeto Visões do Projeto utilizando linguagem UML
Protótipos de Tela; Esquema de Banco de Dados; Integrações
Documento de Arquitetura de Software
Implementação
Testes Planos de Testes
Casos de Testes
Implantação
546
2/2/2015
93
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visão de Cenários(Scenarios view)
547
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visão Lógica(Logical View)
548
2/2/2015
94
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visão de Processos(Process View)
549
Engenharia de SoftwareProf. Flávio de Oliveira Silva, Ph.D.
Visão Implementação(Implementation View)
550