Você está na página 1de 96

Engenharia de Software

Prof. Ins Ap. Gasparotto Boaventura


1. Semestre/2001

Tpicos
1- Introduo Engenharia de Software
2 - Fundamentos Organizacionais de Sistemas
de Informao
3- Gerncia de projeto de software
4- Gerenciamento para a qualidade de
software
5- Acompanhamento do processo de
desenvolvimento de software.

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 para o Hardware

tempo
desgaste
mortalidade
infantil

ndice
de
falhas
Curva de falhas do Software
ndice de
falhas
mudana
curva real
curva idealizada
tempo
Aplicaes do Software
B B S SI IC CO O
programas de apoio a outros programas
D DE E T TE EM MP PO O R RE EA AL L
monitora, analisa e controla eventos do
mundo real
C CO OM ME ER RC CI IA AL L
operaes comerciais e tomadas de
decises administrativas
C CI IE EN NT T F FI IC CO O E E D DE E
E EN NG GE EN NH HA AR RI IA A
algoritmos de processamento de nmeros
E EM MB BU UT TI ID DO O
controla produtos e sistemas de mercados
industriais e de consumo
D DE E C CO OM MP PU UT TA AD DO OR R
P PE ES SS SO OA AL L
processamento de textos, planilhas
eletrnicas, diverses, etc.
D DE E I IN NT TE EL LI IG G N NC CI IA A
A AR RT TI IF FI IC CI IA AL L
algoritmos no numricos para resolver
problemas que no sejam favorveis
computao ou anlise direta
Evoluo do Software
(1950 - 1965)
= O hardware sofreu contnuas mudanas
= O software era uma arte "secundria" para a
qual havia poucos mtodos sistemticos
= 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
= 1
a
gerao de SGBDs
= Produto de software - software houses
= Bibliotecas de Software
= Cresce n
o
de sistemas baseado em computador
= Manuteno quase impossvel
..... CRISE DE SOFTWARE
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 (aflio crnica???)
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???)
Crise de Software
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
(1) As estimativas de prazo e de custo freqentemente
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
Crise de 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

Crise de 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
Crise de 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 um elemento de sistema lgico e
no fsico (produto intangvel)
Conseqentemente, o sucesso medido pela
qualidade de uma nica entidade e no pela
qualidade de muitas entidades manufaturadas

O software no se desgasta, mas se
deteriora!!!
2. falhas das pessoas responsveis pelo
desenvolvimento de Software
Gerentes sem nenhum background em
software
Os profissionais da rea de software tm
recebido pouco treinamento formal em novas
tcnicas para o desenvolvimento de software
Resistncia a mudanas.
Causas dos problemas associados
Crise de Software
3. mitos do Software

propagaram desinformao e confuso
administrativos
cliente
profissional

Causas dos problemas associados
Crise de Software
Mitos do Software (administrativos)
J temos um manual repleto de padres e
procedimentos para a construo de software. Isso
no oferecer ao meu pessoal tudo o que eles
precisam saber?
Realidade:
Ser que o manual usado?
Os profissionais sabem que ele existe?
Ele reflete a prtica moderna de desenvolvimento de software?
Ele completo?
Meu pessoal tem ferramentas de desenvolvimento de
software de ltima gerao; afinal lhes compramos
os mais novos computadores.
Mitos do Software (administrativos)
Realidade:
preciso muito mais do que os mais recentes
computadores para se fazer um desenvolvimento de
software de alta qualidade.
Se ns estamos atrasados nos prazos, podemos
adicionar mais programadores e tirar o atraso.
Mitos do Software (administrativos)
Realidade:
O desenvolvimento de software no um processo
mecnico igual manufatura.
Acrescentar pessoas em um projeto torna-o ainda mais
atrasado. Pessoas podem ser acrescentadas, mas
somente de uma forma planejada.
Uma declarao geral dos objetivos suficiente
para se comear a escrever programas -
podemos preencher os detalhes mais tarde.
Mitos do Software (cliente)
Realidade:
Uma definio inicial ruim a principal causa de fracassos dos
esforos de desenvolvimento de software.
fundamental uma descrio formal e detalhada do domnio da
informao, funo, desempenho, interfaces, restries de
projeto e critrios de validao.
Os requisitos de projeto modificam-se
continuamente, mas as mudanas podem ser
facilmente acomodadas, porque o software
flexvel.
Mitos do Software (cliente)
Realidade:
Uma mudana, quando solicitada tardiamente num projeto,
pode ser maior do que mais do que uma ordem de magnitude
mais dispendiosa do que a mesma mudana solicitada nas
fases iniciais.
FASES CUSTO DE MANUTENO
DEFINIO
1 x
DESENVOLVIMENTO
1.5 - 6x
MANUTENO
60 - 100x
magnitude das mudanas
Assim que escrevermos o programa e o colocarmos
em funcionamento nosso trabalho estar completo.
Mitos do Software (profissional)
Realidade:
Os dados da indstria indicam que entre 50 e 70% de todo
esforo gasto num programa sero despendidos depois que
ele for entregue pela primeira vez ao cliente.
Enquanto no tiver o programa "funcionando", eu
no terei realmente nenhuma maneira de avaliar
sua qualidade.
Mitos do Software (profissional)
Realidade:
Um programa funcionando somente uma parte de uma
Configurao de Software que inclui todos os itens de
informao produzidos durante a construo e manuteno do
software.

