Вы находитесь на странице: 1из 55

Introduo Engenharia de Software As Principais Disciplinas

Introduo
Engenharia de Software
Unidade II As Principais Disciplinas

Pedro de Alcntara dos Santos Neto


pasn@ufpi.edu.br
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Processo para Aplicativos Extensveis
Interativos:
processo de desenvolvimento de software;
foco educacional;
orientado a objetos;
baseado em paradigmas de grande difuso:
UML, CMM, UP, IEEE software standards.
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Objetivos de um processo educacional:
exposio s tcnicas mais relevantes;
treinamento eficaz e eficiente.
Pblicos:
cursos acadmicos;
programas de treinamento;
organizaes em via de melhoria de processos.
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Nomenclatura do Praxis.
Fase:
diviso maior de um processo;
para fins gerenciais;
corresponde aos pontos principais de aceitao;
por parte do cliente.
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Fases do Praxis.
Concepo:
deciso de desenvolver um produto;
Elaborao:
dimensionamento firme;
Construo:
entrega de produto completo;
Transio:
passagem ao ambiente de uso.
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Nomenclatura do Praxis.
Fluxo:
subprocesso caracterizado por um tema;
Podem ser Tcnicos
Requisito, Anlise, Desenho, Implementao, Teste
ou Gerenciais
Gesto de projetos, Gesto da qualidade
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Iter.\ Fluxo RQ AN DS TS IM GP GQ ES EP Total %
LR 5,50% 3,00% 0,70% 0,10% 0,30% 0,30% 0,10% 0,00% 0,00% 10,00%
AR 2,00% 7,50% 3,50% 0,40% 1,00% 0,40% 0,20% 0,00% 0,00% 15,00%
DI 0,30% 1,50% 8,50% 4,00% 5,00% 0,40% 0,30% 0,00% 0,00% 20,00%
L1 0,20% 0,20% 2,00% 4,00% 8,00% 0,40% 0,20% 0,00% 0,00% 15,00%
L2 0,20% 0,20% 2,00% 4,00% 8,00% 0,40% 0,20% 0,00% 0,00% 15,00%
L3 0,10% 0,10% 1,00% 3,20% 5,00% 0,40% 0,20% 0,00% 0,00% 10,00%
L4 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00% 0,00%
TA 0,00% 0,00% 0,00% 3,00% 1,60% 0,20% 0,20% 0,00% 0,00% 5,00%
TB 0,00% 0,00% 0,00% 3,00% 1,00% 0,20% 0,20% 0,60% 0,00% 5,00%
OP 0,00% 0,00% 0,00% 3,00% 0,60% 0,20% 0,20% 1,00% 0,00% 5,00%
Total % 8,30% 12,50% 17,70% 24,70% 30,50% 2,90% 1,80% 1,60% 0,00% 100,00%
Introduo Engenharia de Software As Principais Disciplinas

