Aula 1-2 - Introduo A EngSoft

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 33

Engenharia de Software

1
Engenharia de Software - Introdução

 Engenharia de Software: Objetivos, abordagens e métodos

 Software como produto: características, fatos e diferenciais

 Histórico da Engenharia de Software (ES)

 Fatores direcionadores de mudanças em ES

 Princípios da Engenharia de Software

2
Software como Produto
Diferente dos produtos comuns, o software é um produto
maleável, ou seja, seu material componente (código fonte)
é facilmente manipulável.

O principal fator de custo no desenvolvimento de um


software é o fator humano (criatividade, capacidade de
produção, etc).

A maleabilidade traz uma aparente facilidade de aplicar


alterações nos produtos de software.

Esta facilidade aparente se obscurece pela necessidade de


manutenção da consistência entre as partes do produto.
Mitos sobre Software

Da Gerência
Ferramentas modernas de softwares e hardware são
suficientes.
Uso adequado de ferramentas exige conhecimento.

Manuais de Regras e Procedimentos


Desatualizados, Obsoletos.

Atrasos de tempo no projeto se resolvem com maior alocação


de pessoas
Custos de treinamento, tempo, gerência e
entendimento do processo de trabalho.
Mitos sobre Software

Do Desenvolvedor / Programador
Até que esteja rodando não há como medir sua qualidade.
Revisões anteriores a codificação.

O único produto de um projeto de SW é o conjunto de programas

Especificação, projeto, plano de trabalho.

Programa escrito e Testado! Acabei!

Quanto mais cedo escrever o código mais tempo pode demorar


para finalizá-lo. Maior esforço e custo de produção será gasto
para operacionalizá-lo para o usuário.
Mitos sobre Software

Do Cliente
Uma lista de intenções (boas) é suficiente para começar a
produzir o software.
A especificação de software é a fase mais crítica do
processo, Erros na fase inicial têm um custo muito alto
correção.

Minhas necessidades vão mudar? Mas mudanças são fáceis de


introduzir porque software é bastante flexível..
Custo de mudanças é muito alto.
Fatos sobre Software

Em geral o desenvolvimento de um produto de software custa


caro em comparação com linhas de produção de empresas.

Software é desenvolvido não produzido no sentido clássico pois


seu custo esta associado a sua engenharia e não a sua
produção em série.

O tempo estimado para desenvolvimento de um produto de


software geralmente é superado.

A produtividade da equipe de desenvolvimento costuma estar


abaixo do desejado.
Fatos sobre Software

Frequentemente, os recursos pessoais são insuficientes e


incapazes de realizar as atividades necessárias.

Algumas questões recebem consideração demasiada, enquanto


outras são negligenciadas.

O grau de progresso no desenvolvimento de um produto de


software é difícil de mensurar.

Produtos de software dificilmente atingem o padrão de qualidade


esperado. (ISO/IEC_9126).
Fatos sobre Software

A qualidade do software é frequentemente suspeita, pois temos


poucas medidas e critérios de qualidade dúbios.

Insatisfação do usuário é frequente: pouco entendimento dos


requisitos e problemas de comunicação.

Os usuários se sentem frustrados com sistemas difíceis de


operar e cujo desenvolvimento se prolonga por um longo tempo.

Software precisa se adaptar as novas tecnologias que


constantemente mudam.
Fatos sobre Software

Software em operação é difícil de manter e a manutenção pode


se tornar mais cara que a reconstrução.

Não se pode garantir que o produto de software está livre de


erros.

Software apresenta dificuldades de testes quando comparado a


algo concreto.

Existem estatísticas que comprovam a pouca confiabilidade de


boa parte dos sistemas.
Fatos sobre Software

A confiabilidade depende do uso de


métodos que possa garantir uma boa
qualidade do produto construído.

Ao final o sistema deve fazer o que é


esperado dele e ao mesmo tempo
não fazer o que não é esperado.

