Baixe o app para aproveitar ainda mais
Prévia do material em texto
PREPARATÓRIO PARA Quadro Técnico 2020 Aula 04: Engenharia de Software fabiobond81@gmail.com Professor: Fábio Bonner Conceitos Software de computador é o produto que profissionais de software desenvolvem e ao qual dão suporte no longo prazo. A engenharia de software tem por objetivo apoiar o desenvolvimento profissional de software, mais do que a programação individual. A engenharia de SW inclui técnicas que apoiam especificação, projeto e evolução de programas, que normalmente não são relevantes para o desenvolvimento de software pessoal. Conceitos iniciais Conceitos A engenharia de software abrange um processo, um conjunto de métodos (práticas) e um leque de ferramentas que possibilitam aos profissionais desenvolverem software de altíssima qualidade. Software é produto industrial Tipos de SW (Sommerville): Produtos genéricos Ex: Editores de texto, sistemas odontológicos, etc Produtos sob encomenda Ex: Controle de tráfego aéreo Conceitos iniciais Atributos essenciais de qualidade de forma geral(Sommerville) Conceitos iniciais Conceitos Não existe um método ou uma técnica universal de engenharia de software que se aplique a todos os projetos. Há três aspectos gerais que afetam vários tipos diferentes de software: Heterogeneidade - Cada vez mais se requer dos sistemas que operem como sistemas distribuídos através das redes que incluem diferentes tipos de computadores e dispositivos móveis. Mudança de negócio e social - É preciso evoluir para que o tempo requerido para o software dar retorno a seus clientes seja reduzido.(Retorno rápido) Segurança e confiança - Pelo fato de o software estar presente em todos os aspectos de nossas vidas, é essencial que possamos confiar nele. Conceitos iniciais (Sommerville) Características do SW Software é desenvolvido ou passa por um processo de engenharia; ele não é fabricado no sentido clássico Software não “se desgasta”, mas ele se deteriora Conceitos iniciais HARDWARE SOFTWARE O custo do SW está na engenharia Características do SW Os métodos de engenharia de software tentam reduzir ao máximo a magnitude das elevações (picos) e a inclinação da curva real A maioria dos softwares continua a ser construída de forma personalizada Construção do SW como o SAP (Sommerville) Software legado Caracterizado pela longevidade e criticidade de negócios. Baixa qualidade Não faça nada Conceitos iniciais Legado Adaptado Aperfeiçoado Expandido Rearquitetado Necessidade de modificação Campos de aplicação SW de sistema SW de aplicação SW científico/engenharia SW embutido SW para linha de produtos (processador de texto, planilhas eletrônicas, etc.) SW de Inteligência Artificial Conceitos iniciais QT - 2005 Exercícios QT - 2005 Exercícios Resposta A Engenharia de SW É o estabelecimento e o emprego de sólidos princípios de engenharia de modo a obter software de maneira econômica, que seja confiável e funcione de forma eficiente em máquinas reais. Compreender o problema antes de desenvolver uma solução de SW Projetar é uma atividade fundamental Um software deve apresentar qualidade elevada. Um software deve ser passível de manutenção Conceitos iniciais QT - 2006 Exercícios QT - 2006 Exercícios Resposta E Engenharia de SW A engenharia de software é uma tecnologia em camadas A pedra fundamental que sustenta a engenharia de software é o foco na qualidade. A base para a engenharia de software é a camada de processos. Conceitos iniciais Engenharia de SW O processo define uma metodologia que deve ser estabelecida para a entrega efetiva de tecnologia de engenharia de software. Possibilita o desenvolvimento de sw de forma racional e dentro do prazo Os métodos da engenharia de software fornecem as informações técnicas para desenvolver SW. Ampla gama de tarefas As ferramentas da engenharia de software fornecem suporte automatizado ou semiautomatizado para o processo e para os métodos (CASE) Conceitos iniciais Processo de SW É um conjunto de atividades, ações e tarefas realizadas na criação de algum produto de trabalho Sequência de atividades que leva à produção de um produto de software (Sommerville) É uma abordagem adaptável É composto de: Atividades estruturais Atividades de apoio (Ex: gerenciamento, acompanhamento e controle) Modelos de processos de SW Modelos de processos de SW Atividades estruturais: Comunicação Planejamento Modelagem Construção Emprego (Entrega) Atividades Apoio: Controle e acompanhamento do projeto Administração dos riscos Garantia da qualidade de sw Revisões técnicas Medição Gerenciamento de configuração de sw Gerenciamento de reusabilidade Preparo e produção de artefatos de sw Modelo Genérico Atividades estruturais: Comunicação — compreender os objetivos das partes interessadas para com o projeto e fazer o levantamento das necessidades que ajudarão a definir as funções e características do software Planejamento — definir o trabalho da engenharia de SW, descrevendo as tarefas técnicas a ser conduzida, os riscos prováveis, recursos necessários, cronograma, etc. Modelagem — Um engenheiro de software cria modelos para melhor entender as necessidades do software e o projeto que irá atender a essas necessidades Modelos de processos de SW Atividades estruturais: Construção — combina geração de código (manual ou automatizada) e testes necessários para revelar erros na codificação Emprego - O software é entregue ao cliente, que avalia o produto entregue e fornece feedback, baseado na avaliação. Modelos de processos de SW Atividades de apoio Controle e acompanhamento do projeto — possibilita que a equipe avalie o progresso em relação ao plano do projeto e tome as medidas necessárias para cumprir o cronograma. Administração de riscos — avalia riscos que possam afetar o resultado ou a qualidade do produto/projeto. Garantia da qualidade de software — define e conduz as atividades que garantem a qualidade do software. Revisões técnicas — avaliam artefatos da engenharia de software, tentando identificar e eliminar erros antes que se propaguem para a atividade seguinte. Modelos de processos de SW Atividades de apoio Medição — define e coleta medidas. Auxilia na entrega do software de acordo com os requisitos; pode ser usada com as demais atividades (metodológicas e de apoio). Gerenciamento da configuração de software — gerencia os efeitos das mudanças ao longo do processo. Gerenciamento da reusabilidade — define critérios para o reúso de artefatos e estabelece mecanismos para a obtenção de componentes reutilizáveis. Preparo e produção de artefatos de software — engloba as atividades necessárias para criar artefatos como, por exemplo, modelos, documentos, logs, formulários e listas. Modelos de processos de SW Processo de sw Para muitos projetos de software, as atividades metodológicas são aplicadas iterativamente conforme o projeto se desenvolve. Modelos de processos de SW Planejamento Comunicação ModelagemConstrução Emprego Cada Iteração Atividade de processo (Sommerville) Maneira como as atividades serão feitas dependem do tipo de sw, das pessoas e das estruturas organizacionais envolvidas Especificação de SW Definição do serviço Identificação de restrições Produção de um documentos que satisfaz os requisitos dos Stakeholders Diferentes níveis de detalhes: Clientes e usuários finais Desenvolvedores Modelos de processos de SW Atividade de processo (Sommerville) Especificação de SW (engenharia de requisitos) Atividades principais: Modelos de processos de SW Dá pra satisfazer o usuário? É rentável? Entender o que o sistema faz Identificar os requisitos Detalhar requisitos encontrados Requisitos (usuário ou sistema) Completude Realeza Corrigir possíveis erros Atividade de processo (Sommerville)Projeto e implementação Converte a especificação em um sistema executável Detalhamento da fase anterior Iterativo Desenho da solução do problema Faz uso de ferramentas para gerar código a partir do projeto Atividades : Projeto de arquitetura Projeto de interface Projeto de componentes Projeto de BD Modelos de processos de SW Atividade de processo (Sommerville) Projeto e implementação Modelos de processos de SW Middleware, SO, BD Verifica os componentes, relacionamentos e como estão distribuídos Define interfaces do sistema Verifica os componentes que executam as interfaces definidas Qual BD usar? Novo reusado Atividade de processo (Sommerville) Validação Conformidades com as especificações Maiores custos Inspeções e revisões em cada etapa do processo Iterativo com realimentação de informação Estágios: Teste de desenvolvimento De componentes com pequenas integrações Teste de sistema Integrações maiores p/ criar sistemas completos Adequação a requisitos funcionais e não funcionais Teste de aceitação (ou teste alfa) Modelos de processos de SW O processo de desenvolvimento de componentes e testes geralmente são intercalados Atividade de processo (Sommerville) Evolução + barato alterar o SW que o projeto de HW Separação entre desenvolvimento e evolução Modelos de processos de SW Ética na engenharia de SW (sommerville) Confidencialidade. Respeitar naturalmente a confidencialidade independentemente de ter sido ou não assinado um acordo formal de confidencialidade. Competência. Não se deve aceitar um trabalho que esteja fora de sua competência. Direitos de propriedade intelectual. Deve-se ter cuidado para garantir que a propriedade intelectual dos empregadores e clientes seja protegida Mau uso do computador. Não se deve usar suas habilidades técnicas para fazer mau uso de computadores de outras pessoas. jogar videogames em uma máquina do empregador Mal uso extremamente sério Disseminar vírus ou outros malwares. Modelos de processos de SW Modelos de processos de SW Modelos de processos de Software Modelo de processo Um processo de software define a abordagem adotada conforme um software é elaborado pela engenharia. Modelos de processos de SW Atividades Ações Modelo de processo Fluxo de processo Descreve como são organizadas as atividades metodológicas, bem como as ações e tarefas que ocorrem dentro de cada atividade em relação à sequência e ao tempo Tipos de fluxo: Linear Iterativo Evolucionário Paralelo Modelos de processos de SW Tipos de fluxo de processo Linear - executa cada uma das cinco atividades metodológicas em sequência Iterativo - repete uma ou mais das atividades antes de prosseguir para a seguinte Modelos de processos de SW Tipos de fluxo de processo Evolucionário - executa as atividades de uma forma “circular” Paralelo - executa uma ou mais atividades em paralelo com outras atividades Modelos de processos de SW Modelos de avaliação de processos SCAMPI - fornece um modelo de avaliação do processo de cinco etapas, contendo cinco fases: início, diagnóstico, estabelecimento, atuação e aprendizado. O método SCAMPI usa o CMMI da SEI como base para avaliação CBA IPI - fornece uma técnica de diagnóstico para avaliar a maturidade relativa de uma organização de software; usa a CMM da SEI como base para a avaliação SPICE (ISO 15504)- padrão que define um conjunto de requisitos para avaliação do processo de software. ISO 9001:2000 para software - padrão genérico aplicável a qualquer organização que queira aperfeiçoar a qualidade global de produtos, sistemas ou serviços fornecidos Modelos de processos de SW Modelos de processos Modelos de processos de SW Ordem absoluta Caos • Ausência de variabilidade • Boa em ambientes previsíveis • Auxilia a mudanças • Em demasia perde- se o controle Modelos de processos Modelo cascata Chamado ciclo de vida clássico Abordagem sequencial e sistemática para o desenvolvimento de software, começando com o levantamento de necessidades avançando pelas fases de planejamento, modelagem, construção, emprego e culminando no suporte contínuo do software concluído Agrega risco durante o muito tempo no projeto Requisitos bem definidos e estáveis Modelos de processos de SW O modelo de desenvolvimento de software em cascata, também conhecido como ciclo de vida clássico, sugere uma abordagem sistemática e sequencial para o desenvolvimento de softwares que começa com a especificação dos requisitos e termina na manutenção do software acabado. Nos últimos anos, este modelo de ciclo de desenvolvimento vem sofrendo várias críticas quanto a sua eficácia. Assim, é correto afirmar que um dos possíveis problemas do ciclo de vida clássico é A) a exigência do modelo para que o cliente estabeleça todos os requisitos explicitamente. B) a construção problemática dos componentes, caso o sistema não possa ser adequadamente modularizado. C) a responsabilidade do levantamento das necessidades pela etapa de planejamento. D) a aplicação do modelo de forma incorreta a problemas com requisitos bem definidos e razoavelmente estáveis. E) a existência de somente cinco etapas no modelo, da comunicação à implantação. Modelos de processos de SW O modelo de desenvolvimento de software em cascata, também conhecido como ciclo de vida clássico, sugere uma abordagem sistemática e sequencial para o desenvolvimento de softwares que começa com a especificação dos requisitos e termina na manutenção do software acabado. Nos últimos anos, este modelo de ciclo de desenvolvimento vem sofrendo várias críticas quanto a sua eficácia. Assim, é correto afirmar que um dos possíveis problemas do ciclo de vida clássico é A) a exigência do modelo para que o cliente estabeleça todos os requisitos explicitamente. B) a construção problemática dos componentes, caso o sistema não possa ser adequadamente modularizado. C) a responsabilidade do levantamento das necessidades pela etapa de planejamento. D) a aplicação do modelo de forma incorreta a problemas com requisitos bem definidos e razoavelmente estáveis. E) a existência de somente cinco etapas no modelo, da comunicação à implantação. Modelos de processos de SW Resposta A Modelos de processos Modelo cascata O modelo V ilustra como as ações de verificação e validação estão associadas a ações de engenharia anteriores. Modelos de processos de SW Software Executável Aumento do nível técnico da informação Modelos de processos Modelo cascata Problemas relacionados Projetos reais raramente seguem um fluxo sequencial que o modelo propõe É difícil para os clientes estabelecer explicitamente todas as necessidades no início do projeto O cliente deve ter paciência Estados de bloqueio (espera entre fases) Modelos de processos de SW Modelos de processos Modelo Incremental Combina elementos dos fluxos de processos lineares e paralelos. Aplica sequências lineares, de forma escalonada, à medida que o tempo vai avançando. Entrega de um produto Operacional a cada incremento Modelos de processos de SW Modelos de processos Modelo evolucionário Desenvolve versões mais completas de sw a cada iteração Prototipação O cliente define uma série de objetivos gerais para o software, mas não identifica, detalhadamente, os requisitos para funções e recursos Espiral Uma abordagem cíclica voltada para ampliar, incrementalmente, o grau de definição e a implementação de um sistema, enquanto diminui o grau de risco do mesmo. Modelos de processos de SW Modelos de processos Modelo evolucionário Prototipação - Auxilia os interessados a compreender melhor o que está para ser construído Modelos de processos de SW Considere as seguintes afirmações sobre prototipação. I - A prototipação é comumente utilizada como uma técnica que auxilia os interessados, quando os requisitosestão obscuros, a compreender melhor o que está para ser construído, embora possa também ser utilizada como um modelo de processo isolado. II - Um protótipo é uma versão inicial de um sistema de software, usado para demonstrar conceitos, experimentar opções de projeto e descobrir mais sobre o problema e suas possíveis soluções. III - Protótipos devem ser executáveis para serem úteis. Deve-se evitar o desenvolvimento de maquetes em papel de interface de usuário, embora sejam baratas e possam ser construídas em poucos dias. Quais estão corretas? A) Apenas I. B) Apenas I e II. C) Apenas I e III. D) Apenas II e III. E) I, II e III. Modelos de processos de SW Considere as seguintes afirmações sobre prototipação. I - A prototipação é comumente utilizada como uma técnica que auxilia os interessados, quando os requisitos estão obscuros, a compreender melhor o que está para ser construído, embora possa também ser utilizada como um modelo de processo isolado. II - Um protótipo é uma versão inicial de um sistema de software, usado para demonstrar conceitos, experimentar opções de projeto e descobrir mais sobre o problema e suas possíveis soluções. III - Protótipos devem ser executáveis para serem úteis. Deve-se evitar o desenvolvimento de maquetes em papel de interface de usuário, embora sejam baratas e possam ser construídas em poucos dias. Quais estão corretas? A) Apenas I. B) Apenas I e II. C) Apenas I e III. D) Apenas II e III. E) I, II e III. Modelos de processos de SW Resposta B Modelo evolucionário Prototipação Um projeto rápido se concentra em uma representação daqueles aspectos do software que serão visíveis aos usuários finais (Ex: Interfaces) O projeto rápido leva à construção de um protótipo, que é empregado e avaliado pelos envolvidos, que fornecerão um retorno (feedback), que servirá para aprimorar os requisitos. Protótipos podem ser descartáveis ou evolucionários Embora possam ocorrer problemas, a prototipação pode ser um paradigma efetivo para a engenharia de software É um mecanismo de definição de requisitos Modelos de processos de SW Modelo evolucionário Prototipação (problemas) Os interessados enxergam o que parece ser uma versão operacional do software, ignorando que o protótipo é mantido de forma não organizada, logo afetando diretamente na qualidade O engenheiro de software, com frequência, assume compromissos de implementação para conseguir que o protótipo entre em operação rapidamente. Um exemplo é a utilização de um algoritmo ineficiente na implementação simplesmente para demonstrar capacidade. Modelos de processos de SW Modelo evolucionário Espiral Acopla a natureza iterativa da prototipação com os aspectos sistemáticos e controlados do modelo cascata Pode ser adaptado para ser aplicado ao longo de todo o ciclo de vida de uma aplicação, desde o desenvolvimento de conceitos até sua manutenção Dividido em um conjunto de atividades metodológicas definidas pela equipe de engenharia de software. Os riscos são considerados à medida que cada revolução é realizada. Modelos de processos de SW Usando o modelo ____________, o sistema é desenvolvido em ciclos, sendo que os primeiros ciclos podem não conter todas as atividades. O produto resultante de um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os ciclos subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do software, até se obter o produto completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos, mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da __________________ é fundamental. As expressões que completam corretamente os espaços em branco, respectivamente, são: A) espiral, prototipação. B) cascata, prototipação. C) XP, conversa com os clientes. D) espiral, cascata. E) incremental, prototipação. Modelos de processos de SW Usando o modelo ____________, o sistema é desenvolvido em ciclos, sendo que os primeiros ciclos podem não conter todas as atividades. O produto resultante de um primeiro ciclo pode ser uma especificação do produto ou um estudo de viabilidade. Os ciclos subsequentes podem ser protótipos, chegando progressivamente a versões operacionais do software, até se obter o produto completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos, mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão do que está sendo construído se forem colocados diante do sistema. Nestes casos, o uso da __________________ é fundamental. As expressões que completam corretamente os espaços em branco, respectivamente, são: A) espiral, prototipação. B) cascata, prototipação. C) XP, conversa com os clientes. D) espiral, cascata. E) incremental, prototipação. Modelos de processos de SW Resposta A Modelo evolucionário Espiral Modelos de processos de SW Modelo evolucionário Espiral Pontos âncora de controle — uma combinação de produtos de trabalho e condições que são satisfeitas ao longo do trajeto da espiral — são indicados para cada passagem evolucionária. O primeiro circuito em volta da espiral pode resultar no desenvolvimento de uma especificação de produto; Passagens subsequentes em torno da espiral podem ser usadas para desenvolver um protótipo Cada passagem pela região de planejamento resulta em ajustes no planejamento do projeto Modelos de processos de SW Considere as afirmativas apresentadas abaixo a respeito dos modelos de processos de software cascata (waterfall) e incremental. I - Uma das vantagens do modelo de processo cascata é que ele antecipa eventuais correções a serem feitas nos requisitos do software. II - O modelo de processos cascata é recomendado quando os requisitos são estáveis e claros. III - No desenvolvimento incremental, a arquitetura e o projeto do software tendem a manter-se estáveis. IV - No desenvolvimento incremental, o acompanhamento e o progresso das atividades são avaliados pela entrega de artefatos. Estão corretas as afirmativas A) II e IV. B) I e IV. C) I e III. D) II e III. Modelos de processos de SW Considere as afirmativas apresentadas abaixo a respeito dos modelos de processos de software cascata (waterfall) e incremental. I - Uma das vantagens do modelo de processo cascata é que ele antecipa eventuais correções a serem feitas nos requisitos do software. II - O modelo de processos cascata é recomendado quando os requisitos são estáveis e claros. III - No desenvolvimento incremental, a arquitetura e o projeto do software tendem a manter-se estáveis. IV - No desenvolvimento incremental, o acompanhamento e o progresso das atividades são avaliados pela entrega de artefatos. Estão corretas as afirmativas A) II e IV. B) I e IV. C) I e III. D) II e III. Modelos de processos de SW Resposta A Modelo evolucionário Espiral Custo e cronograma são ajustados de acordo com o feedback obtido do cliente após entrega. É uma abordagem realista para o desenvolvimento de sistemas e de software em larga escala. Requer consideração direta dos riscos técnicos em todos os estágios do projeto Exige considerável especialização na avaliação de riscos Riscos importantes devem ser descobertos e administrados Modelos de processos de SW O princípio fundamental é que, a cada ciclo, uma versão operacional do sistema será produzida e entregue para uso ou avaliação detalhada do cliente. Os requisitos têm de ser levantados e é preciso constatar que o sistema é modular. Esse é o modelo: A) Incremental. B) Espiral. C) Cascata. D) RAD. E) XP. Modelos de processos de SW O princípio fundamental é que, a cada ciclo, uma versão operacional do sistema será produzida e entregue para uso ou avaliação detalhada do cliente. Os requisitos têm de ser levantados e é preciso constatar que o sistemaé modular. Esse é o modelo: A) Incremental. B) Espiral. C) Cascata. D) RAD. E) XP. Modelos de processos de SW Resposta A Modelo evolucionário Modelos concorrentes Define uma série de eventos que irão disparar transições de estado para estado para cada uma das atividades, ações ou tarefas da engenharia de software. Engenharia concorrente Mais adequado para engenharia de produtos Modelos de processos de SW Modelo evolucionário Modelos concorrentes Se aplica a todos os tipos de desenvolvimento de software e fornece uma imagem precisa do estado atual de um projeto Cada atividade, ação ou tarefa na rede existe simultaneamente com outras atividades, ações ou tarefas Modelos de processos de SW Problemas dos modelos evolucionários Nº incerto de ciclos na prototipação Não estabelecem velocidade de evolução Muito rápido Muito lento Mantém seu foco mais na flexibilidade e na extensibilidade do que na alta qualidade. Modelos de processos de SW Ambos são problemas Modelos especializados Baseado em componentes (COTS) Fornecem a funcionalidade e a interface de acesso Desenvolve aplicações a partir de componentes pré empacotados Conduz ao reuso de software Pode-se alcançar redução de ciclo de projeto e de custos caso a empresa adote como rotina Modelos de processos de SW Modelos especializados Métodos formais Engloba um conjunto de atividades que conduzem à especificação matemática formal do software Possibilitam especificar, desenvolver e verificar um sistema baseado em computador através da aplicação de uma notação matemática rigorosa Oferece a promessa de software sem defeitos Consome muito tempo e dinheiro Treinamento extensivo Difícil de usar como meio de comunicação com o cliente Modelos de processos de SW QT - 2005 Exercícios QT - 2005 Exercícios Resposta A Modelos especializados Orientado a aspectos Certas restrições se estendem por toda a arquitetura Quando restrições cruzam múltiplas funções, recursos e informações do sistema, elas são, frequentemente, denominadas restrições cruzadas Usa um conceito de fatias horizontais através de componentes de software decompostos verticalmente, chamados “aspectos”, para caracterizar propriedades funcionais ou não funcionais cruzadas dos componentes Modelos de processos de SW Modelos de processos (Sommerville) – paradigmas de processos Modelos de processos de SW Modelos de processos genéricos Ágeis Dirigido a planos Reflete a necessidade do cliente Planejamento gradativo Compara com o planejamento inicial Planejado com antecedência Incremental Cascata Incremental Equilíbrio entre os dois Modelos de processos (Sommerville) Em cascata Desenvolvimento incremental Orientado a reúso Concentra-se na integração desses componentes em um sistema já existente em vez de desenvolver um sistema a partir do zero. Esses modelos não são mutuamente exclusivos e muitas vezes são usados em conjunto, especialmente para o desenvolvimento de sistemas de grande porte Modelos de processos de SW Modelos de processos (Sommerville) Em cascata ou ciclo de vida de SW O resultado de cada estágio é a aprovação de 1 ou + documentos (‘assinados’). Na prática, esses estágios se sobrepõem e alimentam uns aos outros de informações. Compromisso no estágio inicial do processo Variações do cascata: Desenvolvimento formal Baseado em transformações formais Modelos de processos de SW Modelos de processos (Sommerville) Em cascata Modelos de processos de SW Serviços, restrições e metas do sistema Definição da arquitetura Programação E teste União e teste das Partes do programa Disponibilização do sistema Correção de erros Modelos de processos (Sommerville) Desenvolvimento Incremental Desenvolver uma implementação inicial, expô-la aos comentários dos usuários e continuar por meio da criação de várias versões até que um sistema adequado seja desenvolvido + barato e mais fácil mudar durante seu desenvolvimento Sistemas menos críticos Incrementos iniciais: + importantes + urgentes Modelos de processos de SW QT - 2017 Exercícios QT - 2017 Exercícios Resposta B Modelos de processos (Sommerville) Desenvolvimento Incremental Modelos de processos de SW Modelos de processos (Sommerville) Desenvolvimento incremental Vantagens Custo reduzido de acomodação e mudanças + fácil feedback Implementação e entrega + rápido Desvantagens O processo não é visível.(sem documentos para controle) Degradação da estrutura ao adicionar incrementos (possibilidade de refatoração para melhoria do sistema) Modelos de processos de SW Modelos especializados (Sommerville) Orientado a reúso Componentes de software comercial de prateleira ou COTS Desenvolve a partir de componentes de software pré-empacotados. Necessário ampla base de componentes reusáveis Processos intermediários diferentes Menos programação, menos tempo Pode levar a sistemas sem conformidade Perda de evolução do sistema Tipos de componentes: Webservice Coleções de objetos Sistemas Stand-alone Modelos de processos de SW Modelos de processos (Sommerville) Orientado a reúso Modelos de processos de SW Não se modifica comparado com os outros processos Busca por componentes Adequar requisitos Ao componente Define o que será utilizado Montagem do sistema Integrando os componentes Mudanças Lidando com mudanças Aumento de custos (retrabalho) Modelos de processos de SW Redução do retrabalho Tolerância A mudanças Prevenção de mudanças Antecipar mudanças Protótipo Acomodação a mudanças Desenvolvimento incremental Como lidar com mudanças Lidando com mudanças Prototipação Desenvolvimento rápido e baixo custo Podem revelar erros no requisitos propostos O mesmo protótipo não pode cumprir todos os objetivos Não precisam ser executáveis Pode não ser utilizado da mesma forma como no sistema final Modelos de processos de SW Prototipação Eng de requisitos Projeto Projeto de interfaces Estudo de soluções Elicitação Validação Lidando com mudanças Entrega incremental Cada incremento é um subconjunto de uma funcionalidade Prioridade maior entrega primeiro Não são aceitas mudanças nos requisitos em desenvolvimento Modelos de processos de SW Lidando com mudanças Entrega incremental Vantagens: O cliente ganha experiência com o sistema O cliente começa a obter ganho com o sistema a partir do 1º incremento Facilita as mudanças Encontrar falhas nas parte mais importantes é mais difícil Teste repetitivos em módulos já entregues, normalmente os mais críticos Modelos de processos de SW Lidando com mudanças Entrega incremental Problemas: Difícil identificar recursos comuns Difícil obter feedback útil Ninguém quer testar software incompleto Difícil dimensionar o trabalho Para transações com a área governamental fica complicado, pois não á como dimensionar o trabalho todo no início Não adotado: Em sistemas grandes – equipes distribuídas Sistemas embutidos – HW e SW em conjunto Sistemas críticos – proteção e segurança Modelos de processos de SW Lidando com mudanças Espiral de Boehm Dirigido a riscos Cada volta é uma fase no processo de software Atividade explícita de gerenciamento de risco Modelos de processos de SW QUADRO TÉCNICO EXERCÍCIOS DE FIXAÇÃO QT - 2004 Exercícios QT - 2004 Exercícios Resposta B QT - 2006 Exercícios QT - 2006 Exercícios Resposta D QT - 2008 Exercícios QT - 2008 Exercícios Resposta B QT - 2014 Exercícios QT - 2014 Exercícios Resposta B QT - 2016 Exercícios QT - 2016 Exercícios Resposta E Final de Processos de Software
Compartilhar