A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Noções de Engenharia de Software 1. 1 O problema do software 1

Apresentações semelhantes


Apresentação em tema: "Noções de Engenharia de Software 1. 1 O problema do software 1"— Transcrição da apresentação:

1 Noções de Engenharia de Software 1. 1 O problema do software 1
Noções de Engenharia de Software 1.1 O problema do software 1.2 A velha crise do software! 1.3 Os velhos mitos do software! Objetivo: mostrar o que é a Engenharia de Software e a sua importância na análise e projeto de sistemas

2 O software é um produto diferencial em vários aspectos…
1.1 O PROBLEMA DO SOFTWARE O software é um produto diferencial em vários aspectos… Evolutivo Feedback, interacional …e faz a diferença hoje até mais do que o hardware Evolução do software: Quarta era: Desk-top poderoso Orientação a objeto Sistemas especialistas / redes neurais Segunda era: Multiusuário Tempo real Produto de software Primeiros anos: Batch Distribuição limitada Customizado Terceira era: Sistemas distribuídos IA Baixo custo de hardware Adaptado de Pressman (1995)

3 Em direção a uma quinta era novos problemas surgem
A sofisticação do software ultrapassou a capacidade de construir um software que tirasse potencial do hardware A capacidade de construir programas não acompanha a demanda A capacidade de construir programas é ameaçada por projetos ruins e recursos inadequados Em resposta a esses problemas estão sendo adotadas práticas da engenharia Especificamente, em relação ao desenvolvimento para a Internet, há alguma mudança?

4 E software para a Internet?
Voltando às práticas de engenharia, um dos primeiros problemas encontrados foi a própria definição de software Instruções que quando executadas produzem a função e o desempenho desejados (Pressman) Estruturas de dados que possibilitam que os programas manipulem adequadamente a informação Documentos que descrevem a operação e o uso dos programas Fairley diferencia produto de software de software para uso pessoal Há definições do ponto de vista de outros profisionais que não são de informática, mas participam do desenvolvimento do software Há definições do ponto de vista do usuário E software para a Internet?

5 Talvez o melhor seja descobrir as características do “software” para os interesses da disciplina em relação ao desenvolvimento. Nesse caso: 1) O software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico Problema para a engenharia de hoje: a visão do software nem como produto de engenharia nem como produto de manufatura 2) O software não se desgasta Há uma diferença básica em relação ao HARDWARE! Curvas de falhas - Pressman (1995)

6 3) A maioria dos softwares é feita sob medida em vez de ser montada a partir de componentes existentes A visão de hoje no desenvolvimento radicalizou mais Mas em relação ao desenvolvimento existem hoje novas formas de concebê-lo que subvertem muito a concepção tradicional XP (eXtreme Programming) por exemplo: se baseia em quatro valores Feedback Comunicação Simplicidade Coragem De uma forma que nem vê o software como um produto de manufatura nem como uma adaptação da engenharia, mas como “a construção de um livro”

7 Além das características, é importante também compreender os componentes de software
Há os componentes executáveis e os não executáveis Exigências do cliente Conversões que mapeiam as exigências Projeto Conversão em uma linguagem que especifica as estruturas de dados, os atributos procedimentais e os requisitos Tradutor Conversão em instruções que são executadas em uma máquina

8 O software ainda possui aplicações que têm como fatores importantes o conteúdo e a determinância
Software básico Software de tempo real Software comercial Software científico e de engenharia Software embutido Software de computador pessoal Software de IA

9 1.2 A VELHA CRISE DO SOFTWARE! Problemas associados
Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software A insatisfação do cliente é frequente A qualidade de software é questionada O software é difícil de manter As causas podem ser atacadas pela ES Projeto Comunicação Gerência Enfrentamento de mudanças Bom, XP subverte esta idéia, que seria nova!