PRAXIS
Detalhando um pouco mais o Praxis
Dividido em Fases
Que possuem iteraes
Cada iterao tem um script que diz o que deve ser
feito...
Isso inclui o detalhamento das atividades a serem
executadas
Cada atividade faz parte de um dos fluxos
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Objetivo de uma especificao de requisitos:
enunciado completo, claro e preciso dos requisitos de
um produto de software;
mais complexo no caso de produtos novos:
mais difcil para os usurios identificar caractersticas
de maior valor;
mais difcil para os desenvolvedores entender o que os
usurios desejam.
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Contedo da ERSw.
Funcionalidade: o que o produto dever fazer?
Interfaces externas: como o produto interage com
as pessoas;
o hardware do sistema;
outros produtos?
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Contedo da ERSw.
Desempenho: quais os requisitos de -
velocidade de processamento;
tempo de resposta;
outros parmetros de desempenho?
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Contedo da ERSw.
Outros atributos: que consideraes devem ser
observadas sobre:
portabilidade;
manutenibilidade;
confiabilidade?
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Contedo da ERSw.
Restries de desenho impostas pela aplicao: existem
padres a serem seguidos, como:
linguagem de implementao;
ambientes de operao?
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Requisitos devem ter alta qualidade
corretos;
precisos;
completos;
consistentes;
priorizados;
verificveis;
modificveis;
rastreveis.
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Atividades.
Determinao do contexto:
levantamento dos aspectos dos processos de negcio ou de
um sistema maior;
relevantes para a determinao dos requisitos do produto.
Definio do escopo:
delimitao dos problemas que o produto se prope
resolver.
Definio dos requisitos:
produo de lista dos requisitos funcionais e no funcionais;
descritos de forma sucinta;
sem entrar-se em detalhes.
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Atividades.
Detalhamento dos requisitos de interface:
detalhamento dos aspectos das interfaces do produto
que os usurios consideram como requisitos.
Detalhamento dos requisitos funcionais:
detalhamento dos casos de uso;
representam fatias de funcionalidade do produto.
Detalhamento dos requisitos no funcionais:
detalhamento dos requisitos de desempenho e outros;
necessrios para que o produto atinja a qualidade
desejada.
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Atividades.
Classificao dos requisitos:
determinao das prioridades relativas dos requisitos;
avaliao da estabilidade;
avaliao da complexidade de implementao.
Reviso dos requisitos:
determinao do atendimento dos critrios de
qualidade de requisitos;
verificao da clareza e legibilidade da Especificao
dos Requisitos do Software.
Introduo Engenharia de Software As Principais Disciplinas

Requisito
Requisitos devem ter alta qualidade
corretos;
precisos;
completos;
consistentes;
priorizados;
verificveis;
modificveis;
rastreveis.
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Objetivos:
modelar conceitos relevantes;
do domnio do problema;
de forma precisa;
verificar qualidade dos requisitos;
obtidos atravs do fluxo de Requisitos;
detalhar requisitos;
em nvel adequado aos desenvolvedores.
Em resumo...
Modelar os requisitos identificados em um formato mais prximo
do formato utilizado pelos profissionais de informtica
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Descrio e verificao dos requisitos funcionais:
casos de uso:
comportamento esperado do produto como um todo;
classes:
conceitos do mundo da aplicao;
relevantes para a descrio precisa dos requisitos;
realizaes dos casos de uso:
mostram como objetos das classes descritas colaboram.
Cada classe dever ter suas operaes (mtodos)
identificadas, bem como quando sero ativadas para se
executar determinada funo
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Atividades de anlise:
Identificao das classes:
identificao das classes do produto;
Com base nos fluxos dos casos de uso;
e outros documentos relevantes.
Organizao das classes:
organizao das classes em pacotes lgicos;
atribuio de esteretipos;
conforme papel que desempenham no modelo.
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Atividades de anlise:
Identificao dos relacionamentos:
determinao dos relacionamentos;
entre objetos das classes identificadas.
Identificao dos atributos:
levantamento dos atributos;
propriedades do conceito expresso pela classe.
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Atividades de anlise:
Realizao dos casos de uso:
verificao dos fluxos dos casos de uso;
em termos dos objetos das classes identificadas;
representando-os atravs de diagramas de interao.
Reviso da anlise:
validao dos resultados da Anlise;
e dos correspondentes resultados de Requisitos.
Introduo Engenharia de Software As Principais Disciplinas