Preocupao: Sistematizar o processo de
criao e manuteno de software.
Boehm: Engenharia de software envolve a
aplicao prtica de conhecimento cientfico para
o projeto e construo de programas de
computador e a documentao associada
necessria para desenvolv-los, oper-los e
mant-los.
Engenharia de Software
Definies
IEEE Standard Glossary of Software Engineering
terminology: Engenharia de software uma
abordagem sistemtica para o desenvolvimento,
operao, manuteno de software

Software: programas de computador,
procedimentos, regras, documentao
possivelmente associada, e dados sobre sua
operao.
Engenharia de Software
Definies
Fairley: Engenharia de software a disciplina
tecnologica e gerencial preocupada com a
produo sistemtica e manuteno de produtos
de software que so desenvolvidos e modificados
no prazo estabelecido e dentro das estimativas
de custo.

Engenharia de Software
Definies
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.
mtodos: proporcionam os detalhes de
como fazer para construir o software
Engenharia de 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
C seqncia em que os mtodos sero aplicados
C produtos que se exige que sejam entregues
C controles que ajudam assegurar a qualidade e
coordenar as alteraes
C 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
Engenharia de Software
Alguns ciclos de vida mais conhecidos so:
+ Ciclo de Vida Clssico
+ Prototipao
+ Modelo Espiral
+ Tcnicas de 4
a
Gerao
Engenharia de Software
para escolha de um Ciclo de Vida de Software:

C natureza do projeto e da aplicao

C mtodos e ferramentas a serem usados

C controles e produtos que precisam ser
entregues
Ciclo de Vida Clssico (Cascata)
modelo mais antigo e o mais amplamente
usado da engenharia de software

modelado em funo do ciclo da engenharia
convencional

