26/02/2014

PROCESSO DE ENGENHARIA DE SOFTWARE
UMA VISÃO GENÉRICA

O processo de desenvolvimento de software contém 3 fases genéricas, independentes do modelo de engenharia de software escolhido:
Definição Desenvolvimento  Manutenção
 

PROCESSO DE ENGENHARIA DE SOFTWARE
(SLIDES COM BASE
EM MATERIAL DO PROF.

RENATO BALANCIERI)

Curso: Informática Prof. Renato Balancieri Aula 2

PROCESSO DE ENGENHARIA DE SOFTWARE
UMA VISÃO GENÉRICA

PROCESSO DE ENGENHARIA DE SOFTWARE
UMA VISÃO GENÉRICA

FASE DE DEFINIÇÃO: “o que” será desenvolvido

Análise do Sistema: define o papel de cada elemento num sistema baseado em computador, atribuindo em última análise, o papel que o software desempenhará Planejamento do Projeto de Software: assim que o escopo do software é estabelecido, os riscos são analisados, os recursos são alocados, os custos são estimados e, tarefas e programação de trabalho definidas Análise de Requisitos: o escopo definido para o software proporciona uma direção, mas uma definição detalhada do domínio da informação e da função do software é necessária antes que o trabalho inicie

DESENVOLVIMENTO: “como” o software vai ser desenvolvido

Projeto de Software: traduz os requisitos do software num conjunto de representações (algumas gráficas, outras tabulares ou baseadas em linguagem) que descrevem a estrutura de dados, a arquitetura do software, os procedimentos algoritmicos e as características de interface Codificação: as representações do projeto devem ser convertidas numa linguagem artificial (a linguagem pode ser uma linguagem de programação convencional ou uma linguagem não procedimental) que resulte em instruções que possam ser executadas pelo computador

PROCESSO DE ENGENHARIA DE SOFTWARE
UMA VISÃO GENÉRICA

PROCESSO DE ENGENHARIA DE SOFTWARE
UMA VISÃO GENÉRICA

DESENVOLVIMENTO: “como” o software vai ser desenvolvido

Realização de Testes do Software: logo que o software é implementado numa forma executável por máquina, ele deve ser testado para que se possa descobrir defeitos de função, lógica e implementação

FASE DE MANUTENÇÃO: concentra-se nas “mudanças” que ocorrerão depois que o software for liberado para uso operacional
Correção Adaptação  Melhoramento Funcional
 

1

