Top Banner
Análise de Sistemas 1º Módulo
30

Analise aula2

Jul 21, 2015

Download

Documents

Kelvin Wesley
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Analise aula2

Análise de Sistemas

1º Módulo

Page 2: Analise aula2

CRISE DO SOFTWARE NAS DÉCADAS DE 60,70,80.

Pode-se dizer que essa crise é de:

Tecnologia: o hardware caminha mais rápido que osoftware;

Oferta: a demanda é maior que a capacidade de

desenvolvimento;

Manutenção: maus projetos e recursos escassos nãopermitem manutenção.

Apesar dos investimentos feitos nestes 30 anos, odesenvolvimento de software tem sido, em muitos casos, ogargalo para o término do desenvolvimento de sistemas.

Page 3: Analise aula2

DADOS LEVANTADOS EM 1987 25% de projetos de software de grande porte para tempo

real e para telecomunicações nunca foram terminados;

uma porcentagem semelhante de sistemas deste tipotiveram o desenvolvimento terminados mas não se tornouoperacional;

cerca de 10% de projetos iniciados em empresas deinformática são descontinuados;

40% dos 260 projetos de software aplicativos na área demanufatura aeroespacial não vão ser terminados.

Page 4: Analise aula2

O insucesso no desenvolvimento de software sedeve a vários motivos e, normalmente, tem umaprobabilidade maior de ocorrência em sistemas degrande porte. Muitas vezes, problemas surgem deuma especificação mal feita ou incompleta, onde osprojetista acabam assumindo as interpretações ou ospontos faltantes.

Outras vezes, o insucesso é devido à mudança deobjetivos, quando o produto final não atende mais àspropostas iniciais [Melnikoff, 1998].

Page 5: Analise aula2
Page 6: Analise aula2

O processo de desenvolvimento de um software

As atividades de desenvolvimento de softwarepassaram por uma transformação profunda: noinício da década dos 60, o objetivo fundamental era aprogramação, sem considerar os aspectos deanálise, projeto e testes. Por outro lado, a disciplinade engenharia de software de hoje focaliza não umprogramador, mas uma equipe de profissionais, compapéis bem definidos, almejando a obtenção de umsistema integrado de software.

Page 7: Analise aula2

Os modelos de processo de desenvolvimento têm um papel muito

importante no contexto, pois nos permite:

Definir as atividades a serem executadas em umprojeto de software;

Introduzir consistência entre os muitos projetos damesma organização;

Introduzir pontos de verificação para o controlegerencial.

Page 8: Analise aula2

Os modelos de processo de desenvolvimento ou métodos da engenharia de software, também

conhecidos como “paradigmas da engenharia de software”, são:

O Ciclo de Vida Clássico;

Prototipação;

Modelo Espiral;

Técnicas de quarta geração.

Page 9: Analise aula2

CICLO DE VIDA CLÁSSICO

Page 10: Analise aula2

Análise do Sistema: Estabelecer necessidades e exigências de todos oselementos do sistema (software, hardware e procedimentos manuais).

Análise de Requisitos (do Software): Detalhar os dados que serãomanipulados e as funções que serão executadas pelo software.

Projeto: Transformar os requisitos do software nos seus principaiscomponentes: estrutura e algoritmo do código; estrutura de dados einterfaces com usuários e outros sistemas.

Codificação:

Traduzir o desenho do software em programas que possam serexecutados por computador.

Teste: Identificar erros de codificação, desenho ouanálise, “eventualmente” existentes no software.

Manutenção: Repetir as fases anteriores para corrigir erros dosoftware, adaptar suas funções a novos requisitos e ampliá-lo, adicionando-se novas funções.

Page 11: Analise aula2

Problemas na aplicação do modelo de ciclo de vida clássico

Este paradigma é o mais antigo e o mais utilizado, pois ele é melhor do queuma abordagem casual ao desenvolvimento de software, mas existemproblemas aos quais devemos estar atentos, para saber contornar:

Os projetos reais raramente seguem o fluxo seqüencial que o modelopropõe. Alguma interação sempre ocorre e traz problemas na aplicação doparadigma;

Para o cliente é difícil em um primeiro momento declarar todas asexigências explicitamente. O ciclo de vida clássico exige isso e temdificuldade de como dar a incerteza que existe no começo do projeto;

Cliente deve ter paciência. Uma versão do programa não estará

disponível até um ponto tardio do cronograma projetado. Um erro, se

não for detectado até que o programa de trabalho seja revisto, poderá

ser desastroso.

Page 12: Analise aula2

Prototipação

A prototipação é um processo que capacita odesenvolvedor a criar um modelo de software, podendoser: em papel, baseado em um PC, um protótipo detrabalho, um programa existente que executa uma parteou toda função desejada (mas que ainda necessita deajustes em um novo esforço de desenvolvimento).

Uma abordagem de prototipação pode representar amelhor abordagem, quando:

Page 13: Analise aula2

O cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída detalhados;

O desenvolvedor não tem certeza da eficiência de um algoritmo, da adaptabilidade de um sistema operacional ou da forma de interação homem-máquina.

Prototipação

Page 14: Analise aula2

Prototipação

A prototipação é um paradigma eficiente. Achave está entre aconcordância do cliente e desenvolvedor, deque o protótipo serve apenas paradefinir os requisitos.

Page 15: Analise aula2

Problemas na aplicação do modelo de Prototipação:

Cliente vê aquilo que parece ser uma versão detrabalho do software, desconhecendo que o protótipo éna verdade uma versão “rústica” do sistema, feita semconsiderar aspectos de qualidade e facilidade demanutenção do software.

Quando o cliente descobre que o que esta vendo é narealidade um modelo e este precisa serreconstruído, este exige que sejam feitos “algunsacertos” de forma que o protótipo se torne viável parauso. O que é sem dúvida uma catástrofe.

Page 16: Analise aula2

O MODELO ESPIRAL

Este modelo foi desenvolvido com a finalidadede abranger as melhores características tantodo ciclo de vida clássico como daprototipação, acrescentando a análise deriscos, que falta nos outros paradigmas.

Page 17: Analise aula2

O modelo espiral define quatro importantes atividades, a saber:

Planejamento: determinação dosobjetivos, alternativas e restrições;

Análise de Riscos: análise de alternativas e resoluçãode riscos;

Engenharia: desenvolvimento do produto no nívelseguinte;

Avaliação feita pelo cliente: avaliação dos resultadosda engenharia.

Page 18: Analise aula2

É a abordagem mais realista para o desenvolvimento desistemas e software de grande escala existenteatualmente. Usando a abordagem evolucionáriacapacita o desenvolvedor e o cliente a reagir aos riscosde cada etapa evolutiva.

Uma outra característica importante é que ela permiteao desenvolvedor aplicar a abordagem de prototipaçãoem qualquer etapa da evolução do produto. Mantém aabordagem de passos sistemáticos do ciclo de vidaclássico, incorporando-o numa estrutura iterativa quereflete mais realisticamente o mundo real.

O MODELO ESPIRAL

Page 19: Analise aula2

Problemas na aplicação do modelo de espiral:

Convencer grandes clientes de que a abordagemevolutiva é controlável;

Exige considerável experiência do engenheiro desoftware em detectar e avaliar riscos . O sucessodepende disso.

Pelo fato do modelo ser relativamente novo e aindanão ter sido amplamente usado como os dois modelosanteriores, demorará ainda alguns anos até que suaeficácia possa ser determinada com certeza .

Page 20: Analise aula2

TÉCNICAS DE QUARTA GERAÇÃO

O modelo denominado de Técnicas de Quarta Geraçãoou 4GT, abrange um amplo conjunto de software quepermitem ao desenvolvedor especificar algumacaracterística do software num nível elevado.

Este paradigma concentra-se na capacidade de seespecificar um software a uma máquina em um nível queesteja próximo da linguagem natural.