Anlise
Muito importante!
Na Anlise devemos modelar os conceitos identificados nos
requisitos
Tudo isso no contexto do PROBLEMA identificado
No Desenho devemos modelar os conceitos identificados em uma
SOLUO para o problema
Nesse caso o contexto o da SOLUO
A principal difereno justamente essa!
Devemos definir a tecnologia
Qual ser o banco de dados e a forma de utiliz-lo?
Qual ser a tecnologia das interfaces (Html, Swing, ...)?
Como ser autenticao (biometria, senhas, ...)?
Essas questes s devem surgir no desenho e no na anlise
Justamente por causa do foco de cada uma!
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Aspectos a considerar:
atendimento dos requisitos no funcionais:
desempenho;
confiabilidade;
usabilidade;
manutenibilidade;
portabilidade;
definio de classes e outros elementos:
em nvel de implementao;
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Aspectos a considerar:
decomposio em componentes:
construo relativamente independente;
diviso de trabalho, uma vez que provavelmente
teremos uma equipe atuando na construo;
definio adequada das interfaces entre componentes:
reduo do acoplamento, que a dependncia entre as
partes que compe um produto;
Quanto menor, melhor...
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Aspectos a considerar:
documentao das decises:
comunicao com os implementadores;
reutilizao:
componentes, mecanismos e outros artefatos;
aumento da produtividade e confiabilidade;
suporte a mtodos e ferramentas de gerao de
cdigo:
aumento da produtividade e confiabilidade.
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Desenho Implementao:
atividades de desenho:
realizadas por grupos pequenos de profissionais
experientes;
difcil de dividir em atividades paralelas;
atividades de implementao:
podem ser delegadas a profissionais no
necessariamente proficientes em Desenho;
mas conhecedores do ambiente de implementao;
treinados nas respectivas tcnicas;
paralelismo de implementao pode resultar de bom
desenho.
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Desenho implementao:
desenho detalhado atividade de implementao;
no de desenho;
correo e qualidade de mecanismos e estruturas:
passa pela implementao;
profissionais de desenho precisam dominar tambm o
ambiente e as tcnicas de implementao;
fronteira das tarefas de desenho e de implementao:
determinada por cada organizao;
pode at variar de acordo com os projetos.
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Atividades:
Desenho arquitetnico:
aspectos estratgicos de desenho externo e interno;
diviso do produto em subsistemas;
escolha de tecnologias mais adequadas.
Desenho das interfaces:
desenho em detalhe das interfaces reais do produto;
em seu ambiente definitivo de implementao.
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Atividades:
Detalhamento dos casos de uso:
resoluo de detalhes dos fluxos dos casos de uso;
considerando os componentes reais das interfaces;
considerando todos os fluxos alternativos.
Desenho das entidades:
transformao das classes de entidade do Modelo de Anlise;
nas classes correspondentes do Modelo de Desenho.
Desenho da persistncia:
desenho das estruturas externas de armazenamento
persistente;
arquivos e bancos de dados.
Introduo Engenharia de Software As Principais Disciplinas

Desenho
Atividades:
Realizao dos casos de uso:
como os objetos das classes de desenho colaboram;
para realizar os casos de uso de desenho.
Desenho das liberaes:
como a implementao do produto ser dividida;
entre as Liberaes.
Reviso do desenho:
validao dos resultados do Desenho;
confronto com os resultados dos Requisitos e da
Anlise.
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Tarefas da implementao:
planejamento detalhado da implementao;
das unidades de cada liberao;
implementao das classes e outros elementos do
modelo de desenho;
em unidades de implementao;
geralmente arquivos de cdigo-fonte;
alocao das unidades aos nodos;
em sistemas distribudos;
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Tarefas da implementao:
verificao das unidades;
revises;
inspees;
Atividades de garantia da qualidade que verificam, a partir da
leitura de especialistas, sua conformidade e adequao
testes de unidade;
Criao de programas que verificam se outros programas
funcionam corretamente
compilao e ligao das unidades;
integrao das unidades entre si;
integrao das unidades com componentes reutilizados;
adquiridos de terceiros;
reaproveitados de projetos anteriores;
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Tarefas da implementao:
verificao das unidades;
revises;
inspees;
Atividades de garantia da qualidade que verificam, a partir da
leitura de especialistas, sua conformidade e adequao
testes de unidade;
Criao de programas que verificam se outros programas
funcionam corretamente
compilao e ligao das unidades;
integrao das unidades entre si;
integrao das unidades com componentes reutilizados;
adquiridos de terceiros;
reaproveitados de projetos anteriores;
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Tarefas da implementao:
integrao das unidades:
com resultados das iteraes anteriores;
verificao da integrao;
confeco da documentao de uso do produto:
manuais de usurios;
ajuda on-line;
stios Web integrados ao produto;
material de treinamento;
demonstraes e outros recursos.
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Atividades.
Desenho detalhado:
preenche detalhes restantes do Modelo de Desenho;
no nvel necessrio para a codificao;
Codificao:
traduz desenho detalhado;
no cdigo de uma ou mais linguagens de programao;
Inspeo de implementao:
verifica o desenho detalhado e o cdigo;
para eliminar os defeitos de implementao;
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Atividades.
Testes de unidade:
verifica a funcionalidade das unidades implementadas;
Integrao:
liga as unidades implementadas;
com os componentes construdos em iteraes
anteriores.
Introduo Engenharia de Software As Principais Disciplinas

