Metodos de Especificação de Software 2ª Parte (UML)
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
Engenharia de Software 14
Diagrama de Casos de Diagrama de Casos de UtilizaçãoUtilização
((Use Case Diagram)Use Case Diagram)
Fonte: Grady Booch
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
Engenharia de Software 16
Diagrama de ClassesDiagrama de Classes
Fonte: Grady Booch
composition
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
Engenharia de Software 18
Diagrama de ObjectosDiagrama de Objectos
Fonte: Grady Booch
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
Engenharia de Software 20
Diagrama de ComponentesDiagrama de Componentes
Fonte: Grady Booch
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
Engenharia de Software 22
Diagrama de Distribuição Diagrama de Distribuição ((Deployment DiagramDeployment Diagram))
Fonte: Grady Booch
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
Engenharia de Software 24
Diagrama de SequênciaDiagrama de Sequência
Fonte: Grady Booch
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
Engenharia de Software 26
Diagrama de ColaboraçãoDiagrama de Colaboração
Fonte: Grady Booch
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.)
Engenharia de Software 28
Diagrama de Estados Diagrama de Estados ((Statechart DiagramStatechart Diagram))
Fonte: Grady Booch
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)
Engenharia de Software 30
Diagrama de ActividadesDiagrama de Actividades
Fonte: Grady Booch
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