31
Metodos de Especificação Metodos de Especificação de Software de Software 2ª Parte (UML) 2ª Parte (UML) Patrícia Macedo Patrícia Macedo Joaquim Filipe Joaquim Filipe João Ascenso João Ascenso Engenharia de Software 2005/2006 Engenharia de Software 2005/2006 EST, Setúbal EST, Setúbal

Metodos de Especificação de Software 2ª Parte (UML)

  • Upload
    remy

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

Metodos de Especificação de Software 2ª Parte (UML). Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal. Indice Geral. 1ª Parte Especificação de Software DFD’s Maquinas de estados Petri Nets 2ª Parte UML 3ª Parte Exemplos. Introdução - PowerPoint PPT Presentation

Citation preview

Page 1: Metodos de Especificação de Software 2ª Parte (UML)

Metodos de Especificação de Metodos de Especificação de SoftwareSoftware

2ª Parte (UML)2ª Parte (UML)

Patrícia MacedoPatrícia MacedoJoaquim FilipeJoaquim FilipeJoão AscensoJoão Ascenso

Engenharia de Software 2005/2006Engenharia de Software 2005/2006EST, SetúbalEST, Setúbal

Page 2: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 2

Indice GeralIndice Geral1ª Parte1ª Parte Especificação de Software Especificação de Software DFD’sDFD’s Maquinas de estadosMaquinas de estados Petri NetsPetri Nets

2ª Parte2ª Parte UML UML

3ª Parte3ª Parte ExemplosExemplos

Page 3: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 3

ÍndiceÍndice

IntroduçãoIntrodução O que é a UML?O que é a UML? Valor da UMLValor da UML Origens da UMLOrigens da UML Parceiros da UMLParceiros da UML

Modelos e Modelos e diagramasdiagramas

Elementos de Elementos de modelaçãomodelação

DiagramasDiagramas Diagrama de casos de Diagrama de casos de

utilizaçãoutilização Diagrama de classesDiagrama de classes Diagrama de objectosDiagrama de objectos Diagrama de Diagrama de

componentescomponentes Diagrama de distribuiçãoDiagrama de distribuição Diagrama de sequênciaDiagrama de sequência Diagrama de colaboraçãoDiagrama de colaboração Diagrama de estadosDiagrama de estados Diagrama deDiagrama de actividades actividades

Page 4: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 4

O que é a UML?O que é a UML? UML = UML = Unified Modeling LanguageUnified Modeling Language UML é uma linguagem (notação com semântica associada) paraUML é uma linguagem (notação com semântica associada) para

visualizarvisualizar especificarespecificar construirconstruir documentardocumentar

os artefactos de um sistema com uma componente intensiva de software os artefactos de um sistema com uma componente intensiva de software ((software intensive systemsoftware intensive system))

UML não é uma metodologiaUML não é uma metodologia não diz quem deve fazer o quê, quando e comonão diz quem deve fazer o quê, quando e como UML pode ser usado segundo diferentes metodologias, tais como RUP UML pode ser usado segundo diferentes metodologias, tais como RUP

((Rational Unified ProcessRational Unified Process), FDD (), FDD (Feature Driven DevelopmentFeature Driven Development), etc.), etc. UML não é uma linguagem de programaçãoUML não é uma linguagem de programação

Page 5: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 5

Valor da UMLValor da UML

É um standard abertoÉ um standard aberto versão 1.1 aprovada pelo OMG (versão 1.1 aprovada pelo OMG (Object Management Object Management

Group) Group) em Novembro de 1997em Novembro de 1997 versão 1.3 aprovada em Junho de 1999versão 1.3 aprovada em Junho de 1999

Suporta todo o ciclo de vida do softwareSuporta todo o ciclo de vida do software modelação do negócio (processos e objectos do negócio)modelação do negócio (processos e objectos do negócio) modelação de requisitos alocados ao softwaremodelação de requisitos alocados ao software modelação da solução de softwaremodelação da solução de software

Suporta diversas áreas de aplicaçãoSuporta diversas áreas de aplicação É baseado na experiência e necessidades da comunidade É baseado na experiência e necessidades da comunidade

