analise aula2

30
Análise de Sistemas 1º Módulo

Upload: kelvin-wesley

Post on 21-Jul-2015

167 views

Category:

Documents


0 download

TRANSCRIPT

Análise de Sistemas

1º Módulo

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.

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.

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].

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.

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.

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.

CICLO DE VIDA CLÁSSICO

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.

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.

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:

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

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.

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.

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.

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.

É 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

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 .

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:

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.

Quarta Geração

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

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.

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.

Testes

Realizar testes.

Possuir documentação significativa.

Manutenção deve ser efetuada prontamente.

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.

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).

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.

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.