modelos de sistema - disciplinas.lia.ufc.br · chapter 7 slide 1 modelos de sistema slides do livro...

22
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Modelos de sistema Slides do Livro do Sommerville, 2000 Disponíveis em inglês em www.software-engin.com Traduzidos por Jacinta Pereira Graduando do Curso de Letras da UFC Alterados e Apresentados por Rossana Andrade Ph.D, SITE, University of Ottawa, Canadá Profa. Departamento de Computação, Centro de Ciências, Universidade Federal do Ceará [email protected] http://great.ufc.br ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 2 Modelos de sistema Descrições abstratas de sistemas cujos requisitos estão sendo analisados

Upload: voque

Post on 11-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1

Modelos de sistema

Slides do Livro do Sommerville, 2000Disponíveis em inglês em www.software-engin.com

Traduzidos por Jacinta PereiraGraduando do Curso de Letras da UFC

Alterados e Apresentados por Rossana AndradePh.D, SITE, University of Ottawa, Canadá

Profa. Departamento de Computação, Centro de Ciências,Universidade Federal do Ceará

[email protected]://great.ufc.br

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 2

Modelos de sistema� Descrições abstratas de sistemas cujos

requisitos estão sendo analisados

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 3

Objetivos

� Explicar porque o contexto de um sistema deve ser modelado como parte do processo ER

� Descrever modelagem de comportamento, de dados e de objetos

� Introduzir algumas das notações usadas na Linguagem de Modelagem Unificada (UML)

� Mostrar como áreas de trabalho CASE suportam modelagem de sistema

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 4

Tópicos abordados

� Modelos contextuais

� Modelos comportamentais� Modelos de dados

� Modelos de objeto� Áreas de trabalho CASE

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 5

Modelagem do sistema

� Modelagem do sistema auxilia o analista a entender a funcionalidade do sistema e os modelos são usados para se comunicar com os clientes

� Diferentes modelos apresentam o sistema de diferentes perspectivas• Perspectiva externa mostrando o contexto do sistema ou ambiente• Perspectiva comportamental mostrando o comportamento do sistema

• Perspectiva estrutural mostrando a arquitetura do sistema ou dosdados

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 6

Métodos estruturados

� Métodos estruturados incorporam modelagem do sistema como uma parte herdada do método

� Métodos definem um conjunto de modelos, um processo for derivar esses modelos e regras e diretrizes que devem ser aplicadas aos modelos

� Ferramentas CASE suportam modelagem de sistema como parte de um método estruturado

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 7

Fraquezas do método

� Não modelam requisitos não-funcionais do sistema

� Geralmente não informam se um método é ou não apropriado para um determinado problema

� Pode produzir muitos documentos� Os modelos de sistema são, às vezes, muito

detalhados e difíceis de serem entendidos pelos usuários

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 8

Tipos de modelo� Modelo de processamento de dados mostra como

os dados são processados em diferentes estágios� Modelo de Composição mostra como as entidades

são compostas de outras entidades� Modelo Arquitetural mostra os principais sub-

sistemas� Modelo de Classificação mostra entidades que

possuem características em comum� Modelo Estímulo/resposta mostra a reação do

sistema a determinados eventos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 9

Modelos contextuais

� Modelos contextuais são usados para ilustrar os limites de um sistema

� Preocupações sociais e organizacionais podem afetar a decisão de onde posicionar os limites do sistema

� Modelos arquiteturais mostram o sistema e sua relação com outros sistemas

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 10

O contexto de um sistema ATM

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 11

Modelos processuais

� Modelos processuais mostram o processo geral e os processos que são suportados sistema

� Modelos de fluxo de dados podem ser usados para mostrar os processos e o fluxo de informação de um processo para outro

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 12

Processo de aquisição de equipamentos

Get costestimates

Acceptdelivery ofequipment

Checkdelivered

items

Validatespecification

Specifyequipmentrequired

Choosesupplier

Placeequipment

order

Installequipment

Findsuppliers

Supplierdatabase

Acceptdelivered

equipment

Equipmentdatabase

Equipment

spec.Checked

spec.

Deliverynote

Deliverynote

Order

notification

Installationinstructions

Installationacceptance