de utilizadoresde utilizadores É suportado por muitas ferramentasÉ suportado por muitas ferramentas

Page 6: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 6

Booch

Booch method

Meyer

Before and after conditions

Harel

StatechartsGamma, et al

Frameworks and patterns,

HP Fusion

Operation descriptions and message numbering

Embley

Singleton classes andhigh-level view

Wirfs-Brock

Responsibilities

Odell

Classification

Shlaer - Mellor

Object lifecycles

Rumbaugh

OMT

Jacobson

OOSE

Origens da UMLOrigens da UML

Page 7: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 7

Parceiros da UMLParceiros da UML

Rational Software Rational Software CorporationCorporation

Hewlett-PackardHewlett-Packard I-LogixI-Logix IBMIBM ICON ComputingICON Computing IntellicorpIntellicorp MCI SystemhouseMCI Systemhouse MicrosoftMicrosoft

ObjecTimeObjecTime OracleOracle Platinum TechnologyPlatinum Technology TaskonTaskon Texas Texas

Instruments/Sterling Instruments/Sterling SoftwareSoftware

UnisysUnisys

Page 8: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 8

Modelos Modelos Um modelo é uma representação em Um modelo é uma representação em

pequena escalapequena escala, numa perspectiva , numa perspectiva particular, de um sistema existente ou a criarparticular, de um sistema existente ou a criar Atitude de Atitude de abstracção abstracção (omissão de detalhes) (omissão de detalhes)

fundamental na construção de um modelofundamental na construção de um modelo Modelos são a linguagem por excelência do Modelos são a linguagem por excelência do

projectista (projectista (designerdesigner)) Modelos são veículos para comunicação com vários Modelos são veículos para comunicação com vários

interessados (interessados (stakeholdersstakeholders)) Modelos permitem raciocinar acerca do sistema real, Modelos permitem raciocinar acerca do sistema real,

sem o chegar a construirsem o chegar a construir Ao longo do ciclo de vida de um sistema são Ao longo do ciclo de vida de um sistema são

construídos vários modelos, sucessivamente construídos vários modelos, sucessivamente refinados e enriquecidosrefinados e enriquecidos

Page 9: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 9

DiagramasDiagramas

Um modelo é constituído por um conjunto de Um modelo é constituído por um conjunto de diagramasdiagramas (desenhos) consistentes entre si, (desenhos) consistentes entre si, acompanhados de descrições textuais dos acompanhados de descrições textuais dos elementoselementos que aparecem nos vários diagramas que aparecem nos vários diagramas Um Um diagramadiagrama é uma vista sobre um modelo é uma vista sobre um modelo O mesmo O mesmo elementoelemento (exemplo: classe) pode aparecer em (exemplo: classe) pode aparecer em

vários diagramas de um modelovários diagramas de um modelo No UML, há nove diagramas No UML, há nove diagramas standardstandard

Diagramas de visão estática: casos de utilização (Diagramas de visão estática: casos de utilização (use use casecase), classes, objectos, componentes, distribuição ), classes, objectos, componentes, distribuição ((deploymentdeployment))

Diagramas de visão dinâmica: sequência, colaboração, Diagramas de visão dinâmica: sequência, colaboração, estados (estados (statechartstatechart), actividades), actividades

Page 10: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 10

Modelos e DiagramasModelos e Diagramas

Use CaseDiagramsUse Case

DiagramsDiagramas de Casos de Utilização

ScenarioDiagramsScenario

DiagramsDiagramas deColaboração

StateDiagramsState

DiagramsDiagramas de Componentes

ComponentDiagramsComponent

DiagramsDiagramas de Distribuição

StateDiagramsState

DiagramsDiagramasde Objectos

ScenarioDiagramsScenario

DiagramsDiagramas deEstados

Use CaseDiagramsUse Case

DiagramsDiagramas deSequência

StateDiagramsState

DiagramsDiagramas deClasses

Diagramas deActividades

Modelos

Page 11: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 11

Elementos de Modelação (1)Elementos de Modelação (1)

