Академический Документы
Профессиональный Документы
Культура Документы
Software
Engenharia de Software 2
Introduo
Software :
-tornou-se tecnologia indispensvel para empresas,
universidades e para a cincia em geral.
- manipula o produto mais importante da era atual a
informao.
- as empresas de software possuem grande influncia
no cenrio mundial.
- presente na medicina, nas telecomunicaes, na rea
militar, na industrial, no entretenimento, nas atividades
do dia-a-dia.
- Necessidade do mercado em aumento de
produtividade e diminuio de custos.
Introduo
Software :
- Solues: projeto, implementao, tecnologias,
padres, frameworks.
- Exemplos de categorias de Software: (cf. Pressman)
a) Aplicao;
b) Cientfico;
c) Web;
d) Embutido;
e) Linhas de Produto;
f) Inteligncia Artificial;
g) Computao Ubqua;
Introduo
O processo do desenvolvimento de Software:
- Conjunto de atividades relacionadas que levam a
produo de um software. (cf. Sommerville)
- Diferentes processos => atividades fundamentais.
a) especificao;
b) Projeto;
c) Implementao;
d) Validao e Verificao;
e) Evoluo.
Introduo
- No existe um processo de desenvolvimento ideal.
-Deve-se adotar melhores prticas no
desenvolvimento.
- Utilizao de padres.
- Utilizao de um modelo de processo.
- Exemplos:
a) Desenvolvimento em Cascata;
b) Desenvolvimento Incremental;
c) Desenvolvimento Orientado a Reso;
d) Desenvolvimento Dirigido por Modelos;
Introduo
-Desenvolvimento em Cascata
Cascata:
- primeiro modelo de desenvolvimento de software;
- Dividido em 5 estgios:
a) Definio de Requisitos e Anlise;
b) Projeto de Sistema;
c) Implementao
d) Verificao e Validao
e) Implantao.
Introduo
-Desenvolvimento em Cascata:
Definio de
Requisitos
Anlise e
Projeto de
Sistema e de
Software
Implementao
Verificao
&
Validao
Implantao
Introduo
-Desenvolvimento Incremental
Incremental:
- desenvolve-se uma aplicao inicial (prottipo);
- anlise do usurio (cliente) desenvolvimento
paralelo a validao.
- desenvolvimento de novas verses;
- documentao menor em relao ao modelo em
cascata.
- Menor custo de mudanas nos requisitos.
- Maior agilidade na entrega.
- Exemplo: Desenvolvimento dirigido a planos.
Introduo
-Desenvolvimento Incremental
Incremental:
- Desvantagens:
- O processo no visvel;
- Uma verso de documento para cada verso do
sistema.
- A estrutura do sistema degrada-se com a adio de
novas funcionalidades.
- Complexidade de gerenciamento de grandes
sistemas.
Introduo
-Desenvolvimento Incremental:
Atividades Concorrentes
Especificao
Esboo de
Descrio
Desenvolvimento
Verso
Inicial
Verses
Intermedirias
Validao
Verso Final
Introduo
-Desenvolvimento Orientado a Reuso(Reutilizao)
Reuso(Reutilizao):
- O reuso acontece, na maioria das vezes,
informalmente.
- Utiliza componentes reutilizveis de software.
- Estgios do Modelo de DOR:
a) Anlise de componentes;
b) Modificao de requisitos;
c) Projeto do sistema (utilizao de framework);
d) Desenvolvimento e Integrao (dos componentes);
Introduo
-Desenvolvimento Orientado a Reuso(Reutilizao)
Reuso(Reutilizao):
Tipos de componentes utilizados:
- Web Services;
- Componentes J2EE ou .Net;
- Componentes stand-alone proprietrios.
- Plug-ins.
Introduo
-Desenvolvimento Orientado a Reuso(Reutilizao):
Especificao
de Requisitos
Anlise de
Componentes
Alterao dos
Requisitos
Desenvolvimento e
Integrao
Projeto de
Sistema com
Reutilizao
Validao do
Sistema
Introduo
-Processo de Desenvolvimento
-Coleo de padres que definem um conjunto de
atividades necessrias ao desenvolvimento de
software. (Pressman)
- Quatro atividades bsicas do processo:
a) Especificao (requisitos)
b) Desenvolvimento ( projeto, codificao)
c) Verificao e Validao ( depurao, teste,
mtricas, refatoramento)
d) Evoluo (manuteno)
Introduo
-Modelo de Processo de Desenvolvimento
-As atividades variam dependendo do modelo de
processo.
a) Especificao ou engenharia de requisitos:
- Compreenso e definio dos servios requisitados
do sistema;
- Erros nesta fase geram problemas no projeto e na
implementao;
- Produo dos documentos de requisitos;
- Estudo de viabilidade, anlise dos requisitos,
validao dos requisitos.
Introduo
-Modelo de Processo de Desenvolvimento
b) Desenvolvimento (Projeto e Implementao)
- Processo de converso das especificidades dos
requisitos em um software.
- Envolve projeto e programao.
- O projeto descreve a estrutura da aplicao, os
modelos computacionais, estruturas de dados,
componentes, algoritmos, interfaces.
- O projeto desenvolvido de forma iterativa.
- Cada atividade deve gerar um produto de sada.
- Diferentes mtodos de projeto para: Programao
Estruturada, POO, POA, Eventos, Agentes, etc.
Introduo
-Modelo de Processo de Desenvolvimento
b) Desenvolvimento (Projeto e Implementao)
- O software interage com outros softwares, com o
sistema operacional, banco de dados e middleware
formando a plataforma do software.
- A anlise da plataforma do software essencial no
processo de projeto.
- Principais tipos de projeto: de arquitetura
(estrutura), de componente, de interface, de
banco de dados.
Introduo
-Modelo de Processo de Desenvolvimento
b) Desenvolvimento (Projeto e Implementao)
- Conjunto de sadas do projeto: arquitetura,
especificao da base de dados, de componentes e
interfaces.
- Estas sadas podem ser representadas por
diagramas (no caso de MDE) ou documentos de
especificao (mtodos geis).
- Para a programao no existe um processo geral a
ser seguido(cf. Sommerville), que indique qual
componente ser o primeiro a ser desenvolvido.
Introduo
-Modelo de Processo de Desenvolvimento:
c) Validao:
- Tambm chamado de Verificao e Validao
(V&V).
- Verificar que o software atende aos requisitos
especificados e se atende s necessidades do
cliente.
- Envolve inspees e revises em cada fase do
processo de desenvolvimento.
- Compreende a atividades de Teste de Software.
- Testes de: desenvolvimento, sistema, aceitao.
Introduo
-Modelo de Processo de Desenvolvimento:
c) Validao:
- Teste de desenvolvimento: os componentes so
testados, de maneira independente, pelas pessoas
que os desenvolveram. Os componentes podem ser
funes, classes, componentes ou agrupamentos
coerentes destes.
- Teste de sistema: realizado aps a integrao dos
componentes, busca por erros resultantes das
interaes.
- Teste de aceitao: testado com dados reais, busca de
erros na definio dos requisitos, problemas de
performance.
Introduo
-Modelo de Processo de Desenvolvimento:
d) Evoluo:
- Os softwares devem ser desenvolvidos de maneira
flexvel.
- Devem garantir extensibilidade, manutenibilidade.
- Envolve a fase de manuteno do software.
- A manuteno um processo contnuo e inerente
a todo software.
Introduo
Criado para atender s exigncia do mercado
global, com rpidas mudanas.
Novos softwares devem ser desenvolvidos
rapidamente para atender as novas oportunidades
de negcios.
Segundo Sommerville, muitas empresas esto
dispostas a trocar qualidade e compromisso com
os requisitos por uma implantao mais rpida.
No h tempo para obteno de um conjunto
completo de requisitos.
Introduo
Caracterstica fundamental das abordagens geis:
Desenvolvimento rpido;
Desenvolvimento em partes (entrega dos
incrementos);
Especificao, projeto e implementao so
intercalados (suscetvel mudanas);
Documentao minimizada;
Desenvolvimento em verses;
Usurios envolvidos na especificao e validao;
Desenvolvimento de GUIs semi-automatizado.
Introduo
Crticas aos mtodos geis:
Codificao cowboy (balbrdia) ausncia de
mtodos;
Falta de documentao,
Suscetvel a vrias mudanas (imprevisvel),
Projeto insuficiente;
Intensidade no desenvolvimento (experts);
Introduo
Dificuldades da implantao dos princpios geis
(Sommerville
Sommerville,, 2011):
Disposio do cliente a participar plenamente do
desenvolvimento do software;
Problemas de interao entre membros da equipe
de desenvolvimento;
Dificuldade na priorizao de mudanas;
Resistncia de empresas de desenvolvimento
adaptao de um modelo com processos informais
e definidos pela equipe de desenvolvimento.
(adaptado de Larman
Larman,, 2002)
Fonte: extremeprogramming.org
Fonte: extremeprogramming.org