Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 2 ANÁLISE E MODELAGEM DE PROCESSOS Prof. Marcelo Carneiro Gonçalves 02 CONVERSA INICIAL Nesta aula, vamos conhecer alguns tipos de modelos de processo de software e entender qual a função de cada atividade de processo dentro da engenharia de software. Por isso, recordaremos sobre o que são os processos de softwares, e, em seguida, falaremos sobre quatro importantes modelos de processo de software, a saber: modelo em cascata, modelo incremental, modelo de desenvolvimento evolucionário e modelo de engenharia de software baseado em componentes. Em sequência, abordaremos as atividades do processo de software – sobre a qual já realizamos uma breve introdução na aula anterior –, contudo, iremos mais a fundo nesta aula, pois vamos deixar clara a função de cada atividade dos processos de software. Portanto, você aprenderá os principais conceitos sobre esses temas citados e que os auxiliarão na análise, modelagem e gestão de processos. CONTEXTUALIZANDO Uma empresa da área de desenvolvimento de software, que já atua a mais de 20 anos no mercado, apresenta diversas falhas, como gerência de projetos primitivos, gerência de requisitos rudimentares e dificuldade para estimar prazos de tarefas. Essa empresa utiliza duas maneiras de atender os pedidos dos clientes: 1. Desenvolve um novo produto e, em seguida, identifica as necessidades dele. 2. Depois de contatar o cliente, é apresentado a ele um produto, o qual sofre mudanças conforme as necessidades. Esse modelo de desenvolvimento de software é adequado? Para responder a esse questionamento, é necessário compreendermos como estão organizados os modelos e processos de softwares nas empresas. TEMA 1 – MODELO EM CASCATA E INCREMENTAL 1.1 Processo de software Antes de iniciarmos esses modelos, vamos relembrar o que são os processos de software. 03 O processo de software é composto por um conjunto de atividades que originam a produção de um produto de software (Sommerville, 2007). Em geral, esses produtos pertencem a uma grande cadeia de sistema de negócios, ou seja, fazem parte de modelos de negócios de determinadas empresas que estão no aguardo do seu desenvolvimento para concluírem pedidos já firmados com clientes. Quando tratamos de modelos de negócios, na maioria dos casos, estamos falando de um processo que seja flexível e ágil. O mundo dos negócios atualmente está cada vez mais exigente, pois as necessidades das empresas e de clientes envolvidos no processo mudam quase que corriqueiramente, seja para atender a uma determinada demanda incerta, ou mesmo por desejo ou cancelamento de pedidos. A maioria dos cancelamentos ocorre pela demora ou atraso absurdo nas entregas dos pedidos realizados. Esse é um grande desafio a ser enfrentado pela engenharia de software: a demanda versus tempo de entrega. Para auxiliar a compreensão, tanto pela parte do cliente quanto pela equipe envolvida no projeto, os planejadores utilizam o framework, que são modelos de processos (ilustrações), geralmente por meio de fluxograma, para que possa ser ampliada a ideia e, consequentemente, adaptada, se for preciso. Discutir sobre o planejamento do processo de software é imprescindível para uma boa condução do projeto. 1.2 Modelo em cascata No modelo em cascata, o desenvolvimento do software acontece de forma sequencial, como o próprio nome já diz, e se assemelha à ideia de uma cascata. Logo, cada etapa do processo ocorre de forma sequencial, com origem na definição de requisitos e término na operação e manutenção. Na figura 1, apresentamos o modelo em cascata (adaptado de Sommerville, 2007). 04 Figura 1 – Modelo em cascata Fonte: Adaptado de Sommerville, 2007. Na aula anterior, apresentamos os conceitos iniciais sobre esse assunto, contudo, nesta seção, vamos estudar de forma detalhada o que cada atividade de processo representa dentro de cada modelo, iniciando com o modelo em cascata. 1.2.1 Análise e definição de requisitos Nesta fase, os planejadores entram em contato com o usuário do sistema buscando saber responder “o que” deve ser desenvolvido, ou seja, o que o cliente está demandando como serviço. Essa etapa é crucial para o bom desenvolvimento das outras seguintes, pois, falhando nesta, todas as atividades subsequentes conterão erros graves. O objetivo dessa etapa é capturar todos os requisitos para o software que será desenvolvido, independentemente do método que será utilizado. Busca-se uma correta compreensão sobre a dimensão, ou seja, qual a abrangência, o funcionamento do processo na organização e os dados que ela utiliza. Por meio dessas informações, o planejador poderá garantir um subsídio para um software bem-sucedido. Logo, o planejamento, a coleta de informações e análise detalhada do problema é fundamental para o processo nessa etapa. 05 É aqui também que os usuários definem as restrições associados à especificação do produto de software. Além disso, eles tentam informar o máximo de características inerentes ao serviço a ser realizado com suporte pelo software. É necessário definir claramente os desejos dos usuários. Segundo Tonsig (2008), na análise e definição dos requisitos é feito um levantamento macro a respeito do software a ser desenvolvido, investigando os recursos que serão necessários e avaliando a viabilidade de desenvolvimento, focando nos seguintes aspectos: técnico, econômico e operacional. Quando o autor referencia aspectos técnicos, ele se refere a recursos de hardware e software, por exemplo, computadores, licenças de softwares, banco de dados etc. Em relação a aspectos econômicos, refere-se à estimativa de custos que serão utilizados considerando todos os recursos necessários, e por fim, em relação ao aspecto operacional, refere-se ao impacto que causará na empresa, podendo, nessa etapa, até mesmo reprovar o desenvolvimento do produto de software. Por fim, essa fase gera uma documentação formal, registrando o entendimento da realidade. 1.2.2 Projeto de sistemas de software Após concluída a fase de análise e definição de requisitos, inicia-se a etapa de projeto a qual se busca realizar uma especificação técnica do software. Nessa especificação deve-se considerar como será feita a interface com o usuário e o armazenamento de dados. Segundo Pressman (2007), o processo de desenvolvimento do projeto busca traduzir as exigências do usuário numa representação do software que pode ser avaliada quanto à qualidade antes que a codificação se inicie. Nessa fase, o desenvolvedor analisa “como” transformar os desejos do cliente em um projeto. O desenvolvedor analisa a estrutura de dados e como o projeto será traduzido numa linguagem de programação, bem como os testes que devem ser realizados. Em resumo, a etapa de projeto busca traduzir os requisitos do software em um conjunto de representações, podendo ser de forma gráfica, tabulares, ou em linguagem, que visam descrever a estrutura de dados, o procedimento algorítmico e as características de interface com o usuário (PRESSMAN, 2007). Assim como na etapa de requisitos, o projeto gera uma documentação formal e torna-se parte da configuração do software. 06 1.2.3 Implementação e teste da unidade Nesta etapa, as representações do projeto obtidas da etapa anterior devem ser convertidas numa linguagem que resulte em instruções que possam ser executadas pelo computador (Pressman, 2007). Em seguida, nessa etapa, agrupa-se um conjunto de programas, que Sommerville (2007) denomina “unidades de programas”, com a finalidade de testar separadamente cada unidade, para checarse o software possui defeitos de função ou lógica. Em caso de detecção de algum erro, é feito imediatamente o reparo dele. 1.2.4 Integração e teste do sistema Concluído o primeiro teste de unidades individuais, deve-se testar agora as unidades em conjunto, ou seja, considerando o sistema como um todo, pois pode ser que problemas novos possam ser detectados. Além disso, o desenvolvedor deve checar se há necessidade de alguma integração com outros sistemas, para então adaptá-lo com os procedimentos necessários (Tonsig, 2008). 1.2.5 Operação e manutenção Nesta fase, o sistema já foi testado e está pronto para ser liberado para utilização, ou seja, o sistema é colocado em produção. Em geral, essa fase inicia- se com o treinamento dos usuários do sistema e todo grupo de pessoas envolvidas com a finalidade de que adquiram a cultura e entendam as funcionalidades do sistema que vão utilizar (Tonsig, 2008). Acoplado a essa etapa, temos a fase de manutenção, que acontece em paralelo à operação, pois, para que sejam descobertas necessidades de realizar manutenção, é preciso que o sistema já esteja em operação pelos usuários. Dessa forma, de acordo com Pressman (2007), a manutenção concentra- se em três esferas: a. Correção: corresponde às mudanças necessárias para a correção dos possíveis erros. Mesmo que o desenvolvedor utilize garantia de qualidade nas atividades, é muito provável que o cliente descubra defeitos no software. 07 b. Adaptação: corresponde a adaptações no software que, com o passar do tempo, podem ser necessárias, por questões de mudanças de CPU, sistemas operacionais e periféricos. Logo, o software que foi desenvolvido para uma realidade ultrapassada deve ser adaptado. c. Aprimoramento: corresponde a aprimoramentos no software, representados por exigências dos usuários, motivados pelo desejo de adicionar funções que lhe oferecerão benefícios. 1.2.6 Vantagens e desvantagens de um modelo em cascata Assim como qualquer modelo de processo de software, o modelo em cascata apresenta seus prós e contras a serem pensados antes de serem implementados. Como vantagens, destacamos que o modelo em cascata gera uma documentação após o término de cada fase, permitindo organização do projeto. Além disso, ele possui fácil aderência a outros modelos, pois como foi um dos modelos clássicos originados da literatura, em geral, foi o precursor dos modelos subsequentes. Como desvantagens, esse modelo possui divisão inflexível. Uma vez que as atividades são totalmente separadas (dispostas de forma sequencial, ou em cascata), dificulta flexibilizar determinada atividade. Em consequência disso, ele proporciona uma difícil reação às mudanças e compromete a evolução do projeto (aprimoramento decorrentes de mudanças). Portanto, esse modelo em cascata é sugerido para ser aplicado em cenários de baixa incerteza, ou seja, quando os requisitos são bem compreendidos e favoreçam o mínimo de mudanças futuras possíveis. 1.3 Modelo incremental Este modelo de processo de software é uma variante do modelo em cascata estudado anteriormente. No entanto, nele a fase de projeto foi decomposta em projeto lógico e projeto físico (Tonsig, 2008). Portanto, por meio dessa abordagem é permitido que o planejador decomponha as atividades da fase do projeto, e por consequência, essas atividades podem ser executadas em paralelo. Com as atividades podendo ser executadas em paralelo, permite que o tempo dispendido na fase de projeto consiga uma redução. Logo, o tempo total 08 de desenvolvimento do produto software pode ser reduzido, ou investido esse tempo em atividades que exijam maior atenção do planejador. Na figura 2, é apresentado o modelo incremental, proposto em Tonsig (2008). Figura 2 – Modelo incremental Fonte: Adaptado de Tonsig, 2008. Esse modelo é uma adaptação do modelo mais antigo, o modelo de cascata, por isso denominado modelo clássico. Apesar das fases estarem citadas com nomes diferentes (pois se trata de uma visão de autores diferentes) a ideia permanece a praticamente a mesma. Como é natural de acontecer no ramo de sistemas de informação, as tecnologias mudam, são atualizadas, com isso não é fácil manter o mesmo modelo que já foi usado por muitas décadas. Um grande incoerente do modelo clássico consiste em especificar todos os requisitos de um software imediatamente no início do processo (o que contradiz a realidade, pois, em geral, durante o ciclo de vida do processo há a necessidade de acrescentar mais informações). Além disso, na fase de teste, caso aconteça algum problema de programação, é necessário voltar à etapa de codificação para rever os códigos, o que muitas vezes pode acarretar um grande tempo de revisão e, por consequência, um atraso no cronograma do projeto. Por isso, um modelo de fluxo sequencial pode não representar a realidade dos processos de softwares. Portanto, o modelo incremental inicia essa mudança ao adicionar subatividades em paralelo na fase de projeto. 09 TEMA 2 – MODELO DE DESENVOLVIMENTO EVOLUCIONÁRIO E BASEADO EM COMPONENTES 2.1 Modelo de desenvolvimento evolucionário Segundo Sommerville (2007), este modelo desenvolve-se em paralelo às atividades de especificação, desenvolvimento e validação. O processo inicia-se com um desenvolvimento simplificado baseado nas especificações (requisitos) do cliente. Em seguida, esse sistema é refinado com essas entradas solicitadas pelo cliente para produzir um sistema que satisfaça às necessidades. A figura 3 ilustra esse modelo. Figura 3 – Desenvolvimento evolucionário Fonte: Adaptado de Sommerville, 2007. A “descrição do esboço” representa o resultado dos pedidos do usuário, e, então, esses pedidos são enviados às atividades de especificação, desenvolvimento e validação, que atuam simultaneamente. A cada saída é atualizado o sistema, gerando, assim, uma versão. A versão inicial é a primeira após ser executado o primeiro processo (nesse caso, um ciclo, que compreende desde a “descrição do esboço” até a etapa de validação). Na sequência, é executado um novo ciclo, contudo, mais refinado que o primeiro, que ao término também gera uma nova versão (representada pelas versões intermediárias). Então, esse processo se repete até que o sistema esteja completamente adequado e satisfaça a todas as necessidades do usuário. Em seguida, gera-se a versão final. 010 O fato de as atividades de especificação, desenvolvimento e validação serem intercaladas possibilita um feedback mais rápido entre as atividades. O modelo de desenvolvimento evolucionário para a produção de software é mais eficaz que a abordagem de cascata na produção de sistemas que satisfaçam as necessidades imediatas dos clientes (Sommerville, 2007). 2.2 Vantagens e desvantagens do Modelo de desenvolvimento evolucionário A vantagem desse modelo é que a atividade de especificação pode ser desenvolvida de forma incremental, ou seja, a medida que os usuários vão compreendendo o sistema, eles podem sugerir modificações direto no sistema (de maneira incremental). A desvantagem desse modelo é realizar mudanças contínuas, pois utiliza várias versões e a tendência é de essas alterações corromperem a estrutura do software. Por isso, a incorporação de mudanças torna-se mais difícil (Sommerville, 2007). Esse modelo é recomendado para sistemas de pequeno e médio porte, ou seja, sistemas com até 500 mil linhas de código. Todavia, para sistemas grandes e complexos, fica mais difícil utilizar essa abordagem, pois será difícil estabelecer uma arquitetura estável do sistema e integraras contribuições das equipes de trabalho. 2.3 Caso prático Sommerville (2007) sugere que, para sistemas de grande porte, seja utilizado um mix entre as abordagens de cascata e evolucionária, ou seja, nas etapas em que o processo tem baixa incerteza, utiliza-se a abordagem em cascata, e, nas etapas de especificação (nas quais, em geral, é difícil para o cliente informar todas as necessidades em um primeiro encontro), poderia então usar a abordagem evolucionária. 2.4 Modelo de engenharia de software baseado em componentes A abordagem baseada em componentes é uma das mais utilizadas atualmente, pois parte do princípio de que não precisamos desenvolver do zero o software, ou seja, se em parte do processo de desenvolvimento do sistema já 011 conhecemos um componente que desenvolve uma ação semelhante, fazemos apenas uma adaptação e o incorporamos ao próprio sistema. Em outras palavras, reusamos um determinado código de um sistema similar, o que nos proporciona ganho de agilidade no processo. Atualmente há empresas que desenvolvem componentes para serem integrados a sistemas e framework de auxílio para a integração, por exemplo, funcionalidade de formatação de texto, cálculo numérico etc. O modelo genérico é apresentado na figura 4 a seguir. Figura 4 – Modelo de engenharia de software baseado em componentes Fonte: Adaptado de Pressman, 2007. Nesse modelo, as fases de especificação de requisitos e validação de sistemas são semelhantes aos sistemas anteriormente já explicados. Dessa forma, vamos focar a explicação apenas nas fases intermediárias. 1. Análise de componentes. Nessa etapa, já foi realizada a definição dos requisitos, ou seja, já sabemos o que o cliente deseja, logo, partimos para uma busca sobre os componentes que sejam compatíveis com o sistema que estamos desenvolvendo. Em geral, não encontramos correspondência exata, contudo, uma vez o código fonte disponível, podemos fazer adaptações. 2. Modificação de requisitos. Nessa etapa, devemos voltar à etapa de requisitos, pois como estamos adicionando um novo componente, que em geral não fornece exatamente o que precisamos, e sim funções similares, precisamos realizar uma adaptação nos requisitos sem que afete muito os desejos do usuário. Caso note-se que o projeto está mudando demasiadamente, ou seja, é impossível de implementar, o componente é descartado e a busca é realizada novamente. 012 3. Projeto de sistema com reuso. Nessa etapa, é desenvolvido um modelo de trabalho, ou seja, um framework que vai auxiliar a integração desse componente com o sistema. 4. Desenvolvimento e integração. Nessa etapa, é desenvolvido o software do sistema e integrado os componentes que foram aceitos para criar um novo sistema com os conceitos do reuso (Pressman, 2007). 2.3 Vantagens de desvantagens do modelo de engenharia de software baseado em componentes A vantagem desse modelo é que reduz a quantidade de software a ser desenvolvido, uma vez que buscamos implementar componentes que exerçam atividades similares e auxiliem no sistema que está em desenvolvimento. Outra vantagem é que reduz os custos e riscos de falhas na execução do sistema, ou erros no código e sua funcionalidade. Além disso, a entrega do produto de software é acelerada, pois o tempo que seria gasto com o desenvolvimento do software por inteiro é reduzido quando resolvemos integrar componentes. Contudo, como desvantagem, nota-se que eles comprometem os requisitos definidos inicialmente com os clientes, pois é preciso realizar pequenas modificações. Outra desvantagem é que isso pode comprometer a evolução dos sistemas se os componentes reusáveis não estiverem sob total controle da equipe do projeto, uma vez que não foram os autores de parte dos componentes (Sommerville, 2007). TEMA 3 – ATIVIDADE DE ESPECIFICAÇÃO DE SOFTWARE Como já conversamos sobre alguns modelos de softwares existentes e sabemos sobre as suas finalidades, agora trataremos das atividades genéricas que compõe basicamente todos esses processos, ou seja, em geral, os modelos de softwares foram baseados nessas atividades para originarem-se em modelos. Na aula 1 apresentamos uma ilustração proposta por Sommerville (2007) com as atividades genéricas do software. 013 Figura 5 – Atividades genéricas do software Fonte: Adaptado de Sommerville, 2007. Portanto, cada atividade genérica da figura 5 apresenta um conjunto de subatividades, as quais serão estudadas nas seções a seguir. 3.1 Especificação de software A atividade de especificação de software busca compreender e definir quais serviços os clientes estão solicitando. Além disso, nessa atividade são identificadas todas as restrições de operação e de desenvolvimento de sistemas. De acordo com Pressman (2007), o processo de especificação pode ser divido em fases, apresentadas na figura 6. Figura 6 – Especificação de software Fonte: Adaptado de Sommerville, 2007. Especificação Desenvolvimento Validação Evolução 014 A especificação do software é um estágio crítico, pois a partir dela podem ser conduzidos problemas posteriores no projeto e na implementação do sistema. Vamos explicar cada atividade dessa etapa de especificação proposta por Sommerville (2007): • Estudo de viabilidade. Nessa etapa, buscamos verificar se a empresa possui recursos disponíveis para oferecer o serviço ao cliente. Esses recursos abrangem tanto software quanto hardware na empresa. Além disso, é verificado se o custo do sistema será viável para comercializar. • Elicitação e análise de requisitos. Nessa etapa, é realizado o desenvolvimento de modelos (ou mesmo protótipos) que auxiliam os usuários a compreenderem o resultado do produto de software. • Especificação de requisitos. Nessa etapa, é realizada a tradução das informações coletadas do usuário. Nesse momento, é gerado dois relatórios: o requisito para o usuário, que é uma apresentação simplificada dos requisitos do sistema para o usuário; e o requisito para o sistema, que é uma descrição minuciosa da funcionalidade que o sistema vai oferecer. • Validação dos requisitos. Essa atividade está relacionada ao senso crítico sobre o documento de requisitos. São analisados o realismo, a consistência e a abrangência do sistema proposto. Nessa fase, muitos erros são detectados durante o processo. É importante ressaltar que as atividades do processo de especificação não são sequenciais, pois novos requisitos podem aparecer ao longo do processo; elas são, então, intercaladas. Nessa seção, estudamos a atividade de especificação e vimos quais são suas subatividades. Cada modelo de processo de software possui essa fase inicial, visto que é uma das etapas mais importantes e críticas de um processo de software. TEMA 4 – ATIVIDADES DE PROJETO E IMPLEMENTAÇÃO DE SOFTWARE Nessa seção, vamos explicar a segunda atividade genérica de software, que se trata do projeto e implementação de software ou projeto e implementação do desenvolvimento de software. Nessa fase, é realizada a conversão de todo o assunto levantado durante a especificação de sistema para torna-se um sistema executável, ou seja, é o processo de converter as necessidades do usuário em um programa de computador. 015 Nessa etapa, são descritos a estrutura de software a ser implementada, os dados do sistema, as interfaces e os algoritmos (Sommerville, 2007). Na figura 7, apresentamos o modelo de processo de projeto. Figura 7 – Processo do projeto Fonte: Adaptado de Sommerville, 2007. Nesse modelo são apresentadas as atividades de projetoe os produtos de projeto. As atividades são: especificação de requisitos, projeto de arquitetura, especificação abstrata, projeto de interface, projeto de componente, projeto de estrutura de dados, projeto de algoritmo. Os produtos são: arquitetura de sistema, especificação de software, especificação de interface, especificação de componentes, especificação de estrutura de dados e especificação de algoritmos. Portanto, cada atividade gera um produto, e esse produto passa a ser a entrada para a atividade subsequente. Os resultados finais dessa etapa consistem nos algoritmos e nas estruturas de dados que serão implementados (Sommerville, 2007). TEMA 5 – VALIDAÇÃO E EVOLUÇÃO DE SOFTWARE 5.1 Validação A fase de validação de software, conhecida por outros autores como fase de verificação e validação (V&V), corresponde às últimas fases do projeto de desenvolvimento do software. Nessa etapa é verificado se o sistema está em conformidade com o que foi requerido pelo cliente na fase de especificação, visto anteriormente. A etapa de validação é uma das mais importantes para o projeto, pois nela vamos verificar se o produto do software atende às expectativas dos usuários (Sommerville, 2007). 016 O processo de validação, na verdade, está presente em cada estágio do processo de software. A figura 8 apresenta o processo de teste. Figura 8 – Processo de teste Fonte: Adaptado de Sommerville, 2007. Este processo é divido em três etapas, definidas por Sommerville (2007): • Teste de componente. Nessa etapa, os componentes (funções, classes de objetos, grupos de entidades) são testados separadamente com a finalidade de saber se estão operando corretamente. • Teste de sistema. Nessa etapa, os componentes são integrados ao sistema para serem testados em conjunto. • Teste de aceitação. Essa é a última etapa antes da aceitação do sistema. Nesse momento, os dados fornecidos pelos clientes são testados no sistema ao invés de serem simulados. Essa etapa de validação é importante também para encontrar erros, seja de componentes, seja do sistema integrado. A medida que os erros são descobertos, é iniciado o processo de correção, ou seja, de depuração do erro. Logo, inicia-se o processo de debugging. A figura a seguir apresenta a rotina desse processo. Figura 9 – Processo de debugging Fonte: Adaptado de Sommerville, 2007. 017 Inicialmente localiza-se o erro, e, em seguida, projeta-se o reparo desse erro, verificando os recursos necessários para isso. Posteriormente, realiza-se o reparo do erro, e uma vez corrigido, o programa é retestado; em caso de ocorrência de erro, o processo é refeito. 5.2 Evolução A evolução de um software é muito mais barata que a evolução em hardware. Quando tratamos aqui o termo evolução, estamos nos referindo à mudança, adaptação requerida pelo cliente, atualização de versão etc. Essa flexibilidade do software é um dos principais motivos pelos quais cada vez mais estão se investindo em estudos e planejamento de software. Essa etapa de evolução trata diretamente das mudanças que são necessárias para o software, seja por obsolescência de uma versão, seja por mudanças nos requisitos. Caracteriza-se por ser a etapa mais cara para o processo de software, pois as mudanças quase sempre ocorrerão, então no ciclo de vida do processo, a evolução, em geral, é a maior. Apesar de ser a mais cara, caracteriza-se como a menos desafiadora para os programadores, pois a etapa de desenvolvimento “já passou”, em outras palavras, a parte mais difícil, de planejamento e desenvolvimento do software, já foi realizada. Atualmente, a linha que separa a fase de evolução da fase de manutenção (validação) está cada vez mais tênue, ou seja, essa diferença tem se tornado cada vez mais irrelevante. Logo, é mais prático considerar essas fases como contínuas ao invés de separadas. Portanto, na engenharia de software é mais cômodo analisar o processo evolutivo de forma dinâmica, em que, à medida que o cliente solicita mudanças, o processo passa por uma evolução, em resposta. A figura 10 apresenta o processo de evolução. Figura 10 – Processo de evolução Fonte: Adaptado de Sommerville, 2007. 018 FINALIZANDO Fica claro que a empresa analisada no início de nossa apresentação não tem processos de desenvolvimento de software bem definidos, pois não estabelece padrões que não se assemelham nem a abordagem mais clássica que conhecemos (modelo cascata). Em síntese, com essa aula tivemos uma ideia de como funciona um processo de software, por meio de um conjunto coerente de atividades. Aprendemos também quatro modelos de processo de software importantes para o gerenciamento de projetos, e por fim, as atividades de processos de softwares que são utilizadas na engenharia de software. Saiba mais Assista ao vídeo informativo sobre metodologias ágeis (processos de desenvolvimento de software ágeis). Disponível em: <https://www.youtube.com/watch?v=tz5_-dDeq4Y>. Acesso em: 28 set. 2017. 019 REFERÊNCIAS PRESSMAN, R. S. Engenharia de software. São Paulo: Pearson Makron, 2007. SOMMERVILLE, I. Engenharia de software, 8. ed. São Paulo: Pearson Addison-Wesley, 2007. TONSIG, S. L. Engenharia de software – análise e projeto de sistemas. 2. ed. revista e ampliada. Rio de Janeiro: Ciência Moderna, 2008.
Compartilhar