Unified Software Development Process



Documentos relacionados
UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências


UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UML Linguagem de Modelagem Unificada

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Linguagem de Modelagem Unificada

Modelagem de Processos. Prof.: Fernando Ascani

Wilson Moraes Góes. Novatec

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

UML - Unified Modeling Language

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Desenvolvimento Iterativo. Unified Process (UP) Esta abordagem ao desenvolvimento

Introdução aos Sistemas de Informação

Orientação a Objetos I

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Processo Unificado (RUP)

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Projeto de Sistemas

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Tarciane Andrade.

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

Rock In Rio - Lisboa

Universidade do Minho Licenciatura em Engenharia Informática

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Processo de Desenvolvimento Unificado

Modelagem de Processos. Prof.: Fernando Ascani

UML Visão Geral. Slides baseados em material disponibilizado pela Rational e adaptação da tradução de João P. Faria Univ. Do Porto.

Engenharia Informática

1 UML (UNIFIED MODELING LANGUAGE)

Engenharia de Software I

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Fase 1: Engenharia de Produto

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Programa do Módulo 2. Processo Unificado: Visão Geral

Engenharia de Software Sistemas Distribuídos

Engenharia de Software I

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

O modelo unificado de processo. O Rational Unified Process, RUP.

Unified Modeling Language UML - Notações

Introdução a UML. Agenda. Definição Histórico Contribuições Diagramas Observações. Cleidson de Souza (Rodrigo Reis)

Unified Modeling Language. Diagramas de Implementação

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Ciência da Computação ENGENHARIA DE SOFTWARE. UML-Unified Modeling Language Linguagem de Modelagem Unificada

4.1. UML Diagramas de casos de uso

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Análise de Sistemas. Conceito de análise de sistemas

Engenharia de Software I: Análise e Projeto de Software Usando UML

4.2. UML Diagramas de classes

UML Unified Modeling Language

Análise e Projeto Orientados a Objeto

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Uma Abordagem usando PU

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

ENGENHARIA DE SOFTWARE

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

modelagem do negócio (processos e objetos do negócio) modelagem de requisitos alocados ao software modelagem da solução de software

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

Gestão de projectos na Web

Engenharia de Requisitos Estudo de Caso

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Engenharia de Software II

Feature-Driven Development

Capítulo 8. Introdução UML

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Para cada fase consideramos. Tempo para um projeto típico Tempo para um projeto Complexo. Arquitetura do Processo Unificado. A meta a ser atingida

Guia de Prova de Aptidão Profissional

REQUISITOS DE SISTEMAS

Levantamento, Análise e Gestão Requisitos. Aula 04

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Fundamentos de Banco de Dados e Modelagem de Dados

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Um sistema SMS 1 simplificado

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos

Diagramas de Casos de Uso

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Gestão dos Níveis de Serviço

Lógica e Programação Java

Transcrição:

59/170 Unified Software Development Process Sumário Breve história do Unified Process O Unified Process O ciclo de vida do Unified Process O RUP (Rational Unified Process) 60/170 Breve História do Unified Process Rational Unified Process Booch, Rumbaugh & Jacobson 1998 Rational Objectory Process UML Booch, Rumbaugh & Jacobson 1996 1997 Rational Approach Objectory Process Booch & Rumbaugh Jacobson 1987 1995 Jacobson Ericsson Finais dos anos 60

61/170 O Unified Process O Unified Process é: Uma framework para o processo de desenvolvimento, genérica e adaptável. O Unified Process fomenta: O desenvolvimento baseado em componentes. O Unified Process utiliza: o UML como ferramenta de modelação durante todas as fases do processo de desenvolvimento. Três ideias chave desenvolvimento guiado por Use Cases (Casos de Uso) desenvolvimento centrado na arquitectura; desenvolvimento iterativo e incremental. Desenvolvimento guiado por Use Cases 62/170 Um use case representa uma interacção entre o sistema e um humano ou outro sistema; O modelo de use cases é utilizado para: guiar a concepção do sistema (captura de requisitos funcionais); guiar a implementação do sistema (implementação de um sistema que satisfaça os requisitos); guiar o processo de testes (testar que os requisitos são satisfeitos). Desenvolvimento centrado na arquitectura O modelo de use cases descreve a função do sistema, o modelo da arquitectura descreve a forma; O modelo arquitectural permite tomar decisões sobre: O estilo de arquitectura a adoptar; Quais os componentes do sistema e quais as suas interfaces; A composição de elementos estruturais e comportamentais. Desenvolvimento iterativo e incremental

