Conjunto de
instruções para
serem
executadas por
um computador
O programa
é o código
que vai ser
executado
O que é
um
software?
instruções
(programas de
computador) que,
quando executadas,
produzem a função e
o desempenho
desejados
estruturas de
dados que
permitem a
manipulação das
informações;
documentos
que
descrevem a
operação e
uso dos
programas.
é a parte lógica
de um sistema
cuja função é
comandar o
hardware.
é o produto que
os engenheiros
de software
projetam e
constroem
O que
é
sistema?
É um conjunto de
elementos
interdependentes
de modo a formar
um todo organizado
Sistema
Hardware
Pessoas
Software
Atividades da
Engenharia
de Software
TÉCNICAS
Engenharia
de
Requisitos
Levantamento de
Requisitos:Atividade de
descobrir os problemas, as
necessidades dos clientes e as
características do dominio do
cliente-Entrevistas,
questionários, leitura de
documentos, observações,
pesquisas de levantamento de
dados, prototipação,
Análise dos requisitos: Estudo
dos requisitos levantados,
procurando achar
inconsistências, conflitos,
lacunas nas descrições -
Modelagem ajuda a descobrir
falhas no entendimento,
descrições incompletas - Por
outro lado pode levar a um
engessamento precoce da
percepção do domínio
Especificação dos requisitos
Atividade de descrever os
requisitos de maneira clara e
precisa, sem ambiguidades.
Liguagem natural Linguagem
controlada em um template
Casos de uso Notações
específicas para diagramas de
modelagem de caso de uso,
diagramas de classes, tabelas de
condições
Validação dos Requisitos
Atividade de revisão por
parte do cliente, e usuários
para determinar se a
descrição dos requisitos está
correta, clara e precisa e
completa. Protótipos
podem ser usados Notações
mais sofsticadas dificultam
esta atividade por parte do
cliente
Projeto
(design) de
Software
Atividade onde se considera
diversas alternativas de
soluções e as ponderações
sobre uma ou outra solução
todas as alternativas
precisam satisfazer os
requisitos Escolha de uma
solução Detalhamento da
solução escolhida através de
notações específicas para o
projeto
Existem duas partes do projeto de
software Projeto detalhado dos
objetos ou elementos de pequena
granularidade Quais são os objetos,
como eles interagem entre si, quem
é responsável por cada função
Necessário para satisfazer os
requisitos funcionais Se preocupa
com a escolha adequada de
algoritmos e estruturas de dados
apropriadas para resolver o
problema de forma eficiente
Existem duas partes no
projeto de software Projeto
da arquitetura do software
(visão mais abstrata) Quais
são as grandes partes do
software, como elas se
comunicam, onde elas
executam Necessário para
satisfazer requisitos de
qualidade
Implementação
ou
codificação
Atividade que transforma
modelos de projeto em
código escrito em uma
linguagem de programação
Se preocupa com a
implementação adequada
dos algoritmos e estruturas
de dados escolhidos durante
o projeto
Testes
de
software
Atividade para verificar
que o software funciona
como o esperado e satisfaz
os requisitos dos clientes
Existem testes manuais,
automatizados, que
concentram-se mais no
código, ou no usuário, ou
na especificação dos
requisitos.
Evolução
ou
manutenção
de
software
Atividade contínua após a
entrega do software ao
cliente Correções de
defeitos que não foram
descobertos antes
Melhorias Novos requisitos,
Novas necessidades
Mudanças de tecnologias
Medição
de
software
Atividades que envolvem a
definição de metas, de
métricas como unidade de
medida das metas e as
coletas de dados ou
medições a respeito do
processo, do projeto ou do
produto de software
Estimativas
de
software
Atividades de previsão
do desenvolvimento ou
manutenção com base em
históricos do processo de
produção. Podemos
estimar o tempo, o custo,
o esforço, o tamanho do
software, o tamanho da
equipe necessária e
outros.
GERENCIAIS
Aceitação
pelo
cliente
Atividade realizada
pelo cliente com o
objetivo de validar se o
software entregue
satisfaz as necessidades
do cliente
Funcionalidade
Qualidade
Gestão de
configuração
Atividade de apoio durante
todo processo de
desenvolvimento ou
manutenção onde os arquivos
produzidos são gerenciados
por uma ferramenta que não
viola as regras estabelecidas
na empresa para o controle de
mudanças
Gerência
de
Projetos
Atividades de
planejamento e controle
da execução de um
projeto com duração no
tempo, envolvendo
pessoas alocadas na sua
execução e um custo de
produção.
Gerência
de
Requisitos
Atividade de controle
que se concentra em:
Priorização dos
requisitos Aprovações
de mudanças Controle
de escopo
Rastreabilidade
Gestão da
qualidade
de
software
Atividades de garantia
da qualidade Avaliam o
processo, as práticas, a
comunicação, as políticas,
enfim tudo que pode
impactar na qualidade de
um software e não apenas
a sua correta execução.
Gestão
de
Processos
Atividade de definição
e melhoria de processo
com base nas boas
práticas da engenharia
de software, nos
modelos de capacitação
e maturidade como
CMMI, MPS.BR