1. Engenharia de Software
Aula 1 – Introdução à Engenharia de Software
Profa. Dra. Judith Pavón
Universidade Salvador – UNIFACS
2012
2. Conteúdo
Objetivo da aula
Leitura recomendada
O que é Engenharia de Software
O que é Software
Objetivos da Engenharia de Software
Características da Engenharia de Software
O que é um software de qualidade?
Importância da Engenharia de Software
A crise do software
Definição de Engenharia de Software
Atividades e Artefatos de Engenharia de software
2
3. Objetivo da aula
O objetivo desta aula é apresentar e
consolidar os conceitos básicos de
Engenharia de Software.
3
4. Leitura recomendada
Capítulo 1 e 2 do livro “Engenharia de
Software” de Roger Pressman.
Capítulo 1 e 2 do livro “Engenharia de
Software” de Ian Sommerville.
5. O que é a Engenharia de
Software?
Estudo ou aplicação de abordagens sistemáticas,
econômicas e quantificáveis para o
desenvolvimento, operação e manutenção de
software de qualidade.
Engenheiros de software devem adotar uma
abordagem sistemática e organizada para seu
trabalho e usar ferramentas e técnicas/métodos
apropriados dependendo do problema a ser
solucionado, das restrições de desenvolvimento e
dos recursos disponíveis
6. O que é software?
É o produto entregue ao cliente ao finalizar o
ciclo de desenvolvimento e geralmente é
composto por diferentes tipos de artefatos
(ex. Código fonte, documentação, programas
de instalação, etc.)
Produtos de software podem ser
desenvolvidos para um cliente particular ou
podem ser desenvolvidos para um mercado
geral
7. Objetivos da Engenharia de
Software
Controle sobre o desenvolvimento de
software dentro de custos, prazos e níveis
de qualidade desejados
Produtividade no desenvolvimento, operação
e manutenção de software
Qualidade versus Produtividade
8. Características da
Engenharia de Software
A Engenharia de Software se refere a
software (sistemas) desenvolvidos por
grupos ao invés de indivíduos
usa princípios de engenharia ao invés
de arte, e
inclui tanto aspectos técnicos quanto
não técnicos
9. O que é um software de
qualidade?
O software que satisfaz os requisitos solicitados pelo
usuário. Deve ser fácil de manter, ter boa performance, ser
confiável e fácil de usar
Alguns atributos de qualidade
Manutenibilidade
O software deve evoluir para atender os requisitos que
mudam
Eficiência
O software não deve desperdiçar os recursos do sistema
Confiabilidade
A taxa de falhas do software deve ser conhecida para saber
quanto é confiável esse sistema.
Usabilidade
O software deve ser fácil de usar pelos usuários para os
quais ele foi projetado
10. Produtividade
Quantidade de requisitos implementados em
uma unidade de tempo.
Custo de desenvolvimento reduzido
A empresa consumidora quer investir pouco em
software
A empresa produtora tem que oferecer “software
barato”
Tempo de desenvolvimento reduzido
Suporte rápido às necessidades do mercado
11. Mas, na realidade, temos a
Crise de Software...
25% dos projetos são cancelados
o tempo de desenvolvimento é bem
maior do que o estimado
75% dos sistemas não funcionam como
planejado
a manutenção e reutilização são
difíceis e custosas
os problemas são proporcionais a
complexidade dos sistemas
12. A Crise do Software
Aplicações desenvolvidas há mais de 20 anos,
que já passaram por dezenas de gerações de
mudanças, ainda são utilizadas até hoje.
Aplicações utilizadas em áreas críticas(ex.
aplicações da área de engenharia) não são
realmente entendidas. Não se tem
conhecimento detalhado da estrutura de seus
programas.
13. A Crise do Software
Sistemas usados para controlar fábricas,
tráfego aéreo, usinas de eletricidade, etc.
apresentam defeitos, mas não podem ser
tirados de operação porque não há nada
para substituí-los.
14. Causas da Crise de Software
Complexidade dos sistemas
Dificuldade de formalização
Falta de documentação
Má qualidade dos métodos, linguagens,
ferramentas, processos, e modelos de
ciclo de vida
Falta de qualificação técnica
15. Atividade 1 (entregar na próxima aula)
1. Quando começou a crise de software? A crise já finalizou?
2. Liste as categorias de software que existem e descreva cada
uma delas. Use como fonte bibliográfica o livro de Pressman
para elaborar esta lista.
3. Identifique, cite e explique os mitos do software.
4. O que é um software legado ?
15
17. Atividade 2 (realizar em sala de aula)
1. O que é um software?
2. Quais são as atividades necessárias para desenvolver um
software ?
3. Quais são os papéis dos profissionais que conformam a
equipe de desenvolvimento de software ?
4. Cite as principais dificuldades enfrentadas atualmente no
desenvolvimento de software.
17
18. Engenharia de Software
Definições
Boehm: Engenharia de software envolve a
aplicação prática de conhecimento científico para
o projeto e construção de programas de
computador e a documentação associada
necessária para desenvolvê-los, operá-los e
mantê-los.
19. Engenharia de Software
Definições
IEEE Standard Glossary of Software Engineering
terminology: Engenharia de software é uma
abordagem sistemática para o desenvolvimento,
operação, manutenção de software
Software: programas de computador,
procedimentos, regras, documentação
possivelmente associada, e dados sobre sua
operação.
20. Engenharia de Software
Definições
Fairley: Engenharia de software é a disciplina
tecnologica e gerencial preocupada com a
produção sistemática e manutenção de produtos
de software que são desenvolvidos e modificados
no prazo estabelecido e dentro das estimativas
de custo.
21. abrange um conjunto de três elementos fundamentais:
Métodos, Ferramentas e Processos
Principais metas: melhorar a qualidade de
produtos de software, aumentar a
produtividade do pessoal técnico e aumentar
a satisfação do cliente.
22. Engenharia de Software
métodos: proporcionam os detalhes de
métodos
como fazer para construir o software
23. Engenharia de Software
ferramentas: dão suporte automatizado
ferramentas
aos métodos.
existem atualmente ferramentas para sustentar
cada um dos métodos
quando as ferramentas são integradas é
estabelecido um sistema de suporte ao
desenvolvimento de software chamado CASE -
Computer Aided Software Engineering
24. Engenharia de Software
processos: constituem o elo de
processos
ligação entre os métodos e ferramentas
seqüência em que os métodos serão aplicados
produtos que se exige que sejam entregues
controles que ajudam assegurar a qualidade e
coordenar as alterações
marcos de referência que possibilitam administrar
o progresso do software.
25. Engenharia de Software
conjunto de etapas que envolve
métodos
ferramentas
procedimentos
Essas etapas são conhecidas como componentes de
CICLO DE VIDA DE SOFTWARE
ou Processo de Software
26. Elementos e Atividades da
Engenharia de Software
Elementos Atividades
Modelos do ciclo de
Modelagem do negócio
vida do software
Elicitação de requisitos
Análise e Projeto
Linguagens Implementação
Métodos Testes
Ferramentas Distribuição
Processos Planejamento
Gerenciamento
Gerência de
Configuração e
Mudanças
Manutenção
27. Atividades e Artefatos da
Engenharia de Software
Exemplos de Artefatos
Atividades
Plano de Negócios
Modelagem do negócio
Plano de Projeto
Elicitação de requisitos
Plano de Riscos
Análise e Projeto
Implementação Documento de Requisitos
Testes Mapeamentos A&P
Distribuição Documento de Caso de Uso
Planejamento Documento de Arquitetura
Gerenciamento Classes
Gerência de Configuração e
Mudanças Código fonte
Documento de Testes
Manutenção
Documento de Validação
Manual do Sistema