requer uma abordagem sistemtica,
seqencial ao desenvolvimento de software
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Cascata
Atividades do Ciclo de Vida Clssico
ANLISE E ENGENHARIA DE
SISTEMAS
envolve a coleta de requisitos em
nvel do sistema, pequena
quantidade de projeto e anlise
de alto nvel
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
viso essencial quando
o software deve fazer
interface com outros
elementos (hardware,
pessoas e banco de dados)
Atividades do Ciclo de Vida Clssico
ANLISE DE REQUISITOS DE
SOFTWARE
processo de coleta dos requisitos
intensificado e concentrado
especificamente no software
deve-se compreender o domnio
da informao, a funo,
desempenho e interfaces
exigidos
os requisitos (para o sistema e para
o software) so documentados e
revistos com o cliente
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
PROJETO
traduo dos requisitos do software para
um conjunto de representaes que podem
ser avaliadas quanto qualidade, antes
que a codificao se inicie
se concentra em 4 atributos do
programa:
Estrutura de Dados,
Arquitetura de Software,
Detalhes Procedimentais e
Caracterizao de Interfaces
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
CODIFICAO
traduo das representaes
do projeto para uma
linguagem artificial
resultando em instrues
executveis pelo computador
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
TESTES
Concentram-se:
nos aspectos lgicos internos
do software, garantindo que
todas as instrues tenham
sido testadas
nos aspectos funcionais
externos, para descobrir
erros e garantir que a
entrada definida produza
resultados que concordem
com os esperados.
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
MANUTENO
o software dever sofrer mudanas
depois que for entregue ao cliente


Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
causas das mudanas:
erros, adaptao do
software para acomodar
mudanas em seu
ambiente externo e
exigncia do cliente para
acrscimos funcionais e de
desempenho
Problemas com o Ciclo de Vida Clssico
e projetos reais raramente seguem o fluxo
seqencial que o modelo prope
e logo no incio difcil estabelecer explicitamente
todos os requisitos. No comeo dos projetos
sempre existe uma incerteza natural
eo cliente deve ter pacincia. Uma verso
executvel do software s fica disponvel numa
etapa avanada do desenvolvimento
Embora o Ciclo de Vida Clssico tenha
fragilidades, ele significativamente
melhor do que uma abordagem casual
ao desenvolvimento de software
Clssico (comentrios)
Prototipao
+ processo que possibilita que o desenvolvedor crie
um modelo do software que deve ser construdo.
+ idealmente, o modelo (prottipo) serve como um
mecanismo para identificar os requisitos de
software.
+apropriado para quando o cliente definiu um
conjunto de objetivos gerais para o software, mas
no identificou requisitos de entrada,
processamento e sada com detalhes.
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Prototipao
Atividades da Prototipao
Obteno dos Requisitos:
desenvolvedor e cliente definem os
objetivos gerais do software,
identificam quais requisitos so
conhecidos e as reas que
necessitam de definies adicionais

Projeto Rpido: representao dos
aspectos do software que so
visveis ao usurio (abordagens de
entrada e formatos de sada)
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Construo Prottipo:
implementao do projeto
rpido

Avaliao do Prottipo:
cliente e desenvolvedor avaliam
o prottipo
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Refinamento dos Requisitos:
cliente e desenvolvedor refinam
os requisitos do software a ser
desenvolvido.
Ocorre neste ponto um processo
de iterao que pode conduzir a
1a. atividade at que as
necessidades do cliente sejam
satisfeitas e o desenvolvedor
compreenda o que precisa ser
feito.
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Construo Produto:
identificados os requisitos, o
prottipo deve ser descartado e a
verso de produo deve ser
construda considerando os
critrios de qualidade.
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Problemas com a Prototipao
ecliente no sabe que o software que ele v no
considerou, durante o desenvolvimento, a
qualidade global e a manutenibilidade a longo
prazo. No aceita bem a idia que a verso final do
software vai ser construda e "fora" a utilizao do
prottipo como produto final.

Problemas com a Prototipao
edesenvolvedor freqentemente faz uma
implementao comprometida (utilizando o que
est disponvel) com o objetivo de produzir
rapidamente um prottipo. Depois de um tempo ele
familiariza com essas escolhas, e esquece que elas no
so apropriadas para o produto final.
Ainda que possam ocorrer problemas, a prototipao
um ciclo de vida eficiente -
A chave definir-se as regras do jogo logo no
comeo -
O cliente e o desenvolvedor devem ambos concordar
que o prottipo seja construdo para servir como
um mecanismo a fim de definir os requisitos -
Prototipao (comentrios)
Ciclo de Vida em Espiral
C engloba as melhores caractersticas do ciclo de vida
Clssico e da Prototipao, adicionando um novo
elemento: a Anlise de Risco
C segue a abordagem de passos sistemticos do Ciclo de
Vida Clssico incorporando-os numa estrutura iterativa
que reflete mais realisticamente o mundo real
C usa a Prototipao, em qualquer etapa da evoluo do
produto, como mecanismo de reduo de riscos
deciso de continuar ou no
direo de um
sistema
concludo
avaliao
do cliente engenharia
anlise dos
riscos
planejamento
Espiral
Atividades do Ciclo de Vida em Espiral
Planejamento: determinao dos
objetivos, alternativas e restries
Anlise de Risco: anlise das
alternativas e identificao / resoluo
dos riscos
Construo: desenvolvimento do
produto no nvel seguinte
Avaliao do Cliente: avaliao do
produto e planejamento das novas
fases
avaliao
do
cliente
engenharia
anlise dos
riscos
planejamento
, atualmente, a abordagem mais realstica para o
desenvolvimento de software em grande escala.
usa uma abordagem que capacita o desenvolvedor e o
cliente a entender e reagir aos riscos em cada etapa
evolutiva.
pode ser difcil convencer os clientes que uma abordagem
"evolutiva" controlvel
exige considervel experincia na determinao de riscos
e depende dessa experincia para ter sucesso
Espiral (comentrios)
o modelo relativamente novo e no tem
sido amplamente usado
Demorar muitos anos at que a eficcia desse
modelo possa ser determinada com certeza
absoluta.
Espiral (comentrios)
Tcnicas de 4
a
Gerao
Concentra-se na capacidade de se especificar o software
a uma mquina em um nvel que esteja prximo
linguagem natural.

