Ciclos de Vida de Software

Documentos relacionados
Introdução a Teste de Software

Engenharia de Software. Projeto de Software. Projeto: definição. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

Princípios da Engenharia de Software aula 03

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Processos de software

Visão Geral do RUP (Rational Unified Process)

Prof. Ms. Ronaldo Martins da Costa

Paradigmas de Software

Estratégias de Testes Parte I

Engenharia de Software

Problemas e Práticas Recomendadas no Desenvolvimento de Software

Engenharia de Requisitos

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

3. Engenharia dos requisitos de software

Análise e projeto de sistemas

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 3 21/08/2012

Material Disciplina Tópicos em Engenharia de Software Parte 1 (Introdução aos Conceitos Engenharia de Software) Prof. Wagner Santos C.

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Documento de Requisitos*

Processos de Software

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Aula 4 Engenharia de Requisitos

Análise e Projeto Orientado a Objetos

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Análise de Requisitos

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

CICLO DE VIDA DE SOFTWARE

05/09/2013. Ciclo de vida de um Sistema de Informação

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Processos de Software

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Prof. Luiz A. Nascimento

Processo de desenvolvimento de sistema de informação - DSI

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Engenharia de Software I

REUSO E REUSABILIDADE

Escopo: PROCESSOS FUNDAMENTAIS

Análise de Requisitos, Estimativas e Métricas

Processo de Desenvolvimento de Software

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Introdução 2014/1 Prof. Luís Fernando Garcia

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Engenharia de Software II

SSC 0721 Teste e Validação de Software

Manutenção de Software

Prof. Esp. Fabiano Taguchi

RUP/PSDS. Introdução e Comparação

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Organização para Realização de Teste de Software

Engenharia de Software

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

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

Engenharia Software. Ení Berbert Camilo Contaiffer

As Visões. Visões arquiteturais (revisão)

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Arquitetura de software

2

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Verificação e Validação

ARQUITETURA E DESENHO

Workflow Genérico de Iteração

Ciclo de vida: fases x atividades

Engenharia de Software II

Análise e Projeto de Sistemas

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

Engenharia de Requisitos

ENGENHARIA DE SOFTWARE. Introdução

Engenharia de Software

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

DESENHO DE CARGOS E TAREFAS

Análise de Sistemas I

Áreas de Conhecimento, Técnicas de Análise de Negócio e Conceitos-Chave

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

AN INTRODUCTION TO SOFTWARE ENGINEERING

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Data Warehouse ETL. Rodrigo Leite Durães.

ENGENHARIA DE SOFTWARE

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

RUP RATIONAL UNIFIED PROCESS

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

Engenharia Reversa e Reengenharia. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

SSC Engenharia de Software. Prof. Paulo C. Masiero

Transcrição:

Tema da Aula Modelos de 1 Modelo em Cascata Prof. Cristiano R R Portella portella@widesoft.com.br O conceito de Ciclo de Vida de é um paradigma da Eng.. Existem vários modelos de ciclo de vida de software, alguns cobrindo apenas da concepção ao desenvolvimento, enquanto outros cobrem concepção, desenvolvimento, implantação e manutenção. 1

Modelo didático que divide o ciclo de vida de 5 a 12 fases (cf. o autor). Criado por Winston W. Royce (1970) e aperfeiçoado por Barry Boehm (1976). Adequação: Projetos grandes (cobre todas as fases), quando os requisitos estão claramente definidos no início do desenvolvimento, com complexidade baixa e riscos técnicos e de projeto bem entendidos. 2

Definição de Requisitos: Requisito: (adj.) O que se requisitou ou requereu. Condição necessária para obtenção de certo objetivo. Quesito. Definição de Requisitos: Foco: No usuário e no processo (voz voz do processo). do cliente e Tarefas: Extrair os requisitos, especificar cada um deles, redigir uma Definição de Requisitos e valida-los junto ao usuário. 3

Definição de Requisitos: Através de consulta ao usuário e observação do processo (existem outras possibilidades, por exemplo analisar os documentos em uso no sistema convencional), extrair os serviços e as metas a serem atingidas, bem como as restrições a serem respeitadas. Qual a qualidade desejada para o sistema em termos de funcionalidade, desempenho, flexibilidade de uso etc. Definição de Requisitos: Especificar quais os requisitos e não como eles deverão ser obtidos (detalhes de implementação). Esse refinamento será feito na fase de análise e/ou projeto. Diferença entre: Informar clientes classificados em ordem alfabética crescente. Informar clientes classificados em ordem alfabética crescente (Tabela TC_Cliente, campo TC_Nome. Montar visão para a tabela ordenada). 4

Definição de Requisitos: Praticamente todo requisito identificado precisa de uma especificação. Especificar: (v.t.d.) Indicar espécie de; explicar detalhadamente; Descrição rigorosa e minuciosa das características que um material, uma obra ou um serviço deverão apresentar. Definição de Requisitos: Por exemplo: Requisito: O sistema deve aceitar multi-empresas. Especificação: Cada empresa tem CNPJ, endereço e Diretoria própria. Os clientes são cadastrados para a Holding e não por empresa. Atualmente existem 4 empresas, mas esse número poderá chegar a 10 unidades. 5

Definição de Requisitos: Gerar um Documento de Especificação, redigido em linguagem inteligível para o usuário. Finalidade: 1. O usuário deverá analisar e confirmar se a descrição está correta e se atende suas necessidades e expectativa. 2. Será usados pelos desenvolvedores, durante o processo de construção do produto. 3. Quando o produto for entregue, será usado pelo usuário para valida-lo (ver se está conforme os requisitos). Definição de Requisitos: Características do Documento de Especificação: 1. Linguagem de domínio do usuário; 2. Preciso; 3. Completo; 4. Consistente; 5. Sem redundâncias; 6. Sem ambigüidades. Por exemplo: O sistema deve ser preciso. (qual o significado de precisão nesse contexto?) 6

Definição de Requisitos: (Doc.de Especificação): Requisitos Funcionais: O que o produtos de software deve fazer (funcionalidade). Requisitos Não Funcionais: 1. Confiabilidade Disponibilidade Integridade Segurança Definição de Requisitos: (Doc. de Especificação): Requisitos Não Funcionais (cont.): 2. Acurácia dos resultados (exatidão). 3. Desempenho 4. Problemas da interface homem-máquina 5. Restrições físicas e operacionais 6. Portabilidade 7. Etc. 7

Definição de Requisitos: Aplicar os 5 Princípios da, especialmente: Abstração, Decomposição e Generalização. Abstração: Fixar-se nos aspectos importantes, ignorando os detalhes. Decomposição: Dividir em partes para lidar com a complexidade. Generalização: Buscar características comuns relegando as características específicas (é uma forma de abstração). Não usamos: Formalidade e Flexibilização. Análise de Requisitos: Foco: Nos objetivos, restrições e alternativas. Ferramentas: Metodologias/técnicas de modelagem e análise, ferramentas (editores gráficos, CASE s etc). 8

Análise de Requisitos: Obter uma compreensão completa dos requisitos de software, através de: Descoberta Refinamento Especificação Técnica Modelagem Análise de Requisitos: Definição detalhada do domínio das informações e do domínio da funcionalidade requerida para o software. O desenvolvedor deve definir as estruturas de dados, conhecendo cada uma delas (tipo, tamanho, volume, consistências, inter-relação, se disponível em bases de dados, forma de coleta etc). 9

Análise de Requisitos: Também deve definir detalhes da funcionalidade (detalhes de como o sistema deve se comportar, tanto em funcionalidade como em performance, segurança etc.) Modelos de Dados Modelos de Funcionalidade Projeto de : Foco: Nos dados, componentes de software e no produto final de software. Ferramentas: Metodologias/técnicas de modelagem e análise, ferramentas (editores gráficos, ferramentas CASE etc). 10

Projeto de : Representação das funções do sistema, em uma forma que possa ser transformada em programas executáveis. Decompor o produto de software desejado em partes (programas, módulos, componentes etc). Recompor, pensando no produto final (monolítico) Projeto de : Criar documento de especificação de cada parte do produto: O que ela deve fazer (entradas, comportamento, saídas). Definir a relação entre componentes 11

Projeto de : Relação entre componentes: Forte coesão (interna) Fraco acoplamento (externo) MODULO MODULO COMPONENTE 1 COMPONENTE 1 COMPONENTE 2 COMPONENTE 2 DIAGRAMA DE COMPONENTE Projeto de : Projeto Preliminar: Transformação dos requisitos numa arquitetura de dados e de funcionalidade. Projeto Detalhado: Refinamento das representações estruturais, obtendo-se assim representações detalhada dos algoritmos (nos casos em que for necessário) e dos dados. 12

Projeto de : Detalhe: O ciclo de vida clássico tem um foco acentuado no produto de software e não o processo, portanto está faltando um projeto operacional, visando detalhes do processo de construção (esforços, responsabilidades, milestones etc). Projeto de : 13

