Mind map
Modelos de Ciclo de Vida de Desenv. de Soft.

Map content
Modelos de Ciclo de Vida de Desenv. de Soft.
Sistemas de software
- Coleção de programas escritos para servir a outros programas (ex. compiladores, sistemas operacionais, ...)
- Tipos de sistemas de software
- Tempo Real
- Sistemas que monitoram, controlam e analisam eventos do mundo real ao mesmo tempo em que eles ocorrem. Estes sistemas tem que atender a rígidas restrições de tempo de resposta.
- Informação
- Sistemas de apoio a processos de negócios e que consistem na manutenção e processamento de bases de informação.
- Engenharia
- Sistemas que auxiliam as aplicações científicas e apoiam atividades de negocio, não manipulando grandes bases de dados, mas processando informações através de algoritmos complexos.
- Distribuídos
- Sistema formado por componentes de software distribuídos em maquinas distintas e que são conectados por uma rede.
- Embarcados
- São softwares próprios de um determinado hardware e que residem em memória não volátil e são distribuídos como parte de um equipamento.
- Computadores pessoais
- São softwares para os computadores pessoais que, entre muitas outras aplicações, são responsáveis por processamento de textos, planilhas eletrônicas, computação gráfica.
- Tempo Real
Ciclo de vida de um software - Visão Geral
- Definição
- Planejamento
- Análise de requisitos
- O QUE ???
- Especificação do sistema
- Desenvolvimento
- Projeto
- Implementação
- COMO ???
- Teste
- Implantação
- Operação
- Tornar realidade
- Operação
- Manutenção
- Correções
- Adaptações
- MUDANÇAS
- Melhorias
- Definição
Processo de desenvolvimento de software
- Define:
- Um ciclo de vida e um paradigma para o desenvolvimento
- Os métodos que serão utilizados durante o desenvovimento
- As ferramentas que suportam estes métodos
- Os papéis dos desenvolvedores
- Principais etapas:
- Análise de requisitos
- Tem como objetivo descrever o que o software deve fazer e para quem deve ser construídas estas funcionalidades.
- Objetivos
- Identificação e entendimento das necessidades do usuário
- Verificação da capacidade de desenvolvimento destas necessidades(econômica, técnica, legal, ...)
- Distribuição das funções do sistema entre as pessoas, o hardware, o software e outros elementos do sistema
- Criação de um modelo de sistema, utilizado pelas fases seguintes de desenvolvimento.
- Não focaliza a solução, mas o problema
- Projeto
- Dado um conjunto de requisitos, o projeto define uma solução computacional para sua implementação.
- Transformação dos requisitos em representações de software
- Introdução de restrições computacionais no modelo de análise
- Criação de instrumentos para tratar os aspectos computacionais
- Pode ser dividido em duas etapas:
- Projeto de arquitetura
- Transformação dos requisitos em dados e arquiteturas de software
- Projeto detalhado
- Refinamento da arquitetura, que são representados por estruturas de dados bem definidas e algoritmos para as funções.
- Projeto de arquitetura
- Codificação
- Tradução do projeto para uma linguagem de programação
- Tradução dos algoritmos estabelecidos durante o projeto refinado para uma linguagem de programação
- A linguagem de programação deve ser coerente com o paradigma utilizado durante as fases anteriores.
- Testes
- Verificação do código para determinar se este atende ao projeto e implementa corretamente os requisitos.
- Processo de execução de um programa com a intenção de encontrar erros ocultos
- 2 tipos:
- Testes de caixa preta
- Focalizam a validação dos requisitos de um software
- Testes de caixa branca
- Focalizam a estrutura do programa
- Testes de caixa preta
- Devem ser conduzidos por casos de testes gerados a partir das especificações
- Casos de testes
- Situação em que o programa será executado, e é esperado uma resposta já pré-estabelecida
- Casos de testes
- 2 tipos:
- Manutenção
- Atua sobre o software previamente desenvolvido com o intuito de corrigir erros nele presentes e evolui-lo de forma que continue útil.
- Processo de correção de erros latentes do processo de desenvolvimento
- Tipos de manutenção:
- Corretivas
- Correção de erros não localizados durante as etapas de testes.
- Adaptativas
- Alteração do software para um novo hardware ou plataforma.
- Evolutivas
- Modificação das funções do sistema ou acréscimo de novas funções.
- Preventivas
- Modificação do software para facilitar as futuras manutenções.
- Corretivas
- Tipos de manutenção:
- Implantação
- Implica em colocar o software em operação no ambiente do usuário
- Passos a serem seguidos:
- Preparação dos dados
- Conversão dos dados
- Integração com outros sistemas
- Treinamento de operadores
- Disponibilidade de manuais
- Suporte a operação (Help Desk)
- Análise de requisitos
- Avaliação da qualidade no processo de desenvolvimento de software
- Atividades que deve ser executada durante as etapas do processo de desenvolvimento para assegurar a qualidade do produto final
- Uso de um processo de desenvolvimento bem definido
- Conduta de revisões formais
- Testes
- Padronização
- Controle de alterações no software
- Medição dos fatores de qualidade
- Comparação das medidas obtidas com dados históricos de outros projetos
- Atividades que deve ser executada durante as etapas do processo de desenvolvimento para assegurar a qualidade do produto final
- Define:
Modelos de Ciclos de vida
- Cascata
- Popularizado nos anos 70
- Composto por uma sequência de atividades.
- Uma atividade começa a executar quando a outra termina
- Resultado de uma etapa é utilizado na etapa seguinte
- Guiado por documentos
- Ciclo de vida mais antigo e mais utilizado
- Popularizado nos anos 70
- Incrementais
- Protótipo
- Versão simplificada de um produto de software
- Geralmente criado sem um processo formal de desenvolvimento
- Utilizado para elucidar ou validar os requisitos do produto
- Geralmente criado sem um processo formal de desenvolvimento
- Versão simplificada de um produto de software
- Desenvolvimento incremental
- Diversas execuções do modelo clássico de vida
- Ao fim de cada execução é gerado um produto executável
- Tipos de ciclos incrementais
- Evolutivos
- Produtos de cada etapa de desenvolvimento são aproveitados em cada nova passagem pela etapa.
- Entrega rápida de produtos intermediários para o usuário
- Maior entendimento a medida que o desenvolvimento ocorre
- Os requisitos vão sendo implementados por partes
- Descartáveis
- Produtos das etapas de desenvolvimento são descartados e cada novo protótipo é construído do início.
- Custo alto pela perda do "PRODUTO" construído no incremento
- Possível insistência do usuário em manter o protótipo em uso
- Alta qualidade do processo "POR TRÁS" do protótipo descartável
- Operacional
- Requisitos são elucidados através de protótipos e o produto final é construído paralelamente a construção dos protótipos.
- Duas equipes de trabalho
- Equipe Secundaria
- Uma equipe pequena trabalha em turnos longos no ambiente do usuário, construindo protótipo "quick & dirty" para facilitar o entendimento dos requisitos do usuário.
- Equipe Principal
- Equipe que trabalha em ritmo menos acelerado e em um ambiente separado, produzindo um software de qualidade a partir dos requisitos coletados pela equipe secundaria.
- Equipe Secundaria
- Evolutivos
- Protótipo
- Espiral
- Metamodelo
- Porque qualquer ciclo de vida pode ser utilizado na fase de desenvolvimento
- A medida que componentes são desenvolvidos:
- Os componentes são avaliados
- O desenvolvimento futuro e reavaliado
- Riscos são avaliados
- Ciclo termina com o produto pronto
- Metamodelo
- RAD
- Adaptação do modelo clássico
- Onde um desenvolvimento rápido é obtido através de uma abordagem de construção baseado em componentes.
- Fases:
- Modelagem do negócio
- Modelagem dos dados
- Modelagem do processo
- Geração da aplicação
- Teste e implantação
- Adaptação do modelo clássico
- Com componentes
- Transformacional
- Critérios para seleção de ciclo de vida
- Critérios relacionados aos usuários / equipe
- Experiência dos usuários no domínio da aplicação.
- Facilidade dos usuários em expressar requisitos.
- Experiência da equipe de desenvolvimento no domínio da aplicação.
- Experiência da equipe de desenvolvimento em engenharia de software.
- Disponibilidade de recursos humanos para a equipe.
- Grau de acesso aos usuários.
- Critérios relacionados ao problema
- Grau de maturidade do domínio da aplicação.
- Complexidade do problema.
- Frequência e complexidade das mudanças nos requisitos.
- Grau de magnitude das mudanças nos requisitos.
- Grau de modularidade do problema.
- Critérios relacionados ao produto
- Tamanho da aplicação.
- Grau de complexidade da aplicação.
- Grau de importância dos requisitos de interface.
- Critérios relacionados aos recursos
- Grau de acesso aos usuários.
- Disponibilidade de recursos humanos.
- Critérios relacionados ao desenvolvimento
- Aplicável à necessidade de entrega de produtos intermediários.
- Grau dos riscos técnicos.
- Paradigma adotado.
- Critérios relacionados aos usuários / equipe
- Cascata
Images and files in the map
Information
- Description
- Engenharia de Software Mind Map on Modelos de Ciclo de Vida de Desenv. de Soft., created by Rodrigo Pereira on 15/02/2017.
- Created by
- Rodrigo Pereira
- Views
- 4
- Rating





