Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo Eng. de Software - Ian Sommervile
Resumo Eng. de Software - Ian Sommervile
DE SOFTWARE Ian
Sommerville
Autor: Paulo Norberto
CAPITULO 1
INTRODUO
usado por algum alm do seu desenvolvedor, normalmente criado por equipes, em
vez de indivduos. Ele mantido e alterado durante sua vida. A engenharia de software
inclui tcnicas que apoiam especificao, projeto e evoluo de programas.
Falar em engenharia de software no apenas criar programas de
computador, mas tambm engloba toda a documentao associada e dados de
configurao necessrios para fazer esse programa operar corretamente. Um sistema
de software desenvolvido profissionalmente mais que apenas um programa; ele
normalmente uma srie de programas separados e arquivos de configurao usados
para configurar esses programas. Isso inclui documentao do sistema (descreve a sua
estrutura), documentao do usurio (explica como usar o sistema), e sites para o
usurio baixar informaes recentes do produto.
Engenheiros de software preocupam-se em desenvolver produtos de softwares
(softwares que podem ser vendidos). Existem dois tipos de produtos de software:
1. Produtos genricos: So os sistemas chamados stand-alone, que so os que so
vendidos para qualquer cliente que esteja interessado em compra-los. Exemplos:
ferramentas de banco de dados, processadores de texto, pacotes grficos, etc. E
tambm as aplicaes verticais, tais como, sistemas de biblioteca, contabilidade, e
manuteno de registros de alguma empresa.
2. Produtos sob encomenda: So criados para atender um fim especfico e um cliente
particular. desenvolvido especificamente para esse cliente. Exemplo: sistema de
controle de trfego areo.
O que software?
que o software faz, mas tambm como ele se comporta quando est sendo executado,
bem como a estrutura e a organizao dos programas do sistema e a documentao
associada. Isso reflete nos atributos de software, que so chamados de no funcionais
ou de qualidade. Exemplos desses atributos: Tempo de resposta a uma consulta
realizada pelo usurio e a compreenso do cdigo do programa. A seguir uma tabela
com as caractersticas essenciais de um sistema profissional de software:
Manutenibilidade O software deve ser escrito de forma que possa evoluir para
atender s necessidades do cliente. Esse um atributo crtico,
porque a mudana de software um requisito inevitvel de um
ambiente de negcios em mudana.
Confiana
e Inclui uma srie de caractersticas como: confiabilidade, proteo
proteo
e segurana. O software no pode causar prejuzos fsicos ou
financeiros no caso de falha no sistema e usurios maliciosos no
devem ser capazes de acessar ou prejudicar o sistema.
Eficincia
O software no deve desperdiar os recursos de sistema, como
memria e ciclos do processador. Deve ser eficiente na
capacidade de resposta, tempo de processamento, uso de
memria, etc.
Aceitabilidade
O software deve ser aceitvel para o tipo de usurio para o qual
foi projetado. Isso significa que ele deve ser compreensvel,
usvel e compatvel com outros sistemas usados por ele.
A engenharia de software no se preocupa apenas com os processos tcnicos
do desenvolvimento de software. Ela tambm inclui atividades como gerenciamento
de projeto de software e desenvolvimento de ferramentas, mtodos e teorias para
apoiar a produo de software. Engenharia tem haver com obter resultados de
qualidades requeridos dentro do cronograma e do oramento.
A abordagem sistemtica usada na engenharia de software , s vezes,
chamada processo de software. Um processo de software uma sequncia de
atividades que leva produo de um produto de software. Existem quatro atividades
fundamentais comuns a todos os processos de software. So elas:
1. Especificao de software: Clientes e engenheiros definem o que ser
produzido e as suas restries de operao.
2. Desenvolvimento de software: projeto e programao
3. Validao de software: O software verificado para garantir que est de
acordo com o que o cliente quer.
4. Evoluo de software: O software modificado para atender a mudana de
requisitos do cliente e do mercado.
CAPITULO 2
Um processo de software um conjunto de atividades relacionadas que levam
produo de um produto de software. Existem muitos processos de softwares diferentes, mas
todos devem incluir quatro atividades fundamentais para a engenharia de software:
1. Especificaes de software
2. Projeto e implementao de software
3. Validao de software
4. Evoluo de software
Pontos importantes:
CAPITULO
3
processo de desenvolvimento para obter feedback rpido sobre a evoluo dos requisitos.
Assim, minimiza-se a documentao, pois se utiliza mais a comunicao informal do que
reunies formais com documentos escritos.
Mtodos geis permitiram que a equipe de desenvolvimento focasse no software em
si, e no em sua concepo e documentao. Mtodos geis, universalmente, baseiam-se
em uma abordagem incremental para a especificao, o desenvolvimento e a entrega do
software. Destinam-se a entregar o software rapidamente aos clientes, em funcionamento,
e estes podem, em seguida, propor alteraes e novos requisitos a serem includos nas
iteraes posteriores do sistema. Tem como objetivo reduzir a burocracia do processo,
evitando qualquer trabalho de valor duvidoso de longo prazo e qualquer documentao
que provavelmente nunca ser usada.
Os princpios dos mtodos geis:
Envolvimento do cliente
Entrega incremental
Pessoas, no processos.
Aceitar as mudanas
Manter a simplicidade
requisitos. Em uma abordagem gil, iteraes ocorrem em todas as atividades. Por tanto, os
requisitos e o projeto so desenvolvidos em conjunto, e no separadamente.
Extreme Programming (XP) talvez o mais conhecido e mais utilizado dos mtodos
geis, pois a abordagem foi desenvolvida para impulsionar prticas reconhecidamente boas,
como o desenvolvimento iterativo, a nveis extremos. Por exemplo, em XP, vrias novas
verses de um sistema podem ser desenvolvidas, integradas e testadas em um nico dia por
programadores diferentes.
Em extreme Programming, os requisitos so expressos como cenrios (chamados de
estrias do usurio), que so implementados diretamente como uma srie de tarefas. Os
programadores trabalham em pares e desenvolvem testes para cada tarefa antes de escreverem
o cdigo. Quando o novo cdigo integrado ao sistema, todos os testes devem ser executados
com sucesso. H um curto intervalo entre os releases do sistema.
Extreme Programming envolve uma srie de prticas que refletem os princpios dos
mtodos geis:
1. O desenvolvimento incremental sustentado por meio de pequenos e frequentes
releases do sistema.
2. O envolvimento do cliente sustentando por meio do engajamento contnuo do
cliente com a equipe de desenvolvimento.
3. Pessoas no processos so sustentadas por meio de programao em pares,
propriedade coletiva do cdigo do sistema e um processo de desenvolvimento que
no envolve horas excessivas de trabalho.
4. As mudanas so aceitas por meio de releases contnuos para os clientes.
5. A manuteno da simplicidade feita por meio da refatorao constante que
melhora a qualidade do cdigo, bem como por meio de projetos simples que no
antecipam desnecessariamente futuras mudanas no sistema.
Em um processo XP, os clientes esto intimamente envolvidos na especificao e
priorizao dos requisitos do sistema. Os requisitos no esto especificados como uma lista de
funes requeridas do sistema. Pelo contrrio, o cliente do sistema parte da equipe de
desenvolvimento e discute cenrios com outros membros da equipe. Juntos, eles desenvolvem
um carto de estrias, englobando as necessidades do cliente.
A equipe de
PONTOS IMPORTANTES: