Sunteți pe pagina 1din 35

ENGENHARIA DE SOFTWARE II

Introduo a Engenharia de Software

PLANEJAMENTO
O que e por qu da Engenharia de Software?
Engenharias em geral : objetivos, abordagens e mtodos Software como produtos: caractersticas, fatos e diferenciais Um Histrico da engenharia de Software Fatores diretores de mudanas em ES Princpios da Engenharia de Software

PLANEJAMENTO
Modelos de ciclo de vida
Processo de desenvolvimento de software Etapas do processo Modelos cascata, incremental, espiral e com base em

componentes

SOFTWARE: o Produto
Diferente dos produtos mais comuns, o software um

produto malevel
Principal fator de custo no desenvolvimento de um

software o fator humano


A maleabilidade traz uma aparente facilidade de aplicar

alteraes nos produtos de software


Esta facilidade aparente se obscurece pela necessidade

de manuteno da consistncia entre as partes do produto

MITOS DA GERNCIA...
Ferramentas de software e hardware so suficientes Manuais de Regras e Procedimentos Estamos atrasados? Vamos alocar mais gente ao projeto!

MITOS DO DESENVOLVERDOR...
At que o programa esteja rodando no h como medir

sua qualidade O nico produto de um projeto de software o conjunto de programas Programa escrito e testado! Acabei!

MITOS DO CLIENTE...
Uma lista de intenes (boas) suficiente para comear

a produzir o software
A especificao do Software a fase mais critica do processo, pois

erros na fase inicial tem um custo muito alto de correo

Minhas necessidades vo mudar ? Mas mudanas so fceis de introduzir porque o software bastante flexvel

SOFTWARE: FATOS
Em geral, o desenvolvimento de um produto de software

custa caro
Software desenvolvido, no produzido no sentido

clssico: o custo de software na engenharia e no na reproduo


O tempo estimado para desenvolvimento de um produto

de software geralmente superado


A produtividade da equipe de desenvolvimento costuma

estar quase aqum do desejado

SOFTWARE: FATOS
Frequentemente, os recurso (equipe) so insuficientes e

incapazes de realizar as atividades necessrias


Algumas questes recebem consideraes demasiada,

enquanto outras so negligenciadas


O grau de progresso no desenvolvimento de um produto

de software difcil de medir


Produtos de software dificilmente atingem o padro de

qualidade esperado.

SOFTWARE: FATOS
A qualidade do software frequentemente suspeita, pois

temos poucas medidas e critrios de qualidade dbios


Insatisfao do usurio frequente: pouco entendimento

dos requisitos e problemas de comunicao


Os usurios se sentem frustrados com o sistemas difceis

de operar
Software precisa se adaptar a novas tecnologias, que

ainda esto mudando com muita frequncia

SOFTWARE: FATOS
Software em operao difcil de manter e a manuteno

pode se tornar mais cara do que sua reconstruo


No possvel garantir que um produto de software est

completamente livre de erros


Software apresenta dificuldades para a realizao de

testes quando comparado a produtos concretos


H diversas estatsticas que provam a pouca

confiabilidade de boa parte dos sistemas

SOFTWARE: FATOS
A confiabilidade depende do uso de mtodos que possam

garantir uma boa qualidade do produto construdo


Um sistema no deve somente fazer o que esperado

dele, mas tambm no fazer o que no esperado

SOFTWARE: Sucesso dos Projetos

ENGENHARIA (em Geral)


Busca a resoluo de problemas prticos atravs de

solues que sejam economicamente viveis


Engenharia em geral: objetivos, abordagens e mtodos Est busca motivada pela limitao de recursos, como tempo,

dinheiro e pessoal capacitado para resolver os problemas A estratgia da engenharia aplicar o conhecimento cientfico sobre um determinado domnio tecnolgico Esta estratgia exige o desenvolvimento contnuo de tecnologias e conhecimento sobre as diversas reas Assim, a engenharia se especializa nos mais diversos ramos de conhecimento (eltrica, civil, software,...)

ENGENHARIA (em Geral)


Etapas da Engenharia Anlise: quando um novo problema deve ser resolvido, este deve ser dividido em partes menores e mais simples, at que estas partes possam ser resolvidas
Sntese: tendo resolvido o problema em pequenas partes,

devemos unir as solues de cada parte em uma estrutura maior, que atenda a todo problema
Correes: resoluo de problemas decorrentes a sntese

(verificao) ou durante a anlise (validao)

A EVOLUO DOS SISTEMAS


No incio ...
A programao era considerada uma espcie de arte. Os altos custos de hardware escondiam os custos de

software
Os sistemas eram simples e construdos por pequenas

equipes
Sistemas construdos para resolver problemas especificos

A EVOLUO DOS SISTEMAS


Crise de Software
Teve incio em meados da dcada de 1960 Os custos de hardware comearam a se reduzir Os computadores se tornaram cada vez mais velozes A capacidade de armazenamento dos computadores aumentou

A demanda por software cresceu com os avanos do hardware


As equipes de desenvolvimento no acompanharam a demanda

por produo

A EVOLUO DOS SISTEMAS