Elementos estruturaisElementos estruturais classe, interface, classe, interface,

colaboração, caso colaboração, caso de utilização, de utilização, classe activa, classe activa, componente, nócomponente, nó

Fonte: Grady Booch Elementos de comportamento

• interacção, máquina de estados

Elementos de agrupamento• pacote (package), subsistema

Outros elementos• nota

Page 12: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 12

Elementos de Modelação (2)Elementos de Modelação (2)

RelaçõesRelações DependênciaDependência AssociaçãoAssociação GeneralizaçãoGeneralização Concretização (Concretização (realizationrealization))

Mecanismos de extensibilidade Mecanismos de extensibilidade EstereótiposEstereótipos Propriedades (Propriedades (tagged valuestagged values)) Restrições (Restrições (constraintsconstraints))

Fonte: Grady Booch

Fonte: Grady Booch

Page 13: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 13

Diagrama de Casos de Diagrama de Casos de Utilização (Utilização (Use Case Use Case

Diagram)Diagram) Captura a funcionalidade do sistema tal como é visto Captura a funcionalidade do sistema tal como é visto

pelos utilizadorespelos utilizadores Construído nos primeiros estágios do desenvolvimentoConstruído nos primeiros estágios do desenvolvimento ObjectivoObjectivo

Especificar o contexto de um sistemaEspecificar o contexto de um sistema Capturar os requisitos funcionais de um sistemaCapturar os requisitos funcionais de um sistema Validar a arquitectura de um sistemaValidar a arquitectura de um sistema Dirigir a implementação e gerar casos de testeDirigir a implementação e gerar casos de teste

Desenvolvido por analistas e especialistas de domínioDesenvolvido por analistas e especialistas de domínio

Page 14: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 14

Diagrama de Casos de Diagrama de Casos de UtilizaçãoUtilização

((Use Case Diagram)Use Case Diagram)

Fonte: Grady Booch

Page 15: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 15

Diagrama de ClassesDiagrama de Classes

Captura o vocabulário de um sistemaCaptura o vocabulário de um sistema Construído e refinado ao longo do desenvolvimentoConstruído e refinado ao longo do desenvolvimento ObjectivoObjectivo

Nomear e modelar conceitos no sistemaNomear e modelar conceitos no sistema Especificar colaboraçõesEspecificar colaborações Especificar esquemas lógicos de bases de dadosEspecificar esquemas lógicos de bases de dados

Desenvolvido por analistas, Desenvolvido por analistas, designersdesigners e implementadores e implementadores

Page 16: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 16

Diagrama de ClassesDiagrama de Classes

Fonte: Grady Booch

composition

Page 17: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 17

Diagrama de ObjectosDiagrama de Objectos

Mostra objectos (instâncias de classes) e Mostra objectos (instâncias de classes) e ligações (instâncias de associações) ligações (instâncias de associações)

Construído durante a análise e Construído durante a análise e designdesign ObjectivoObjectivo

Ilustrar estruturas de dados/objectosIlustrar estruturas de dados/objectos Especificar instantâneos (Especificar instantâneos (snapshotssnapshots))

Desenvolvido por analistas, Desenvolvido por analistas, designersdesigners e e implementadoresimplementadores

Page 18: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 18

Diagrama de ObjectosDiagrama de Objectos

Fonte: Grady Booch

Page 19: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 19

Diagrama de ComponentesDiagrama de Componentes Captura a estrutura física da implementação (tipicamente Captura a estrutura física da implementação (tipicamente

ficheiros)ficheiros) Construído como parte da especificação da arquitecturaConstruído como parte da especificação da arquitectura ObjectivoObjectivo

Organizar o código fonteOrganizar o código fonte Construir uma Construir uma releaserelease executável executável Especificar uma base de dados físicaEspecificar uma base de dados física

Desenvolvido por arquitectos e programadoresDesenvolvido por arquitectos e programadores

Page 20: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 20

Diagrama de ComponentesDiagrama de Componentes

Fonte: Grady Booch

Page 21: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 21