beleza e custo têm estreita relação com a qualidade   2 . A manutenção corretiva muda o software para corrigir defeitos Adaptação: com o passar do tempo. o cliente/usuário reconhecerá funções adicionais que oferecerão benefícios. Revisões: efetuadas para garantir que a qualidade seja mantida à medida que cada etapa é concluída. fatores como: conforto.  PROCESSO DE SOFTWARE Atividades de Apoio: as fases e etapas correlatas descritas são complementadas por uma série de atividades de proteção. PRINCÍPIOS DE QUALIDADE DE SOFTWARE Controle das mudanças: é instituído de forma que as O que é Qualidade?   O QUE É QUALIDADE?  É uma característica de alguma coisa Característica Refere-se a coisas mensuráveis. é provável que o cliente descubra defeitos no software. subjetivamente ou objetivamente ◦ Podem ser comparadas com padrões previamente estabelecidos ◦ O que um determinado produto apresenta para considerarmos que o mesmo tem qualidade?  Ex. A manutenção perfectiva estende o software para além de suas exigências funcionais originais. segurança. Documentação: é desenvolvida e controlada para garantir que informações completas sobre o sistema e software estejam disponíveis para uso posterior. o sistema operacional e periféricos) para o qual o software foi desenvolvido provavelmente mudará. o ambiente original (por exemplo a CPU. mudanças possam ser aprovadas e acompanhadas.26/02/2014 PROCESSO DE ENGENHARIA DE SOFTWARE UMA VISÃO GENÉRICA  PROCESSO DE ENGENHARIA DE SOFTWARE UMA VISÃO GENÉRICA  Correção: mesmo com as melhores atividades de garantia de qualidade de software. desempenho. A manutenção adaptativa muda o software para acomodar mudanças em seu ambiente Melhoramento Funcional: a medida que o software é usado.: Carro  É um conceito relativo ◦ ◦ Depende do tipo de produto a ser analisado É mais fácil definir a qualidade de produtos físicos Qualidade é um conceito relativo Diversos aspectos são levados em conta  No caso de um automóvel.

a velocidade de execução? Tolerância a falhas Ocorrendo falhas. leis.? Interoperabilidade Conformidade Segurança de acesso Evita acesso não autorizado aos dados? Característica Subcaracterística Pergunta chave para a subcaracterística Característica Subcaracterística Pergunta chave para a subcaracterística Maturidade Confiabilidade (é imune a falhas?) Com que freqüência apresenta falhas? Tempo Eficiência (é rápido e "enxuto"?) Recursos Qual é o tempo de resposta. etc. Estes requisitos formam a base pela qual a qualidade é medida  Pode haver problemas na observação  Pode haver problemas na especificação   A falta de conformidade com estes requisitos significa falta de qualidade Qualidade de Produtos de Software – ISO 9126 – NBR 13596 CONFORMIDADE COM REQUISITOS IMPLÍCITOS Um software de qualidade deve ser*: Característica Sub-característica Pergunta chave para a subcaracterística Adequação Correto Confiável Eficiente Integro Fácil de Usar Interoperável *Definidos na norma ISO/IEC 9126. como ele reage? Quanto recurso usa? Durante quanto tempo? Recuperabilidade É capaz de recuperar dados em caso de falha? Analisabilidade É fácil de encontrar uma falha. quando ocorre? É fácil entender o conceito e a aplicação? Manutenibilidade (é fácil de modificar?) Modificabilidade É fácil modificar e adaptar? Intelegibilidade Usabilidade (é fácil de usar?) Apreensibilidade É fácil aprender a usar? Estabilidade Operacionalidade É fácil de operar e controlar? Há grande risco quando se faz alterações? 3 .26/02/2014 O QUE É QUALIDADE?  CONFORMIDADE COM REQUISITOS FUNCIONAIS E DESEMPENHO  Qualidade está fortemente relacionada à conformidade com os requisitos O que é “conformidade em relação a requisitos”? observado x especificado. Propõe-se a fazer o que é apropriado? Manutenível Flexível Testável Portável Reutilizável Quais atributos um software necessista possuir para ser considerad o de qualidade? Acurácia Funcionalidade (satisfaz as necessidades?) Faz o que foi proposto de forma correta? Interage com os sistemas especificados? Está de acordo com as normas.

em boa medida.  O QUE É QUALIDADE DE SOFTWARE? Conjunto de características a serem satisfeitas em um determinado grau. imprevisível Delimitar o escopo de um sistema não é trivial A volatilidade dos requisitos é lugar comum no desenvolvimento de software  Como isso se manifesta em software?   FATORES QUE AFETAM O DESENVOLVIMENTO DE SOFTWARE E INFLUENCIAM A QUALIDADE Tamanho e complexidade do software  Número de pessoas envolvidas no projeto  Métodos. técnicas e ferramentas utilizadas  Custo x benefício do sistema  Custos associados à existência de erros  Custos associados à detecção e remoção de erros. etc.26/02/2014 O QUE É QUALIDADE?  O QUE É QUALIDADE DE SOFTWARE?   Qualidade diz respeito à satisfação do cliente Requisitos são especificados por pessoas e com o objetivo de satisfazer outras pessoas Uma especificação depende das escolhas feitas (clientes alvo)  Pode haver problemas na especificação  Conferência da NATO (1968) – Crise de Software Problemas detectados: ◦ ◦ ◦ ◦ ◦ ◦  Cronogramas não observados Projetos abandonados Módulos que não operam corretamente quando combinados Programas que não fazem exatamente o que era esperado Sistemas tão difíceis de usar que são descartados Sistemas que simplesmente param de funcionar  Passados mais de 40 anos. de modo que o software satisfaça às necessidades de seus usuários Desenvolvedores Usuários Finais Usuários Indiretos 4 . o que mudou? O QUE É QUALIDADE DE SOFTWARE?  DESENVOLVIMENTO DE SOFTWARE  Qualidade em geral: é um conceito relativo  está fortemente relacionada à conformidade com requisitos  diz respeito à satisfação do cliente  O aspecto não repetitivo do desenvolvimento de software torna essa atividade difícil e.

5 . mas é um indicativo de que a organização é capaz de produzir bons produtos   PORTANTO...  A Qualidade do Processo de Software está relacionada à extensão na qual um processo de software específico é eficiente e é explicitamente definido. medido e controlado..26/02/2014 QUALIDADE DO PRODUTO X QUALIDADE DO PROCESSO DE SOFTWARE  MOTIVAÇÃO PARA A BUSCA DA QUALIDADE DO PROCESSO DE SOFTWARE Aumento da qualidade do produto Diminuição do retrabalho  Maior produtividade  Redução do tempo para atender o mercado  Maior competitividade  Maior precisão nas estimativas   Qualidade do produto de software não se atinge de forma espontânea A qualidade do produto depende fortemente da qualidade do processo de desenvolvimento Um bom processo não garante que os produtos produzidos são de boa qualidade. gerenciado.