A Importância da Disciplina de Análise & Design para uma Aplicação. Ivan Zilotti Alencar 01/06/2006 ialencar@gmail.com



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

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

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

Processo de Desenvolvimento Unificado

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

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

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

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

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

UML Linguagem de Modelagem Unificada

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

Wilson Moraes Góes. Novatec

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

Análise e Projeto de Sistemas

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

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

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

O Processo de Desenvolvimento de Software

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

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Processo de Desenvolvimento de Software. Engenharia de Software.

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

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

1 UML (UNIFIED MODELING LANGUAGE)

Fase 1: Engenharia de Produto

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

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

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Uma Abordagem usando PU

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

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

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Análise e Projeto Orientados por Objetos

Universidade Católica de Petrópolis Análise Orientada a Objetos. Introdução

Modelagem de Processos. Prof.: Fernando Ascani

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Introdução à Engenharia de Software

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

O Processo Unificado

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

Introdução ao Processo Unificado (PU)

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

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

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

Linguagem de Modelagem Unificada

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

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

Engenharia de Software

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.

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

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Engenharia de Software I

Engenharia de Software na Prática Hélio Engholm Jr.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Unified Modeling Language UML - Notações

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Modelagemde Software Orientadaa Objetos com UML

Padrões de projeto 1

ENGENHARIA DE SOFTWARE I

Unified Software Development Process

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

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

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

Metodologias Ágeis. Aécio Costa

PROJETO DE FÁBRICA DE SOFTWARE

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

UML - Unified Modeling Language

Engenharia de Software II

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

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

UML Modelo Casos de Uso

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Análise e Projeto Orientados a Objeto

Lógica e Programação Java

Algumas propriedades dos objetos:

Concepção e Elaboração

ENG1000 Introdução à Engenharia

Engenharia de Requisitos Estudo de Caso

A Disciplina Gerência de Projetos

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Tarciane Andrade.

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

RUP Rational Unified Process

Documento de Arquitetura

Engenharia de Software

Engenharia de Software I

Processo Unificado (RUP)

Engenharia de Negócios 1. Gestão de Sistemas Complexos. Introdução

Unified Process. Sueleni Mendez Batista. Orientadora: Dra. Elisa Hatsue Moriya Huzita

Professor: Curso: Disciplina:

Diagrama de Caso de Uso e Diagrama de Sequência

Transcrição:

A Importância da Disciplina de Análise & Design para uma Aplicação Ivan Zilotti Alencar 01/06/2006 ialencar@gmail.com

Apresentações Sua empresa/instituição Seu papel Sua experiência Em requisitos Processo de desenvolvimento RUP (Rational Unified Process) XP Orientação a objetos Programação UML Copyright 2005, 2006 by Ivan Zilotti Alencar 2

Objetivos Enfatizar as melhores práticas da engenharia de software voltadas para a arquitetura da aplicação. Mostrar a importância da disciplina de Análise & Design do RUP. Expor como os casos de uso fornecem suporte à arquitetura de um sistema de software. Copyright 2005, 2006 by Ivan Zilotti Alencar 3

Definição de Processo Um processo define Quem está fazendo O Que, Quando e Como, para atingir uma certa meta. Um processo de desenvolvimento de software é o conjunto de atividades necessárias para transformar um requisito do usuário em um sistema de software. [Jacobson] Requisitos novos ou alterados Processo de Engenharia de Software Sistema novo ou alterado Copyright 2005, 2006 by Ivan Zilotti Alencar 4

O que é o RUP (Rational Unified Process)? O RUP é um processo de engenharia de software. Oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento. Sua meta é garantir a produção de software de alta qualidade que atenda às necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis. Copyright 2005, 2006 by Ivan Zilotti Alencar 5

RUP Implementa as Melhores Práticas Um conjunto de princípios, métodos e processos, organizados e documentados, que aumentam a qualidade e produtividade do desenvolvimento de software. Desenvolver Iterativamente Gerenciar Requisitos Utilizar Arquiteturas de Componentes Modelar Visualmente Verificar a Qualidade Continuamente Copyright 2005, 2006 by Ivan Zilotti Alencar 6 Gerenciar Mudanças as