Diagrama de Distribuição Diagrama de Distribuição ((Deployment DiagramDeployment Diagram))

Captura a topologia do hardware de um Captura a topologia do hardware de um sistemasistema

Construído como parte da especificação da Construído como parte da especificação da arquitecturaarquitectura

ObjectivoObjectivo Especificar a distribuição de componentesEspecificar a distribuição de componentes Identificar estrangulamentos de desempenhoIdentificar estrangulamentos de desempenho

Desenvolvido por arquitectos, engenheiros de Desenvolvido por arquitectos, engenheiros de redes, e engenheiros de sistemasredes, e engenheiros de sistemas

Page 22: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 22

Diagrama de Distribuição Diagrama de Distribuição ((Deployment DiagramDeployment Diagram))

Fonte: Grady Booch

Page 23: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 23

Diagrama de SequênciaDiagrama de Sequência

Captura comportamento dinâmico Captura comportamento dinâmico (orientado ao tempo)(orientado ao tempo)

ObjectivoObjectivo Modelar fluxos de controloModelar fluxos de controlo Ilustrar cenários típicosIlustrar cenários típicos

Page 24: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 24

Diagrama de SequênciaDiagrama de Sequência

Fonte: Grady Booch

Page 25: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 25

Diagrama de ColaboraçãoDiagrama de Colaboração

Captura comportamento dinâmico Captura comportamento dinâmico (orientado a mensagens)(orientado a mensagens)

ObjectivoObjectivo Modelar fluxo de controloModelar fluxo de controlo Ilustrar a coordenação entre estrutura Ilustrar a coordenação entre estrutura

de objectos e controlode objectos e controlo

Page 26: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 26

Diagrama de ColaboraçãoDiagrama de Colaboração

Fonte: Grady Booch

Page 27: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 27

Diagrama de Estados Diagrama de Estados ((Statechart DiagramStatechart Diagram))

Captura comportamento dinâmico Captura comportamento dinâmico (orientado a eventos)(orientado a eventos)

ObjectivoObjectivo Modelar ciclo de vida de objectosModelar ciclo de vida de objectos Modelar objectos reactivos (interfaces Modelar objectos reactivos (interfaces

com o utilizador, dispositivos, etc.)com o utilizador, dispositivos, etc.)

Page 28: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 28

Diagrama de Estados Diagrama de Estados ((Statechart DiagramStatechart Diagram))

Fonte: Grady Booch

Page 29: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 29

Diagrama de ActividadesDiagrama de Actividades

Captura comportamento dinâmico Captura comportamento dinâmico (orientado a actividades)(orientado a actividades)

ObjectivoObjectivo Modelar processos de negócio e Modelar processos de negócio e

workflowsworkflows Modelar operações (algoritmos)Modelar operações (algoritmos)

Page 30: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 30

Diagrama de ActividadesDiagrama de Actividades

Fonte: Grady Booch

Page 31: Metodos de Especificação de Software 2ª Parte (UML)

Engenharia de Software 31

ReferênciasReferências Ferramentas de modelação visual Ferramentas de modelação visual

Rational Rose (Rational Rose (www.rational.comwww.rational.com)) Together (Together (www.togethersoft.comwww.togethersoft.com)) – disponível nos computadores – disponível nos computadores

da FEUPda FEUP Platinum Paradigm Plus (Platinum Paradigm Plus (www.platinum.comwww.platinum.com)) Microsoft VisioMicrosoft Visio – disponível no DEEC ao abrigo de protocolo com – disponível no DEEC ao abrigo de protocolo com

MicrosoftMicrosoft LivrosLivros

The Unified Modeling Language User Guide, Grady Booch The Unified Modeling Language User Guide, Grady Booch et alet al, , Addison-Wesley, October, 1998 Addison-Wesley, October, 1998

UML, Metodologias e Ferramentas CASE, Alberto SIlva e Carlos UML, Metodologias e Ferramentas CASE, Alberto SIlva e Carlos Videira, Centro Atlântico, 2001Videira, Centro Atlântico, 2001

EspecificaçõesEspecificações www.omg.orgwww.omg.org