Implementao
Atividades especiais.
Prototipagem:
confeco de cdigo provisrio;
para realizar experimentos de validao de requisitos
ou desenho.
Documentao de usurio:
confeco de manual do usurio;
e outros tipos de documentos para usurios.
Introduo Engenharia de Software As Principais Disciplinas

Teste
Teste consiste na verificao dinmica do
funcionamento de um programa em um conjunto
finito de casos de teste, cuidadosamente
selecionado dentro de um domnio infinito de
entradas, contra seu funcionamento esperado.
Dinmico Execuo
Finito Existem muitos casos de teste
Selecionado Tcnicas diferem na seleo
Esperado Funcionamento deve ser verificado
Introduo Engenharia de Software As Principais Disciplinas

Teste
Terminologia
Elementos do Teste
Procedimento de Teste
Documentao especificando uma seqncia de aes para
execuo de um teste.
Caso de Teste
Documentao especificando entradas, resultados esperados, e
um conjunto de condies de execuo para um item de teste.
Plano de Teste
Documento que descreve o escopo, abordagem, recursos e
agenda para as atividades de teste, identificando os itens de
teste, as construes a serem testadas, as tarefas envolvidas,
executores e riscos associados.

IEEE STD 829-1983


Introduo Engenharia de Software As Principais Disciplinas

Teste
Procedimentos de teste:
contm seqncia de aes que devem ser executadas;
para realizar grupo de testes semelhantes;
correspondem a roteiros importantes de casos de uso
de desenho;
pode ser executados de forma manual ou automtica;
testes automatizados podem ser codificados:
em linguagem de script de ferramenta de automao de
testes;
na prpria linguagem de implementao, dentro de
pacote de classes de teste.
Introduo Engenharia de Software As Principais Disciplinas

Teste
Procedimentos de teste:
contm seqncia de aes que devem ser executadas;
para realizar grupo de testes semelhantes;
correspondem a roteiros importantes de casos de uso
de desenho;
pode ser executados de forma manual ou automtica;
testes automatizados podem ser codificados:
em linguagem de script de ferramenta de automao de
testes;
na prpria linguagem de implementao, dentro de
pacote de classes de teste.
Introduo Engenharia de Software As Principais Disciplinas

Teste
Procedimentos de teste:

Identificao MERCI-ETF-GU-PT-IU

Objetivo Verificar se a incluso de um usurio feita corretamente.

Requisitos especiais Nenhum.

Fluxo 1. Acionar Novo.

2. Preencher Nome, Login, Senha.

3. Selecionar Grupos do Usurio.

4. Acionar Salvar.
Introduo Engenharia de Software As Principais Disciplinas

Teste
Casos de teste:
contm para cada instncia de teste:
valores de entradas;
valores esperados de sadas;
valores de entrada escolhidos:
critrios que maximizam a cobertura do teste;
tambm podem ser automatizados;
podem ser embutidos em scripts ou classes de teste;
como os procedimentos;
podem ser obtidos de arquivos ou bancos de dados de casos de
teste.
Introduo Engenharia de Software As Principais Disciplinas

Teste Identificao MERCI-ETF-GU-CT-AU1