10 1.3 OS VELHOS MITOS DO SOFTWARE! Administrativos
Mito1: Já tenho um manual com padrões e procedimentos. Isso já não oferece o que o pessoal precisa saber? Realidade: O manual é usado? Os profissionais têm conhecimento? Reflete uma prática moderna? É completo? Mito2: Meu pessoal tem as ferramentas de desenvolvimento de última geração e os melhores computadores Realidade: As ferramentas de ES são mais importantes do que o hardware, mas a maioria ainda não usa Mito3: Se estamos atrasados, podemos adicionar mais programadores e tirar o atraso (horda de mongóis) Realidade: O desenvolvimento de software não é mecânico igual à manufatura

11 Mitos do cliente Mito1: uma declaração geral dos objetivos é suficiente para se começar a escrever programas – podemos preencher os detalhes mais tarde Realidade: uma definição inicial ruim é a principal causa do fracasso. É fundamental uma descrição mais formal. Mito2: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível Realidade: uma mudança, quando solicitada tardiamente, pode ser muito mais dispendiosa do que se fosse solicitada no início

12 Mitos do profissional Mito1: assim que escrevermos o programa e o colocarmos em funcionamento, nosso trabalho estará completo Realidade: “quanto mais cedo se escreve o código, mais tempo se demora para terminá-lo” Mito2: enquanto não tiver o programa “funcionando”, eu não terei como avaliar sua qualidade Realidade: as revisões técnicas formais têm sido mais eficientes do que os testes para a descoberta de certa classe de problemas de software Mito3: a única coisa a ser entregue em um projeto bem sucedido é o programa funcionando Realidade: esta afirmação desconhece a figura adiante e a documentação

13 Especificação de requisitos Projeto
Estrutura de dados Programa funcionando Listagem Plano Especificação de requisitos Projeto Especificação de testes

14 Além de acabar com os mitos, é essencial
Oferecer assistência para as práticas Melhorar a qualidade Permitir que o software acompanhe o desenvolvimento do hardware Quando combinamos… Métodos abrangentes para todas as fases de desenvolvimento Melhores ferramentas para automatizar o processso Blocos de construção mais sólidos Melhores técnicas para a qualidade de software e uma filosofia de coordenação predominante, controle e administração … fazemos uso da ENGENHARIA DE SOFTWARE

15 Definições de Engenharia de Software
“É a ciência e a arte de com economia, em tempo útil e de forma elegante, especificar, projetar, implementar e manter atualizados e corretos, programas, documentação e procedimentos operacionais para sistemas computacionais de utilidade para a humanidade” (Alan Brown, Anthony Earl e John McDermid) “Aplicação prática do conhecimento científico no projeto e construção de programas e da documentação requerida para desenvolver, operar e manter esses programas” (Boehm) etc

16 Definição de ES de Fritz Bauer
“Estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais” A ES engloba: 1) Métodos – “como fazer” Planejamento e estimativa de projeto Análise de requisitos de software e de sistemas Projeto da estrutura de dados Arquitetura de programa e algoritmo de processamento Codificação, teste e manutenção Os métodos muitas vezes introduzem notações gráficas ou orientadas a uma linguagem especial e conjuntos de critérios para a qualidade de software

17 2) Ferramentas – apoio automatizado ou semi-automatizado aos métodos
Sustentam cada um dos métodos ou os métodos de forma integrada (CASE – computer-aided software engineering) Combina hardware, software e banco de dados de ES 3) Procedimentos – elo que liga métodos a ferramentas Sequência dos métodos Produtos a serem entregues (deliverables) Controles de qualidade e mudança A ES compreende conjuntos de etapas que envolvem métodos, ferramentas e procedimetos em modelos ou paradigmas de ES

18 Noções de Engenharia de Software
Na Internet, onde antes as informações eram usadas mais estaticamente, os métodos, ferramentas e procedimentos devem ser combinados para dar suporte a aplicações a serem usadas de diversas maneiras para os mais diversos usos

19 EXERCÍCIO DE NOÇÕES DE ENGENHARIA DE SOFTWARE
Descreva como construir uma determinada aplicação para a Web levando em consideração o conteúdo e a determinância e, se possível, como estão relacionados com os métodos, as ferramentas e os procedimentos. Faça o exercício em conjunto com seu grupo e sobre o projeto da disciplina.


Carregar ppt "Noções de Engenharia de Software 1. 1 O problema do software 1"

Apresentações semelhantes


Anúncios Google