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

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

Engenharia de Software e Rapid Application Development

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software e Rapid Application Development"— Transcrição da apresentação:

1 Engenharia de Software e Rapid Application Development
Desenvolvimento de Aplicações Rápidas e Melhores

2 Desenvolvimento de software no Mundo
Em 1986 foi publicado um paper comparando a construção de pontes com a construção de software, como premissa foi utilizado: Pontes normalmente são entregues no prazo, dentro do orçamento e não caem; Softwares raramente são entregues no prazo ou dentro do orçamento. E normalmente eles tem bugs (falhas);

3 Desenvolvimento de software no mundo
Uma das maiores razões para o sucesso na construção de pontes é o alto nível de detalhe no projeto. Porém, o projeto é fixo e o contratante tem pouquíssima flexibilidade de mudanças. O mundo dos negócios é dinâmico, não sendo apropriado um projeto de software fixo, que tenderia a não acomodar as mudanças do negócio. Portanto, um modelo flexível deve ser aplicado.

4 Desenvolvimento de software no mundo
Nos EUA são gastos US$ 250 bi de dólares anuais no desenvolvimento projetos de software; Aproximadamente projetos de software; O custo médio de um projeto: Empresa de grande porte é de US$ 2.3 mi; Empresa de médio porte é de US$ 1.4 mi; Empresa de pequeno porte US$ ; A grande maioria destes projetos falha!

5 Desenvolvimento de software no mundo
Uma pesquisa do The Standish Group, o Chaos Report, classificou os projetos em três tipos: Sucesso: projeto dentro do prazo, dentro do orçamento e com boa parte do escopo; Sucesso parcial: projeto funcionando, mas entregue sem atender ou custo, ou esforço ou com o escopo parcial; Fracassos: projetos cancelados ou não utilizados;

6 Desenvolvimento de software no mundo
O Chaos Report em sua última revisão (2009) mostrava que: 24% dos projetos fracassam; 44% dos projetos são entregues com sucesso parcial; E apenas 32% dos projetos obtêm sucesso;

7 Desenvolvimento de software no mundo
Os principais fatores que ajudaram no sucesso dos projetos foram: Envolvimento do usuário: 15.9% Apoio executivo: 13.9% Declaração de requisitos clara e limpa: 13% Planejamento apropriado: 9.6% Expectativas realistas: 8.2% Equipe competente: 7.2% Propriedade: 5.3% Visão e objetivos claros: 2.9% Trabalho duro e equipe focada: 2.4% Outros: 21.6%

8 Desenvolvimento de software no mundo
Os fatores que influenciaram os projetos de sucesso parcial foram: Falta de insumos do usuário: 12.8% Requisitos & Especificações incompletas: 12.3% Mudanças nos requisitos & especificações: 11.8% Falta de apoio executivo: 7.5% Ambiente tecnológico incompleto: 7.0% Falta de recursos: 6.4% Expectativas irrealistas: 5.9% Objetivos nebulosos: 5.3% Ciclos (tempo) irrealistas: 4.3% Novas tecnologias: 3.7% Outras: 23%

9 Desenvolvimento de software no mundo
As principais causas do fracasso são: Requisitos Incompletos: 13.1% Falta de envolvimento do usuário: 12.4% Falta de recursos: 10.6% Expectativas não realistas 9.9% Falta de apoio executivo: 9.3% Mudanças de requisitos: 8.7% Falta de planejamento: 8.1% Não precisa mais daquilo: 7.5% Falta de gestão da TI: 6.2% Analfabetismo tecnológico: 4.3% Outros: 9.9% O estudo mostrou também que quanto maior o tamanho do projeto, maior a probabilidade de fracasso

10 Desenvolvimento de software no mundo

11 Engenharia de Software
Termo criado na década da 1960 e oficializado em 1968; Objetivos: a aplicação de teoria, modelos, formalismos e técnicas e ferramentas da ciência da computação e áreas afins para a produção (ou desenvolvimento) sistemático de software;

12 Engenharia de Software
Ela abrange: Requisitos (Requirements) de Software Projeto (Design) de Software Construção (Construction) de Software Teste (Testing) de Software Manutenção (Maintenance) de software Qualidade (Quality) de Software

13 Engenharia de Software
Em resumo ela visa: Especificação (requisitos); Desenvolvimento (projeto e desenvolvimento); Manutenção; Uso de Modelos de Processo de Software;

