Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Engenharia de Software (SW) Desire Nguessan DESIRE NGUESSAN desire.nguessan@fatec.sp.gov.br Sommerville, Engenharia de SW 9ª.Ed. � Graduado em Ciência da Computação � Mestre em Ciências da Computação � Doutor em engenharia da computação pela Escola Politécnica da Universidade de São Paulo - USP/Brasil � Professor da universidade de Mogi das Cruzes - UMC � Professor associado do centro Estadual Paula Souza do DESIRE NGUESSAN desire.nguessan@fatec.sp.gov.br � Professor associado do centro Estadual Paula Souza do governo de São Paulo - FATEC. � Foi Membro da Congregação da FATECSCS de 2010 até 2012. � Sócio Diretor da NIDEALE Consulte e Comunicação (TI). OBJETIVOS � Fazer uma introdução a Engenharia de SW e fornecer uma base para compreensão do restante da disciplina: o Compreender o que é Engenharia de Software e por que ela é importante? Entender que o desenvolvimento de OBJETIVOS Desire Nguessan é importante? Entender que o desenvolvimento de diferentes tipos de sistemas de software pode requerer diferentes técnicas de engenharia de SW. o Mostrar as distinções e relacionamentos entre sistema e software. o Compreender questões profissionais e éticas relevantes para os engenheiros de software. Sommerville, Engenharia de SW 9ª.Ed. OBJETIVOS � Apresentar a ideia de um processo de SW – um conjunto coerente de atividades para a produção de SW. o Compreender os conceitos e modelos de processos de SW. Apresentar três modelos genéricos de processo de OBJETIVOS Desire Nguessan o Apresentar três modelos genéricos de processo de engenharia de requisitos, desenvolvimento, teste e evolução do SW. o Conhecer as atividades fundamentais do processo de engenharia de requisitos de desenvolvimento de SW, testes e evolução. Sommerville, Engenharia de SW 9ª.Ed. OBJETIVOS (continuação) o Entender por que os processos devem ser organizados de maneira a lidar com as mudança nos requisitos de projeto de SW? o Compreender como o RUP integra boas práticas de engenharia de SW para criar processos de SW adaptáveis. OBJETIVOS Desire Nguessan engenharia de SW para criar processos de SW adaptáveis. Sommerville, Engenharia de SW 9ª.Ed. CONTEÚDO ❒ INTRODUÇÂO ❍ Por que a Engenharia de SW? ❍ Desafios da engenharia de SW O que é um sistema? ❒ PROCESSOS DE SW ❍ Modelos de processos ❍ Atividades de processos ❍ Lidando com mudanças ❍ RUP: Rational Unified Process Desire Nguessan ❍ O que é um sistema? ❍ O que é um SW? ❍ Desenvolvimento profissional de um SW ❍ Ética na engenharia de SW RUP: Rational Unified Process Sommerville, Engenharia de SW 9ª.Ed. POR QUE? � Por que tanta demora para entregar o sistema? � Por que os prazos se atrasam? � Por que os custos são altos? � Por que não achar todos os erros antes de entregar? Por que é difícil medir o progresso do INTRODUÇÃO Desire Nguessan � Por que é difícil medir o progresso do desenvolvimento de um software? Sommerville, Engenharia de SW 9ª.Ed. DESAFIOS � PRODUZIR soluções: � mais rápidas, � melhores e mais baratas que a concorrência � Desenvolver software é um problema de métodos e técnica, em suma de atividade humana. INTRODUÇÃO Desire Nguessan técnica, em suma de atividade humana. � Gerenciar projetos de TI é gerenciar riscos assumidos e vencidos por seres humanos inteligentes. Sommerville, Engenharia de SW 9ª.Ed. O QUE É UM SISTEMA? ❒ Um sistema é um conjunto de elementos interdependentes que realizam operações visando atingir metas especificadas. ❒ Um sistema computacional é aquele destinado ao suporte ou automação de tarefas através de INTRODUÇÃO Desire Nguessan suporte ou automação de tarefas através de processamento de informações. Sommerville, Engenharia de SW 9ª.Ed. O QUE É UM SISTEMA? � Componentes de um sistema computacional ❍ Hardware ❍ Software ❍ Usuários ❍ Procedimentos INTRODUÇÃO Desire Nguessan ❍ Procedimentos ❍ Atividades realizadas pelos usuários e operadores, bem como pelos programas. ❍ Documentação ❍ Manuais e formulários que descrevem as operações do sistema. Sommerville, Engenharia de SW 9ª.Ed. O QUE É UM SISTEMA? ❒ Exemplos de sistemas computacionais ❍ Automação Bancária ❍ Frequência e Folha de Pagamento ❍ Controle de Tráfego Urbano Controle Acadêmico INTRODUÇÃO Desire Nguessan ❍ Controle Acadêmico ❍ Editoração de Jornais e Revistas ❍ Controle de Elevadores ❍ Automação de Biblioteca ❍ Sistema Acadêmico Sommerville, Engenharia de SW 9ª.Ed. O QUE É UM SOFTWARE ❒ Programas de computadores e documentação associada. ❒ É um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real. INTRODUÇÃO Desire Nguessan máquina real. ❒ Tipos de Software ❍ Genéricos (COTS – Commercial Off-The Shelf) - tipo stand- alone, pacotes de software, como por exemplo, processadores de texto, ferramentas de gerenciamento. ❍ Sob encomenda (personalizado customizado) – desenvolvido para um cliente em particular. Sommerville, Engenharia de SW 9ª.Ed. COMPONENTES DE UM SOFTWARE [ ref] Estruturas de Dados INTRODUÇÃO Desire Nguessan Plano Especificação de Requisitos Projeto Listagem Plano de Testes Programa Funcionando Sommerville, Engenharia de SW 9ª.Ed. CARACTERISTICAS UM SOFTWARE ❒ Complexidade ❒ Software apresenta maior grau de dificuldade do que qualquer outro produto construídos por seres humanos. ❒ Conformidade O software deve ser desenvolvido conforme o ambiente. INTRODUÇÃO Desire Nguessan ❒ O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software. ❒ Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial). ❒ Sucesso é medido pela qualidade e não quantidade. Sommerville, Engenharia de SW 9ª.Ed. CARACTERISTICAS UM SOFTWARE ❒ Mutabilidade ❒ Existe sempre uma pressão para se fazer mudanças em um software. ❒ Não se “desgasta”, mas se deteriora devido as mudanças. ❒ A maioria é feita sob medida em vez de ser montada a INTRODUÇÃO Desire Nguessan ❒ A maioria é feita sob medida em vez de ser montada a partir de catálogos de componentes existentes (reusabilidade de software). Sommerville, Engenharia de SW 9ª. Ed. ATRIBUTOS DE UM BOM SOFTWARE ❒ Prover a funcionalidade e desempenho requeridos pelo usuário ❒ Manutenibilidade: o SW deve ser escrito de forma que possa evoluir para atender as necessidades dos cliente: ser fácil de manter INTRODUÇÃO Desire Nguessan cliente: ser fácil de manter ❒ Confiança e proteção: não deve causar prejuízos físicos e econômicos em caso de falhas do sistema. Usuário malicioso não deve ser capaz de acessar ou prejudicar o sistema Sommerville, Engenharia de SW 9ª. Ed. ATRIBUTOS DE UM BOM SOFTWARE ❒ Eficiência: o SW não deve desperdiçar os recursos do sistema: melhor utilização da memória, processador e tempo de resposta. ❒ Aceitabilidade: o SW deve ser aceitável para o tipo de usuário para o qual foi projetado, deve ser INTRODUÇÃO Desire Nguessan de usuário para o qual foi projetado, deve ser compreensível, usável e compatível com outro sistemas usado por ele Sommerville, Engenharia de SW 9ª.Ed. FALHA DO HARDWARE/ SOFTWARE ❒ Quando um componente de hardware se desgasta é substituído por uma “peça de reposição” ❒ Não existe “peça de reposição” para software � Toda falha indica um erro no projeto ou no processo de tradução para o código executável INTRODUÇÃO Desire Nguessan tradução para o código executável � Manutenção do software é mais complexa do quea do hardware Sommerville, Engenharia de SW 9ª.Ed. CRISE DE SOFTWARE ❒ As estimativas de prazo e de custo são imprecisas: – Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software – Estimativas são feitas a olho, com resultados ruins INTRODUÇÃO Desire Nguessan – Estimativas são feitas a olho, com resultados ruins – Os prazos arrastam-se por meses Sommerville, Engenharia de SW 9ª.Ed. CRISE DE SOFTWARE ❒ As estimativas de prazo e de custo são imprecisas (cont.) – Causa insatisfação para o cliente falta de confiança. – Sem nenhuma indicação sólida de produtividade, INTRODUÇÃO Desire Nguessan – Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões. Sommerville, Engenharia de SW 9ª.Ed. CRISE DE SOFTWARE ❒ A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços – Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago INTRODUÇÃO Desire Nguessan normalmente são efetuados apenas com um vago indício das exigências do cliente ❒ O software existente é muito difícil de manter: – A tarefa de manutenção devora o orçamento destinado ao software – A facilidade de manutenção não foi enfatizada como um critério importante. Sommerville, Engenharia de SW 9ª.Ed. CAUSAS DOS PROBLEMAS ASSOCIADOS A CRISE DE SOFTWARE ❒ Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software. o Gerentes sem nenhum background em software. INTRODUÇÃO Desire Nguessan Gerentes sem nenhum background em software. o Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software. o Resistência a mudanças. Sommerville, Engenharia de SW 9ª.Ed. CRISE DE SOFTWARE A Solução para a Crise do Sofware é: A Engenharia de Software aliada a Técnicas, Ferramentas e profissionais competentes INTRODUÇÃO Desire Nguessan Técnicas, Ferramentas e profissionais competentes Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Um sistema de SW desenvolvido profissionalmente é mais do que um simples programa, ele inclui: ❍ Documento do sistema que descreve a sua estrutura INTRODUÇÃO Desire Nguessan ❍ Documento do usuário que explica como usar o sistema ❒ Os engenheiros de SW se preocupam em desenvolver produto de SW que pode ser vendido a um cliente Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Engenharia de SW ❍ É uma disciplina de engenharia cujo foco está em todos os aspectos da produção de SW, desde os estágios iniciais da especificação do sistema até a sua manutenção INTRODUÇÃO Desire Nguessan da especificação do sistema até a sua manutenção ❍ A engenharia de SW é importante por dois motivos: • Cada vez mais indivíduos e sociedades dependem dos sistemas de SW avançados. Temos de ser capazes de produzir sistemas confiáveis, econômicos e rapidamente • É mais barato a longo prazo usar métodos e técnicas de engenharia de SW em vez de escrever os programas como se fossem algum projeto pessoal Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Engenharia de SW ❍ Principais atividades da Engenharia de SW • Especificação do software: em que engenheiro e cliente definem o SW a ser produzido e as restrições de sua operação INTRODUÇÃO Desire Nguessan SW a ser produzido e as restrições de sua operação • Desenvolvimento do software, em que o software é projetado e programado • Validação de SW, em que o SW é verificado para garantir que é, o que o cliente quer • Evolução de SW, em que o SW é modificado para refletir a mudança de requisito do cliente e do mercado Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Engenharia de SW ❍ Principais desafios da engenharia de SW: • Lidar com o aumento de diversidade, demandas pela diminuição do tempo para entrega e desenvolvimento de SW confiável INTRODUÇÃO Desire Nguessan do tempo para entrega e desenvolvimento de SW confiável ❍ Custo da Engenharia de SW: • Proximamente 60 % dos custos são de desenvolvimento, 40 % são custo de teste. Para SW customizados , os custos de evolução frequentemente superam os custo de desenvolvimento Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Engenharia de SW ❍ Engenharia de SW x Ciência da computação �Ciência da computação foca a teoria e os fundamentos e engenharia de SW preocupa-se com o lado pratico de INTRODUÇÃO Desire Nguessan engenharia de SW preocupa-se com o lado pratico de desenvolvimento e entrega de SW´s úteis Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Engenharia de SW ❍ Quais são as melhores técnicas e métodos da Engenharia de SW �Técnicos diferentes são adequados para tipos de sistemas INTRODUÇÃO Desire Nguessan �Técnicos diferentes são adequados para tipos de sistemas diferentes, por exemplo, jogos devem ser desenvolvidos usando protótipos, enquanto sistema de controle críticos de segurança requere uma especificação analisável e completo. Portanto não se pode dizer que ummétodo é melhor que outro Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Diversidade na Engenharia de SW ❍ Não existem técnicas e métodos universais na engenharia de SW adequados a todos os sistemas e todas as empresas Talvez o fator mais significativo é determinar quais INTRODUÇÃO Desire Nguessan ❍ Talvez o fator mais significativo é determinar quais técnicas e métodos de engenharia são importantes a um determinado tipo de aplicação. ❍ Existemmuitos tipos diferentes de aplicações Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❒ Diversidade na Engenharia de SW ❍ Existemmuitos tipos diferentes de aplicações �Aplicações stand–alone: aplicações executadas em um PC local , ela com tem toda a funcionalidade necessária e não precisam estar conectadas a uma rede INTRODUÇÃO Desire Nguessan com tem toda a funcionalidade necessária e não precisam estar conectadas a uma rede �Aplicações interativas baseadas em transações: executam em computadores remotos , são acessadas pelo usuário a partir de seu computador ou um terminal �Sistema embarcados: sistema de controle embutido �Sistema de processamento em lote: sistema corporativo projetado para processar lotes, exemplo sist. De cobrança telefônica, sistema de pagamento de salario Sommerville, Engenharia de SW 9ª.Ed. DESENVOLVIMENTO PROFISSIONAL DE SOFTWARE ❍ Existem muitos tipos diferentes de aplicações (continuação) �Sistemas de entretenimento, exemplo jogos digitais �Sistema para modelagem e simulação INTRODUÇÃO Desire Nguessan �Sistema para modelagem e simulação �Sistema de coleta de dados Sommerville, Engenharia de SW 9ª.Ed. ÉTICA NA ENGENHARIA DE SW ❒ A engenharia de SW é desenvolvida dentro de um framework social e legal ❒ Deve-se manter normas de honestidade e integridade INTRODUÇÃO Desire Nguessan integridade ❒ O engenheiro de SW não deve usar suas habilidades e seus conhecimentos para ser desonesto de maneira que possa denegrir a profissão de engenharia de SW Sommerville, Engenharia de SW 9ª.Ed. ÉTICA NA ENGENHARIA DE SW ❒ Algumas leis a serem respeitadas: ❍ Confidencialidade ❍ Competência ❍ Direitos de propriedade intelectual INTRODUÇÃO Desire Nguessan Direitos de propriedade intelectual ❍ Mau uso do computador Sommerville, Engenharia de SW 9ª.Ed. PONTOS IMPORTANTES❒ Engenheiros de software têm responsabilidades para com a profissão de engenharia e a sociedade. Eles não deveriam simplesmente se preocupar com questões técnicas. INTRODUÇÃO Desire Nguessan ❒ Sociedades profissionais publicam códigos de conduta que estabelecem os padrões de comportamento esperado de seus membros. Sommerville, Engenharia de SW 9ª.Ed. CONTEÚDO ❒ OBJETIVOS ❒ INTRODUÇÂO ❍ Por que a Engenharia de SW? ❍ Desafios da engenharia de SW ❒ PROCESSOS DE SW ❍ Modelos de processos ❍ Atividades de processos ❍ Lidando com mudanças ❍ RUP: Rational Unified Process Desire Nguessan de SW ❍ O que é um sistema? ❍ O que é um SW? ❍ Desenvolvimento profissional de um SW ❍ Ética na engenharia de SW RUP: Rational Unified Process Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Um processo de SW é um conjunto de atividades fundamentais exigidas para desenvolver um sistema de software ❒ Existem vários processos de desenvolvimento de PROCESSOS DE SW Desire Nguessan ❒ Existem vários processos de desenvolvimento de software diferentes mas todos incluir as atividades: ❍ Especificação: definição do quê o sistema deve fazer ❍ Projeto e implementação: definição da organização do sistema e implementação do ❍ Validação: checagem de que o sistema faz o que o cliente deseja; ❍ Evolução.: evolução em resposta as mudanças nas necessidades do cliente. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW � Quando descrevemos e discutimos processos, geralmente falamos sobre as atividades desses processos, tais como especificação de modelo de dados, desenvolvimento de interface de usuário, etc. PROCESSOS DE SW Desire Nguessan dados, desenvolvimento de interface de usuário, etc. e organização dessas atividades. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW � Descrições de processos também podem incluir: ❍ Produtos, que são os resultados de uma atividade do processo; ❍ Papéis, que refletem as responsabilidades das pessoas PROCESSOS DE SW Desire Nguessan ❍ Papéis, que refletem as responsabilidades das pessoas envolvidas no processo; ❍ Pré e pós-condições, que são declarações que são verdadeiras antes e depois de uma atividade do processo ser executada, ou um produto produzido. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW � Processos dirigidos a planos e ágeis ❍ Processos dirigidos a planos são processos em que todas as atividades do processo são planejadas com antecedência e o progresso é medido em relação a esse PROCESSOS DE SW Desire Nguessan antecedência e o progresso é medido em relação a esse plano. ❍ Nos processos ágeis o planejamento é incremental e é mais fácil modificar o processo para refletir alterações nos requisitos do cliente. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW � Processos dirigidos a planos e ágeis ❍ Na realidade, os processos mais práticos incluem elementos dos processos ágeis e dirigidos a planos. ❍ Não existe processo de software certo ou errado. PROCESSOS DE SW Desire Nguessan ❍ Não existe processo de software certo ou errado. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Um modelo de processo de software é uma representação abstrata de um processo. Apresenta uma descrição de um processo de alguma perspectiva particular PROCESSOS DE SW Desire Nguessan perspectiva particular Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Uma Visão Genérica de processos de SW: 3 Fases ❍ Definição - “o que” • Engenharia do Sistema • Planejamento do Projeto • Análise de Requisitos PROCESSOS DE SW Desire Nguessan • Análise de Requisitos ❍ Desenvolvimento - “como” • Projeto • Geração do Código • Teste ❍ Manutenção Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Um processo de software é um método para desenvolver ou produzir software. ❒ Define, quem faz o que, quando e como? PROCESSOS DE SW Desire Nguessan Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Modelagem é uma técnica de engenharia aprovada e bem aceita, exemplos: ❍ modelos de arquitetura de casas e de grandes prédios ❍ modelos matemáticos a fim de analisar os efeitos de PROCESSOS DE SW Desire Nguessan ❍ modelos matemáticos a fim de analisar os efeitos de ventos e tremores de terra --> causas Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Modelo x Processo ❍ Um modelo é algo teórico, um conjunto de possíveis ações. ❍ Processo determina ações práticas a serem realizadas pela equipe como prazos definidos e métricas para se PROCESSOS DE SW Desire Nguessan pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas ❍ Modelo + Planejamento = Processo Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Os modelos de processo abordado são ❍ Modelo em cascata ❍ Desenvolvimento incremental. Engenharia de SW orientada a reuso. PROCESSOS DE SW Desire Nguessan ❍ Engenharia de SW orientada a reuso. Sommerville, Engenharia de SW 9ª.Ed. MODELOS DE PROCESSO DE SW ❒ Os modelos de processo abordado são ❍ Modelo Cascata – Modelo dirigido a planos. Fases de especificação e desenvolvimento separadas e distintas. ❍ Desenvolvimento Incremental – Especificação, desenvolvimento e validação são intercaladas. Pode ser dirigido a planos ou ágil. PROCESSOS DE SW Desire Nguessan ❍ Engenharia de software orientada a reúso – O sistema é montado a partir de componentes já existentes. Pode ser dirigido a planos ou ágil. ❒ Na realidade a maioria dos grandes sistemas são desenvolvidos usando um processo que incorpora elementos de todos esses modelos. Sommerville, Engenharia de SW 9ª.Ed. Modelo em Cascata Requisitos Definição de Requisitos Projeto de sistema e SW PROCESSOS DE SW Desire Nguessan Integração e teste de sistema Implementação e teste unitário Manutenção O andamento do processo flui de cima como uma cascata Sommerville, Engenharia de SW 9ª.Ed. ❒ Modelo em cascata ❍ Analise e definição de requisitos: Os serviços, restrições e metas do sistema são estabelecido por meio de consulta aos usuários, em PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan estabelecido por meio de consulta aos usuários, em seguida são definido em detalhes a especificação do sistema ❒ Modelo em cascata ❍ Projeto de sistema e SW: aloca os requisitos tanto para sistema de HW como sistema de SW, por meio de definição de uma PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan sistema de SW, por meio de definição de uma arquitetura geral do sistema, envolve identificação e definição das abstrações funcionais do sistema de SW e seus relacionamentos MODELOS DE PROCESSO DE SW ❒ Modelo em cascata ❍ Implementação e teste unitário: durante esta fase o projeto de SW é implementado como um conjunto de programas ou unidades de programas. O teste envolve a verificação de que cada PROCESSOS DE SW Desire Nguessan programas. O teste envolve a verificação de que cada unidade atenda a sua especificação MODELOS DE PROCESSO DE SW ❒ Modelo em cascata ❍ Integração e teste de sistema: as unidades são integradas e testadas como um sistema completo PROCESSOS DE SW Desire Nguessan ❑ Operação de manutenção: envolve correção de erros que não foram descobertas em estágios iniciais do ciclo de vida, melhoria da implementação, ampliação de serviços com descoberta de novos requisitos MODELOS DE PROCESSO DE SW ❒ Modelo emcascata (Problemas) ❍ O principal inconveniente do modelo cascata é a dificuldade de acomodação de mudanças depois que o processo já foi iniciado. Em princípio, uma fase precisa ser completada antes de se mover para a próxima fase. PROCESSOS DE SW Desire Nguessan ser completada antes de se mover para a próxima fase. MODELOS DE PROCESSO DE SW ❒ Modelo em cascata (Problemas) ❍ Divisão inflexível do projeto em estágios distintos torna difícil responder às mudanças nos requisitos do cliente. o Por isso esse modelo só é apropriado quando os requisitos são PROCESSOS DE SW Desire Nguessan o Por isso esse modelo só é apropriado quando os requisitos são bem entendidos e as mudanças durante o processo de projeto serão limitadas. o Poucos sistemas de negócio possuem requisitos estáveis. MODELOS DE PROCESSO DE SW ❒ Modelo em cascata (Problemas) ❍ modelo cascata é mais usado em projetos de engenharia de grandes sistemas onde o sistema é desenvolvido em vários locais. o Nessas circunstâncias, a natureza do modelo cascata dirigida a PROCESSOS DE SW Desire Nguessan o Nessas circunstâncias, a natureza do modelo cascata dirigida a planos ajuda a coordenar o trabalho. Desenvolvimento incremental Especificação Atividades simultâneas PROCESSOS DE SW Desire Nguessan ento Desenvolvim ento Especificação Validação Versão inicial Versão final Versões intermediárias Descrição do escopo ❒ Desenvolvimento Incremental ❍ Benefícios: o O custo para acomodar mudanças nos requisitos do cliente é reduzido. �A quantidade de análise e documentação que precisa ser feita PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan �A quantidade de análise e documentação que precisa ser feita é bem menor do que o necessária no modelo cascata. ❒ Desenvolvimento Incremental ❍ Benefícios: o É mais fácil obter feedback do cliente sobre o trabalho de desenvolvimento que tem sido feito. �Os clientes podem comentar demonstrações do software e ver PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan �Os clientes podem comentar demonstrações do software e ver quanto foi implementado. o Possibilidade de mais rapidez na entrega e implantação de software útil para o cliente. �Os clientes podem usar e obter ganhos do software mais cedo do que é possível no processo cascata. ❒ Desenvolvimento Incremental (Problemas) ❍ O processo não é visível. o Gerentes precisam de entregas regulares para medir o progresso. Se os sistemas são desenvolvidos de forma rápida, não é viável do ponto de vista do custo produzir documentação PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan não é viável do ponto de vista do custo produzir documentação para refletir todas as versões do sistema. ❒ Desenvolvimento Incremental (Problemas) ❍ A estrutura do sistema tende a degradar conforme novos incrementos são adicionados. o A menos que tempo e dinheiro sejam gastos na reconstrução para melhorar o software, as mudanças regulares tendem a PROCESSOS DE SW MODELOS DE PROCESSO DE SW Desire Nguessan para melhorar o software, as mudanças regulares tendem a corromper a estrutura do sistema. A incorporação posterior de mudanças no software se torna progressivamente mais difícil e cara. MODELOS DE PROCESSO DE SW ❒ Engenharia de SW orientada a reuso ❍ Baseada no reuso sistemático em que os sistemas são integrados com componentes existentes ou sistemas COTS (Commercial-off-the-shelf). Estágios do processos PROCESSOS DE SW Desire Nguessan ❍ Estágios do processos o Análise de componentes; o Modificação de requisitos; o Projeto de sistema com reuso; o Desenvolvimento e integração. ❍ Atualmente, o reuso é a abordagem padrão para a construção de vários tipos de sistemas de negócio. Engenharia de SW orientada à reuso PROCESSOS DE SW Desire Nguessan MODELOS DE PROCESSO DE SW ❒ Engenharia de SW orientada a reuso ❍ Tipos de componente de SW o Web services que são desenvolvidos de acordo com padrões de serviço e ficam disponíveis para chamada remota. o Coleções de objetos que são desenvolvidas como um pacote PROCESSOS DE SW Desire Nguessan o Coleções de objetos que são desenvolvidas como um pacote para ser integrado com um framework como .NET ou J2EE. o Sistemas de software stand-alone (COTS) que são configurados para uso em ambientes específicos. ATIVIDADES DE PROCESSOS ❒ Processos de software reais são seqüência intercaladas de atividades técnicas, colaborativas e gerenciais com o objetivo geral de especificar, projetar, implementar e testar um sistema de software. PROCESSOS DE SW Desire Nguessan software. ❒ As quatro atividades de processo básicas, especificação, desenvolvimento, validação e evolução são organizadas de forma diferente em processos de desenvolvimento distintos. ATIVIDADES DE PROCESSOS ❒ No modelo cascata, elas são organizadas em seqüência, enquanto no desenvolvimento incremental são intercaladas PROCESSOS DE SW Desire Nguessan ATIVIDADES DE PROCESSOS ❒ O processo de estabelecer quais serviços são necessários e as restrições na operação e desenvolvimento do sistema PROCESSOS DE SW Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Processo de engenharia de requisitos ❍ Estudo de viabilidade ❍ É técnica e financeiramente viável construir o sistema? ❍ Elicitação e análise de requisitos PROCESSOS DE SW Desire Nguessan Elicitação e análise de requisitos ❍ O que os stakeholers do sistema precisam ou esperam do sistema? ❍ Especificação de requisitos ❍ Definição dos requisitos em detalhes. ❍ Validação de requisitos ❍ Verificação da completude dos requisitos. Processo de engenharia de requisitos PROCESSOS DE SW Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Projeto e Implementação de SW ❍ O processo de converter a especificação de sistema em um sistema executável. ❍ Projeto de software Design de uma estrutura de software que materialize a PROCESSOS DE SW Desire Nguessan �Design de uma estrutura de software que materialize a especificação; ❍ Implementação o Transformar essa estrutura em um programa executável; ❍ As atividades de projeto e implementação são intimamente ligadas e podem ser intercaladas. ATIVIDADES DE PROCESSOS ❒ Projeto e Implementação de SW ❍ O processo de converter a especificação de sistema em um sistema executável. ❍ Projeto de software Design de uma estrutura de software que materialize a PROCESSOS DE SW Desire Nguessan o Design de uma estrutura de software que materialize a especificação; ❍ Implementação o Transformar essa estrutura em um programa executável; ❍ As atividades de projeto e implementação são intimamente ligadas e podem ser intercaladas. Modelo geral do processo de design PROCESSOS DE SW Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Atividades do projeto ❍ O processo de converter a especificação de sistema em um sistema executável. ❍ Projeto de software Design de uma estrutura de software que materialize a PROCESSOS DE SW Desire Nguessan o Design de uma estrutura de software que materialize a especificação; ❍ Implementação o Transformar essa estrutura em um programa executável; ❍ As atividades de projeto e implementação são intimamente ligadas e podem ser intercaladas. ATIVIDADES DE PROCESSOS ❒ Validade de SW ❍ Verificação e validação (V & V) serve para mostrar que o sistema está em conformidade com sua especificação e está de acordo com os requisitos do cliente. Envolve processos de inspeção e revisão, e testes do PROCESSOS DE SW Desire Nguessan ❍ Envolve processos de inspeção e revisão,e testes do sistema. ❍ Testes do sistema envolvem executar o sistema com casos de teste. São provenientes de especificações dos dados reais que deverão ser processados pelo sistema. ❍ O teste é a atividade de V & V mais usada. PROCESSOS DE SW Estágio de teste Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Estágios de teste ❍ Teste de desenvolvimento ou de componente �Componentes individuais são testados independentemente; �Componentes podem ser funções ou objetos , ou agrupamentos coerentes dessas entidades. PROCESSOS DE SW Desire Nguessan agrupamentos coerentes dessas entidades. ❍ Teste de sistema �Teste do sistema como um todo. Teste de propriedades emergentes são particularmente importantes. ❍ Teste de aceitação �Teste com dados do cliente para checar se o sistema está de acordo com as necessidades do cliente. PROCESSOS DE SW Fases de teste em um processo de software dirigido a planos Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Evolução do SW ❍ Os softwares são inerentemente flexíveis e podem mudar. ❍ Conforme os requisitos mudam, conforme mudam as circustâncias do negócio, o software que dá suporte ao PROCESSOS DE SW Desire Nguessan circustâncias do negócio, o software que dá suporte ao negócio também deve evoluir e mudar. ❍ Apesar de ter acontecido uma demarcação entre desenvolvimento e evolução (manutenção) essa precisa se tornar cada vez mais irrelevante já que tem diminuído a quantidade de sistemas completamente novos. PROCESSOS DE SW Evolução do sistema Desire Nguessan ATIVIDADES DE PROCESSOS ❒ Pontos Importantes ❍ Os processos de software são as atividades envolvidas na produção de um sistema de software. Os modelos de processo de software são representações abstratas desses processos. PROCESSOS DE SW Desire Nguessan desses processos. ❍ Modelos de processo gerais descrevem a organização dos processos de software. Exemplos desses processos gerais incluem o modelo 'cascata', desenvolvimento incremental e desenvolvimento orientado a reúso. ❍ A engenharia de requisitos é o processo de desenvolver uma especificação de software. ATIVIDADES DE PROCESSOS ❒ Pontos Importantes ❍ Processos de projeto e implementação se preocupam em transformar uma especificação de requisitos em um sistema de software executável. A validação de software é o processo de checar se o PROCESSOS DE SW Desire Nguessan ❍ A validação de software é o processo de checar se o sistema está em conformidade com sua especificação e se esse está de acordo com as necessidades reais do usuário do sistema. ❍ A evolução de software ocorre quando você altera sistemas de software existentes para adequá-los a novas necessidades. O software precisa evoluir para continuar útil. LIDANDO COM MUDANÇAS ❒ As mudanças são inevitáveis em todos grandes projetos de software. ❍ Mudanças no negócio levam a novos e diferentes requisitos de sistema. PROCESSOS DE SW Desire Nguessan ❍ Novas tecnologias abrem novas possibilidades para melhorar implementações. ❍ Mudanças de plataforma requerem mudanças na aplicação. LIDANDO COM MUDANÇAS ❒ As mudanças geram retrabalho, o que faz com que o custo das mudanças inclua o retrabalho (p.ex. reanálise dos requisitos) assim como o custo de implementação de novas funções. PROCESSOS DE SW Desire Nguessan LIDANDO COM MUDANÇAS ❒ Reduzindo o custo de trabalho ❍ Prevenção de mudanças, quando o processo de software inclui atividades que podem antecipar possíveis mudanças antes que o retrabalho se torne necessário PROCESSOS DE SW Desire Nguessan necessário �Por exemplo, um protótipo de sistema pode ser desenvolvido para mostrar algumas características fundamentais do sistema para os clientes. LIDANDO COM MUDANÇAS ❒ Reduzindo o custo de trabalho ❍ Tolerância a mudanças, quando o processo é desenvolvido para que mudanças possam ser acomodadas a um custo relativamente baixo. �Geralmente envolve alguma forma de desenvolvimento PROCESSOS DE SW Desire Nguessan �Geralmente envolve alguma forma de desenvolvimento incremental. As mudanças propostas podem ser implementadas em incrementos que ainda não foram desenvolvidos. Se isso é impossível, então um incremento único (uma pequena parte do sistema) pode ser alterada para incorporar a mudança. LIDANDO COM MUDANÇAS ❒ Prototipação de SW ❍ Um protótipo é uma versão inicial de um sistema usada para demonstrar conceitos e testar opções de projeto. ❍ Um protótipo pode ser usado: No processo de engenharia de requisitos para ajudar na elicitação PROCESSOS DE SW Desire Nguessan �No processo de engenharia de requisitos para ajudar na elicitação e validação de requisitos; �Nos processos de projeto para explorar opções e desenvolver um projeto de interface de usuário; �No processo de testes para executar testes fim-a-fim. LIDANDO COM MUDANÇAS ❒ Benefícios da Prototipação ❍ Melhoria do uso do software. ❍ Maior proximidade com as necessidades do usuário. ❍ Melhorias na qualidade do projeto. PROCESSOS DE SW Desire Nguessan Melhorias na qualidade do projeto. ❍ Maior manutenibilidade. ❍ Reduzir esforços de desenvolvimento. PROCESSOS DE SW Processo de desenvolvimento de protótipo Desire Nguessan LIDANDO COM MUDANÇAS ❒ Desenvolvimento de Protótipo ❍ Pode ser baseado em linguagens ou ferramentas de prototipagem rápida. ❍ Pode deixar a funcionalidade de fora do teste. A prototipação deve focar em áreas do produto que não são bem PROCESSOS DE SW Desire Nguessan �A prototipação deve focar em áreas do produto que não são bem entendidas; �A checagem de erros e recuperação podem não estar incluídas no protótipo; �O foco deve ser em requisitos funcionais ao invés de não funcionais como por exemplo, a confiabilidade e a segurança. LIDANDO COM MUDANÇAS ❒ Descarte de Protótipos ❍ Os protótipos devem ser descartados depois do desenvolvimento, pois não são uma boa base para um sistema em produção: �Pode ser impossível ajustar o sistema para alcançar requisitos não PROCESSOS DE SW Desire Nguessan �Pode ser impossível ajustar o sistema para alcançar requisitos não funcionais; � Geralmente os protótipos não possuem documentação; � Geralmente a estrutura do protótipo é degradada por mudanças rápidas; � Provavelmente o protótipo não irá alcançar os padrões normais de qualidade organizacional. . LIDANDO COM MUDANÇAS ❒ Entrega incremental ❍ Ao invés de entregar o sistema em uma única entrega, o desenvolvimento e a entrega são distribuídos em incrementos, nos quais cada incremento entrega parte da funcionalidade necessária. PROCESSOS DE SW Desire Nguessan da funcionalidade necessária. ❍ Os requisitos do usuário são priorizados e os requisitos de mais alta prioridade são incluídos nos primeiros incrementos. ❍ Assim que o desenvolvimento de um incremento é iniciado os requisitos são congelados, mas os requisitos dos incrementos posteriores podem continuar a evoluir. LIDANDO COM MUDANÇAS ❒ Desenvolvimento e entrega incremental ❍ Desenvolvimento incremental � Desenvolve o sistema em incrementos e avalia cada incremento antes de proceder com o desenvolvimento do próximo incremento; PROCESSOS DE SW Desire Nguessan incremento; � Abordagem normalmente usada em métodos ágeis; � Avaliação feita por representantes do usuário/cliente. LIDANDO COM MUDANÇAS ❒ Desenvolvimento e entrega incremental ❍ Entrega incremental. � Implanta um incremento para uso do usuário-final; � Avaliação mais realística sobre o uso prático do software; � Difícil de implementar para sistemas substitutos devido aos PROCESSOS DE SW DesireNguessan � Difícil de implementar para sistemas substitutos devido aos incrementos possuírem menos funções do que o sistema que está sendo substituido. PROCESSOS DE SW Entrega incremental Desire Nguessan LIDANDO COM MUDANÇAS ❒ Vantagem da entrega incremental ❍ Os valores podem ser entregues ao cliente junto com cada incremento, e funções do sistema ficam disponíveis mais rapidamente. Primeiros incrementos agem como protótipos para ajudar PROCESSOS DE SW Desire Nguessan ❍ Primeiros incrementos agem como protótipos para ajudar a deduzir requisitos para incrementos posteriores. ❍ Menor risco de falha geral do projeto. ❍ Os serviços mais prioritários do sistema tendem a serem mais testados. LIDANDO COM MUDANÇAS ❒ Problema da entrega incremental ❍ A maioria dos sistemas requer um conjunto de funções básicas que são usadas por diferentes partes do sistema.. � Como os requisitos não são definidos em detalhes até que um incremento seja implementado, pode ser difícil identificar PROCESSOS DE SW Desire Nguessan incremento seja implementado, pode ser difícil identificar funções comuns que são necessárias a todos os incrementos ❍ A essência dos processos iterativos é que a especificação seja desenvolvida em conjunto com o software. � No entanto, essa pode entrar em conflito com o modelo de aquisição de muitas organizações, nos quais a especificação completa do sistema é parte do contrato de desenvolvimento do sistema. LIDANDO COM MUDANÇAS ❒ Modelo espiral de Boehm ❍ O processo é representado como uma espiral ao invés de uma sequência de atividades com retornos. ❍ Cada loop na espiral representa uma fase do processo. PROCESSOS DE SW Desire Nguessan ❍ Não existem fases fixas como especificação ou projeto – os loops na espiral são escolhidos de acordo com a necessidade. ❍ Os riscos são avaliados explicitamente e resolvidos no decorrer do processo. PROCESSOS DE SW Modelo espiral de Boehm Desire Nguessan Sommerville, Engenharia de SW 9ª.Ed. LIDANDO COM MUDANÇAS ❒ Setores do modelo espiral de Boehm ❍ Definição de objetivos � São identificados os objetivos específicos para cada fase. ❍ Avaliação e redução de riscos Os riscos são avaliados e atividades executadas para reduzir os PROCESSOS DE SW Desire Nguessan � Os riscos são avaliados e atividades executadas para reduzir os principais riscos. ❍ Desenvolvimento e validação � Ummodelo de desenvolvimento para o sistem ❍ Planejamento � O projeto é revisto e a próxima fase da espiral é planejada. Sommerville, Engenharia de SW 9ª.Ed. RATIONAL UNIFIED PROCESSO - RUP ❒ É um processo genérico moderno, derivado do trabalho em UML e processos associados. ❒ Reúne aspectos dos 3 modelos genéricos discutidos previamente. PROCESSOS DE SW Desire Nguessan previamente. ❒ Geralmente descreve 3 perspectivas: ❍ Uma perspectiva dinâmica que mostra fases no tempo; ❍ Uma perspectiva estática que mostra atividades do processo; ❍ Uma perspectiva prática que sugere boas práticas. Sommerville, Engenharia de SW 9ª.Ed. PROCESSOS DE SW Fases no RUP Desire Nguessan RATIONAL UNIFIED PROCESSO - RUP ❒ Fases do RUP: ❍ Concepção � Estabelece o business case para o sistema. ❍ Elaboração Desenvolve um entendimento da extensão do problema e da PROCESSOS DE SW Desire Nguessan � Desenvolve um entendimento da extensão do problema e da arquitetura do sistema. ❍ Construção � Projeta o sistema, programa e testa o sistema. ❍ Transição � Implanta o sistema no seu ambiente de operação. RATIONAL UNIFIED PROCESSO - RUP ❒ Iteração do RUP: ❍ Iteração Intra-fase � Cada fase é iterativa aos resultados desenvolvidos incrementalmente. ❍ Iteração Inter-fase PROCESSOS DE SW Desire Nguessan ❍ Iteração Inter-fase � Como mostrado pelo loop no modelo RUP, o conjunto todo de fases pode ser executado incrementalmente. . PROCESSOS DE SW Workflows estáticos no RUP Desire Nguessan PROCESSOS DE SW Workflows estáticos no RUP (continuação) Desire Nguessan RATIONAL UNIFIED PROCESSO - RUP ❒ Boas práticas do RUP: ❍ Desenvolver software iterativamente � Planejar incrementos baseando-se nas prioridades do cliente e entregar as de prioridade mais alta primeiro. ❍ Gerenciar os requisitos PROCESSOS DE SW Desire Nguessan ❍ Gerenciar os requisitos � Documentar explicitamente os requisitos do cliente e manter registros de mudanças desses requisitos. ❍ Usar arquitetura baseada em componentes � Organizar a arquitetura do sistema como um conjunto de componentes reusáveis. . RATIONAL UNIFIED PROCESSO - RUP ❒ Boas práticas do RUP: ❍ Modelar o software visualmente � Use modelos de gráficos UML para representar visões dinâmicas e estáticas do software. ❍ Verificar a qualidade do software PROCESSOS DE SW Desire Nguessan ❍ Verificar a qualidade do software � Garanta que o software atenda aos padrões de qualidade organizacional. ❍ Controlar as mudanças do software � Gerencie as mudanças no software usando um sistema de gerenciamento de mudanças e ferramentas de gerenciamento de configuração. . PONTOS IMPORTANTES ❒ Os processos devem incluir atividades para lidar com mudanças. O que pode envolver uma fase de protipação que ajuda a evitar más escolhas nos requisitos e no projeto. PROCESSOS DE SW Desire Nguessan ❒ Os processos devem ser estruturados para evolução e entrega iterativa, para que as mudanças possam ser feitas sem causar problemas ao sistema como um todo. . PONTOS IMPORTANTES ❒ O Rational Unified Process é um modelo de processo genérico moderno, organizado em fases (concepção, elaboração, construção e transição) mas que separa as atividades dessas fases PROCESSOS DE SW Desire Nguessan mas que separa as atividades dessas fases (requisitos, análise e projeto, etc.) . Referências [1] SOMMERVILLE I; Engenharia de Software; 9o. ed. São Paulo, Pearson Prentice Hall, 2011. FIMFIMFIMFIM Desire Nguessan ‘’Tous les jours, à tous points de vue, on va de mieux en mieux’’ [Scapino Ballet Rotterdam]
Compartilhar