Anda di halaman 1dari 49

Instituto Superior Kalandula de Angola

Engenharia de Software

Prof. Eng. Quiosa M.J. Evaristo

Tpicos

Entender o que software e como a


Engenharia ajuda a construi-lo com qualidade;
Modelos e Ciclo de Vida de um Software
Analise do Projeto de Software
Ferramentas de apoio a anlise de Software
Gesto de projeto de software

Introduo

O mundo esta em constante evoluio tecnologica, as nossas


actividades dirias so realizadas com sucesso devido o auxilio de
equipamentos, mquinas, sofwares e muito mais.
Os softwares tm auxiliado muito nas actividades
empresarial,governamental, social, domestica e muito mais.

quer

Hoje em dia o uso de software quase que indispensvel em certos


sectores tais como: Bancos, agencias de seguros,aviao,
tranportes,satlites,comunicao,logistica,vendas ,etc.

DEFINIO DE ENGENHARIA SOFTWARE


Antes de definirmos o que engenharia de software importante saber
dois conceitos chaves: ENGENHARIA E SOFTWARE.
ENGENHARIA arte de aplicar conhecimentos cientficos e certas
habilitaes especficas criao de estruturas, dispositivos e
processos que se utilizam para converter recursos naturais e no s em
formas adequadas ao atendimento das necessidades humanas.
SOFTWARES

so programas de computadores bem elaboradas que quando


executadas produzem a funo e o desempenho desejado
Estruturas de dados que possibilitam que os programas manipulem
adequadamente informaes.

DEFINIO DE ENGENHARIA SOFTWARE


ENGENHARIA DE SOFTWATE
um conjunto integrado de mtodos e ferramentas
utilizadas para especificar, projetar, implementar e manter
um sistema.
E.S. uma disciplina que aplica princpios da engenharia de
desenvolvimento na qualidade do software em um
determinado tempo e com um custo efetivo. Usando uma
abordagem sistemtica e metodolgica para produzir
resultados que possam ser quantificados. Faz uso de
medio e mtricas para avaliar a qualidade, no somente
do software, mas tambm do processo. Utilizada para
avaliar e gerenciar projetos de desenvolvimento de
software.

Caractersticas do Software

Usabilidade. a caracterstica do software de apresentar facilidades


entre a comunicao dos usurios com o sistema.
Portabilidade. a capacidade do software ser executado em diferentes
plataformas e arquiteturas.
Reusabilidade. a habilidade do software de se transferir de um sistema
para outro.
Manutenibilidade. a habilidade do software de se envolver e adaptarse s alteraes em um curto espao de tempo. caracterizado pela
fcil atualizao e manuteno.
Dependncia. a caracterstica do software ser confivel e de
segurana.
Eficincia. a capacidade do software utilizar os recursos com maior
eficincia.
A maioria feita sob medida em vez de ser montada a partir de
componentes existentes

Caractersticas do Software
Um Software tem caracteristicas particulares que tornam-lo diferente de outros
productos que os seres humanos constroem.
Por Exemplo quando um hardware construido, o processo criativo humano
(Anlise,Projecto,Construo e Teste) posteriormente traduzida numa forma
fsica.
O software um elemento de sistema lgico e no fsico portanto o software
tem caractersticas que o diferencia de um Hardware.
1. O Software desenvolvido ou projectado por engenharia no
Manufacturado(Contruido) construido no sentido classco.

Caractersticas do Software
2. O Software no se desgasta

3. A maioria dos softwares so desenvolvidos sob medidas em vez de


ser montado apartir de componentes existentes

Curva de falhas para o Hardware

ndice
de
falhas

mortalidade
infantil

desgaste

tempo

Curva de falhas do Software

ndice de
falhas

mudana

curva real

curva idealizada
tempo

CATEGORIAS DE SOFTWARES

BSICO: coleo de programas escritos para dar apoio a outros