Equipmentdetails

Checked andsigned order form

Orderdetails +

Blank orderform

Spec. +supplier +estima te

Supplier listEquipment

spec.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 13

Modelos comportamentais

� Modelos comportamentais são usados para descrever o comportamento geral de um sistema

� Dois tipos de modelos comportamentais são mostrados aqui• Modelos de processamento de dados que mostram como os dados

são processados a medida que se move pelo sistema

• Modelos de máquinas de estado que mostram como os sistemas respondem a eventos

� Ambos os modelos são requeridos para uma descrição do comportamento do sistema

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 14

Modelos de processamento de dados

� Diagramas de fluxo de dados são usados para modelar o processamento de dados do sistema

� Mostram os passos do processamento como fluxo de dados pelo sistema

� Parte intrínseca de muitos métodos de análise� Notação Simples e intuitiva que os usuários

podem entender� Mostra o processamento de dados de um

extremo a outro

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 15

DFD de um Processamento de pedido

Completeorder form

Orderdetails +

blank

order form

Valida teorder

Recordorder

Send tosupplier

Adjustavailablebudget

Budgetfile

Ordersfile

Completedorder form

Signedorder form

Signedorder form

Checked andsigned order

+ ordernotification

Orderamount

+ accountdetails

Signedorder form

Orderdetails

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 16

Diagramas de fluxo de dados (DFDs)

� DFDs modelam o sistema de uma perspectiva funcional

� Rastreando e documentando como os dados associados com um processo são úteis para o desenvolvimento de um entendimento geral do sistema

� Diagramas de fluxo de dados também pode ser usado para mostrar a troca de dados entre um sistema e outros sistemas em seu ambiente

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 17

DFD de um Conjunto de ferramentas CASE

Designeditor

Designcross checker

Designanalyser

Reportgenerator

Designdatabase

Code skeletongenerator

Designdatabase

Inputdesign

Validdesign

Checkeddesign

Designanalysis

Userreport

and

Referenced

designs

Checked

design Output

code

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 18

Modelos de máquina de estado

� Modelam o comportamento de um sistema em resposta a eventos internos e externos

� Mostram as respostas do sistema a estímulos, de forma que são geralmente utilizados para modelar sistemas em tempo real

� Modelos de máquina de estado mostram os estados do sistema como nós e eventos como arcos entre os nós. Quando um evento ocorre, o sistema muda de um estado para outro

� Diagramas de Estado são parte integrantes da UML

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 19

Modelo de microondasFull power

Enabled

do: operateoven

Fullpower

Halfpower

Halfpower

Fullpower

Number

TimerDooropen

Doorclosed

Doorclosed

Dooropen

Start

do: set power = 600

Half power

do: set power = 300

Set time

do: get numberexit: set time

Disabled

Operation

Timer

Cancel

Waiting

do: display time

Waiting

do: display time

do: display 'Ready'

do: display 'Waiting'

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 20

Descrição do estado de um forno microondas

Estado Descrição Em espera O forno está esperando por entradas. O display mostra

a hora atual. Meia potência A potência do forno está ajustada para 300 watts. O

display mostra ‘Meia potência’. Potência total A potência do forno está ajustada para 600 watts. O

display mostra ‘Potência total’. Ajustar tempo O tempo de cozimento é ajustado de acordo com o

valor colocado pelo usuário. O display mostra o tempo de cozimento selecionado e atualiza quando o tempo é determinado.

Desativado A operação do forno está desativada por segurança. A luz do interior do forno está acesa. O display mostra ‘Não está pronto’.

Ativado O forno está em operação. A luz do interior do forno está apagada. O display mostra ‘Pronto para cozinhar’.

Operação O forno está em operação. A luz do interior do forno está acesa. O Display mostra a contagem do timer. Ao completar o cozimento, um alarme soa por cinco segundos. A luz do forno está acesa. O display mostra ‘Cozimento completo’ enquanto o alarme soa.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 21

Estímulo do Microondas

Estímulos Descrição Média potência

O usuário pressionou o botão de media potência

