Capítulo 2 - Processos de Software

Documentos relacionados
14/11/2013. Capítulo 2. Processos de Software. Tópicos apresentados. Oprocessodesoftware. Modelos de processo de software. Atividades de processo.

Processos de Software

Engenharia de Software

Processos de software

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Engenharia de Software

Capítulo 2. Processos de So2ware Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Projeto e Desenvolvimento de Software

Processos de Software

Processos de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

ENGENHARIA DE SOFTWARE

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

Atividades típicas do processo de desenvolvimento

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Processos de. Desenvolvimento de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE

Paradigmas de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Processos de Software

Desenvolvimento de Projetos

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Prof. Dr. Thiago Jabur Bittar

ENGENHARIA DE SOFTWARE

Modelos de Processo de Software. Profª Jocelma Rios

Engenharia de Software II

Processo de Desenvolvimento. Edjandir Corrêa Costa

Engenharia de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Engenharia de Software

Verificação e Validação (V & V)

Princípios da Engenharia de Software aula 03

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Introdução a Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Agenda da Aula. Melhoria do Processo de Software. Por que melhorar o processo? De onde veio a idéia? Qualidade do Produto. Qualidade de Software

Processos de Software. O que é modelo de processo? Vantagens. Modelos de Processo Gerais. O que é um processo de software?

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

Prof. Esp. Fabiano Taguchi

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Manutenção Leitura: Sommerville; Pressman

Visão Geral do RUP (Rational Unified Process)

Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil

RUP RATIONAL UNIFIED PROCESS

Modelos de Processo de Software

Professor Emiliano S. Monteiro

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Engenharia de Software Processo de Desenvolvimento de Software

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

2 o Ciclo de Engenharia Informática, 1 o Ano, 1 o Semestre Apontamentos Teóricos - Modelos de desenvolvimento de software 2016/2017

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

2 o Ciclo de Engenharia Informática, 1 o Ano, 1 o Semestre Apontamentos Teóricos - Modelos de desenvolvimento de software 2017/2018

Engenharia de Software I

Engenharia de Requisitos

Processo de desenvolvimento de sistema de informação - DSI

Leitura: Cap : Sommerville; cap20: Pressman

CICLO DE VIDA DE SOFTWARE

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

2. Modelos de Desenvolvimento de Software

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Capítulo 8 Teste de Software 1

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

PROCESSOS DE SOFTWARE

Modernização de Legados

Engenharia de Software II

Reuso de Software Aula Maio 2012

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

5 Processo de Reificação e de Desenvolvimento com ACCA

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

REUSO E REUSABILIDADE

REENGENHARIA E ENGENHARIA REVERSA

Analista de Sistemas S. J. Rio Preto

Introdução à Análise e Projeto de Sistemas

ENGENHARIA DE SOFTWARE. Introdução

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Guia do Processo de Teste Metodologia Celepar

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Aula 2 Processo de Software

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

Processos de Software

Sumário. Processo de Desenvolvimento. Objectivos. Problemas. Engenharia de Software. Caracterização. Técnicas Avaliação e Validação Exemplo Conclusões

2 o Ciclo de Engenharia Informática, 1 o Ano, 1 o Semestre Apontamentos Teóricas - Engenharia de Requisitos 2016/2017

ISO/IEC 12207: Manutenção

SSC Engenharia de Software. Prof. Paulo C. Masiero

Transcrição:

Capítulo 2 - Processos de Software Capítulo 2 Processos Software 1

Assuntos abordados Modelos de processo de software Atividades no processo de software Mudança no processo de software Melhoria de processos Capítulo 2 Processos Software 2

O processo de software Um conjunto estruturado de atividades necessárias para desenvolver um sistema de software. Independente do processo de software, todos envolvem: Especificação - definir o que o sistema deve fazer; Conceção e implementação - define a organização do sistema e implementação do sistema; Validação - verificar se ele faz o que o cliente quer; Evolução - mudança do sistema em resposta às necessidades dos clientes. Um modelo de processo de software é uma representação abstrata de um processo. Ele apresenta uma descrição de um processo numa perspetiva particular. Capítulo 2 Processos Software 3

Descrições do processo de software Quando se descreve e discute processos, abordam-se geralmente as atividades desses processos, tais como especificar um modelo de dados, projetar uma interface de utilizador, etc., e a ordenação dessas atividades. Descrições de processos também podem incluir: Os produtos, que são os resultados de uma atividade do processo; Regras, que refletem as responsabilidades das pessoas envolvidas no processo; Pré e pós condições de uma atividade do processo que foi aprovada ou um produto produzido. Capítulo 2 Processos Software 4

