Engenharia de Software Vítor Vargas Robaina. Ambiente de Desenvolvimento de Software èum processo,...
Transcript of Engenharia de Software Vítor Vargas Robaina. Ambiente de Desenvolvimento de Software èum processo,...
Engenharia de SoftwareVítor Vargas Robaina
Ambiente de Desenvolvimento de Software
um processo, métodos e a automação necessária para produzir um sistema de software (Charette)
um sistema que fornece suporte a qualquer tipo de atividade executada por engenheiros de software (Saito)
um ciclo de vida, que define as etapas do processo de desenvolvimento
um conjunto de métodos usados para organizar o pensamento e o trabalho do usuário
um conjunto de ferramentas que automatizam os instrumentos.
Ciclo de Vida
• diferentes modelos
• não existe o melhor modelo
• escolha depende:do domínio da aplicaçãodas características do grupo desenvolvedordo grau de conhecimento sobre o problema
Modelo Clássico (Cascata)
• fases realizadas sequencialmente
• variações:– número das fases– nomes das fases
Prototipagem Evolutiva
Objetivo• ter uma versão inicial através da qual se aumente o
conhecimento sobre o produto
Procedimento• desenvolve-se uma versão parcial que atinge os requisitos
conhecidos• a partir do conhecimento sobre os requisitos, obtido com
o uso do protótipo, continua-se o desenvolvimento (evolue-se) o produto
Ciclo de Vida em Espiral
Objetivo• permitir definir processos de desenvolvimento, guiado
pelos riscos dos projetos
É um meta-modelo• pode acomodar qualquer processo de desenvolvimento
(por exemplo: espiral + cascata)
Métodos
“prescrições explícitas para a realização de uma atividade ou conjunto de atividades do modelo de ciclo de vida” (Charette)
“prescrições explícitas para a realização de uma atividade ou conjunto de atividades do modelo de ciclo de vida” (Charette)
Devem estabelecer:• que passos seguir
• como tomar as decisões envolvidas nestes passos
Seleção de Métodos
Nenhum método é adequado sempreA seleção de métodos deve levar em consideração:
a adequação à tecnologia de desenvolvimento a cultura da organização os conhecimentos prévios e as preferências da equipe de
desenvolvimento a facilidade de aprendizado a facilidade de integração com outros métodos a existência de ferramentas que automatizem o método
Métodos de Desenvolvimento de Software são efetivos apenas na medida em que auxiliam a comunicação entre pessoas.
Se a utilização de um método de Engenharia de Software produz um monumento de papel, então, alguma coisa está errada no método, na aplicação ou em ambos.
Se perdermos em visão das pessoas e comerçarmos a produzir gráficos, diagramas e pilhas de papel como um fim em si mesmo, então falhamos numa comunicação efetiva.
Engenharia de Software é uma questão relacionada a pessoas. Pessoas tem problemas e pessoas resolvem problemas. E nós só podemos resolver problemas de desenvolvimento de sistemas, interagindo uns com os outros. Logo, métodos de desenvolvimento de software viáveis devem facilitar a comunicação. (Coad-Yourdon)
A Proposta de Desenvolvimento deve conter: uma descrição do sistema atual e suas deficiências uma descrição do sistema a ser desenvolvido dados que permitam avaliar a viabilidade de construção e operação do sistema proposto
Proposta de Desenvolvimento
OBJETIVOSreunir dados iniciais sobre o produto a ser construídopermitir estabelecer o contrato para desenvolvimento do
produto
A Proposta de Desenvolvimento deve ser:macroscópicafidedignaimparcialrealistaviável
Conteúdo da Proposta de Desenvolvimento
Objetivos• servir de base para o entendimento do funcionamento do sistema
atual• proporcionar uma primeira justificativa da necessidade do novo
sistema
• indicar os problemas organizacionais existentes
• indicar a urgência com que o novo sistema deverá ser posto em operação
Descrição do Sistema Atual
Conteúdo da Proposta de Desenvolvimento
Objetivos• permitir o entendimento do sistema proposto • avaliar o impacto do sistema sobre a organização do usuário, os
benefícios esperados e a expectativa de vida do sistema proposto
Descrição do Sistema Proposto
Objetivos• permitir avaliar o esboço do Plano do Projeto• avaliar se é possível constituir uma equipe capaz de desenvolver
o sistema proposto
Viabilidade de Implementação
Sem o esboço do Plano do Projeto não se pode discutir a viabilidade de implementação do sistema
Se a equipe de desenvolvimento não domina• o ambiente de desenvolvimento utilizado
• o domínio da aplicação
o risco de fracasso é grande
Conteúdo da Proposta de Desenvolvimento
Objetivos• permitir avaliar a conveniência de desenvolver o sistema proposto
ou adaptar um sistema existente• permitir avaliar a interação do sistema proposto com outros
sistemas da organização• permitir estimar os benefícios do sistema proposto
Relação do Sistema com o Ambiente
Avaliação da Proposta de Desenvolvimento
deve ser realizada em conjunto por usuários e desenvolvedores
o documento final deve conter:• o texto da Proposta de Desenvolvimento• o laudo da avaliação
Análise de Requisitos
ESPECIFICAÇÃO DE REQUISITOSproduto da faseANÁLISE DE REQUISITOS DE SOFTWARE
A fase de Análise de Requisitos começa quando: se reconhece que existe um problema que necessita de uma
solução surge uma idéia nova
e termina quando se tem uma descrição completa do comportamento do
software a ser construído
O que são especificações?
representações que descrevem o software desde uma visão macroscópica (Especificação de Requisitos) até uma visão detalhada (Programas) passando por representações intermediárias (Especificações de Projeto)
alguma coisa necessária, desejada Webster’s Ninth New Collegiate Dictionary
condição ou capacidade necessária por um usuário para resolver um problema ou atingir um objetivo
condição ou capacidade que precisa ser atingida por um sistema para satisfazer um contrato, norma, especificação ou algum outro documento
IEEE Standard
O que são requisitos?
Funções da Especificação de Requisitos
ser a base para o desenvolvimento
permitir o controle da qualidade do produto
estabelecer a comunicação entre o pessoal envolvido no projeto
auxiliar no entendimento do problema
Durante a fase de Análise de Requisitos são realizadas três atividades:
Especificação do Produto
Identificação do Problema
Avaliação da Especificação
Identificação do Problema
Realizada através de:• Brainstorm• Entrevistas• JAD
Problemas:• comunicação com o usuário• entendimento completo do problema• organização das informações
Especificação do Produto
Momento de:• organizar idéias• resolver visões conflitantes• eliminar inconsistências• eliminar ambiguidades
Problemas:• seleção do método adequado• seleção de ferramentas
Momento de:• comparar a Especificação com
os padrões de qualidade previamente estabelecidos
Problemas:• inexistência de padrões• como realizar as avaliações
Avaliação da Especificação
Importância da Especificação de Requisitos
São cometidos muitos erros na fase de Análise de Requisitos
Erros permanecem latentes e tardam a ser detectados Quanto mais tarde um erro é detectado maior é o custo de
sua correção
75% dos erros detectados, o são depois das fases de codificação e teste de unidades
45% destes erros são erros de especificação e projeto
9% são erros de codificação
56% de todos os erros detectados são devido a erros na fase de Análise de Requisitos
Erros Típicos
• 49% fatos incorretos• 31% omissões• 13% inconsistências• 5% ambiguidades• 2% localização errada do requisito
Impacto dos erros
o software não satisfaz as necessidades dos usuários desentendimento entre usuários e desenvolvedores perda de tempo e dinheiro problemas judiciários
Roteiro para a Especificação de Requisitos
varia com:o projeto
a tecnologia adotada no desenvolvimento
Gerência de Projetos
GERÊNCIAGERÊNCIAPlanejamento
Planejamento
Acompanhamento
Acompanhamento
OU ?
Planejamento de Projetos
Por que planejar?
• evitar o fracasso
• prever custos, recursos, prazos e riscos
• analisar alternativas
• organizar
• preparar-se para alterações
• poder acompanhar o andamento do projeto
• planejar melhor da próxima vez
Quando planejar
• o planejamento começa de forma macroscópica no início do projeto
• o planejamento é revisto e detalhado ao longo do projeto
O que planejar
Click to add sub-title
PROCESSODOCUMENTAÇÃO
PESSOAS
RISCOS
CUSTO
CRONOGRAMA
CONTROLE DA QUALIDADE
HARDWARE E SOFTWARE
Plano do Projeto
1. Sumário 2. Resumo do Projeto 3. Visão Geral do Plano do Projeto 4. Plano do Processo de Desenvolvimento 5. Plano de Organização 6. Plano de Documentação 7. Plano de Controle da Qualidade 8. Plano de Recursos e Produtos 9. Plano de Treinamento10. Plano de Implantação e Operação11. Glossário
Plano do Projeto
ConteúdoConteúdo
Plano do Processo de DesenvolvimentoPlano do Processo de Desenvolvimento• Ciclo de Vida do Projeto• Métodos de Desenvolvimento• Ambiente de Programação• Ambiente de Hardware para Desenvolvimento
Plano do Projeto
A qualidade do produto depende da qualidade e adequação do processo de desenvolvimento
Plano do Projeto
Plano de OrganizaçãoPlano de Organização• Equipe de Gerência• Equipe de Desenvolvimento• Equipe de Controle da Qualidade• Assessorias
Plano do Projeto
Plano de DocumentaçãoPlano de Documentação• Especificação de Requisitos• Especificação de Projeto• Relatório Histórico do Projeto• Formulários para Reunião de Inspeção• Documentação de Programas• Manual do Usuário• ...
Importância da Documentação
o software existe primeiro sob a forma de documentos
a qualidade do produto final vai depender da qualidade destes documentos
documentos são a forma de comunicação entre os diferentes grupos envolvidos com o produto
Planejamento da Documentação
definição da documentação adequada a um determinado projeto
depende:• do porte do projeto• de sua expectativa de vida• dos métodos e ferramentas utilizados
durante o desenvolvimento
Plano de Documentação
Deve definirque documentos devem ser gerados em que momento devem ser geradoso roteiro para elaboração do documento responsabilidadesdestinatários ferramentas de apoio
Plano do Projeto
Plano de Controle da QualidadePlano de Controle da Qualidade
• Controle da Qualidade ao longo do Desenvolvimento• Avaliação do Produto Final• Plano de Testes
Deve-se planejar as ações necessárias para atingir os requisitos de qualidade definidos:
que critérios devem controlar as características de qualidade de interesse
como e quando os dados necessários devem ser coletados
que métodos, técnicas e ferramentas serão utilizados
Plano do Projeto
Plano de Recursos e ProdutosPlano de Recursos e Produtos• Recursos Humanos• Recursos de Hardware• Recursos de Software• Recursos Financeiros• Análise de Riscos• Cronograma• Produtos
Estimativas
TEMPO RECURSOS PESSOAS DINHEIRO
Recursos Humanos
• No desenvolvimento de software o principal custo é com pessoal
estimar custo = estimar pessoas
inicialmente define-se as características desejáveis para o pessoal
após estimar-se o esforço de desenvolvimento, estima-se o número de pessoas
Gerência de Riscos
Riscos?Blá,Blá,Blá...
Analisar e Gerenciar riscos com relação a:
pessoal
recursos
AVALIAÇÃO DA VIABILIDADE DO PROJETO
ESPECIFICAÇÃO DE REQUISITOS PLANO DO PROJETO
SOCIAL TECNOLÓGICA PESSOAL FINANCEIRA TEMPO ECONÔMICA.