14 Modelos de Processo de Software
Um Modelo de Processo de Software ou simplesmente Modelo de Processo é um conjunto de atividades, métodos, ferramentas e práticas que são utilizadas para construir um produto de software; Oferece uma forma mais abrangente e fácil de representar o gerenciamento de processo de software e conseqüentemente o progresso do projeto;

15 Modelos de Processo de Software
Exemplos: Seqüencial ou cascata (do inglês waterfall): com fases distintas de especificação, projeto e desenvolvimento, testes e uso; Desenvolvimento iterativo e incremental: é iniciado com um subconjunto simples de requisitos e interativamente alcança evoluções subseqüentes das versões até o sistema todo estar implementado;

16 Modelos de Processo Espiral: evolução através de vários ciclos completos de especificação, projeto e desenvolvimento. Quando um ciclo termina outro se inicia; Modelo Ágil: regido por iterações, onde cada iteração contempla uma funcionalidade. Uma iteração é como um mini-projeto e inclui todas as tarefas necessárias (análise de requisitos, projeto, codificação, etc). Uma iteração tem curta duração e quando termina ela e avaliada e novas iterações são definidas; RAD: é um modelo de processo de iterativo e incremental que enfatiza um ciclo de desenvolvimento extremamente curto;

17 Ciclo de vida de um software
Definição: estudo de viabilidade, análise de custo x benefício, análise de requisitos software, proposta de desenvolvimento, contrato de desenvolvimento, entre outros; Desenvolvimento: design, implementação e a verificação e validação do software;

18 Ciclo de vida de um software
O design compreende: Conceitual: idéias e conceitos de software. Ex: mensagem, caixa de entrada, caixa de saída são conceito de um software de correio eletrônico; Interface com o usuário: formulários, menus, botões, mensagens, etc; Algoritmos e estrutura de dados;

19 Ciclo de vida de um software
Implementação: compreende a codificação, desenvolvimento em uma linguagem de programação; Validação: verificar se o sistema está de acordo com as especificações;

20 Ciclo e vida de um software
Fase de operação: envolve diferentes tipos de atividades: Distribuição e entrega; Instalação e configuração; Utilização: usabilidade, suporte e robustez; Manutenção: corretiva e evolutiva; Fase de retirada: evolução para novas plataformas operacionais, troca de SO’s, etc;

21 Gerações de Linguagem A evolução das linguagens de programação pode ser dividida em 5 etapas ou gerações: Primeira geração: linguagem de máquina, binária; Segunda geração: as primeiras linguagens Assembler; Terceira geração: as primeiras linguagens de alto nível. Ex: C, Pascal, Cobol;

22 Gerações de Linguagem Quarta geração: são linguagens capazes de gerar código por si só, são as chamadas RAD, com o qual pode-se desenvolver aplicações de maneira bem mais rápida. Aqui também se encontram as linguagens orientadas a objetos, tornando possível a reutilização de partes do código para outros programas. Ex: Visual Basic, Delphi, etc; Quinta geração: são as linguagens orientadas à inteligência artificial. Estas linguagens ainda estão pouco desenvolvidas. Ex: LISP;

23 RAD Vantagens: Permite o desenvolvimento rápido e/ou a prototipagem de aplicações; Enfatiza um ciclo de desenvolvimento extremamente curto (entre 60 e 90 dias); Cada função principal pode ser direcionada para a uma equipe RAD separada e então integrada a formar um todo; Criação e reutilização de componentes; Usado principalmente para aplicações de sistemas de informações; Comprar pode economizar recursos se comparado a desenvolver;

24 RAD Vantagens (continuação):
Desenvolvimento é conduzido em um nível mais alto de abstração; Visibilidade mais cedo: protótipos; Maior flexibilidade: o desenvolvedor pode re-projetar praticamente a vontade; Grande redução de codificação manual (wizards); Envolvimento maior do usuário; Provável custo reduzido: menor tempo e também devido ao reuso; Aparência padronizada: as API’s e outros componentes reutilizáveis permitem uma aparência consistente;

25 Exemplos práticos RAD Uma aplicação em Visual Studio ASP.NET C#, com muito pouca codificação; Uma aplicação em Delphi codeless, ou seja, sem código;

26 Referências:


Carregar ppt "Engenharia de Software e Rapid Application Development"

Apresentações semelhantes


Anúncios Google