FACULDADE DOS GUARARAPES

Slides:



Advertisements
Apresentações semelhantes
Ciclo de vida e organização do projeto
Advertisements

Engenharia de Software
Engenharia de Software
Gerência de Projetos Wesley Peron Seno Introdução
Engenharia de Software
Engenharia de Software
Prototipação de Software
Análise e Projeto de Sistemas I
Engenharia de Software
Engenharia de Software
Prototipação de Software
Modelos de Processos de desenvolvimento de Software
Engenharia de Software Professor Sandro de Paiva Carvalho.
INTRODUÇÃO A INFORMÁTICA
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Metodologia de Desenvolvimento de Software
Adélia Barros Introdução à Engenharia de Software Modelos de Processo Adélia Barros
Processos de Desenvolvimento de Software
Processo Desenvolvimento de Software Tradicional
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Modelos de Processos de Software
Engenharia de Software
Processos de Software II
Processo de Software Prof. Dr. rer. nat. Daniel D. Abdala
Engenharia de Software
Desafios do desenvolvimento de software
Engenharia de Software
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Processos de Software Profa. Cintia Carvalho Oliveira
Engenharia de Software Professor Mário Dantas
Engenharia de Software
Análise e Projeto de Sistemas
Engenharia de Software
Desenvolvimento Rápido de Aplicação (RAD)
Modelos de Processo de Software
Análise e Desenvolvimento de Software
PSBD II Projeto de Sistemas de Banco de Dados II
Introdução à Engenharia de Software
Análise e Projeto Orientados a Objetos
Bruno Silva Desenvolvido a partir de
Engenharia de Software I complemento Prof. Josué Froner.
Engenharia de Software
Processo de Desenvolvimento de Software
Processos de Software.
Processos de Software.
Técnicas e Projeto de Sistemas
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Gestão de projetos de Software GTI-16
Modelos de Processos de Software
Métodos Ágeis e Programação Extrema (XP)
Engenharia de Software
Engenharia de Software
Prototipação de Software
Gerenciamento de Requisitos e Modelagem de sistemas
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
Engenharia de Software
Engenharia de Software
Aula 02 de Eng. de Requisitos
Professora: Kelly de Paula Cunha
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Ciclo de vida do sistema
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Apresentação Leonardo Brussolo de Paula
Desenvolvimento de Software I
Ciclo de Vida de Sistemas de Informação
Modelos de Processo de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

FACULDADE DOS GUARARAPES Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br

Processo do Software Grupo de atividades coerentes para especificação, projeto, implementação e teste de sistemas de software.

Objetivos Introduzir os processos de modelagem de software Descrever alguns modelos de processos e quando eles devem ser usados Descrever em linhas gerais o processo modelo para os requisitos de engenharia, de desenvolvimento de softare, seu teste e evolução Indroduzir a tecnologia CASE para o auxílio dos processos de software

Tópicos cobertos Modelos do processo de software Iteração entre os processos Especificação de software Projeto e implementação de software Validação do software Evolução do software Processos automatizados de desenvolvimento

O processo do software Um conjunto estruturado de atividades necessárias para desenvolver um sistema de software Especificação Projeto Validação Evolução Um modelo de processo de software é uma representação abstrata do processo. Ela apresenta uma descrição do processo de algumas perspectivas particulares

Modelos genéricos de processos de software O modelo cascata (waterfall) Fases separadas e distintas de especificação e desenvolvimento Desenvolvimento evolucionário (ou prototipação) Especificação e desenvolvimento são intercalados Modelo de sistema formal Um modelo de sistema matemático é formalmente transformado numa implementação Desenvolvimento baseado em reuso O sistema é construído a partir de componentes existentes

Modelo Cascata Sistemático e seqüencial

Cascata- Fases do Modelo Análise de requisitos e definições Projeto do sistema e do software Implementação e teste de unidades Integração e testes do sistema Manutenção e operação Uma deficiência do modelo cascata é a dificuldade em acomodar mudanças depois que o processo se inicia.

Análise e Engenharia de Sistemas Estabelecer os requisitos básicos para todos os sistemas que envolvem o software, como hardware, pessoas e bancos de dados. Envolve a coleta dos requisitos em nível do sistema, com uma pequena quantidade de projeto e análise de alto nível.

Analise de Requisitos de Sw Concentra a coleta de requisitos no sw. Leva à compreensão do domínio da informação, a função, desempenho e interfaces exigidos. Os requisitos para o sistema e para o sw são documentados e revistos com o cliente.

Projeto Estrutura de dados Arquitetura de sw Detalhes procedimentais Caracterização da interface É avaliado antes de começar a ser implementado Junto com as etapas anteriores torna-se parte da documentação do sistema

Codificação Projeto traduzido para a linguagem do computador. Se o projeto for executado detalhadamente, a codificação pode ser executada mecanicamente?

Testes Concentra-se nos aspectos lógicos internos do sw. Garante que “todas as instruções” tenham sido testadas. A entrada definida produz os resultados exigidos? Garbage in, garbage out?

Manutenção Sw embutido nem sempre tem esta parte. Erros encontrados. Mudanças no ambiente externo. Acréscimos funcionais. Desempenho