Caso
Itens a testar Processamento correto de alterao de usurio.
de teste
Campo Valor

Nome Joaquim Pereira


Entradas Login joaquim

Senha senha01

Grupos do Usurio Gestor de Compras

Campo Valor

Nome Joaquim Pereira


Sadas esperadas
Senha senha01 (oculto como *******)

Grupos do Usurio Gestor de Compras

Ambiente Banco de dados de teste.

Procedimentos 1. Incluso de Usurio - MERCI-ETF-GU-PT-AU

2. Pesquisa de Usurio - MERCI-ETF-GU-PT-PU

Dependncias Banco de dados de teste deve ter um usurio com o login dado. Por exemplo, pode ter sido
executado o caso de teste Incluso de usurio 1 (MERCI-ETF-GU-CT-IU1).
Introduo Engenharia de Software As Principais Disciplinas

Teste: atividades

Planejamento Objetivos do Teste O qu testar?

Determinao de estratgias para


Desenho delimitar os objetivos

Gerao de Procedimentos
Implementao e Casos de Teste

Execuo dos Casos de Teste Execuo

Determinar se os objetivos
foram atendidos Verificao

Registrar lies aprendidas,


Balano Final
gerando um relatrio final
Introduo Engenharia de Software As Principais Disciplinas

Teste
Atividades de preparao.
Planejamento:
define itens a testar, aspectos gerenciais e recursos
necessrios;
para a execuo da bateria de testes.
Desenho:
completa as especificaes dos testes da bateria;
procedimentos e casos de teste.
Introduo Engenharia de Software As Principais Disciplinas

Teste
Atividades de realizao.
Implementao:
monta o ambiente de teste;
implementando os componentes de teste;
instalando e configurando os itens a testar.
Execuo:
executa os testes da bateria;
produzindo os relatrios resultantes
Introduo Engenharia de Software As Principais Disciplinas

Teste
Atividades de realizao.
Verificao do trmino:
inspeciona os testes;
determinando se esto satisfeitas condies de
completeza e sucesso.
Balano final:
realiza o balano final dos testes da bateria;
registrando as concluses e lies aprendidas.
Introduo Engenharia de Software As Principais Disciplinas

Gesto de Projetos
Viso geral da gesto de projetos
Gesto de requisitos
Cadastramento dos requisitos
Monitorao dos requisitos
Alteraes dos requisitos
Planejamento de projetos
Planejamento na Concepo
Introduo do Plano de Desenvolvimento
Organizao do projeto
Introduo Engenharia de Software As Principais Disciplinas

Gesto de Projetos
Subfluxos:
Gesto de requisitos.
Planejamento de projetos.
Controle de projetos.
Processo subsidirio:
Contratao de projetos.
Executado por outra empresa mas que deve ser
controlado por quem realiza a contratao...
Introduo Engenharia de Software As Principais Disciplinas

Gesto de Projetos
Definio dos Subfluxos

Subfluxo Descrio rea do CMM


Gesto de Controle das alteraes e rastreamento dos
RM
requisitos requisitos.
Elaborao de planos de projetos, por meio de
Planejamento de
estimativas de tamanho, esforo, prazo e SPP, ISM
projetos
riscos.
Acompanhamento do progresso e dos riscos
Controle de
dos projetos, com execuo de procedimentos PTO, ISM, IC
projetos
corretivos, quando necessrios.
Introduo Engenharia de Software As Principais Disciplinas

Gesto de Projetos
Atividades.
Cadastramento dos requisitos:
lanamento dos requisitos e itens derivados no cadastro
dos requisitos.
Monitorao dos requisitos:
acompanhamento do estado dos requisitos.
Alterao dos requisitos:
anlise de solicitaes de alterao de requisitos;
realizao da alterao, se aprovada.
Introduo Engenharia de Software As Principais Disciplinas

Introduo
Engenharia de Software
Unidade II As Principais Disciplinas

Pedro de Alcntara dos Santos Neto


pasn@ufpi.edu.br