63/170 Permite dividir o desenvolvimento em pedaços geríveis ; Em cada iteração: identificar e especificar use cases relevantes; criar uma arquitectura que os suporte; implementar a arquitectura utilizando componentes; verificar que os use cases são satisfeitos. Selecção de uma iteração: grupo de use cases que extendam a funcionalidade; aspectos de maior risco. 64/170 O ciclo de vida do Unified Process

65/170 O Unified Process divide o desenvolvimento de software em 4 fases: Início (Inception); Elaboração (Elaboration); Construção (Construction); Transição (Transition). Cada fase é constituida por um conjunto de iterações. Em cada iteração são realizadas um conjunto de actividades: Análise de requisitos; Análise e desenho; Implementação; Testes; Instalação. Em função da fase em que se está a realizar a iteração, algumas actividades têm mais peso que outras. O objectivo é que, em cada iteração, seja produzida uma versão do produto final. 66/170 Fases do Unified Process Início Identificar problema Decidir âmbito e natureza do projecto Fazer estudo de viabilidade Resultado da fase: decisão de avançar com o projecto. Elaboração (Análise/Concepção Lógica) O que vamos construir (quais os requisitos?) Como vamos fazê-lo? (qual a arquitectura?) Que tecnologias vamos utilizar? Resultado da fase: uma arquitectura geral (conceptual) do sistema.

67/170 Construção (Concepção Física/Implementação) Processo iterativo e incremental Em cada iteração: análise/especificação/codificação/teste/integração de parte do SI Resultado da fase: um sistema de informação! Transição Acertos finais na instalação do SI Optimização, formação. Resultado da fase: um SI instalado e 100% funcional. 68/170 O RUP (Rational Unified Process) O RUP é uma concretização do Unified Process. O RUP fornece: ferramentas de gestão do processo de desenvolvimento segundo a framework definida pelo Unified Process (ver página 64); ferramentas para a modelação e desenvolvimento baseadas no UML; uma base de conhecimento (knowledge base). Na verdade as coisas passaram-se um pouco ao contrário...

69/170 Apresentação do UML Sumário UML Breve história do UML Diagramas do UML Meta modelo do UML Mecanismos de extensão Decorações 70/170 UML Unified Modelling Language UML: Unified Modelling Language (Booch, Jacobson & Rumbaugh) UML foi pensado para o desenvolvimento de sistemas orientados aos objectos permite explorar o paradigma OO UML possibilita o trabalho a diferentes níveis de abstracção facilita a comunicação UML não é uma linguagem, mas um conjunto de linguagens inclui modelos para as diferentes fases do desenvolvimento. UML não é um processo de desenvolvimento de software, pode ser usado com diferentes processos.

Breve história do UML 71/170 anos 60 Simula 67 é a primeira linguagem orientada aos objectos; anos 70 Aparece o Smalltalk; anos 80 as linguagens orientadas aos objectos (OO) tornam-se utilizáveis Smalltalk estabiliza; surgem o Objective C, C++, Eiffel, CLOS, etc. finais dos anos 80 surgem as primeiras metodologias de modelação OO anos 90 existem dezenas de metodologias de modelação OO Shlaer/Mellor, Coad/Yourdon, Booch, OMT (Rumbaugh), OOSE (Jacobson), etc. etc. meados dos anos 90 começam as tentativas de unificação dos métodos 1994 Rumbaugh junta-se a Booch na Rational Software Corporation 1995 Booch e Rumbaugh apresentam a versão 0.8 do Unified Method (viria depois 72/170 a mudar de nome para Unified Modelling Language); Jacobson junta-se a Booch e Rumbaugh 1996 o OMG (Object Management Group) pede propostas para um standard de modelação OO Setembro, 1997 a Rational, em conjunto com outras empresas (HP, IBM, Oracle, SAP, Unisys,...), submete o UML 1.0 ao OMG como proposta de standard (existiram outras propostas) Novembro, 1997 o UML é aprovado como standard OO pelo OMG; o OMG assume a responsabilidade do desenvolvimento do UML 00(?!) 2004 está a ser finalizado o UML 2.0 www.uml.org

Diagramas do UML 73/170 O UML define os seguintes oito diagramas base: Diagramas de Use Case Diagramas de Classe Diagramas comportamentais Diagramas de Interacção Diagramas de Sequência Diagramas de Colaboração Diagramas statechart (de estados) Diagramas de Actividade Diagramas de implementação Diagramas de Componentes Diagramas de Instalação (Deployment) Diagramas UML A escolha dos modelos a utilizar tem uma grande impacto na forma como um dado 74/170 problema é abordado e, consequentemente, na solução que se irá atingir. A Abstracção (prestar atenção aos detalhes importantes e ignorar ou irrelevantes) é um factor fundamental. Assim: Todo o sistema complexo deve ser abordado através de um pequeno conjunto de vistas/modelos tão independentes quanto possível; Cada modelo pode ser expresso a diferentes níveis de detalhe; Os melhores modelos são aqueles que têm relação directa com a realidade. Os oito tipos de diagramas identificados anteriormente procuram cobrir todas as necessidades de modelação que ocorram durante o desenvolvimento de software. Um exemplo Desenvolver uma aplicação para gestão de sumários e presenças nas aulas para universidades.