Um software sofre desgaste


natural(entropia).
Engenharia de Software

“O estabelecimento e uso de um conjunto de princípios de


engenharia com o objetivo de se construir software
confiável, eficiente e viável economicamente em
máquinas reais” [ Fritz Bauer, 1969]

“Aplicação de uma abordagem sistemática, disciplinada e


quantitativa para o desenvolvimento, operação e
manutenção de software...”[IEEE, 1993]

12
Engenharia em geral
Busca a resolução de problemas práticos através de soluções que sejam
economicamente viáveis

 Engenharias em geral: objetivos, abordagens e métodos

 Esta busca é motivada pela limitação de recursos, como tempo,


dinheiro e pessoal capacitado para resolver problemas

 A estratégia exige o desenvolvimento contínuo de tecnologias e


conhecimentos sobre diferentes áreas

 Assim, a engenharia se especializa nos mais diversos ramos de


conhecimento (elétrica, civil, software...)
Engenharia em Geral

Etapas da Engenharia

1) Análise: Quando um novo problema deve ser resolvido, este


deve ser dividido em partes menores e mais simples, até que
estas partes possam ser resolvidas.

2) Síntese: tendo dividido o problema em pequenas partes,


devemos unir as soluções de pequenas partes em uma
estrutura maior, que atenda a todo problema.

3) Correções: resolução de problemas decorrentes de


tradução durante a síntese(verificação) ou de elicitação
durante a análise(validação).
Evolução dos Sistemas
 NO INICIO...
A programação considerada uma espécie de arte
Altos custos de HW escondiam os custos de SW
Sistemas simples construídos por pequenas equipes
Sistemas construídos para resolver problemas específicos

 CRISE DE SOFTWARE
Inicio em meados da década de 1960
Os custos de software começaram a reduzir
Os computadores cada vez mais velozes
Aumento da capacidade dos computadores
Aumento da demanda por software devido aos avanços do hardware
As equipes de desenvolvimento não acompanharam a demanda por produção
Crise do Software
 Medidas pobres de eficiência e qualidade

 Frequente insatisfação do usuário


• Pouco entendimento dos requisitos
• Problemas de comunicação o usuário e o analista

 Pouca manutenção de Software


• tem que ser mantido até ser substituído

“O valor de um sistema está em atender com


precisão as necessidades de seus usuários”
Crise do Software – Causas

Projetos que estouram o cronograma


Projetos que estouram o orçamento
Baixa qualidade
Clientes insatisfeitos
Produtos difíceis de manter....
Evolução dos Sistemas
Evolução dos Sistemas

Software cada vez mais .....

 Maior
 Com mais funcionalidades
 Mais complexo
 Envolvendo mais usuários
 Exigindo a participação de equipes
em seu desenvolvimento
Engenharia de Software - origens

A Engenharia de software surgiu com o intuito de:

 Identificar e analisar as causas dos problemas envolvidos com o


desenvolvimento de software

 Propor soluções economicamente viáveis para a resolução destes


problemas

 Organizar o conhecimento sobre técnicas disponíveis para o


desenvolvimento de software

 O principal problema da Engenharia de Software é a falta de


conhecimento científico para ser aplicado
Mudanças na Engenharia de Software
Princípios da Engenharia

22
Princípios da Engenharia de Software

ABSTRAÇÃO
 Descrição dos problemas em níveis menores de detalhes.
 Foco nos principais mecanismos que regem o sistema.

NOTAÇÕES DE ANÁLISE E PROJETO


 Importância da comunicação entre integrantes de equipes
 Padronização e formalismo em documentos e artefatos

PROTOTIPAÇÃO
 Construção de versões mais simples para entendimento
dos requisitos, qualidade de interface com usuário e
capacidade de projeto para resolver problemas
Princípios da Engenharia de Software
Arquitetura de Software
• Mecanismos fundamentais para a construção do produto de software e
servem como base para seu posterior refinamento

