Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tema da Aula Origens da Modelagem de Software Retrospectiva Histórica da Eng.Software Engenharia de Software Engenharia de Software Origens da Modelagem de Software A pré-história Até 1950: Programar computador é uma arte (5% de inspiração e 95% de transpiração). Engenharia de Software é semelhante a Engenharia de Hardware (manufatura de produto físico). Nenhum Método específico para Software. Engenharia de Software Origens da Modelagem de Software A pré-história 60´ - Software Artesanal: Descoberta de que a fenomenologia do Software é diferente do Hardware. Técnica do “Codifica e Conserta” (Code & Fix – diferente do Hardware que já era “Measure twice & Cut once”). Diferença entre os projetos de Software não permitiam aprender com os erros cometidos. Engenharia de Software Origens da Modelagem de Software A pré-história 60´ - Software Artesanal: Taxa muito alta de erros em projetos grandes e/ou complexos (OS/360, Missão Apollo etc.) Codificação “spaghetti”. Criação dos departamentos de Informática e Ciência da Computação nas Universidades. Grande lacuna entre as necessidades dos sistemas e a capacidade deles realizarem-nas. Engenharia de Software Origens da Modelagem de Software Década de 60 Final dos anos 60: Sob a influência do D.o.D. (Departament of Defence-USA) nasce a discussão “Como construir sistemas com método?” (eficiente, barato e rápido). Aparece então o conceito de “estruturação” 1º) Programação Estruturada 2º) Projeto Estruturado 3º) Análise Estruturada Engenharia de Software Origens da Modelagem de Software Década de 60 Final dos anos 60: Característica da Análise Estruturada: Foco nos dados e a lógica de sua transformação por meio do sistema (DFD) e pequena quantidade de informações relativas aos processos e a funcionalidade requerida no sistema. Chris Gane e Trish Sarson Michael Jacson Edward Yourdon Engenharia de Software Origens da Modelagem de Software Década de 70 Modelo Waterfall – Roice, 1970 Engenharia de Software Origens da Modelagem de Software Década de 70 Aumento do custo de manutenção (conserto) de SW por fase – 1976 Enfoque quantitativo na construção de Software Engenharia de Software Origens da Modelagem de Software Década de 70 Tendência de aumento do custo do Software em relação ao custo do Hardware nas grandes organizações - 1973 Enfoque quantitativo na construção de Software Engenharia de Software Origens da Modelagem de Software Década de 70 70´ – Aparecem os SGBD’s 1976 Peter Shen cria o “Modelo Entidade-Relacionamento” (MER ou DER), inicialmente para se obter uma visão abstrata dos dados. Posteriormente foi usado para modelagem conceitual de BD’s. DER CASE Geração automática de tabelas Engenharia de Software Origens da Modelagem de Software Década de 80 80’ Disputa entre as “Métodos Focadas no Processo” Versus “Métodos Focadas nos Dados” Engenharia de Software Origens da Modelagem de Software Ainda década de 80 ’80 Técnicas de Normalização de dados (3FN) Usar modelo conceitual de dados normalizados para comunicar-se com os usuários (modelo de dados – normalizados – como modelo do problema). Engenharia de Software Origens da Modelagem de Software ’90 – Técnica de Modelagem OO Projeto Estruturado e Projeto Orientado a Objetos são visões ortogonais do mesmo fato: PE separa o sistema em módulos e o POO estuda o problema baseado nos objetos existentes no domínio do problema Engenharia de Software Origens da Modelagem de Software ’90 – Técnica de Modelagem OO Em 96 é criada a UML-Linguagem Unificada de Modelagem. Em 1997 é padronizada a versão 1.0 da UML após ser apresentada ao OMG Object Management Group que a adota como padrão de linguagem de modelagem. É lançado RUP-Rational Unified Process, como processo de desenvolvimento unificado de software (OO, UML, RUP). Engenharia de Software Tendências em Eng.Software Anos 2000 Se as mudanças são rápidas, adaptabilidade vale mais que repetibilidade Considere e satisfaça todas as propostas de valor dos stakeholders Seja rápido, mas não apressado Anos 2010 Mantenha seu entusiasmo dentro de controle (alguns SI´s serão grandes e complexos) Tenha uma estratégia (gerencie expectativa e se algo der errado, aceite retroceder) Engenharia de Software Tendências em Eng.Software Pattern-Oriented Software Architecture POSA I – Um Sistema de Padrões Padrões de Arquitetura (alto nível) Padrões de Projetos (nível médio) Padrões de linguagens (idioms-baixo nível) POSA II – Padrões para interconectividade e objetos concorrentes POSA III – Padrões para gerenciamento de recursos Engenharia de Software Tendências em Eng.Software Engenharia de Software Tema da Aula A Modelagem e os Métodos em Software Engenharia de Software Modelos em Engenharia de Software Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Abstração Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. MODELO DE UM BOLO Engenharia de Software Modelos em Engenharia de Software Abstração Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Ponto de Vista Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Ponto de Vista Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Ponto de Vista Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Nível de abstração (refinamento) Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista e um certo nível de detalhamento. Engenharia de Software Modelos em Engenharia de Software Princípios da Modelagem 1- A escolha do tipo de modelo a ser criado tem uma profunda influência sobre como a solução do problema será enfocada e construída. 2- Qualquer modelo pode ser expresso em diferentes níveis de precisão. UML: User Guide - Booch, Rumbaugh, Jacobson. Engenharia de Software Modelos em Engenharia de Software Princípios da Modelagem 3- Os melhores modelos são “conectados” (aderentes) à realidade. 4- Um único modelo não é suficiente. Qualquer sistema não trivial é melhor enfocado com um pequeno conjunto de modelos semi-independentes. UML: User Guide - Booch, Rumbaugh, Jacobson. Engenharia de Software Modelos em Engenharia de Software A utilidade dos modelos Modelar é uma maneira de analisarmos conceitualmente um problema do mundo real usando modelos. Quem define um problema, já o resolveu pela metade. Julian Huxley Nós construímos modelos para entender melhor um sistema que será desenvolvido. Construímos modelos de sistemas complexos porque não conseguimos entendê-los tal como são, na sua totalidade. Engenharia de Software Modelos em Engenharia de Software A utilidade dos modelos Modelos são úteis para: Compreender o problema sob seus diversos aspectos (entendimento). Representar o ambiente no qual o sistema deverá se inserir. Desenvolver soluções para o problema (criatividade + método + técnicas + ferramentas). Engenharia de Software Modelos em Engenharia de Software Autilidade dos modelos Modelos são úteis para: Escolher dentre as possíveis soluções, a mais adequada. Ensaiar (testar) a solução escolhida (depuração). Registrar e comunicar o projeto para terceiros (documentação) Engenharia de Software Modelos em Engenharia de Software A utilidade dos modelos Atenção Modelos são úteis para a especificação dos requisitos já definidos mas não são úteis para a determinação desses requisitos. Modelar requer o conhecimento do método de modelagem a ser empregada (sua simbologia e sintaxe), dos procedimentos para sua aplicação e de ferramentas que automatizam a metodologia (se disponíveis). Engenharia de Software Modelos em Engenharia de Software Modelar x Construir Uma linguagem de modelagem é uma notação gráfica que os métodos usam para expressar projetos. Se restringe à criação e ensaio dos modelos; não é um método de desenvolvimento do produto de software. A transposição do modelo para o produto será feita através do processo de construção de software. Ex.: UML – Unified Modeling Language RUP – Rational Unified Process (ex-Unified Software Development Process). Engenharia de Software Modelos em Engenharia de Software Modelo de função (DFD, Caso de uso, etc). Modelo de dados (MER, Dicionário de Dados, etc) Modelo comportamental (Diagrama de estados, diagrama de seqüência, etc). Modelo de objetos (Diagrama de classe, de associação, de generalização, etc.) Modelo de projeto (PERT/CPM, Diagrama de distribuição, etc.) Modelo para testes (Diagrama Ciclomático, etc) Modelo de custo (Modelo de Putnam, Modelo ABC, etc) Engenharia de Software Métodos em Engenharia de Software A burocracia dos Métodos Métodos: até que ponto são úteis e a partir de onde apenas criam formalismo desnecessário (burocracia) ? Uniformizam o trabalho; Aumenta a produtividade (a médio prazo); Aumenta a qualidade; Cria sistemas independentes de desenvolvedores; Permite maior controle sobre o projeto. Engenharia de Software Métodos em Engenharia de Software A burocracia dos Métodos Métodos devem prover rigor sem sacrificar a utilidade e a produtividade. Não deve se transformar numa fábrica de documentos sem utilidade. Como ? Usar o método apropriado; Adequá-lo à empresa, ao problema e à equipe; Implantá-lo adequadamente, com treinamento e com a necessária flexibilidade; Usar, em cada caso, apenas os modelos que se fizerem necessários. Engenharia de Software Métodos em Engenharia de Software A burocracia dos Métodos Qualquer método é melhor que nenhum !!! Engenharia de Software Métodos e Modelos Lembretes 1 - Durante a entrevista Engenharia de Software Métodos e Modelos Lembretes 2 – Depois. Engenharia de Software Métodos e Modelos Lembretes 3 – Bem depois. Mas você validou os diagramas ! Assinei, mas não entendi Engenharia de Software Sim, o resultado É excelente, mas não poderia ser mais simples ? Métodos e Modelos Lembretes Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 1- Como o analista de requisitos entendeu. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 2- Como o analista resquisitos especificou. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 3- Estudo de viabilidade: como foram descritas as vantagens do novo sistema. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 4- Como o sistema foi desenvolvido Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 5- Como foi implantado Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 6- Como o usuário “vê” as funcionalidades do novo sistema Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 7- Como o projeto foi documentado. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 8- Como o cliente foi cobrado. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 9- Como o sistema ficou após as manutenções necessárias. Engenharia de Software Métodos e Modelos Lembretes – Ciclo de Vida e Morte 10- O que o cliente realmente desejava. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compartilhar