Anda di halaman 1dari 50

Professora: Maria Adlia Ic dos Santos Disciplina: Engenharia de Software Tema da aula: Introduo a Engenharia de Software

Roteiro
Software Caracterstica do software Curva de Falha do Software Aplicaes do Software Evoluo do Software A crise do software Causa dos Problemas Associado crise do software Engenharia de Software Definio Mtodos, Ferramentas e Procedimentos Processo de Software Modelo de Processo de Software - Ciclo de vida Ciclo de Desenvolvimento de Software Modelo Sequencial ou Cascata Modelo Incremental Evoluo ou Prototipao Modelo Espiral Modelo de Maturidade Bibliografia Prxima aula

Software

1- Instrues
quando executadas produzem a funo e o desempenho desejados 2 - Estruturas de Dados possibilitam que os programas manipulem adequadamente a informao 3 - Documentos descrevem a operao e o uso dos programas

Caractersticas do Software

1. desenvolvido ou projetado por engenharia, no manufaturado no sentido clssico


2. no se desgasta mas se deteriora

3. a maioria feita sob medida em vez de ser montada a partir de componentes existentes

Curva de falhas do Software

curva real

ndice de falhas

mudana

curva idealizada

tempo

Aplicaes do Software

Evoluo do Software
(1950 - 1965)
O software era tratada como uma arte "secundria" para a qual

havia poucos mtodos sistemticos

O hardware sofreu contnuas mudanas

O hardware era de propsito geral


O software era especfico para cada aplicao No havia documentao

Evoluo do Software
(1965 - 1975)

Multiprogramao e sistemas multiusurios Tcnicas interativas Sistemas de tempo real 1a gerao de SGBDs Produto de software - software houses Bibliotecas de Software

Manuteno quase impossvel

Evoluo do Software

(1975 - hoje)

Sistemas distribudos Redes locais e globais

Uso generalizado de microprocessadores - produtos inteligentes


Hardware de baixo custo Impacto de consumo

..... CRISE DE SOFTWARE

Evoluo do Software

(Quarta era do software: atualidade)


Tecnologias orientadas o objetos Sistemas especialistas e software de inteligncia artificial usados na prtica Software de rede neural artificial Computao Paralela Internet

..... CRISE DE SOFTWARE (aflio crnica???)

A crise do software

Foi um termo utilizado por volta anos 1970;

O termo expressava as dificuldades do desenvolvimento de software


frente ao rpido crescimento da demanda por software, da complexidade dos problemas a serem resolvidos e da inexistncia de tcnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.

A crise do software
Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

(1) As estimativas de prazo e de custo frequentemente

so imprecisas
No dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software Sem nenhuma indicao slida de produtividade, no podemos avaliar com preciso a eficcia de novas ferramentas, mtodos ou padres

A crise do software

(2) A produtividade das pessoas da rea de software no tem acompanhado a demanda por seus servios
Os projetos de desenvolvimento de software normalmente so efetuados apenas com um vago indcio das exigncias do cliente

A crise do software
(3) A qualidade de software s vezes menos que adequada
S recentemente comeam a surgir conceitos quantitativos slidos de garantia de qualidade de software

(4) O software existente muito difcil de manter


A tarefa de manuteno devora o oramento destinado ao software
A facilidade de manuteno no foi enfatizada como um critrio importante

A crise do software

Estimativas de prazo e de custo Produtividade das pessoas Qualidade de software Software difcil de manter

Causas dos problemas associados

Crise de Software
1. Prprio carter do Software

O software no se desgasta, mas se deteriora!!!

2. falhas das pessoas responsveis pelo desenvolvimento de Software


Os profissionais da rea de software tm recebido pouco treinamento formal em novas tcnicas para o desenvolvimento de software Resistncia a mudanas.

CHAOS - Resultados dos Projetos

Preocupao: Sistematizar o processo de criao e manuteno de software.

Definio...
Engenharia de Software: aplicao de uma abordagem sistemtica, disciplinada e quantificvel, para o desenvolvimento, operao e manuteno de software; isto , a aplicao da engenharia ao software.

IEEE [IEEE 93]

Abrange um conjunto de trs elementos fundamentais:


Mtodos, Ferramentas e Procedimentos
Principais metas: melhorar a qualidade de produtos de software, aumentar a produtividade do pessoal tcnico e aumentar a satisfao do cliente.

Engenharia de Software
Mtodos: proporcionam os detalhes de como fazer para construir o software.

Planejamento e estimativa de projeto Anlise de requisitos de software e de sistemas Projeto da estrutura de dados Algoritmo de processamento Codificao

Teste
Manuteno

Engenharia de Software
Ferramentas: do suporte automatizado aos mtodos.

Existem atualmente ferramentas para sustentar cada um dos mtodos Quando as ferramentas so integradas estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering

Engenharia de Software
Procedimentos: constituem o elo de ligao entre os mtodos e ferramentas

Sequncia em que os mtodos sero aplicados