Processo de desenvolvimento
• A qualidade de um produto está ligada a qualidade do processo com o
qual foi construído
• Formalização e disciplina nas atividades do processo de desenvolvimento,
visando qualidade no produto
• Diferentes níveis de formalização de acordo com o tipos de produto que se
deseja construir

Reutilização
 Oportunidade decorrente da similaridade entre aplicações para o reuso de
artefatos previamente construídos.
Princípios da Engenharia de Software

Mensuração
Mecanismos para avaliação do produto e projeto para seu aprimoramento.
Não se pode entender o que não se pode medir.

Ferramentas de desenvolvimento

 Apoio automatizado ao processo de desenvolvimento


 Integração das diversas atividades e interoperabilidade

Separação dos objetivos

 O desenvolvimento de software envolve múltiplas habilidades e


diferentes objetivos nas diversas fases de desenvolvimento

Antecipação de mudanças

 Os sistemas devem ser suscetíveis a mudanças, pois elas vão ocorrer


Construção de Software
Construção de Software
Construção de Software

28
Elementos da EngSW
Processo
 Define passos gerais para o
desenvolvimento e manutenção do
software

 Serve como estrutura de encadeamento de


métodos e ferramentas

Métodos

São as formas de como fazer um passo


específico no processo

Ferramentas

Automatizam o processo e os métodos


Elementos da EngSW

1. Coloque em uma panela funda o leite


condensado, a margarina e o chocolate
em pó;

2. Cozinhe (no fogão) em fogo médio e


mexa sem parar com uma colher de
pau;

3. Cozinhe até que o brigadeiro comece a


desgrudar da panela;

4. Deixe esfriar bem, então unte as mãos


com margarina, faça as bolinhas e
envolva-as em chocolate granulado
Elementos da EngSW

1. Coloque em uma panela funda o


leite condensado, a margarina e o
chocolate em pó;

2. Cozinhe (no fogão) em fogo


médio e mexa sem parar com

Processo
uma colher de pau;

3. Cozinhe até que o brigadeiro


comece a desgrudar da panela;

4. Deixe esfriar bem, então unte as


mãos com margarina, faça as
bolinhas e envolva-as em
chocolate granulado Método Ferramenta
Exercícios

Definir o procedimento de implantação


para os dois cenários apresentados.
Identifique o processo, os métodos e as
ferramentas
Caso 1: Farmácia

O software da farmácia acabou de ser implementado.

Caso 2: Cafeteria

O software de controle de vendas de uma cafeteria acabou


de ser implantado. (UFMA) Processo de
Bibliografia

BIBLIOGRAFIA BÁSICA

PRESSMAN, Roger S.. Engenharia de software: uma abordagem profissional. Porto


Alegre: McGrawHill – Artmed. 2011.
SOMMERVILLE, Ian. Engenharia de software. São Paulo: Pearson - Addison Wesley.
2011.
TONSIG, Sérgio Luiz. Engenharia de software: análise e projeto de sistemas. Rio de
Janeiro: Ciência Moderna. 2008.

BIBLIOGRAFIA COMPLEMENTAR
HIRAMA, Kechi. Engenharia de Software: qualidade e produtividade com tecnologia.
Rio de Janeiro: Campus. 2011.
PAULA FILHO, Wilson de P.. Engenharia de Software. Rio de Janeiro: LTC. 2009..
WAZLAWICK, Raul.Engenharia de Software - Conceitos e Práticas. Rio de Janeiro:
Campus. 2013.
SCHACH, Stephen R.. Engenharia de Software: os paradigmas clássicos e orientado a
objetos. Porto Alegre: McGrawHill – Artmed. 2008.
TSUI, Frank; KARAM, Orlando. Fundamentos de Engenharia de 33Software. Rio de
Janeiro: LTC. 2013.

Você também pode gostar