Atualmente o ambiente de desenvolvimento de softwarebaseado no paradigma 4GT inclui alguma, ou todas, asseguintes ferramentas:

Page 21: Analise aula2

Quarta Geração Linguagens não-procedimentais para consulta de

banco de dados;

Geração de relatórios;

Manipulação de dados;

Interação e definição de telas;

Geração de código de programas;

Capacidade gráfica de alto nível;

Capacidade de planilha eletrônica.

Page 22: Analise aula2

Quarta Geração

Page 23: Analise aula2

Obtenção de Requisitos

Descrição dos requisitos pelo cliente, que são traduzidos para um protótipo operacional.

- Insegurança quanto aos requisitos

- Incapacidade de especificação de informações.

- 4GL’s não são sofisticadas a ponto de acomodar a

- verdadeira linguagem Natural

Page 24: Analise aula2

Estratégia de Projeto

Dois casos de desenvolvimento:

1. Pequenas aplicações: é possível pular esta etapa.

2. Grandes aplicações: necessária estratégia do projeto.

Page 25: Analise aula2

Implementação utilizando a 4GL

Resultados desejados representados por geração automática de código.

Estrutura de dados com informações relevantes e acessível pela 4GL.

Page 26: Analise aula2

Testes

Realizar testes.

Possuir documentação significativa.

Manutenção deve ser efetuada prontamente.

Page 27: Analise aula2

Problemas na aplicação do modelo de técnicas de quarta geração

Alguns problemas do modelo 4GT são:

Usar modelos baseados em 4GT sem planejamento paragrandes projetos, é incorrer nas mesmas dificuldadesencontradas para se desenvolver software usandoabordagens convencionais;

O software desenvolvido em 4GT deve ser construído demodo que possibilite rápida manutenção;

Com raras exceções, o domínio atual para 4GT limita-se aaplicações comerciais. Somente agora ferramentas CASEestão suportando o uso das 4GT para geração automáticade “esqueletos” de código para aplicações de engenharia etempo real.

Page 28: Analise aula2

Evolução do Software Primeira Geração (1950 a 1960): Sistemas em Batch, software sob medida,

desenvolvidos sem técnicas de engenharia (programação arte); programador-usuário (sistemas sem documentação) - muita evolução da ciência pouca da técnica;

Segunda Geração(1960-1979): Sistemas Multiusuário (interação homem-máquina); evolução de técnicas interativas: sistemas em tempo real ; sistemas degerenciamento de banco de dados; surgimento das Software-Houses e dos pacotesde software: evolução de técnicas de manutenção;

Terceira Geração: (desde 1979): Sistemas distribuídos: redes locais e globais;comunicações digitais ; acesso instantâneo a base de dados; Sistemas Especialistas;Inteligência Artificial; integração da informática com outras tecnologias(automóveis, eletrodomésticos, bens de capital,....). Crescimento de empresas desoftware, que vendem diferenciação...

Quarta Geração: Inteligência Artificial: disseminação de sistemas baseados emredes neuronais e algoritmos genéticos para reconhecimento de padrões,aprendizado e processamento parecidos com os humanos: Orientação a Objetos eLinguagens de quarta geração (especificando o resultado esperado e não a ação parase conseguir esse resultado).

Page 29: Analise aula2

A metodologia de desenvolvimento deve serestabelecida levando-se em consideração o porte dosistema, as suas características (tempo real ounão, centralizado ou distribuído, tipo deaplicação, etc.), o tamanho e o perfil da equipe dedesenvolvimento, a infra estrutura de apoio aoprocesso de desenvolvimento, entre os principaisfatores. A não observação da adequabilidade de umametodologia a um desenvolvimento pode causarmais transtornos do que as vantagens prometidaspela literatura, causando descrédito nosprojetistas, nos gerentes e nos clientes.

Page 30: Analise aula2

Questionário1. Defina Engenharia de Software, com suas palavras e

comente sua importância no atual cenário de desenvolvimento de Software.

2. Comente a imagem do Slide 5

3. Na sua opinião, por que é importante estudar engenharia de software.