Processos orientados por plano e processos ágeis Processos orientados por plano são processos em que todas as atividades do processo são planeadas com antecedência e o progresso é medido comparado com o planeado. Em processos ágeis, o planeamento é incremental e é mais fácil de mudar o processo para refletir as mudanças dos requisitos dos clientes. Na prática, os processos incluem ambas as abordagens, plano e ágeis. Não existem processos de software certos ou errados. Capítulo 2 Processos Software 5

Modelos de processo de software Capítulo 2 Processos Software 6

Modelos de processo de software O modelo em cascata Modelo orientado por plano, as fases separadas e distintas de especificação e desenvolvimento. Desenvolvimento incremental Especificação, desenvolvimento e validação são intercalados. Pode ser ágil ou orientada por plano. Integração e configuração O sistema é montado a partir de componentes configuráveis existentes. Pode ser ágil ou orientada por plano. Na prática, a maioria dos grandes sistemas são desenvolvidos usando um processo que incorpora elementos de todos estes modelos. Capítulo 2 Processos Software 7

O modelo em cascata Capítulo 2 Processos Software 8

As fases do modelo em cascata Há fases separadas no modelo em cascata: Definição e análise de requisitos Design de sistema e do software Implementação e teste Integração e teste do sistema Operação e manutenção A principal desvantagem do modelo em cascata é a dificuldade de implementar uma mudança depois de o processo estar em curso. Em princípio, uma fase tem de estar completa antes de passar para a próxima fase. Capítulo 2 Processos Software 9

Problemas do modelo em cascata Particionamento inflexível do projeto em estágios distintos, torna difícil para responder às novas exigências dos clientes. Portanto, este modelo é apropriado somente quando os requisitos são bem compreendidos e as mudanças forem bastante limitadas durante o processo de design. Poucos sistemas têm requisitos estáveis. O modelo cascata é o mais usado em projetos de engenharia de sistemas grandes onde um sistema é desenvolvido em várias localidades. Nestas circunstâncias, o processo orientado por plano no modelo em cascata ajuda a coordenar o trabalho. Capítulo 2 Processos Software 10

Desenvolvimento incremental Capítulo 2 Processos Software 11

Denefícios do desenvolvimento incremental O custo de implementar novas exigências dos clientes é reduzido. A quantidade de análise e documentação que tem de ser refeito é muito menos do que é necessário com o modelo em cascata. É mais fácil de obter feedback dos clientes sobre o trabalho de desenvolvimento que tem sido feito. Os clientes podem comentar sobre demonstrações do software e ver o quanto foi implementado. É possível uma entrega e implantação do software útil para o cliente mais rápido. Os clientes são capazes de usar e obter valor a partir do software mais cedo, do que é possível com um processo em cascata. Capítulo 2 Processos Software 12

Problemas no desenvolvimento incremental O processo não é visível. Os gestores de projeto precisam de entregas regulares para medir o progresso. Se os sistemas são desenvolvidos de forma rápida, não existe custo-efetivo para produzir documentos que refletem todas as versões do sistema. A estrutura do sistema tende a degradar-se quando são adicionados novos incrementos. Em menos tempo, dinheiro é gasto em refatoração para melhorar o software, mudanças regulares tendem a corromper a estrutura. Incorporando novas mudanças de software torna-se cada vez mais difícil e caro. Capítulo 2 Processos Software 13

Integração e configuração Baseado no reuso de software onde os sistemas são integrados a partir de componentes existentes ou outros sistemas. Elementos reutilizados podem ser configurados para adaptar o seu comportamento e funcionalidade aos requisitos do utilizador. Reutilização é agora a abordagem padrão para a construção de muitos tipos de sistema de negócios. Capítulo 2 Processos Software 14

Tipos de software reutilizáveis Sistemas de aplicação standalone que são configurados para uso em um ambiente particular. Objetos que são desenvolvidas como um pacote para serem integradom com um framework de componentes tais como.net ou J2EE. Serviços web que são desenvolvidos de acordo com padrões de serviço e que estão disponíveis para invocação remota. Capítulo 2 Processos Software 15

Engenharia de software orientada à reutilização Capítulo 2 Processos Software 16

Etapas chave do processo Especificação de requisitos Exploração e avaliação de software Refinamento dos requisitos Configuração do sistema Adaptação e integração dos componentes Capítulo 2 Processos Software 17