programas
DE TEMPO REAL: software que monitora, analisa e controla eventos do
mundo real
COMERCIAL: sistemas de operaes comerciais e tomadas de decises
administrativas
CIENTFICO E DE ENGENHARIA: caracterizado por algoritmos de
processamento de nmeros
EMBUTIDO: usado para controlar produtos e sistemas para os mercados
industriais e de consumo
DE COMPUTADOR PESSOAL: envolve processamento de textos,
planilhas eletrnicas, diverses, etc.
DE INTELIGNCIA ARTIFICIAL: faz uso de algoritmos no numricos
para resolver problemas que no sejam favorveis computao ou
anlise direta

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE

Nas Categorias de softwares mencionados acima e tantos outros lhes so aplicados


fundamentos de engenharia de software para poderem funcionar de forma
esperada.
So desenvolvidos usando processo de desenvolvimento compreensveis e
gerenciveis, as empresas de desenvolvimentos de software devem planear o
processo de desenvolvimento, devem ter ideias claras do que vai ser produzido e
quando estar completo.
Dependncia e performance so essncias para todo tipo de software, os softwares
deveriam se comportar de forma que esperado sem falhas e deveriam estar
disponveis quando necessitados.
O software deve estar seguro nas suas
operaes assim como estar seguro dos ataques externos. O software deve ter uma
performance eficiente e no deve gastar muitos recursos.
O entendimento das especificaes e os requisitos do softwares de extrema
importncia. necessrio os diferentes clientes e utilizadores esperarem do
sistema o que eles querem que o sistema faa e devemos superar as espectativas
de modos que um sistema deve ser entregue dentro dos padres estabelecidos.
Deveriam ser feitos usos efetivos assim como recursos existentes possveis de
modos que possamos reutilizar software que j foram desenvolvidos em vez de
desenvolver um novo.

TICA DA ENGENHARIA DE SOFTWARE


Como em outras disciplina de engenharia necessrio ter em conta questes
sociais e legais que limitam a liberdade das pessoas que atuam nesta rea.
Como engenheiro ou estudante de engenharia de software deves estar ciente que
este ramo no requer apenas as tuas habilidades mas tambm uma grande
responsabilidade.
Deve-se agir dentro da tica e responsabilidade moral se quisermos que sejamos
respeitados como um bom engenheiro ou profissional de software e no s.
Guarda na tua mente que no se deve por em frente as nossas habilidades para se
comportar desonestamente de modos a suscitar desrespeito aos profissionais
nesta rea. Se bem que h pases que no existem legislatura para impor esse
princpios mas devemos ter responsabilidade tais como:

Confidencialidade : Deve-se respeitar as confidencialidades dos empregadores e


clientes mesmo que no haja uma assinatura de confidencialidade formal assinada.

Competncia: No se deve desrespeitar o seu nvel de competncia. No se deve


aceitar trabalho fora das tuas competncias.

Propriedade de Direito Intelectual: deve-se ter muito cuidado com leis que
governam as propriedades intelectual tais como: patentes e direito autorais. Devese estar cuidadoso para assegurar que as propriedades intelectuais nos
empregadores e clientes so protegidos.

Mal uso do Computador: No se deve usar tuas tcnicas para usar mal os
computadores das outras pessoas tais como: instalar jogos ou programas
indesejado, vrus ou outros tipos de softwares maliciosos.

PROCESSO DE SOFTWARE

O processo de software so conjuntos


de atividades que levam produo de
um produto de software. (Sommerville)

PROCESSO DE SOFTWARE
Alguns processos mais conhecidos so: Cascata (Ciclo de Vida)
Prototipao, Modelo Espiral, de Reutilizao,etc.
O processo de desenvolvimento de software contm 3 fases
genricas, independentes do modelo de engenharia de software
escolhido:
1 . DEFINIO(ESPECIFICAO)
2 . DESENVOLVIMENTO
3. MANUTENO.

PROCESSO DE SOFTWARE

FASE DE 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.
Panejamento do Projeto de Software: assim que o escopo do software
estabelecido, os riscos so analisados, os recursos so alocados, os
custos so estimados ,tarefas e programao de trabalho so definidas.
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.

PROCESSO DE SOFTWARE
DESENVOLVIMENTO: "como o software vai ser desenvolvido.

Projeto de Software: aqui so encontrados os requisitos do


software e representado de diversas formas.

Codificao: aqui as representaes so convertidas numa


linguagem de programao

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,
implementao e se funciona do jeito que foi previsto.