Engloba um conjunto de ferramentas de software
que possibilitam que:
= o sistema seja especificado em uma
linguagem de alto nvel e
=o cdigo fonte seja gerado automaticamente a
partir dessas especificaes
Obteno dos
Requisitos
Estratgia do
Projeto
Implementao
usando 4GL
Testes
Tcnicas de 4
a
Gerao
Ferramentas do ambiente de
desenvolvimento de software de 4GL
O ambiente de desenvolvimento de software que sustenta o ciclo
de vida de 4
a
gerao inclui as ferramentas:
- linguagens no procedimentais para consulta de
banco de dados
- gerao de relatrios
- manipulao de dados
- interao e definio de telas
- gerao de cdigos
- capacidade grfica de alto nvel
- capacidade de planilhas eletrnicas
Atividades das Tcnicas de 4
a
Gerao
1. obteno dos Requisitos:
o cliente descreve os requisitos
os quais so traduzidos para um
prottipo operacional
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Eo cliente pode estar inseguro quanto aos requisitos
Eo cliente pode ser incapaz de especificar as informaes
de um modo que uma ferramenta 4GL possa consumir
Eas 4GLs atuais no so sofisticadas suficientemente para
acomodar a verdadeira "linguagem natural"
2. estratgia de "Projeto":
para pequenas aplicaes
possvel mover-se do passo de
Obteno dos Requisitos para o
passo de Implementao usando
uma Linguagem de 4G
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Atividades das Tcnicas de 4
a
Gerao
Epara grandes projetos necessrio desenvolver uma
estratgia de projeto. De outro modo ocorrero os
mesmos problemas encontrados quando se usa
abordagem convencional (baixa qualidade)
3. implementao usando
4GL: os resultados desejados
so representados de modo que
haja gerao automtica de
cdigo . Deve existir uma
estrutura de dados com
informaes relevantes e que
seja acessvel pela 4GL
Atividades das Tcnicas de 4
a
Gerao
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Atividades das Tcnicas de 4
a
Gerao
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
4. teste: o desenvolvedor
deve efetuar testes e
desenvolver uma
documentao significativa.
O software desenvolvido
deve ser construdo de
maneira que a manuteno
possa ser efetuada
prontamente.
PROPONENTES: reduo dramtica no tempo de
desenvolvimento do software (aumento de
produtividade)
OPONENTES: as 4GL atuais no so mais fceis de
usar do que as linguagens de programao
e o cdigo fonte produzido ineficiente
e a manutenibilidade de sistemas usando tcnicas 4G
ainda questionvel
Tcnicas de 4
a
Gerao (comentrios)
Mudana na natureza de desenvolvimento de
software
mtodos
convencionais
aplicao de
tcnicas de 4
a

Gerao
demanda
global
demanda
por
software
1970 1980 1990 2000
Combinao dos Mtodos de Ciclo de Vida
obteno dos requisitos
preliminares

modelo espiral

tcnicas
4G

protomodelagem

anlise dos
requisitos

projeto

codificao

testes

manuteno

protomodelagem
no. interao
protomodelagem
no. interao
tcnicas
4G

modelo espiral
no. interao

sistema completo
Engenharia de Software uma viso genrica
O processo de desenvolvimento de software
contm 3 fases genricas, independentes do
modelo de engenharia de software escolhido:
1. DEFINIO,
2. DESENVOLVIMENTO e
3. MANUTENO.
1. Revises
2. Documentao
3. Controle de
Mudanas
CCCooonnnssstttrrruuuooo
1. Entender
2. Modificar
3. Revalidar
Manuteno
mudanas
OOOpppeeerrraaaooo
SSSOOOFFFTTTWWWAAARRREEE
PPPRRROOODDDUUUTTTOOO
AAAtttiiivvviiidddaaadddeeesss dddeee AAApppoooiiiooo
1. Anlise de
Sistema
2. Planejamento
do Projeto
3. Anlise de
Requisitos
Definio
o que
Desenvolvimento
como
1. Projeto de
Software
2. Codificao
3. Teste
=
= =
'
Engenharia de Software uma viso genrica
DEFINIO : o que ser desenvolvido.
Anlise do Sistema: define o papel de cada
elemento num sistema baseado em computador,
atribuindo em ltima anlise, o papel que o
software desempenhar.
Planejamento do Projeto de Software: assim que
o escopo do software estabelecido, os riscos so
analisados, os recursos so alocados, os custos
so estimados e, tarefas e programao de
trabalho definidas.
Engenharia de Software uma viso genrica
Anlise de Requisitos: o escopo definido para o
software proporciona uma direo, mas uma
definio detalhada do domnio da informao e da
funo do software necessria antes que o
trabalho inicie.
Engenharia de Software uma viso genrica
DESENVOLVIMENTO: como o software vai ser
desenvolvido.

= Projeto de Software: traduz os requisitos do
software num conjunto de representaes (algumas
grficas, outras tabulares ou baseadas em
linguagem) que descrevem a estrutura de dados, a
arquitetura do software, os procedimentos
algortmicos e as caractersticas de interface.
Engenharia de Software uma viso genrica
= Codificao: as representaes do projeto devem
ser convertidas numa linguagem artificial (a linguagem
pode ser uma linguagem de programao
convencional ou uma linguagem no procedimental)
que resulte em instrues que possam ser executadas
pelo computador.

= Realizao de Testes do Software: logo que o
software implementado numa forma executvel por
mquina, ele deve ser testado para que se possa
descobrir defeitos de funo, lgica e implementao.
Engenharia de Software uma viso genrica
MANUTENO: concentra-se nas
mudanas que ocorrero depois que o
software for liberado para uso operacional
C Correo
C Adaptao
C Melhoramento Funcional
Engenharia de Software uma viso genrica
Correo: mesmo com as melhores atividades de
garantia de qualidade de software, provvel que o
cliente descubra defeitos no software. A manuteno
corretiva muda o software para corrigir defeitos.

Adaptao: com o passar do tempo, o ambiente
original (por exemplo a CPU, o sistema operacional e
perifricos) para o qual o software foi desenvolvido
provavelmente mudar. A manuteno adaptativa
muda o software para acomodar mudanas em seu
ambiente.
Engenharia de Software uma viso genrica
Melhoramento Funcional: a medida que o
software usado, o cliente/usurio reconhecer
funes adicionais que oferecero benefcios.
A manuteno perfectiva estende o software
para alm de suas exigncias funcionais
originais.

Engenharia de Software uma viso genrica
Atividades de Proteo: as fases e etapas correlatas
descritas so complementadas por uma srie de
atividades de proteo.
Revises: efetuadas para garantir que a qualidade seja
mantida medida que cada etapa concluda.
Documentao: desenvolvida e controlada para garantir
que informaes completas sobre o software estejam
disponveis para uso posterior.
Controle das Mudanas: institudo de forma que as
mudanas possam ser aprovadas e acompanhadas.
Engenharia de Software uma viso genrica

A Engenharia de Software tambm se preocupa com
questes gerenciais, que encontra-se do lado oposto
ao domnio da programao
Gerenciamento: necessrio para coordenar as
atividades tcnicas em projetos de produtos de
software.
Engenharia de Software uma aborgagem
gerencial
Em geral, um produto de software inclui:
-> Cdigo fonte, e documentao relacionada:
documento de requisitos
especificao do projeto
planos de teste
princpios de operao
procedimentos para garantia da qualidade
Engenharia de Software uma aborgagem
gerencial
Em geral, um produto de software inclui:
-> Cogido fonte, e documentao relacionada:
relatrios de problemas com o software
procedimentos de manuteno
manuais do usurio
instrues para instalao
auxlio para treinamento