Vantagens e desvantagens Redução de custos e riscos, pois menos software é construído a partir do zero Entrega e implantação do sistema mais rápido Mas os compromissos com requisitos são inevitáveis para que o sistema não atenda às necessidades reais dos utilizadores Perda de controle sobre a evolução dos elementos reutilizados do sistema Capítulo 2 Processos Software 18

Atividades no processo Capítulo 2 Processos Software 19

Atividades no processo Os processos de software são sequências intercaladas de atividades técnicas, colaborativas e gerenciais com o objetivo geral de especificar, projetar, implementar e testar um sistema de software. As quatro atividades no processos são: especificação, o desenvolvimento, a validação e a evolução, são organizadas de modo diferente em processos de desenvolvimento diferentes. No modelo em cascata, as atividades estão organizadas em sequência, ao passo que no modelo incremental estão intercaladas. Capítulo 2 Processos Software 20

O processo de engenharia de requisitos Capítulo 2 Processos Software 21

Especificação de software O processo para definir quais os serviços necessários e identificar as restrições de utilização e desenvolvimento do sistema. Processo de engenharia de requisitos Levantamento e análise de requisitos O que os stakeholders do sistema exigem ou esperam do sistema Especificação de requisitos A definição dos requisitos em detalhes A validação de requisitos Verificar a validade dos requisitos Capítulo 2 Processos Software 22

Conceção e implementação de software Processo de conversão da especificação do sistema num sistema executável. Design de software Projetar uma estrutura de software que atenda à especificação; Implementação Transformar essa estrutura em um programa executável; As atividades de projeto e implementação são fortemente relacionadas e podem ser intercaladas. Capítulo 2 Processos Software 23

Um modelo geral do processo de design Capítulo 2 Processos Software 24

Atividades no projeto Arquitetura do sistema, onde se identifica a estrutura geral do sistema, os principais componentes (subsistemas ou módulos), os seus relacionamentos e como eles são distribuídos. Design da base de dados, onde se projeta as estruturas de dados do sistema e como estes vão ser representadas numa de dados. Design de interface, onde se define as interfaces entre os componentes do sistema. Seleção de componentes e design, onde se procura componentes reutilizáveis. Capítulo 2 Processos Software 25

Implementação do sistema O software é implementado, quer através do desenvolvimento de um programa ou programas ou configurando um sistema de aplicação. Conceção e implementação são atividades intercaladas para a maioria dos tipos de sistema de software. A programação é uma atividade individual com nenhum processo padrão. Depuração é a atividade de encontrar falhas no programa e corrigir estas falhas. Capítulo 2 Processos Software 26

Validação do software Verificação e a validação tem a intenção de mostrar que o sistema está conformidade com a sua especificação e cumpre os requisitos do cliente. Envolve processos de verificação, revisão e teste do sistema. Testes envolvem a execução do sistema com casos de teste que são derivados da especificação dos dados reais a serem processados pelo sistema. O teste é a actividade de verificação e validação mais utilizada. Capítulo 2 Processos Software 27

Fases de testes Capítulo 2 Processos Software 28

Fase de testes Testes de componentes Os componentes individuais são testados de forma independente; Os componentes podem ser funções ou objetos, ou grupos coerentes dessas entidades. Teste do sistema Teste de sistema como um todo. O teste das propriedades emergentes é particularmente importante. Testes pelos clientes Teste com dados do cliente para verificar se o sistema atende as necessidades do cliente. Capítulo 2 Processos Software 29

Testando fases num processo de softwaredriven plano (V-modelo) Capítulo 2 Processos Software 30

Evolução do software O software é inerentemente flexível e pode mudar. Os requisitos mudam durante as mudanças de circunstâncias do negócio, o software que suporta o negócio também deve evoluir e mudar. Embora tenha havido uma demarcação entre desenvolvimento e evolução (manutenção) esta é cada vez mais irrelevante como menos sistemas são completamente novos. Capítulo 2 Processos Software 31

Evolução do sistema Capítulo 2 Processos Software 32

Mudança Capítulo 2 Processos Software 33

Mudança A mudança é inevitável em todos os grandes projetos de software. Mudanças nos negócios levam a requisitos novos e modificações no sistema As novas tecnologias abrem novas possibilidades para melhorar implementações Mudança de plataformas exigem mudanças no aplicativo A mudança leva a reformular de modo que os custos de mudança incluem o retrabalho - novo trabalho (por exemplo, reanalisar requisitos), bem como os custos de implementação de novas funcionalidades Capítulo 2 Processos Software 34