PROCESSO DE SOFTWARE

MANUTENO

Aqui visto como o software desenvolvido ira se comportar fase as


alteraes que viro ser feitas para melhor adaptao e funcionalidades.
Esta fase concentra-se nas mudanas que ocorrero depois que o
software for liberado para o uso operacional.

MODELOS DE PROCESSO DE SOFTWARE

uma representao simplificada do processo de software. Cada modelo


de processo representa um processo numa perspetiva particular e tambm
providencia somente informaes parcial concernente o processo.
O modelo de processo de software a primeira escolha a ser feita no
processo de software. A partir desta escolha definir-se- desde a maneira
mais adequada de obter as necessidades do cliente at quando e como o
cliente receber sua primeira verso operacional do sistema.

MODELOS EM CASCATA(Ciclo de Vida)


o primeiro modelo de desenvolvimento publicado em 1970 por
Royce. Consiste basicamente num modelo linear dividido fase em
que cada fase deve estar completa antes que o prximo passo
possa ser iniciado.
1. Levantamento: definio preliminar do escopo do sistema, restries e
conceitos alternativos;
2. Anlise: especificao funcional do sistema (Projeto Lgico);
3. Projeto: especificao completa da arquitetura de hardware e software,
estruturas de controle, estruturas de dados do sistema, interfaces;
4. Codificao: codificao e teste individual dos programas;
5. Teste: teste dos componentes integrados do sistema;
6. Implantao: implantao de maneira gradativa, a fim de evitar
insatisfao e possibilitando a correo do sistema. Implantao piloto
paralela e definitiva;
7. Manuteno: utilizao do sistema e modificaes decorrentes de
erros,mudana de necessidades, etc.

MODELOS EM CASCATA(Ciclo de Vida)


Levantamento

Anlise
Codificao
Teste
Implantao
Implantao

O modelo em cascata um processo baseado em planeamento, onde antes de


desenvolver o produto planeiam-se e esquematizam-se antecipadamente todas as
atividades do processo de desenvolvimento.

VANTAGENS

Torna o processo de desenvolvimento estruturado;

Tem uma ordem sequencial de fases;

Cada fase cai em cascata na prxima e cada fase deve estar


terminada antes do incio da seguinte;

Todas as atividades identificadas nas fases do modelo so


fundamentais e esto na ordem certa;

Esta abordagem atualmente a norma e provavelmente


permanecer por um tempo, mas temos o desenvolvimento gil
chegando com muita fora na maioria das empresas de grande
porte;

DESVANTAGENS

No fornece feedback entre as fases e no permite a atualizao


ou redefinio das fases anteriores;
No prev a manuteno;
No permite a reutilizao;
excessivamente sincronizado;
Se ocorrer um atraso todo o processo afetado;
Demora muito para ser entregue o software;

PROTOTIPAO
Os prottipos podem ser construdos para telas de entrada, telas de sada,
subsistemas e, muitas vezes, at para o sistema como um todo. Esta construo
realizada atravs de trs formas:
I. Um prottipo em papel ou modelo baseado em PC que retrata a interao
homem-mquina de uma maneira que capacite o usurio a entender como ocorrer
tal interao;
II. Um prottipo de trabalho que define algum subconjunto da funo exigida do
software desejado
III. Um programa existente que executa parte ou toda a funo desejada, mas que
tem outras caractersticas que sero melhoradas em um novo esforo de
desenvolvimento.
Pressman (1995) ressalta que a prototipao um processo que capacita o
desenvolvedor a criar um modelo do software que ser implementado.
Bezerra (2007) destaca que a prototipagem (construo de prottipos)
uma tcnica que serve de complemento anlise de requisitos. Alm disso, no
contexto do desenvolvimento de software, um prottipo um esboo de alguma
parte do sistema.

PROTOTIPAO
Segundo Pressman (1995), a sequncia de eventos para o paradigma de

prototipao a seguinte:

Como todas as abordagens ao desenvolvimento de software, a prototipao iniciase com a coleta de requisitos. O desenvolvedor e o cliente renem-se e definem os
objetivos globais para o software, identificam as exigncias conhecidas e esboam
as reas em que uma definio adicional obrigatria. Ocorre ento a elaborao
de um projeto rpido. O projeto rpido concentra-se na representao daqueles
aspectos do software que sero visveis ao usurio. O projeto rpido leva
construo de um prottipo que avaliado pelo cliente/usurio e usado para
refinar os requisitos para o software a ser desenvolvido. Um processo de iterao
ocorre quando feita uma sintonia fina do prottipo para satisfazer as
necessidades do cliente, capacitando, ao mesmo tempo, o desenvolvedor a
compreender melhor aquilo que precisa ser feito.

VANTAGENS
Na prototipagem, sucedendo o levantamento de requisitos, um prottipo
do sistema construdo para ser usado na validao de tais requisitos,
sendo este prottipo revisto por um ou mais possveis usurios, estes que
fazem crticas acerca de uma ou outra caracterstica.
Dessa maneira, Bezerra (2007) define como vantagem deste modelo o fato
de que embora a tcnica de prototipagem seja opcional, ela costuma ser
aplicada em projetos de desenvolvimento de software, especialmente
quando h dificuldades no entendimento dos requisitos do sistema (ou h
requisitos arriscados).
No obstante, a tarefa de validao ressalta o objetivo da tcnica de
prototipagem: assegurar que os requisitos do sistema foram realmente
bem entendidos. Portanto, o resultado da validao atravs do prottipo
pode ser usado para aperfeioar os modelos do sistema.

DESVANTAGENS
O cliente v aquilo que parece ser uma verso de trabalho do software,
desconhecendo que o prottipo se mantm unido, sem saber que, na pressa de
coloc-lo em funcionamento, no levamos em considerao a qualidade global do
software e a manutenibilidade a longo prazo. Quando informamos que o produto
precisa ser reconstrudo, o cliente grita improprios e exige que alguns acertos
sejam aplicados para tornar o prottipo um produto de trabalho. Muito
frequentemente, a gerncia de desenvolvimento de software cede.
II. O desenvolvedor muitas vezes faz concesses de implementao a fim de colocar
um prottipo em funcionamento rapidamente. Um sistema operacional ou
linguagem de programao imprpria pode ser usada simplesmente porque est
disposio e conhecida; um algoritmo ineficiente pode ser implementado
simplesmente para demonstrar capacidade. Depois de algum tempo, o
desenvolvedor pode familiarizar-se com essas opes e esquecer-se de todas as
razes pelas quais elas so inadequadas. A opo menos que ideal se tornou ento
parte integrante do sistema.

I.

As desvantagens, antes elencadas, denotam de que maneira o usurio ansioso


pelo produto final pode vir a interferir de maneira negativa no processo de
desenvolvimento de software baseado na construo de prottipos do sistema.

MODELO ESPIRAL

O modelo espiral foi desenvolvido as melhores caracterstica tanto do ciclo de vida


clssico quanto de prototipao acrescentando um novo elemento Analise de Risco
que falta esses paradigmas.
O Modelo possui quatro etapas descrito abaixo:

Panejamento : devem ser determinados objetivos, solues alternativas e restries.


Anlise de Riscos: devem ser analisados os riscos das decises do estgio anterior. Durante este
estgio podem ser construdos prottipos ou realizar-se simulaes do software.
Engenharia: consiste nas atividades da fase de desenvolvimento, incluindo design, especificao,
codificao e verificao. A principal caracterstica que a cada especificao que vai surgindo a
cada ciclo - especificao de requisitos, do software, da arquitetura, da interface de usurio e dos
algoritmos e dados - deve ser feita a verificao apropriadamente.
Avaliao: compreende a reviso das etapas anteriores e o panejamento da prxima fase. Neste
panejamento, dependendo dos resultados obtidos nos estgios anteriores - decises, anlise de
riscos e verificao, pode-se optar por seguir o desenvolvimento num modelo Cascata (linear),
Evolutivo ou Transformao. Por exemplo, se j no primeiro ciclo, os requisitos forem
completamente especificados e validados pode-se optar por seguir o modelo Cascata. Caso
contrrio, pode-se optar pela construo de novos prottipos, incrementando-o, avaliando novos
riscos e replanejando o processo.

ANLISE DE REQUISITOS

Anda mungkin juga menyukai