O Processo de Desenvolvimento de Software

Documentos relacionados
Processo de Desenvolvimento de Software. Engenharia de Software.

Concepção e Elaboração

Metodologia e Gerenciamento do Projeto na Fábrica de Software

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

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

Engenharia de Requisitos

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

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

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

ENGENHARIA DE SOFTWARE I

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

Feature-Driven Development

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

Processo de Desenvolvimento Unificado

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

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

Desenvolvimento de Soluções de e-business. Objetivos do Capítulo

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

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

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Metodologia de Desenvolvimento de Sistemas

SISTEMA GERENCIADOR DE BANCO DE DADOS

Processos de Desenvolvimento de Software

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

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

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

1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010

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

Sistemas de Informação I

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

ENG1000 Introdução à Engenharia

Entendendo como funciona o NAT

Engenharia de Software III

Padrões. Projeto (Design) de Software

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

Engenharia de Software

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

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

Processo Unificado (RUP)

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

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Projeto de Arquitetura

Análise e Projeto Orientados a Objeto

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

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

ELABORAÇÃO DE UM PRODUCT BACKLOG EFETIVO

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

APOO Análise e Projeto Orientado a Objetos. Requisitos

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

Documento de Arquitetura

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Processo de Desenvolvimento de Sites

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Análise e Projeto Orientados por Objetos

UML - Unified Modeling Language

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

Gestão da Tecnologia da Informação

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

Nome da Empresa. <Nome do Projeto> Plano de Desenvolvimento de Software. Versão <1.0>

Engenharia de Requisitos Estudo de Caso

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Engenharia de Sistemas Computacionais

Plano de Gerência de Configuração

Engenharia de Software

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

TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE PESSOA FÍSICA

Processos de Software

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

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

Metodologia de Desenvolvimento de Sistemas (MDS - ANEEL)

Requisitos. Sistemas de Informações

3. Fase de Planejamento dos Ciclos de Construção do Software

Engenharia de Software

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

Análise e projeto de sistemas PROF. REGILAN SILVA

REQUISITOS. Prof. Msc. Hélio Esperidião

ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO (AULA 03)

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

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

O Processo Unificado

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

IBM Software Demos Rational Software Delivery Platform - Recursos de análise de requisitos

Redes de Computadores

Sistemas Distribuídos

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

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO

2 Diagrama de Caso de Uso

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

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

Transcrição:

O Processo de Desenvolvimento de Software Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software) Um processo de desenvolvimento de software Uma linguagem de modelagem não é suficiente Precisamos também de um processo de desenvolvimento Linguagem de modelagem + processo de desenvolvimento = método (ou metodologia) de desenvolvimento O que é um processo de desenvolvimento? Define quem faz o que, quando e como, para atingir um certo alvo Veremos os detalhes de processos concretos em outras disciplinas Aqui, só uma introdução As grandes fases de qualquer processo de desenvolvimento Planejamento e elaboração Planejamento, definição de requisitos, construção de protótipos (opcional) Construção do sistema (inclui codificação e testes) Implantação (colocar em produção, treinar usuários,...) A Fase de Planejamento e Elaboração 1. Criar relatório inicial de investigação (para construir o Página 1 de 7

business case) 2. Levantar requisitos funcionais e não funcionais 3. Construir glossário (ao longo da fase) 4. Definir modelo conceitual inicial (análise inicial) 5. Projetar arquitetura 6. Priorizar a funcionalidade e distribuí-la entre as iterações Detalhes sobre o levantamento de requisitos Requisitos são "cortes" no espaço de solução Entendimento do que o usuário quer O resultado é uma promessa para o cliente Não só requisitos funcionais, mas também: Facilidade de uso necessária Quem utilizará o produto Hardware e software alvo para o produto Qualidade/robustez Desempenho Segurança Compatibilidade com outros produtos/versões e necessidades de migração Necessidades de internacionalização do produto Suporte Preço da solução Documentação necessária Uso de padrões Aspectos legais Integração com outros produtos Packaging etc. Não se fala "como" as coisas serão feitas "Use cases" descrevem cenários de funcionalidade desejada Também chamados de "User Stories", pois é o usuário que decide o que deve ser feito Página 2 de 7