Codificação: Foco: Nos algoritmos e nas linguagens de programação (sintaxe, limitações, funcionalidade disponível, Ferramentas: Linguagens de programação, geradores de fonte, CASE de amplo espectro etc. código Teste: Foco: Nas especificações e nas saídas do produto de software. Ferramentas: Técnicas de testagem, procedimentos da Qualidade, ferramentas de testagem. 14

Teste: Testar contra especificações de requisitos Testar contra padrões da instalação Nomenclatura de campos, tabelas Padrões de interfaces Padrões de qualidade Teste: Unitário (cada unidade de software) De Integração do sistema (todos os componentes, a partir de uma estratégia de aglutinação progressiva). De integração entre sistemas (sistema gerado com outros sistemas com os quais haverá troca de informações). 15

Teste Elementos necessários: Padrões da instalação e Def. Requisitos Ferramentas de teste Plano de teste Critérios de teste Critérios de completude (quando parar?) Gerenciamento dos casos de teste Teste Passos para um caso de teste : 16

Teste: Recomendação IEEE (Computer Dictionary). Não usar o termo bug ; usar: Defeito (Fault) Instrução ou definição incorreta. Falha (Failure) Resultados incorretos Erro (Mistake) Falha resultante de ação humana Teste: Testes especiais: Performance Segurança Stress etc Teste na área de produção: Teste inicial (alfa) Beta teste 17

(Operação e) Manutenção: Foco: Depende do tipo de manutenção (algoritmo, processo, tecnologia etc) usuário, Ferramentas: Linguagens de programação, ferramentas CASE etc. A rigor deveria ser o mesmo foco e as mesmas ferramentas da fase de Definição de Requisitos (volta às origens). (Operação e) Manutenção: Fase mais longa do ciclo. Tipos de manutenção: Corrigir erros remanescentes Adaptar a novas situações e necessidades Preparar para futuras alterações 18

Modelo Clássico Atualizado Modelo Clássico (visão realista) 19

Modelo Clássico (ambientes) Implantação: Transferir da área de desenvolvimento para a área de produção. Preparar área de rede (grupo, usuários, diretórios, direitos) Conversão de arquivos ou Geração dos arquivos (caso Biblioteca) Treinamento dos usuários Integrar tecnologias 20

Falhas do modelo: Todo modelo tem suas limitações (abstração, estático, foco (visão) do modelo, etc. 1) Imagina o processo como sendo seqüencial e progressivo, onde cada fase é estanque, mesmo com as setas indicando retorno a fases anteriores, cada fase é vista isoladamente. Tenta manter a linearidade para manter o processo previsível e de fácil gerenciamento. Falhas do modelo: 2) A fase de Análise só se inicia após obtenção dos requisitos, que devem ser: Completos Corretos Não ambíguos Não redundantes Sem detalhes de implementação Quando isso é possível? 21

Falhas do modelo: 3) Não estimula o desenvolvimento conjunto. O trabalho com o usuário está restrito à fase de Definição de Requisitos. 4) A entrega do produto só ocorre depois de terminado. Quando o usuário tem a chance de ver se o produto atende suas necessidades e expectativa, ele já está pronto. Falhas do modelo: 5) Não prevê um Estudo de Viabilidade, que deveria iniciar ao término da Definição de Requisitos e, no máximo prolongar-se até o início da Análise. Sua finalidade é evitar que recursos sejam gastos na tentativa de solucionar o problema de maneira errada, além de verificar se a solução é viável do ponto de vista econômico (investimos poucos recursos para termos certeza de que o projeto é viável, evitando perder muitos recursos). 22

O Estudo de Viabilidade dever avaliar: Se o problema é passível de solução via software As possíveis soluções (desenvolver, comprar) Estudo de custos x benefícios Deve conter: Definição do problema Possíveis soluções (inclusive alternativas) Benefício de cada uma delas Recursos necessários, custo e prazo de cada uma delas Falhas do modelo: O Estudo de Viabilidade dever avaliar: Se o problema é passível de solução via software As possíveis soluções (desenvolver, comprar) Estudo de custos x benefícios No Estudo de Viabilidades investimos poucos recursos para termos certeza de que o projeto é viável, evitando perder muitos recursos. 23

Falhas do modelo: 6) Não menciona o Gerenciamento do Processo de, que ocorre simultaneamente a construção do produto e é altamente influenciado pela complexidade deste último. Falhas do modelo: 24

Gerenciar o processo: Objetivo: Controlar o processo. 1. Adaptar o modelo de gerenciamento do processo ao tipo de ciclo de vida e tipo de produto. 2. Definir Políticas (autorização de acessos, períodos de backup, responsabilidades, documentação obrigatória etc). 3. Obter recursos 4. Gerenciar recursos 5. Corrigir desvios do projeto e monitorar prazos e custos. Falhas do modelo: 7) Não permite Engenharia Reversa (reconstrução de sistema legados). 25

Na prática: Pressões sobre o tempo Receber ordens para fazer (mandatório) DSI fazendo política de boa vizinhança Diretoria fazendo política de boa vizinhança O desenvolvimento já estava previsto em P.D.I. 26