Dcada de 1960 Sistemas em Batch Distribuio Limitada Software customizado Dcada de 1970 Sistemas multiusuario Tempo real Banco de dados Software Produto Dcada de 1980 Sistemas distribuidos Inteligncia embutida Hardware barato Impacto no consumidor

A EVOLUO DOS SISTEMAS


Dcada de 1990 Sistemas pessoais Orientao a objeto Sistemas especialistas Rede neurais Computao paralela Dcada de 2000 Plataforma WEB Integrao com pacotes Componentes e reutilizao Sistemas interorganizacionais (B2B) Fbricas de software

A EVOLUO DO SOFTWARE
Sistemas de software so progressivamente mais

complexos
Foguetes Tit (EUA - 1960): 1.000 instrues Sistema de controle areo (EUA - 1970): 1.000.000 instrues Sistema estratgico de defesa (EUA - 1990): 10.000.000 instrues

Software cada vez ... Maior Com mais funcionalidades Mais complexo Envolvendo mais usuarios Exigindo a participao de equipes em seu desenvolvimento

DEFINIO DE ENGENHARIA DE SOFTWARE


O estabelecimento e uso de slidos princpios de

engenharia para que se possa obter economicamente um software que seja confivel e que funcione eficientemente em mquinas reais(Fritz Bauer - 1969)
A aplicao de uma abordagem sistemtica, disciplinada

e quantificvel para o desenvolvimento, operao e manuteno do software. O estudo de abordagens e princpios a fim de obter economicamente softwares confiveis e que executem de forma eficiente nas mquinas reais( IEEE, 1993)

ENGENAHRIA DE SOFTWARE
A Engenharia de software surgiu com intuito de:
Identificar e analisar as causas dos problemas envolvidos com o

desenvolvimento de software
Propor solues economicamente viveis para a resoluo destes

problemas
Organizar o conhecimento sobre tcnicas disponveis para o

desenvolvimento de software
O principal problema da engenharia de software: falta de

conhecimento cientfico para ser aplicado

MUDANAS NA ENGENHARIA DE SOFTWARE

PROCESSO DE SOFTWARE
Conjunto de atividades e resultados que produz um

produto de software
Existem 4 atividades fundamentais do processo:
Especificao de software: definio dos requisitos e restries Desenvolvimento de software: projetado e programado Validao de software: verifica para ver se o que o cliente quer Evoluo do software: adaptar as mudanas dos requisitos

MODELOS DE PROCESSO DE SOFTWARE


O processo de software uma descrio de um conjunto de etapas

que devem ser executadas para o desenvolvimento de um produto de software


Ele determina a interao entre essas etapas e o momento em que

elas devem ser executadas em relao a uma primeira


Em cada etapa definido o papel das pessoas envolvidas, as

atividades que devem ser executadas e os critrios de encerramento


A transio entre fases ocorre com a entrega de produtos ou

transferncia tcnica de especificaes


Em geral, as fases somente terminam quando a entrega da fase

anterior for homologada


Devem existir critrios tangveis para esta aprovao

Modelos de Processo de Software


Existem diversos modelos de processo de software, entre

eles:
Modelo cascata Modelo Incremental Modelo espiral

Modelo com base em componentes

MODELO EM CASCATA
Popularizado na dcada de 1970 Composto por uma sequencia de atividades Uma atividade comea a executar quando a outra termina Resultado de uma etapa utilizado na etapa seguinte Guiado por documentos Ciclo de vida mais antigo e mais utilizado

MODELO EM CASCATA
Problemas: Dificuldade de manter a serializao proposta pelo modelo
Dificuldade de se concluir a etapa de anlise de requisitos, devido

a modificao nos requisitos do software


A primeira verso do software s estar disponvel aps o termino

das fases de anlise, projeto, codificao e testes.

Solues: Alteraes e expanses do modelo clssico

MODELO INCREMENTAL
Prottipo
Verso simplificada de um produto de software, geralmete criada

sem um processo formal de desenvolvimento, utilizada para elucidar ou validar os requisitos do produto.

Desenvolvimento incremental
Diversas execues do modelo clssico de ciclo de vida Ao fim de cada execuo gerado um produto executvel

MODELO INCREMENTAL

MODELO INCREMENTAL
Existem 3 tipos diferentes do modelo incremental:
Incremental evolutivo: os requisitos vo sendo implementados por

parte, sendo assim uma entrega rpida de produtos intermedirios para o usurio.
Incremental Descartvel: custo alto pela perda do produto

construdo no incremento, alta qualidade do processo por trs do prottipo descartvel.


Incremental Operacional: Uma equipe pequena trabalha em turnos

longos no ambiente do usurio, enquanto uma outra equipe trabalha em um ambiente separado.

MODELO EM ESPIRAL
um metamodelo, visto que qualquer modelo pode ser

utilizado na fase de desenvolvimento


A medida que os componentes so desenvolvidos: Os componentes so avaliados
O desenvolvimento futuro reavaliado Riscos so avaliados O ciclo termina com o produto pronto

MODELO EM ESPIRAL

MODELO COM COMPONETNTES

ENTREGAR
O que software?

O que engenharia de software?


Qual a diferena entre engenharia de software e cincia

da computao ? O que processo de software? Quais os so o modelos de processo de software? Comente cada um deles. O que CASE? Quais so os atributos de um bom software?

S-ar putea să vă placă și