Detalhes sobre a fase de Construção Hoje, é considerado errado ter um processo que gere um "big bang!" Não se deve ter o software inteiro funcionando por inteiro no primeiro release O risco é grande demais! Um processo de desenvolvimento deve ser: Iterativo (ter várias iterações no tempo) Incremental (gerar novas versões incrementadas a cada release) Uma iteração dura entre 2 semanas e 2 meses Motivos: Sempre tem algo para entregar para o cliente apressado (a última iteração) Os requisitos mudam com tempo e um processo iterativo mantém freqüentes contatos com o cliente o que ajuda a manter os requisitos sincronizados Altamente motivador para a equipe de desenvolvimento (e o cliente) ver o software funcionando cedo Para evitar isso: Página 3 de 7

O que é feito a cada iteração? Análise (refinamento de requisitos, refinamento do modelo conceitual) Projeto (refinamento do projeto arquitetural, projeto de baixo nível) Implementação (codificação e testes) Transição para produto (documentação, instalação,...) Página 4 de 7

Detalhes sobre a análise A análise gera um modelo para entender o domínio do problema Análise também trata em alto nível de como uma solução possível pode ser montada para atender aos requisitos Acaba gerando uma especificação, mas sempre do ponto de vista do usuário e tratando apenas do domínio do problema Não trata de detalhes de implementação Objetos tratados são sempre do domínio do problema (business objects) Muitos diagramas UML podem ser usados O modelo é para o cliente e não para o programador Atividades típicas durante a análise 1. Refinar use cases 2. Refinar modelo conceitual 3. Refinar glossário Página 5 de 7

4. Definir diagramas de seqüência (opcional) 5. Definir contratos de operação (opcional) 6. Definir diagramas de estado (opcional) Detalhes sobre o projeto (design) O projeto é uma extensão do modelo de análise visando sua implementação num computador Novos objetos aparecem, mas não são do domínio do problema O resultado é para o programador ver, não o cliente Objetos da análise são (geralmente) mantidos e são embutidos numa infra-estrutura técnica As classes técnicas ajudam os business objects a: Serem persistentes Se comunicarem Se apresentarem na interface do usuário Terem desempenho aceitável (usando caches ou threads, por exemplo) As atividades de projeto incluem: Fase de refinamento da arquitetura (high-level design) Definição de pacotes (módulos), interfaces entre pacotes Decisão sobre uso/criação de bibliotecas e/ou componentes Falaremos disso em detalhes adiante Fase de projeto detalhado (low-level design) Atribuição de responsabilidades entre os objetos Construção de diagramas de classes Pode incluir documentação javadoc (ideal) Construção de diagramas de interação (opcional) Levantamento de necessidades de concorrência Considerações de tratamento de falhas Detalhamento do formato de saída (interface com usuário, relatórios, transações enviadas para outros sistemas,...) Página 6 de 7

Definição do esquema do BD Mapeamento de objetos para tabelas se o BD for relacional Detalhes sobre a implementação Escrita do código Relativamente simples se o projeto tiver sido bem feito Programadores devem normalmente seguir regras de codificação da empresa Atividades incluem code reviews Não se deve chegar a esta fase cedo demais! Mais cedo você agarra o teclado, mais vai demorar a terminar! Poucos novos diagramas nesta fase Detalhes sobre os testes Inclui várias fases de testes Testes feitos pelo próprio programador durante a programação Unit test: teste de classes individuais (ou de grupos de classes relacionadas) Functional test: teste de funções inteiras (item de menu, p. ex.) Component test: teste de componentes inteiros (exe, dll,...) sem (ou com pouco) scaffolding Testes feitos por equipes independentes de teste System test: testa a integração entre todos os componentes do produto Alpha test: teste de produto inteiro dentro de casa Beta test: teste de produto inteiro fora de casa Testes devem ser automatizados intro programa Página 7 de 7