Problemas com a Cascata O mais antigo e amplamente usado. Projetos reais raramente seguem o fluxo seqüencial que ele propõe. Ocorrem iterações que trazem problemas na aplicação do paradigma. É difícil para o cliente declarar todas as exigências explicitamente. É difícil acomodar as incertezas naturais que existem no começo de muitos projetos. O cliente deve ter paciência. Uma versão do sw só estará disponível em um ponto tardio do cronograma. Um erro crasso, pode ser desastroso. Só é apropriado quando os requisitos são bem conhecidos.

Desenvolvimento evolucionário Desenvolvimento exploratório O objetivo é trabalhar com o cliente e desenvolver um sistema final a partir das especificações iniciais. Deve iniciar com requisitos bem compreendidos. Jogar fora a prototipação O objetivo é entender os requisitos do sistema. Deve iniciar com requisitos pouco compreendidos.

Desenvolvimento evolucionário

Prototipação Início Coleta e refinamento dos requisitos Fim Projeto rápido Engenharia do produto Refinamento do protótipo Construção do protótipo Avaliação do protótipo pelo cliente

Desenvolvimento evolucionário Problemas Falta de visibilidade sobre o processo. Sistema geralmente pouco estruturado. Habilidades especiais (ex. em linguagens para uma rápida prototipação) são requeridas. Aplicabilidade Para sistemas interativos pequenos ou médios. Para partes de de grandes sistemas (ex. A interface com o usuário). Para sistemas com pouco tempo de vida.

Modelo de desenvolvimento formal Baseado na transformação de uma especificação matemática através de diferentes representações em um programa executável. As transformações preservam a corretude das especificações, sendo fácil demonstrar que que o programa segue estas últimas. Baseado na abordagem ‘Cleanroom’ para o desenvolvimento de software.

Modelo de desenvolvimento formal

Desenvolvimento formal Problemas São necessárias habilidades especiais e treinamento para aplicar a técnica. Dificuldade para formalizar especificamente alguns aspectos do sistema, como a interface com o usuário. Aplicabilidade Sistemas críticos, especialmente aqueles em que uma versão segura deve ser feita antes do sistema entrar em operação.

Desenvolvimento orientado a reutilização Baseado na sistemática do reuse, onde os sistemas são integrados a partir de componentes existentes ou sistemas (Software de Pratileiras) Estágios do processo Análise dos componentes Modificação dos requisitos Projeto do sistema com reutilização Desenvolvimento e integração Esta abordagem está se tornando mais importante, porém ainda há pouca experiência com ela.

Reuse-oriented development

Processo de iteração Os requisitos do sistema sempre evoluem ao longo do projeto, então o processo de iteração dos estágios anteriores é retrabalhado e vira parte do processo para grandes sistemas. Iteração pode ser aplicada a qualquer modelo genérico de ciclo de vida. Duas abordagens semelhantes: Desenvolvimento incremental Desenvolvimento espiral

Desenvolvimento incremental Ao invés de entreagar o sistema uma única vez, o desenvolvimento e a entrega são partidos em incrementos, que fornecem parte das funcionalidades requeridas. Os requisitos do usuários são dispostos hierarquicamente, e os requisitos de prioridades mais altas são incluídos nas primeiras entregas. Quando o desenvolvimento de um incremento é iniciado, os requisitos são “congelados” de forma que os requisitos para incrementos posteriores possam continuar a evoluir.

Incremental development

Vantagens do desenvolvimento incremental Valor ao cliente tende a ser entregue a cada incremento, então a funcionalidade dos sistema tende a ser avaliada mais cedo. Os primeiros incrementos funcionam como um protótipo para ajudar a esclarecer os requisitos para os próximos incrementos. Baixo risco de o projeto falhar completamente. As tarefas de mais alta prioridade, tendem a receber mais testes.

Extreme programming (XP) Nova abordagem de desenvolvimento baseada no desenvolvimento e entrega de pequenos incrementos de funcionalidade. Funciona com melhorias contínuas no código, envolvimento do usuário no time de desenvolvimento e programação em pares. Os testes aparecem antes da codificação.

Desenvolvimento em espiral O Processo é representado como um espiral ao invés de uma sequência de atividades com voltas para trás. Cada volta no espiral representa uma fase no processo. Não há fases fixas como especificação ou projeto. As voltas no espiral são escolhidas dependendo do que é requisitado Os riscos são explicitamente avaliados e resolvidos durante todo o processo

Spiral model of the software process

Setores do modelo espiral Definição dos objetivos Os objetivos específicos para a fase são identificados. Avaliação e redução de riscos Os riscos são avaliados e as atividades organizadas para reduzir os riscos chave. Desenvolvimento e validação Um modelo de desenvolvimento para o sistema é escolhido, que pode ser qualquer um dos modelos genéricos. Planejamento O projeto é revisto e a próxima fase da espiral é planejada.

Resumo em Equipe Processo de Software; O modelo cascata; - Análise e Engenharia de Sistemas - Analise de Requisitos de Sw - Projeto -Codificação -Testes - Manutenção Desenvolvimento evolucionário; Desenvolvimento em espiral.