Engenharia de Software uma aborgagem
gerencial
Qualidade de software : preocupao principal dos
gerentes de software.
-> Principal atributo de qualidade: utilidade
-> outros atributos de qualidade:
- transportabilidade
- eficincia
- clareza
- confiabilidade

Engenharia de Software uma aborgagem
gerencial
Fatore de Qualidade e Produtividade :
Fatores que influenciam a qualidade:
= Habilidade Individual
= Comunicao da equipe
= Complexidade do produto
= Notaes apropriadas
= Abordagens sistemticas
= controle de mudanas

Engenharia de Software uma aborgagem
gerencial
Fatore de Qualidade e Produtividade :
Fatores que influenciam a qualidade:
= Adequao de treinamento
= Habilidades de gerenciamento
= Metas apropriadas
= Entendimento do problema
= Estabilidade dos requisitos
= Habilidades necessrias

Engenharia de Software uma aborgagem
gerencial
Questes gerenciais
Os gerentes de software:
= controlam os recursos e o ambiente no qual as atividades
tcnicas ocorrem.
= responsveis pela entrega do produto no prazo e dentro das
estimativas de custo.
= devem garantir que o produto tenha os atributos funcionais e
de qualidade desejados pelo cliente.
= Treinam empregados.
= desenvolvem planos e estratgias de marketing.

Engenharia de Software uma aborgagem
gerencial
Preocupaes de gerenciamento de projeto:
= mtodos para organizar e monitorar um projeto.
= tcnicas de estimativa de custo.
= poltica de alocao de recursos.
= controle oramentrio.
= avaliao do progresso.
= realocao de recursos.
= ajustes no cronograma.

Engenharia de Software uma aborgagem
gerencial
Preocupaes de gerenciamento de projeto:
= estabelecer procedimentos para garantia de qualidade.
= manter o controle de vrias verses do produto.
= facilitar a comunicao entre os membros do projeto.
= comunicao com o cliente.
= estabelecer contratos com o cliente.
= garantir que os termos legais e contratuais do projeto sejam
cumpridos.


Engenharia de Software uma aborgagem
gerencial
Problemas na rea de gerenciamento:
= falta de planejamento para projetos de software.
= falta de tcnicas e procedimentos para selecionar gerentes de
projeto.
= falta de habilidade em estimar os recursos necessrios para o
projeto.
= falta de um processo de desenvolvimento bem estabelecido.
= falta de estratgias para o gerente acompanhar o progresso
do projeto.
= falta de padres e tcnicas para medir produtividade.



Engenharia de Software uma aborgagem
gerencial
Fatores que melhoram o gerenciamento:
= treinar gerentes, e desenvolvedores de software.
= estabelecer o uso de padres, procedimentos e
documentao.
= analisar dados de projetos passados para avaliar mtodos
efetivos.
= definir objetivos em termos de qualidade desejada.
= definir qualidade em termos de produtos a ser entregues.
= Selecionar gerentes de projetos com habilidades para
gerenciamento.
= Desenvolver uma maneira de avaliar os desenvolvedores de
software.
Engenharia de Software uma aborgagem
gerencial
Concluso
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem de desenvolvimento de
software elaborada com disciplina e mtodos bem definidos.
.....a construo por mltiplas
pessoas de um software de
mltiplas verses [Parnas 1987]
Pontos a ponderar
O software o fator de diferenciao de muitos produtos e sistemas
baseados em computador. Apresente exemplos de dois ou trs produtos e
de pelo menos um sistema em que o software, no o hardware, o elemento
que faz a diferena.
Nas dcadas de 1950 e 1960, a programao de computador era uma forma
de arte aprendida num ambiente semelhante ao de aprendizes. Como os
primrdios afetaram as prticas de desenvolvimento de software atuais?
Apresente cinco exemplos de desenvolvimento de software que seriam
adequados prototipao. Cite duas ou trs aplicaes que seriam mais
difceis de ser representadas em prottipos.
,
Pontos a ponderar
Os mitos de software citados em aula so somente alguns entre muitos
outros. Liste mitos adicionais para cada uma das categorias apresentadas.
Existe algum caso em que as fases genricas do processo de engenharia de
software no se aplicam? Se assim for, descreva-o.
,

Você também pode gostar