Prática 3: Utilizar Arquiteturas de Componentes Desenvolver Iterativamente Gerenciar Requisitos Melhores Práticas Modelar Visualmente Verificar a Qualidade Continuamente Utilizar Arquiteturas de Componentes Gerenciar Mudanças as Copyright 2005, 2006 by Ivan Zilotti Alencar 7

O que é Arquitetura? A estrutura organizacional de um sistema. Uma arquitetura pode ser repetidamente decomposta em partes que interagem através de interfaces, relações que conectam partes e restrições para associar partes. As partes que interagem através de interfaces incluem classes, componentes e subsistemas. Copyright 2005, 2006 by Ivan Zilotti Alencar 8

Benefícios do Foco na Arquitetura Base para a reutilização de componentes de arquitetura Bases para o gerenciamento de projeto Planejamento Recrutamento Entrega Controle Gerenciar complexidade Manter integridade Arquitetura baseada em componentes com camadas Aplicação Negócio Middleware Sistema Copyright 2005, 2006 by Ivan Zilotti Alencar 9

Arquiteturas Resilientes e Componentizadas Resilientes Satisfaz requisitos atuais e futuros Melhora a extensibilidade Proporciona reutilização Encapsula as dependências do sistema Baseadas em Componentes Reutilização ou customização de componentes Escolher dentre os componentes comerciais Evoluir software existente incrementalmente Copyright 2005, 2006 by Ivan Zilotti Alencar 10

Exemplo: Arquitetura baseada em componentes Funções Gerenciais Funções de Licenciamento de Software Mecanismos de interface do usuário Cliente Produto Licença Comprado Existente Oracle Vantive Novo Copyright 2005, 2006 by Ivan Zilotti Alencar 11

Prática 4: Modelar o Software Visualmente Desenvolver Iterativamente Gerenciar Requisitos Melhores Práticas Utilizar Arquiteturas de Componentes Verificar a Qualidade Continuamente Modelar Visualmente (UML) Gerenciar Mudanças as Copyright 2005, 2006 by Ivan Zilotti Alencar 12

O que é a Linguagem Unificada de Modelagem? Uma linguagem para Visualizar Especificar Construir e Documentar os artefatos de um sistema intensivo de software [BOO98]. Copyright 2005, 2006 by Ivan Zilotti Alencar 13

Por que Modelar Visualmente? Para: Capturar estrutura e comportamento Mostrar como os elementos do sistema se relacionam Ocultar ou expor detalhes quando apropriado Manter design e implementação consistentes Fornecer uma base sólida para a implementação Promover comunicação sem ambigüidade A UML fornece uma linguagem para todos do time Copyright 2005, 2006 by Ivan Zilotti Alencar 14

Modelando Visualmente com a UML Permite múltiplas visões Sintaxe e semântica precisas Diagramas de Seqüência Diagramas de Casos de Uso Diagramas de Classes Diagramas de Objetos Diagramas de Colaboração Modelos Diagramas de Componentes Diagramas dinâmicos Diagramas de Estados Diagramas de Atividades Diagramas de Implantação Diagramas estáticos Copyright 2005, 2006 by Ivan Zilotti Alencar 15

