PublicouIago Lobo Alterado mais de 4 anos atrás
2 Introdução * Baseado no material do Professor Fernando Borges Montenegro
3 Introdução A introdução têm por objetivo fornecer um panorama geral a respeito das metodologias de desenvolvimento Estruturada x Orientada a Objetos Também fornece uma visão rápida da evolução das linguagens de programação
5 O Que é Um Método? Engenheiros Civis fazem plantas
Engenheiros Eletrônicos fazem esquemas Engenheiros Mecânicos fazem desenhos Engenheiros de Software fazem modelos O processo é sempre o mesmo: Produzir uma representação da realidade para se fazer planejamento, testar conceitos, calcular e estimar variáveis, minimizar erros, etc...
6 O Que é Um Método? Um método é uma maneira definida de se fazer algo.
Uma metodologia de desenvolvimento é um conjunto de notações (linguagem da modelagem) e processos (passos para elaborar um projeto) bem definidos para se desenvolver software ou sistemas. Um método descreve um sistema de forma a minimizar ao máximo a ambigüidade presente na comunicação durante o processo de desenvolvimento.
7 Por quê utilizar um método
O bom uso de métodos lhe dará uma forma previsível e repetível de se atingir os objetivos de seu projeto; permitirá também mensurar o seu processo, quantitativamente e qualitativamente. Sem mensurar o trabalho, você não pode prever e gerenciar seu trabalho.
8 Histórico de Metodologias de Software
Início Anos 70 - Programação Estruturada Niklaus Wirth Fim Anos 70 - Projeto Estruturado Constantine, Yourdon Anos 80 - Análise Estruturada Yourdon/DeMarco, James Martim, Chris Gane Anos 90 Orientação a Objetos Baseado no paradigma estruturado Qualidade de Software UML Componentização
9 Estruturada x OO Com a orientação a objetos procura-se eliminar as diferenças entre as etapas de análise, projeto e implementação, reabilitando a difamada tarefa de implementação O segredo é fazer com que os conceitos de programação, e as notações para programação, sejam suficientemente de alto-nível para que possam servir apropriadamente como ferramentas de modelagem. Orientação a Objetos 9
10 Diferenças de Ciclo de Vida
Paradigma Tradicional: Análise (Pouca), Projeto (Pouco), Codificação (Muita), Teste (Muito, geralmente confundido com codificação), Manutenção (Muita); Paradigma OO: Análise (Muita), Projeto (Muito), Re-Análise, Re-Projeto, Codificação (Simplificada), Re-Análise, Re-Projeto, Re-Codificação, Teste (Reduzido), Re-Análise, etc… No Projeto OO você usa conceitos de Engenharia de Software para produzir o produto, e não somente como documentação. Métodos Estruturados utilizam-se de ciclos de vidas em cascata, dificultando a "volta à prancheta" caso algum requisito mude; Ciclos de vida em cascata normalmente usam notações diversas para Análise e Projeto, obrigando o desenvolvedor a fazer mudanças em diversas partes do modelo; Ciclo de vida em cascata é bom no papel, mas difícil de se usar no mundo real. Métodos OO fazem bom uso do ciclo de vida iterativo. Requisitos, quando mudam, podem ser facilmente estudados, considerados e inclusos no projeto; Na maioria dos casos, uma única notação é utilizada tanto para a Análise como para o Projeto; Ciclo de vida iterativo OO se parece muito com a forma com que as coisas acontecem e mudam no decorrer de um projeto. Orientação a Objetos 10
11 Metodologia 'estruturada'
Criada nos anos 60/70 Guerra Fria Grandes Projetos Ambientes de Grande Porte Pouca maturidade em Programação Funciona! Quando é bem utilizada… Quando os projetos tem início, meio e fim… Quando os projetos são longos… Quando você tem legado de mainframe.
12 Metodologia 'estruturada'
Tradicionalmente, a literatura tratava análise, projeto e implementação como atividades diferentes e, até certo ponto, desconexas pois tinham: diferentes métodos; diferentes notações e diferentes objetivos. Na necessidade de especificar o que está prestes a ser implementado tratavam a análise e o projeto como as únicas coisas que realmente interessam. A implementação seria apenas algo inevitável. Orientação a Objetos 12
13 Paradigma Estruturado x Orientação a Objetos
Na Estruturada Os sistemas são divididos em subprogramas; Fixa a atenção muito mais nos procedimentos que nos dados. Na Orientação a Objetos Dados e Procedimentos possuem a mesma importância; Orientação a Objetos 13
14 Paradigma Estruturado x OO
Sistema de informação de bibliotecas Catálogo Bibliotecário Livro Biblioteca A/P orientados a objetos Decompor por objetos ou conceitos Sistema Registrar empréstimos Adicionar recursos Relatar multas A/P estruturados Decompor por funções ou processo Orientação a Objetos 14
15 Orientação a Objetos Possuem vantagens sobre o paradigma estruturado:
Reutilização de Software (Reusibilidade) reaproveitamento de código Manutenção de Software facilidade de manutenção de sistemas Tamanho de Código Gerado menor código Altera a forma pela qual dados e procedimentos intercomunicam-se. Orientação a Objetos 15
16 Orientação a objetos Crise do software e necessidade de mudar
Surgiu a idéia da orientação a objetos que representa melhor o mundo real, uma vez que a percepção e o raciocínio do ser humano estão relacionados diretamente com o conceito de objetos. Objetivo principal da utilização do paradigma da Orientação a Objetos, na construção de software : Rápido não perder muito tempo no desenvolvimento Barato linhas de montagem e reutilização de código Flexível fácil modificar ou extender - Construir rápido Na medida em que os requisitros e plataformas são fluidos e evolutivos, dispender tempo excessivo é um erro. Com a necessidade de informatização cada vez maior, a rapidez no desenvolvimento de software é imprencidível. Orientação a Objetos 16
17 Programação Estruturada
Evolução Simula Smaltalk Borland Algol Pascal objects Delphi Pascal Objective C |	|	|	|	|	|	|	|	| BCPL CPL B C C++ ANSIC++ Java ISO C++ C# Sun Microsoft AT&T Bell AT&T Bell Orientação a objetos Análise orientada a objetos UML Programação Estruturada Projeto Estruturado Análise Estruturada |	|	|	|	|	|	|	|	|