Produtos que se exige que sejam entregues Controles que ajudam assegurar a qualidade e coordenar as alteraes Marcos de referncia que possibilitam administrar o progresso do software.

Engenharia de Software

Conjunto de etapas que envolve mtodos

ferramentas
procedimentos

Essas etapas so conhecidas como componentes de CICLO DE VIDA DE SOFTWARE


ou Processo de Software

Processo de Software
Processos de Engenharia de Software: Um processo de Engenharia de Software formado por um conjunto de passos de processo parcialmente ordenados, relacionados com artefatos, pessoas, recursos, estruturas organizacionais e restries, tendo como objetivo produzir e manter os produtos de software finais requeridos

Qualidade de Software: uma rea de conhecimento da engenharia de software que objetiva garantir a qualidade do software atravs da definio e normatizao de processos de desenvolvimento

Processo de Software
Para Pressman o alicerce da engenharia de software est exatamente na camada de processo.

O processo de engenharia de software o adesivo que mantm unidas as camadas de tecnologia e permite o desenvolvimento racional e oportuno de softwares de computador.

Processo de Software
Os Processo de Softwares formam a base para o controle gerencial de projetos de software e estabelece o contexto no qual os mtodos tcnicos so aplicados, os produtos so produzidos, os marcos so estabelecidos, a qualidade assegurada e as modificaes so adequadamente geridas.

Comunicao
Iniciao do processo , levantamento de requisitos

Planejamento
Estimativas, cronogramao, monitorao

Modelagem
Analise Projeto

Construo
Codificao, Teste

Implantao
Entrega Manuteno FeedBack

Modelo de Processo de Software


Um modelo de processo de desenvolvimento de software, ou simplesmente modelo de processo, pode ser visto como uma representao, ou abstrao dos objetos e atividades envolvidas no processo de software.

Exemplos de alguns modelos de processo de software Ciclo de Vida:


Sequencial ou Cascata Incremental Evolucional ou Prototipao Espiral

Ciclo de Vida
O Ciclo de Vida natural de software abrange basicamente as fases:

Concepo;

Construo;
Implantao; Implementao; Maturidade; Declnio; Manuteno; Morte.

Ciclo de Desenvolvimento de Software

Estudo de Viabilidade

Identificar as deficincias atuais; Estabelecer objetivos do novo sistema; Gerar cenrios aceitveis; Prepara encargos de projetos.

Ciclo de Desenvolvimento de Software

Analise de Sistemas
O principal propsito da atividade de anlise transformar suas duas principais entradas, poltica do cliente ou usurio e os encargos do projeto, em especificao estruturada do projeto. Para isso feita a modelagem do ambiente do cliente com os Diagramas de Fluxo de Dados (DFDs). Para isso necessrios algumas atividades como;
Desenvolver um modelo comportamental; Desenvolver um modelo ambiental; Analisar custo e beneficio; Restringir o sistema.

Ciclo de Desenvolvimento de Software

Implementao
Esta atividade inclui a codificao e a integrao dos mdulos em um esqueleto, progressivamente mais complexo, do sistema final. Suas etapas so: Definir a sequencia em que os mdulos sero implementados; Codificar mdulos;

Testar o esqueleto do sistema.

Ciclo de Desenvolvimento de Software

Projeto
A atividade do projeto refere-se alocao de partes da especificao aos processadores apropriados e disponveis (computadores e pessoal envolvidos). As atividades inerentes a esta etapa so:

Alocar especificaes para os processadores; Alocar as tarefas; Derivar o diagrama estrutural; Projetar o Banco de Dados; Produzir a especificao do projeto.

Ciclo de Desenvolvimento de Software

Garantia de Qualidade; Descrio de Procedimento; Converso do Banco de Dados; Instalao


Manual do Usurio; Baco de Dados; Aceite do Cliente;

Concluso

Modelo Sequencial ou Cascata


O modelo em cascata, algumas vezes chamado de ciclo de vida clssico, sugere uma abordagem sistemtica e sequencial para o desenvolvimento de software que comea com a especificao dos requisitos pelo cliente e vai progredindo. REQUISITOS Analista de Negcios ANLISE Analista Funcional PROJETO Chefe de Projeto CODIFICAO Analistas de Sistemas e Programadores

TESTE
MANUTENO

Modelo Sequencial ou Cascata


Alguns problemas encontrados que o modelo em cascata aplicado:

Projeto raramente segue o fluxo sequencial que o modelo prope;


O modelo exige que sejam estabelecidos todos os requisitos explicitamente; Uma verso executvel do programa no fica disponvel at o final do intervalo de tempo do projeto.

Modelo Incremental
O modelo incremental combina elementos de modelo em cascata aplicado de maneira iterativa. O modelo incremental aplica sequencias lineares de forma racional medida que o tempo passa. Cada sequencia linear produz incrementos do software passveis de serem entregues.

INCREMENTO 1

INCREMENTO 2

INCREMENTO 3

Modelo Incremental

Fonte:http://hugohabbema.blogspot.com/2009/08/modelos-prescritivos-de-desenvolvimento.html