Reduzir os custos de retrabalho Antecipar a mudança, onde o processo de software inclui atividades que podem antecipar possíveis alterações antes do retrabalho ser necessário. Por exemplo, um protótipo de sistema pode ser desenvolvido para mostrar algumas das principais características do sistema para os clientes. Tolerância à mudança, onde o processo foi concebido de modo que as mudanças possam ser implementadas a custo relativamente baixo. Isso normalmente envolve alguma forma de desenvolvimento incremental. As alterações propostas podem ser implementadas em incrementos que ainda não foram desenvolvidos. Se isso for impossível, então apenas um único incremento (uma pequena parte do sistema) pode ter ser alterado para incorporar a mudança. Capítulo 2 Processos Software 35

Mudanças de requisitos Prototipagem do sistema, onde uma versão do sistema ou parte do sistema é desenvolvido rapidamente para verificar os requisitos do cliente e a viabilidade das decisões de design. Entrega incremental, onde incrementos de sistema são entregues ao cliente para comentários e experimentação. Capítulo 2 Processos Software 36

Prototipagem Um protótipo é uma versão inicial de um sistema, utilizado para demonstrar conceitos e experimentar opções de design. Um protótipo pode ser usado em: O processo de engenharia de requisitos para ajudar com levantamento de requisitos e validação; Em processos de design para explorar opções e desenvolver um design da interface; No processo de teste para executar testes. Capítulo 2 Processos Software 37

Benefícios da prototipagem Melhora a usabilidade do sistema. A correspondência mais próxima às necessidades reais dos utilizadores. Melhoria da qualidade do design. Melhoria da manutenção. Reduzir o esforço de desenvolvimento. Capítulo 2 Processos Software 38

O processo de desenvolvimento de protótipos Capítulo 2 Processos Software 39

Desenvolvimento de protótipos Podem basear-se em linguagens ou ferramentas de prototipagem rápida Podem desenvolver-se deixando de fora funcionalidade Protótipo deve se concentrar em áreas do produto que não são bem compreendidos; Verificação e recuperação de erros não podem ser incluídos no protótipo; Protótipo deve-se concentrar em requisitos funcionais, em vez de não-funcionais, tais como confiabilidade e segurança Capítulo 2 Processos Software 40

Lançamento de protótipos Os protótipos devem ser descartados após o desenvolvimento, eles não são uma boa base para um sistema de produção: Pode ser impossível ajustar o sistema para atender aos requisitos não-funcionais; Os protótipos normalmente não são documentados; A estrutura do protótipo é normalmente degradada através da mudança rápida dos requisitos; O protótipo provavelmente não vai atender aos padrões normais de qualidade da organização. Capítulo 2 Processos Software 41

Entrega incremental Em vez de uma única entrega, o desenvolvimento e fornecimento é dividido em incrementos com cada incremento a fornecer parte da funcionalidade requerida. Requisitos de utilização são priorizados e os requisitos de prioridade mais alta são incluídos nos incrementos iniciais. Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados embora requisitos para incrementos posteriores possam continuar a evoluir. Capítulo 2 Processos Software 42

Desenvolvimento e entrega incremental Desenvolvimento incremental Desenvolver o sistema em incrementos e avaliar cada incremento antes de prosseguir para o desenvolvimento do próximo incremento; Abordagem normalmente utilizada em métodos ágeis; Avaliação feita pelo utilizador / cliente. Entrega incremental Implantar um incremento para uso pelos utilizadores finais; Avaliação mais realista sobre o uso prático de software; Difícil de implementar para sistemas de substituição, porque os incrementos têm menos funcionalidades do que o sistema que está a ser substituído. Capítulo 2 Processos Software 43

Entrega incremental Capítulo 2 Processos Software 44

Vantagens da entrega incremental O cliente pode usar a funcionalidade do sistema que é disponibilizada mais cedo. O incremento inicial age como um protótipo para auxiliar o levantamento dos requisitos para incrementos posteriores. Menor risco de falha geral do projeto. Os serviços de sistema de mais alta prioridade tendem a receber mais testes. Capítulo 2 Processos Software 45

Problemas na entrega incremental A maioria dos sistemas exigem um conjunto de serviços básicos que são usados por diferentes partes do sistema. Como os requisitos não são definidos em detalhes até um incremento ser implementado, ele pode ser difícil de identificar instalações comuns que são necessárias a todos os incrementos. A essência do processo iterativo é que a especificação é desenvolvida em conjunto com o software. No entanto, este conflito com o modelo de contratos de muitas organizações, onde a especificação completa do sistema é parte do contrato de desenvolvimento do sistema. Capítulo 2 Processos Software 46