Æ Á ¹ ¼- ëçñ º ±â»ç ëàú äã»ç Ñ Ù. È-ÀÏ ü ÀÚ Â Àоî  ¹ ¼-ÀÇ Á º ÇØ ç ¹ ¼- ü ¼³Á À» äã»ç Ñ Ù. È- é ü  ÀÐ ¾îµéÀΠüµé ëçø ÀÌ º Î Á ÄÀ» ½ÃÄÑ È- é º ÁØ Ù. 1: Doc view request ( ) 9: sortbyn ame ( ) L 2: fetchdoc( ) 3: create ( ) 6: filldocument ( ) 4: create ( ) 8: fillfile ( ) 5: readdoc ( ) 7: readfile ( ) Wi ndow95 ¹ ¼- ü Å óàì¾ðæ.exe Wi ndows NT Wi ndows NT ¹ ¼- ü Áø.EXE Wi ndows95 IBM Mainframe µ ÀÌÅ º À̽º¼- ¹ö Solaris ÀÀ ë¼-¹ö.exe Wi ndows95 ¹ ¼- ü ¾ÖÇà Alpha UNIX Modele Visualmente usando os Diagramas da UML Diagrama de casos de uso Diagrama de classes Diagrama de estados add file Use Case 1 FileMgr DocumentList Document Actor A Use Case 2 Actor B fetchdoc( ) sortbyname( ) add( ) delete( ) FileList flist add( ) delete( ) 1 name : int docid : int numfield : int get( ) open( ) close( ) read( ) sortfilelist( ) create( ) filldocument( ) read() fill the code.. Openning add file [ numberoffile==max ] / flag OFF close file Writing Use Case 3 Reading close file Closing rep Diagrama de colaboração 1: Doc view request ( ) 9: sortbyname ( ) mainwnd : MainWnd Repository (from Persistence) name : char * = 0 readdoc( ) readfile( ) read( ) File GrpFile read( ) open( ) create( ) fillfile( ) FileManager Repository DocumentList Diagrama de implantação 2: fetchdoc( ) 4: create ( ) gfile : GrpFile Document 8: fillfile ( ) user : Clerk filemgr : FileMgr 3: create ( ) GraphicFile 6: filldocument ( ) File FileList repository : Repository 7: readfile ( ) 5: readdoc ( ) document : Document user mainwnd filemgr : FileMgr document : Document gfile Diagrama de seqüência repository Diagrama de componentes Engenharia avante e Reversa Sistema alvo Copyright 2005, 2006 by Ivan Zilotti Alencar 16

Modelar Mantém a Integridade Arquitetural Detecta e avalia mudanças arquiteturais Comunica mudanças arquiteturais aceitas Sincroniza seu modelo e código fonte durante cada iteração Subsistemas Modelar visualmente aumenta o nível de abstração Classes Código Copyright 2005, 2006 by Ivan Zilotti Alencar 17

Obtendo as Melhores Práticas através do Processo Uma abordagem iterativa Guias para atividades e produtos de trabalho (artefatos) Processo focado na arquitetura Casos de uso que dirigem design e implementação Modelos que abstraem o sistema Copyright 2005, 2006 by Ivan Zilotti Alencar 18

Juntando Tudo: Uma Abordagem Iterativa Tempo Em uma iteração você percorre todas as disciplinas Conteúdo Agrupam atividades relacionadas Copyright 2005, 2006 by Ivan Zilotti Alencar 19

Por que Modelar? A modelagem é a parte central de todas as atividades que levam à implantação de um bom sistema Jacobson, Ivar; BOOCH, Grady; RUMBAUGH, James; UML Guia do Usuário. Copyright 2005, 2006 by Ivan Zilotti Alencar 20

Cenário Atual Ainda hoje, muitos sistemas são desenvolvidos com base em metodologias estruturadas. Dificuldade para gerenciar e estruturar Requisitos variáveis. Aumento da complexidade. Mudanças. Por quê? Copyright 2005, 2006 by Ivan Zilotti Alencar 21

Vantagens de uma Metodologia OO Grande aceitação pelos desenvolvedores, porque: Possibilita a criação de sistemas de todos os tipos de domínios de problemas. Abrange todos os graus de tamanho e complexidade. Copyright 2005, 2006 by Ivan Zilotti Alencar 22

O Foco na Arquitetura Permite que o sistema evolua, mesmo após a entrega do produto. Concentra-se nas funcionalidades chaves do sistema (5 a 10% do total de casos de uso). Gera o mínimo possível de dependências entre módulos e subsistemas. Copyright 2005, 2006 by Ivan Zilotti Alencar 23

Conclusão Um processo iterativo aliado à preocupação com a arquitetura guiam o time para o sucesso! Copyright 2005, 2006 by Ivan Zilotti Alencar 24