Evolucional ou Prototipao

O cliente, frequentemente, define um conjunto de objetivos gerais para o software, mas no identifica detalhadamente requisitos de entrada, processamento ou sada. Idealmente, o prottipo serve como um mecanismo para identificao dos requisitos do software.

Fonte: http://julianakolb.files.wordpress.com/2012/02/prototipagem.png

Evolucional ou Prototipao
A prototipagem tem algumas problemticas:

O cliente tem a expectativa do programa; O desenvolvedor frequentemente faz concesses na implementaes afim de rapidamente ter um prottipo executvel.

Modelo Espiral
Este modelo combina a natureza da prototipagem com os aspectos controlados e sistemticos do modelo em cascata. Este modelo fornece um potencial para o desenvolvimento rpido de verses de software cada vez mais completa.

Fonte: http://clipatecinformatica.blogspot.com/2011/02/modelo-espiral.html

Modelo de Maturidade

um modelo de maturidade recentemente criado com o fim de agrupar as diferentes formas de utilizao que foram dadas ao seu predecessor, o CMM(Capability Maturity Model). O CMMi pode ser organizado atravs de duas formas: Contnua e estagiada. Pelo modelo estagiado uma organizao pode ter sua maturidade medida em 5 nveis:

Nvel 1 - Catico;
Nvel 2 - Capacidade de repetir sucessos anteriores pelo acompanhamento de custos, cronogramas e funcionalidades; Nvel 3 - O processo de software bem definido, documentado e padronizado; Nvel 4 - Realiza uma gerncia quantitativa do processo de software e do produto; Nvel 5 - Usa a informao quantitativa para melhorar continuamente e gerenciar o processo de software

Modelo de Maturidade
MPS.BR - Melhoria de Processos do Software Brasileiro:
simultaneamente um movimento para a melhoria e um modelo de qualidade de processo voltada para a realidade do mercado de pequenas e mdias empresas de desenvolvimento de software no Brasil.

O MPS.Br dividido em 3 partes: MR-MPS, MA-MPS, MN-MPS MR-MPS (Modelo de referncia para melhoria do processo de software) MA-MPS (Mtodo de avaliao para melhoria do processo de software)

MN-MPS (Modelo de negcio para melhoria do processo de software)

MR-MPS (Modelo de referncia para melhoria do processo de software)


O MR-MPS apresenta 7 nveis de maturidade (o que um diferencial em relao aos outros padres de processo) que so:

A - Em Otimizao;
B - Gerenciado Quantitativamente; C - Definido; D - Largamente Definido; E - Parcialmente Definido; F - Gerenciado; G - Parcialmente Gerenciado

MA-MPS (Mtodo de avaliao para melhoria do processo de software)

Tem como objetivo orientar a realizao de avaliaes, em conformidade com a norma ISO/IEC 15504, em empresa e organizaes que implementaram o MRMPS. Avaliao MA-MPS: Equipe de avaliao: 3 a 8 pessoas, sendo: Durao: 2 a 4 dias; Validade: 3 anos; Estruturao da Avaliao: Planejar e preparar avaliao Plano de Avaliao / Descrio dos indicadores de processo; Conduzir Avaliao Resultado da avaliao; Relatar resultados Relatrio da avaliao; Registrar e publicar resultados

Modelo de Maturidade
MPS.BR - Melhoria de Processos do Software Brasileiro:
Cursos e Certificaes

SOFTEX Campinas (SP)


ITS (So Paulo - SP) FUMSOFT (Belo Horizonte - MG) RIOSOFT (Rio de Janeiro - RJ) SOFTSUL (Porto Alegre - RS) Entre outras

Prxima Aula
Continuao de Modelo de Maturidade CMMI Um pouco mais detalhado MPS.BR Um pouco mais detalhado Engenharia de Software Uma viso genrica Manuteno Adaptao Correo Melhoramento Funcional Manuteno perfectiva Atividades de Proteo Revises Documentao Mudanas Controle Fatore de Qualidade e Produtividade Fatores que influenciam a qualidade Questes gerenciais

Prxima Aula
rea do Conhecimento da Engenharia de Software Requisitos (Requirements) de Software Projeto (Design) de Software MDA E MDD Construo (Construction) de Software Teste (Testing) de Software: Gerncia de Configurao de Software Gerncia de Engenharia de Software Processos de Engenharia de Software Ferramentas e Mtodos de Engenharia de Software Qualidade (Quality) de Software Atualidades Engenharia de Software Experimental

Bibliografia
Bibliografia bsica
1. Pfleeger, S. Engenharia de Software - Teoria e Prtica 2a edio Pearson/Prentice-Hall, 2004. Cap. 4. 2. Sommerville, Ian. Engenharia de Software - 8a edio - Verso em Portugus editada pela Addison Wesley. Caps. 6 e 7. 3. Pressman R. Engenharia de Software - 6a edio - McGraw-Hill Interamericana do Brasil. Caps. 7.