Potência total O usuário pressionou o botão de potência total Timer O usuário pressionou um dos botões do timer Número O usuário pressionou um botão numérico Porta aberta A porta do forno não está fechada Porta fechada A porta do forno está fechada Iniciar O usuário pressionou o botão de iniciar Cancelar O usuário pressionou o botão de cancelar

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 22

Gráficos de estado

� Permitem a decomposição de um modelo em sub-modelos (ver slide seguinte)

� Uma breve descrição das ações é incluída em seguida ao ‘do’ em cada estado

� Pode ser complementada por tabelas descrevendo os estados e os estímulos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 23

Operação de forno de microondas

C o o k

d o : r u n g e n e r a t o r

D o n e

d o : b u z z e r o n f o r 5 s e c s.

W a it in g

A l a r m

d o : d i sp la y ev e n t

d o : c h e c ks ta tu s

C h ec k in g

T u rn ta b lef a u l t

E m i tt e rf a u l t

D i s ab le d

O K

T i m eo u t

T i m eO p e r a t i o n

D o o ro p e n

C a n c e l

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 24

Modelos de dados semânticos

� Utilizados para descrever a estrutura lógica dos dados processados pelo sistema

� Modelo de atributos relacionados a entidades estabelece as entidades no sistema, as relações entre essas entidades e seus atributos

� Amplamente usado em projetos de base de dados. Pode rapidamente ser implantado usando bases de dados relacionais

� Nenhuma notação específica fornecida no UML mas os objetos e associações podem ser usados

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 25

Modelo de projeto semântico de Software

Design

namedescriptionC-dateM-date

Link

nametype

Node

nametype

links

has-links

12

1 n

Label

nametexticon

has-labelshas-labels

1

n

1

n

has-linkshas-nodes is-a

1

n

1

n1

1

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 26

Dicionários de dados

� Dicionários de dados são listas de todos os nomes usados nos modelos de sistema. Também incluem descrições das entidades, relacionamentos e atributos

� Vantagens• Suporta gerenciamento de nomes e evita duplicação• Armazenagem de conhecimento organizacional conectando

análise, projeto e implementação

� Muitas áreas de trabalho CASE suportam dicionários de dados

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 27

Entradas de dicionários de dados

Nome Descrição Tipo Data Ter Rótulo

1:N relação entre entidades do tipo Nó ou Link e entidades do tipo Rótulo.

Relação

5.10.1998

Rótulo

Guarda informações estruturadas ou não-estruturadas sobre nós ou links. Rótulos são representados por um ícone (que pode ser uma caixa transparente) e o texto associado.

Entidade

8.12.1998

Link

A 1:1 relação entre entidades de projeto representada como nós. Links são digitados e podem ser nomeados.

Relação

8.12.1998

Nome (rótulo)

Cada rótulo tem um nome que identifica seu tipo. O nome deve ser único dentre o conjunto de rótulos utilizados em um projeto.

Atributo

8.12.1998

Nome (nó)

Cada nó possue um nome que deve ser único em um projeto. O nome pode conter até 64 caracteres.

Atributo

15.11.1998

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 28

Modelos de objeto

� Modelos de objeto descrevem o sistema em termos de classes de objetos

� Uma classe de objeto é uma abstração sobre um conjunto de objetos com atributos em comum e os serviços(operações) fornecidos por cada objeto

� Vários modelos de objetos podem ser produzidos• Modelos de herança

• Modelos de agregação

• Modelos de interação

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 29

Modelos de objetos

� Maneiras naturais de refletir entidades do mundo real manipuladas pelo sistema

� Entidades mais abstratas são mais difíceis de modelar usando esta abordagem

� A identificação de classes de objetos é reconhecida como um processo difícil que requer um denso entendimento do domínio da aplicação

� Classes de objetos que refletem entidades do domínio são reutilizáveis através dos sistemas

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 30

Modelos de herança

� Organiza as classes de objetos do domínio em uma hierarquia.

� Classes no topo da hierarquia refletem as características comuns de todas as classes

� Classes de objetos herdam os atributos e serviços de uma ou mais super-classes. Isso pode então ser especializado caso necessário

� O projeto de hierarquia de classes é um processo difícil caso a duplicação em diferentes ramos deva ser evitada

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 31

A linguagem de modelagem unificada (UML)

