informática, multimídia e...
TRANSCRIPT
Engenharia de Software
• Definição de Engenharia de Software
• Cenário Atual de Desenvolvimento
• Requisitos
Prof. Késsia R. C. Marchi2
Engenharia de Software
• ENGENHARIA
– É a arte das construções, embasada no conhecimento científico e empírico, adequada ao atendimento das necessidades humanas.
• ENGENHAR
– É idear, maquinar, inventar, engendrar, produzir.
Prof. Késsia R. C. Marchi3
Engenharia de Software
• SISTEMA– Conjunto de partes que interagem entre
si, visando um objetivo comum.
– Em informática é o conjunto do software, hardware e recursos humanos.
• SOFTWARE (SW)– Subsistema de um sistema
computacional.
– São os programas de computadores.
Prof. Késsia R. C. Marchi4
Características de um SW
Software é tanto um PRODUTO como um veículo para desenvolver um produto;
Software é desenvolvido por engenharia e não manufaturado;
Prof. Késsia R. C. Marchi5
Conceito de Software
Definição mais exata
“Software não é apenas o programa mastambém toda a documentação
associada e os dados de configuraçãonecessários para fazer com que essesprogramas operem corretamentes.”
Ian Sommervile
Prof. Késsia R. C. Marchi6
Importância do SW
• foco no negócio empresarial
– objetivo de auxiliar os processos de tomada de decisões (estratégicas, táticas e operacionais).
• com "inteligência"
Prof. Késsia R. C. Marchi7
Crise do SW
• Ocorre quando o software não satisfaz seus envolvidos, sejam clientes e/ou usuários, desenvolvedores ou empresa.
• Problemas não se limitam ao software que não funciona adequadamente, mas abrange:• desenvolvimento, testes, manutenção, suprime
nto, etc.Prof. Késsia R. C. Marchi8
Exemplos de Crise
As estimativas de prazo e de custo freqüentemente são
imprecisas
“Não dedicamos tempo para coletar dados
sobre o processo de desenvolvimento de
software”
“Estimativas são feitas a olho, com
resultados ruins”
Prof. Késsia R. C. Marchi9
Exemplos de Crise
• Logo:
“Os prazos arrastam-se por meses”
“Causa insatisfação para o cliente e
falta de confiança”
“Sem nenhuma indicação sólida de
produtividade, não podemos avaliar com
precisão a eficácia de novas
ferramentas, métodos ou padrões”
Prof. Késsia R. C. Marchi10
Exemplos de Crise
A produtividade das pessoas da área de software não
tem acompanhado a demanda por seus serviços
“Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente”
“A comunicação entre o cliente e o desenvolvedor de software é muito fraca”
Prof. Késsia R. C. Marchi11
Exemplos de Crise
A qualidade de software às vezes é menos que adequada
Não uso de técnicas de teste sistemáticas e
completas
Só recentemente começam a surgir conceitos
quantitativos sólidos de garantia de qualidade
de software
Prof. Késsia R. C. Marchi12
Abrangência da Crise
• A chamada crise do Software abrange todos os problemasrelacionados a:– Como Sistemas computacionais são
construidos
– Como sistemas computacionais sãoimplantados ou sistemas antigos sãosubstituidos
– Como é provida a manutenção daquantidade crescente de software
Prof. Késsia R. C. Marchi13
Anti-Crise
• União e trabalho conjunto e harmonioso de três elementos: – empresa (alta administração),
– cliente e/ou usuário e
– a área de informática (desenvolvedores de soluções).
• Área de Informática: agentes de mudança.
Prof. Késsia R. C. Marchi15
Engenharia de Software
• A Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software.
(IEEE Standard 610.12)
Prof. Késsia R. C. Marchi16
CONCEITO DE ENGENHARIA DE SOFTWARE
• É metodologia de desenvolvimento e manutenção de sistemas modulares com:
– adequação aos requisitos funcionais do negócio dos clientes e seus respectivos procedimentos;
– efetivação de padrões de qualidade e produtividade em suas atividades e produtos;
– fundamentação na Tecnologia da Informação disponível, viável e oportuna;
– planejamento e gestão de atividades, recursos, custos e datas.
Prof. Késsia R. C. Marchi17
Objetivos da Eng. De SW
• Aprimoramento da qualidade dos produtos de software;
• Aumento da produtividade no desenvolvimento, operação e manutenção de sw;
• Permitir que profissionais tenham controle sobre o desenvolvimento de sw dentro de prazos, custos e níveis de qualidade desejados.
Prof. Késsia R. C. Marchi18
Fundamentos da Eng. De SW
• Ciência da Computação– fundamentos científicos
• Administração de Projetos– gestão
• Comunicação– oral e escrita, motivação interna, satisfação
do cliente
• Técnica de Solução de Problemas– resultados, soluções integradas e
inteligentes
Prof. Késsia R. C. Marchi19
Engenharia de Software
• Em suma, desenvolver software é uma atividade quenão se confunde com escrever programas paracomputador.
• Desenvolvimento de software complexo envolveprocedimentos que exigem a abordagem simultânea e integra de aspectos técnicos e gerenciais.
• Deve-se prover o software com um modelo de alto nível onde os aspectos técnicos e gerenciaiscoexistam. Esse modelo recebeu a denominação de Ciclo de Vida do Software.
Prof. Késsia R. C. Marchi20
Engenheiro de Software
• Profissional da área de informática que desenvolve soluções profissionais utilizando-se dos recursos de software, observando os padrões de qualidade requeridos.
• Gestor e gerador de soluções.
• Habilidades do engenheiro de software:– técnica
– de negócios
– comportamental
Prof. Késsia R. C. Marchi21
Cenário Atual
• Gasta-se cada vez mais na manutenção e testes de sistemas.
• 85% dos erros são causados por defeitos inseridos durante a análise de requisitos e projeto de sistemas.
Prof. Késsia R. C. Marchi22
Cenário Atual
Prof. Késsia R. C. Marchi23
% Custos de Desenvolvimento
% dos defeitos introduzidos
% dos defeitos encontrados
Custo relativo de correção
Análise de Requisitos 5 55 18 1
Projeto 25 30 10 1 - 1.5
Códificação e testes de unidade 50
Teste 10 10 50 1 - 5
Validação e Documentação 10
Manutenção 5 22 10 - 100
Cenário Atual
Prof. Késsia R. C. Marchi24
Análise de RequisitosProjeto
Teste
Manutenção
11,5
5
100
Custo relativo de correção
Custo relativo de correção
Cenário Atual
• Outros custos não facilmente mensurável
– Perda de oportunidade;
– Perda de confiança do cliente;
– Perda de cliente;
Prof. Késsia R. C. Marchi25
Cenário Atual
• Os erros mais caros são aqueles cometidos no processo de requisitos e descobertos pelo usuário.
Prof. Késsia R. C. Marchi26
Referências
• FRESSATI, W. Notas de Aula – Engenharia de Software. 2005.
• REZENDE,D. Sistemas de Informações Organizacionais. 2. ed. Editora Atlas. São Paulo, 2007.
• SOMMERVILLE, I. Engenharia de Software. Editora Addison Wesley. São Paulo, 2003.
• PRESSMAN. R. Engenharia de Software. Editora McGraw-Hill. São Paulo, 2006.
• http://standards.ieee.org/reading/ieee/std_public/description/se/610.12-1990_desc.html
Prof. Késsia R. C. Marchi27