Resumo capítulo 1 livro Engenharia de Software Moderna
Engenharia de Software: Processos, Métricas, Qualidade e Testes
1.
2. Muita gente associa o termo software aos programas de computador. Na verdade,
essa é uma visão muito restritiva. Software não é apenas o programa, mas também
toda a documentação associada e os dados de configuração necessários para fazer
com que esses programas operem corretamente.
Produtos genéricos: São sistema produzidos por uma organização de
desenvolvimento e vendidos no mercado a qualquer cliente capaz de adquiri-los.
exemplos desse tipo de produto estão a base de dados, os processadores de texto, os
pacotes de desenho.
Produtos sob encomenda: São os sistemas encomendados por um cliente em
particular. O software é desenvolvido especialmente para aquele cliente por uma
empresa de software. Exemplo: sistema de controle de tráfego aéreo
3. Engenharia de Software
A engenharia de software foi desenvolvida em resposta a
problemas de construção de sistemas, software de grande
porte e personalizada, destinados a aplicações industriais,
governamentais e para o setor de defesa. Atualmente,
desenvolvemos uma variedade muito maior de produtos
de software, desde jogos para consoles especializados,
passando por produtos para PCs e sistemas baseados na
Web, até chegar aos sistemas distribuídos em grande
escala. Embora algumas técnicas apropriadas para os
sistemas personalizados.
4. Modelo de processo
Um modelo de processo de software é uma descrição
simplificada de um processo de software, que é
apresentada a partir de uma nova perspectiva. Os modelos,
pela sua natureza são simplificação; e, assim, um modelo
de processo de software é uma abstração do processo real
que esta sendo descrito. Dentre os modelos de processo
destacam-se atividades que são parte do processo de
software, produto de software e o papel das pessoas
envolvidas na engenharia de software.
5. O que é Case?
CASE significa Computer-Aided Software
Enginneering (engenharia de software com o
auxilio de computador). São vários programas
diferentes utilizados para apoiar as atividades de
processo de software, como análise de requisitos,
a modelagem de sistema, a depuração e os testes.
6. Atributos de um bom software
Eles refletem seu comportamento quanto ao funcionamento, estrutura,
organização do programa fonte e também a documentação associada.
Exemplos desses atributos (às vezes, chamados de atributos não
funcionais) são o tempo de respostas do software à consulta de um
usuário e a facilidade de compreensão do código do programa.
Um sistema bancário tem de ser seguro, um jogo interativo deve ter
uma resposta rápida, um sistema de controle de telefonia precisa ser
confiável e assim por diante.
Cada vez mais se exige que os sistemas operem como sistemas
distribuídos por meio de redes que possuem diferentes tipos de
computadores e diferentes tipos de sistemas de apoio.
7.
8. Métricas
Medidas são necessárias para analisar qualidade e produtividade do processo de
desenvolvimento e manutenção, bem como do produto de software construído. Medidas
técnicas são necessárias para qualificar a performance técnica dos produtos do ponto de
vista do desenvolvedor. Por outro lado, medidas funcionais são necessárias para
qualificar a performance dos produtos pela perspectiva do usuário.
As Métricas de Software, do ponto de vista de medição, podem ser divididas em duas
categorias: medidas diretas e indiretas.
Medidas diretas;
Mediadas indiretas.
Ponto de vista de apricação:
• Métricas de produtividade;
• Métricas de qualidade.
Métricas orientadas ao tamanho;
Métricas orientadas à função.
9. Riscos
Riscos é a execução de atividades que viabilizem a
identificação prévia e o tratamento de potenciais
problemas. Na literatura são apresentadas diversas
propostas de modelos e processos para incorporar a
gerência de riscos ao processo de desenvolvimento de
software. Uma questão que se coloca é como analisar
se a incorporação da gerência de riscos no processo
de desenvolvimento está sendo efetiva.
10. Qualidade
Qualidade de software é um conjunto de propriedades a serem
satisfeitas, em determinado grau, de modo que o software
satisfaça as necessidades do usuário, e para isso acontecer é
necessário que o gerente de projeto tenha, de forma clara e
definida, o objetivo daquele projeto de desenvolvimento.
O gerenciamento da qualidade do projeto inclui os processos
necessários para assegurar que o projeto satisfaça as
necessidades para as quais foi criado. Os processos principais
do gerenciamento da qualidade são:
Planejamento da qualidade (identificar);
Garantia da qualidade (avaliar o desempenho);
Controle de qualidade (controlar os resultados).
11. Princípios da Gestão da Qualidade
Foco no Cliente;
Liderança;
Envolvimento da equipe;
Prevenção ao invés de inspeção;
Prevenir riscos ainda na fase de
planejamento.
12. Requisitos
A gerência de projeto do software não é sempre tão fácil como
parece. As técnicas de gerência tradicionais de projeto são
incapazes de adaptar-se muito bem às mudanças e aos novos
riscos. Isto faz com as equipes tenham cada vez mais
dificuldades para reagirem rapidamente às mudanças
intrínsecas ao processo de desenvolvimento de software.
Entretanto, as novas técnicas com métodos ágeis podem
tornar mais fácil a vida de gerentes de projeto e equipes desde
que executadas corretamente. Uma equipe qualificada e
comprometida conseguirá entregar softwares melhores e mais
baratos mais rapidamente.
13. Escopo
Gerenciamento do Escopo do Projeto incluem a definição do trabalho
necessário para concluir o projeto, servir como guia (ou ponto de
referência) para determinar que trabalho não está incluído (ou não é
necessário) no projeto.
O escopo é o “foco” do projeto. O escopo do projeto difere-se do
escopo do produto na medida em que o escopo do projeto define o
trabalho necessário para fazer o produto, e o escopo do produto
define os recursos (atributos e comportamentos) do produto que está
sendo criado.
Início do projeto ;
Planejamento do escopo do projeto;
Processos do Gerenciamento do escopo do projeto;
Controle de mudanças do escopo do projeto;
Verificação do escopo do projeto.
14. Prazos
O objetivo da gerência do tempo de projeto é descrever os
processos requeridos para o término do projeto, garantindo que o
mesmo cumpra com os prazos definidos em um cronograma de
atividades.
Definições das Atividades;
Seqüenciar Atividades;
Estimativa de Recursos de Atividade;
Estimativa de Duração de Atividade;
Desenvolvimento do Cronograma;
Controle do Cronograma.
A gerência do tempo de projeto e a gerência do custo do projeto
são as áreas de maior exigência dentro de um projeto.
15. Cronograma
O cronograma é importantíssimo no desenvolvimento de software. É a única
forma de estabelecer uma data final para a entrega do produto. A data de
entrega deve ser informada pelo desenvolvimento ao resto da empresa.
Regras e Dicas sobre Cronogramas.
16. Diagramas
O DFD ou Diagrama de Fluxos de Dados é uma
ferramenta para a modelagem de sistemas. Ela
fornece apenas uma visão do sistema, a visão
orientada a funções, ou seja, o fluxo dos dados.
Um DFD é uma ferramenta de modelagem que nos
permite imaginar um sistema como uma rede de
processos funcionais, interligados por “dutos” e
“tanques de armazenamento de dados .
18. Testes
O teste do software é um processo que permeia outros
processos da Engenharia de Software, e envolve ações que
vão do levantamento de requisitos (necessidades) até a
execução do teste propriamente dito. O objetivo, por mais
paradoxal que pareça, é encontrar defeitos nos produtos,
para que estes possam ser corrigidos pela equipe de
programadores, antes da entrega final. A maioria das
pessoas pensa que o teste de software serve para
demonstrar o correto funcionamento de um programa,
quando na verdade ele é utilizado como um processo da
engenharia de software para encontrar defeitos.
19. Bibliografia
Engenharia de Software - Roger S. Pressman - Ed.
Makron Books.
Engenharia de Software - Ian Sommerville - Ed. Pearson.
Sites diversos referenciados pelo Google.