� Formulada pelo programadores de análises orientadas por objetos e métodos de projeto amplamente utilizados

� Tornou-se um padrão efetivo para modelagem orientada pelo objeto

� Notação• As classes de objetos são retângulos com o nome no alto, atributos na

seção do meio e operações na seção de base• As relações entre as classes de objetos (conhecidas com

associações) são mostradas como linhas ligando os objetos• Herança refere-se a uma generalização e é mostrada ‘de baixo para

cima’ ao invés de ‘de cima para baixo’ em uma hierarquia

Hierarquia de classes para biblioteca

Catalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

Book

YearIssue

Magazine

DirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published item

TitleMedium

Recorded item

Hierarquia de classe de usuário

NameAddressPhoneRegistration #

Library user

Register ()De-register ()

Affiliation

Reader

Items on loanMax. loans

Borrower

DepartmentDepartment phone

Staff

Major subjectHome address

Student

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 34

Herança múltipla

� Ao invés de herdar os atributos e serviços de uma única classe parente, um sistema que suporta herança múltipla permite que classes de objetos herdem de várias

� Pode levar a conflitos semânticos onde atributos/ serviços com o mesmo nome em diferentes super-classes tem semânticas diferentes

� Torna a reorganização da hierarquia de classes mais complexa

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 35

Herança múltipla

# Tapes

Talking book

AuthorEdition

Publication dateISBN

Book

SpeakerDurationRecording date

Voice recording

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 36

Agregação do objeto

� O modelo de agregação mostra como classes que são coleções são compostas de outras classes

� Similar relacionamento parcial em modelos de dados semânticos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 37

Agregação do objeto

Videotape

Tape ids.

Lecturenotes

Text

OHP slides

Slides

Assignment

Credits

Solutions

TextDiagrams

Exercises

#Problems Description

Course titleNumberYearInstructor

Study pack

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 38

Modelagem de comportamento de objeto

� Um modelo comportamental mostra as interações entre objetos para produzir algum comportamento do sistema em particular que está especificado como um caso de uso

� Diagramas de seqüência (ou diagramas de colaboração) no UML são usados para modelar a interação entre objetos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 39

Edição de itens eletrônicos

:Library User

Ecat:Catalog

Lookup

Issue

Display

:Library Item Lib1:NetServer

Issue licence

Accept licence

Compress

Deliver

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 40

Áreas de trabalho CASE

� Um conjunto coerente de ferramentas que é projetada para suportar atividades de processamento de softwares relacionados como análise, projeto ou teste

� As áreas de trabalho de análise e projeto suportam modelagem do sistema tanto durante a engenharia de requisitos quanto no projeto do sistema

� Essas áreas de trabalho podem suportar um método de projeto específico ou pode dar suporte para criar vários tipos diferentes de modelos de sistema

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 41

Uma análise e área de trabalho do projeto

Centralinformationrepository

Codegenerator

Querylanguagefacilities

Structureddiagramming

tools

Datadictionary

Reportgenerationfacilities

Design, analysisand checking

tools

Formscreation

tools

Import/exportfacilities

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 42

Análise de componentes da área de trabalho

� Editores de diagramas

� Análise de modelo e verificação de ferramentas� Repositório e linguagem de consulta associada

� Dicionário de dados� Definição de relatórios e ferramentas de geração

� Ferramentas de definição de formas� Tradutores de importação/exportação

� Ferramentas de geração de códigos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 43

Pontos-chave

� Um modelo é uma visão abstrata do sistema. Tipos complementares de modelos proporcionam diferentes informações sobre o sistema

� Modelos contextuais mostram a posição de um sistema em seu ambiente com outros sistemas e processos

� Modelos de fluxo de dados podem ser usados para modelar o processamento de dados em um sistema

� Modelos de máquina de estado modelam o comportamento do sistema em resposta a eventos internos ou externos

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 44

Pontos-chave

� Modelos de dados semânticos descrevem a estrutura de dados lógicas que éimportada ou exportada pelos sistemas

� Modelos de objeto descrevem as entidades lógicas do sistema e suas classificações e agregações

� Áreas de trabalho CASE suportam o desenvolvimento de modelos de sistema