Melhoria de processos Capítulo 2 Processos Software 47

Melhoria de processos Muitas empresas de software têm se voltado para a melhoria do processo de software como uma maneira de melhorar a qualidade do seu software, reduzir custos ou acelerar os seus processos de desenvolvimento. Melhoria de processos significa a compreensão de processos existentes e alterar esses processos para aumentar a qualidade do produto e / ou reduzir custos e tempo de desenvolvimento. Capítulo 2 Processos Software 48

Abordagens para a melhoria A abordagem maturidade do processo, concentra-se em melhorar processos de gestão de projetos e introduzir boas práticas em engenharia de software. O nível de maturidade do processo reflete o grau em que as boas práticas técnicas e de gestão foram adotadas nos processos de desenvolvimento de software da organização. A abordagem ágil, concentra-se no desenvolvimento iterativo e na redução das despesas gerais do processo de software. As características primárias dos métodos ágeis são entrega rápida de funcionalidades e capacidade de resposta às mudanças dos requisitos de cliente. Capítulo 2 Processos Software 49

O ciclo de melhoria de processos Capítulo 2 Processos Software 50

Atividades de melhoria de processo Processo de medição Medir um ou mais atributos do processo de software ou produto. Estas medições formam uma base que ajuda a decidir se as melhorias de processos têm sido eficazes. Processo análise o processo atual é avaliado e os pontos fracos do processo são identificados. Modelos de processos (às vezes chamado de mapas de processo) descrevem o processo que pode ser desenvolvido. Processo mudança Processo mudança, são propostas para abordar algumas das fragilidades identificadas. Estes são introduzidas e o ciclo recomeça para recolher dados sobre a eficácia das mudanças. Capítulo 2 Processos Software 51

Processo de medição Sempre que possível, devem ser recolhidos os dados quantitativos No entanto, quando as organizações não têm padrões de processos claramente definidos isso é muito difícil, pois não se sabe o que medir. Um processo deve ter que ser definido antes de qualquer medição. Processo de medição deve ser utilizado para avaliar melhorias Mas isso não significa que as medições devem conduzir as melhorias. Capítulo 2 Processos Software 52

Métricas Tempo necessário para as atividades serem concluídas Por exemplo, tempo de calendário ou esforço para concluir uma atividade ou processo. Recursos necessários para processos ou atividades Por exemplo, o esforço total em pessoas-dia. Número de ocorrências de um determinado evento Por exemplo, número de defeitos descobertos. Capítulo 2 Processos Software 53

Níveis de maturidade da capacidade Capítulo 2 Processos Software 54

O modelo de maturidade Inicial essencialmente descontrolada Repetivel procedimentos de gestão de produto definido e usados Definição procedimentos e estratégias de gestão de processos definidos e usados Gestão estratégias de gestão de qualidade definidos e usados Otimização estratégias de melhoria de processos definidos e usados Capítulo 2 Processos Software 55

Pontos chave Processos de software são atividades envolvidas na produção de um sistema de software. Modelos de processo de software são representações abstratas destes processos. Modelos de processo descrevem a organização de processos de software. Exemplos desses modelos gerais incluem o modelo de 'cascata', desenvolvimento incremental, e desenvolvimento orientados para reutilização. Engenharia de requisites é o processo de desenvolvimento de uma especificação de software. Capítulo 2 Processos Software 56

Pontos chave Processos de Design e implementação estão preocupados com a transformação de uma especificação de requisitos para um sistema de software executável. Validação de software é o processo de verificação de que o sistema está de acordo com a sua especificação e que atende às necessidades reais dos utilizadores do sistema. Evolução do software ocorre quando mudar os sistemas de software existentes para atender às novas exigências. O software deve evoluir para permanecer útil. Os processos devem incluir atividades tal como prototipagem e entrega incremental para lidar com a mudança. Capítulo 2 Processos Software 57

Pontos chave Os processos podem ser estruturados para entrega e desenvolvimento iterativo para que as alterações possam ser feitas sem interromper o sistema como um todo. As principais abordagens para processar melhorias são abordagens ágeis, voltadas para a redução de custos de processos e abordagens baseadas numa melhor gestão de processos e o uso de boas práticas de engenharia de software. A estrutura de maturidade identifica níveis de maturidade que correspondem essencialmente ao uso de boas práticas de engenharia de software. Capítulo 2 Processos Software 58