Diagramas de Use Case 75/170 Fly2 Use Case Associaçao ~ Gerir de Sumários Receber sumários Consultar Presenças Máquina de email Docente Gerir Disciplinas Actor Sistema Identificam os utilizadores do sistema / capturam os requisitos funcionais. Ver página 64 Diagramas de Classe 76/170 Nome da classe Classe Fly2 Cardinalidade Sumário texto Associação * 1 Aula diasemana horainicio horafim * 1 * Docente código nome inserirsumário Atributo Generalização Operação AulaT AulaTP AulaP Modelam a arquitectura(?) do sistema. Ver página 64

Diagramas de Colaboração 77/170 1. inseresum(cd, ds, hi, hf, ts) : Fly2 1.2. inseresum(ds, hi, hf, ts) 1.1. doc = getdocente(cd) Actor Mensagem doc: Docente 1.2.1. aula = getaula(ds,hi,hf) Objecto Número de sequência 1.2.2. inseresum(ts) 1.2.2.2. addsum(sum) sum: Sumário 1.2.2.1. «constructor»(ts) aula: Aula Modelam o comportamento do sistema (ênfase no aspecto estrutural). Ver página 136 Diagramas de Sequência 78/170 Actor : Fly2 doc: Docente aula: Aula Docente inseresum(cd, ds, hi, hf, ts) doc = getdocente(cd) Objecto Mensagem Activação inseresumário(ds, hi, hf, ts) aula = getaula(ds,hi,hf) Linha de vida inseresum(ts) «constructor»(ts) addsum(sum) sum: Sumário Modelam o comportamento do sistema (ênfase no aspecto temporal). Ver página 76

79/170 Diagramas de Statechart Estado inicial registado registar provisório confirmar Evento definitivo apagar Transição imprimir imprimir impresso Estado final Estado Super estado Modelam ciclo de vida de objectos no sistema. Ver página 64 Diagramas de Actividade 80/170 Estado inicial registar Sincronização confirmar imprimir Actividade Estado final Modelam comportamento (ênfase actividades realizadas). Ver página 79

Diagramas de Componentes 81/170 IntWebDoc IGestDisc FlyMain SQL BaseDados IGestSum : Fly2 Interface Componente Servidor email Dependência Definem como o sistema é construido a partir de componentes. Ver página 64 Diagramas de Instalação 82/170 serv01 IntWebDoc TCP/IP IGestDisc FlyMain SQL BaseDados IGestSum Dependência Componente mail TCP/IP Ligação Interface Servidor email Nodo Definem como o sistema deverá ser instalado. Ver página 75

83/170 Meta-modelo do UML Se o UML permite escrever modelos, poderemos modelar o UML? A definição do UML engloba quatro níveis de abstracção: meta-meta modelo Define o elemento mais básico em que o UML se baseia: o conceito de Coisa. meta modelo do UML Define o tipo de Coisas que podem ser utilizadas num modelo UML (por exemplo, o conceito de Classe é uma instância de Coisa). modelos UML Os modelos UML que podemos escrever (por exemplo, a classe Sumário é uma instância do conceito de Classe). modelos do utilizador Os modelos utilizados para mostrar instâncias concretas de modelos UML (cf. diagramas de objectos). Mecanismos de extensão 84/170 O meta-modelo define mecanismos que permitem aumentar a expressividade da linguagem. Restrições Permitem definir restrições nos elementos de um modelo que vão para além das previstas de base. Exemplo: {ordered} numa associação (para dizer, por exemplo, que a lista de sumários de uma disciplina está ordenada) Propriedades (tagged values) Pares nome/valor que definem características adicionais de um elemento. Exemplo: {Linguagem = Java} para definir que uma dada classe deverá ser implementada em Java. Estereótipos Permitem efectuar a especialização semântica de elementos existentes. Exemplo: <<interface>> (podem ter representação própria, neste caso: )

85/170 Decorações Existem ainda dois mecanismos sem semãntica especial associada que podem ser utilizados para decorar (os elementos de) um diagrama. Notas Utilizadas para adicionar comentários ao diagrama. Podem estar associadas a um elemento específico (através de um traço interrompido). Isto é uma nota! Compartimentos extra Permitem adicionar informação directamente a um elemento de um diagrama.