engenharia de software aula 03 processos ... - danilo … - 04 - processos de software.pdf ·...

23
ENGENHARIA DE SOFTWARE Aula 03 Processos de Software

Upload: buinhan

Post on 18-Jan-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

ENGENHARIA DE SOFTWARE Aula 03

Processos de Software

AGENDA

14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 2

Modelos de processo de software

Atividades do processo

Lidando com mudanças

Rational Unified Process (RUP)

OBJETIVOS DA AULA

14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 3

Compreender os conceitos e modelos de processos de software;

Apresentar três modelos genéricos de processos de software e saberquando utilizar os mesmos;

Conhecer as atividades fundamentais do processo de engenharia derequisitos de software, desenvolvimento de software, testes e evolução;

Entender por que os processos devem ser organizados de maneira a lidarcom as mudanças nos requisitos e projeto de software; e

Compreender como o Rational Unified Process (RUP) integra boas práticasde engenharia de software para criar processos de software adaptáveis.

INTRODUÇÃO

14/03/2017 4

Um processo de software é um conjunto de atividades relacionadas que levam àprodução de um produto de software.

Existem muitos processos de software diferentes, mas todos devem incluir quatroatividades fundamentais para a engenharia de software:

1. Especificação de software

2. Projeto e implementação de software

3. Validação de software

4. Evolução de software

Processos dirigidos a planos x processos ágeis

Muitas empresas ainda não se aproveitam dos métodos da engenharia desoftware em seu desenvolvimento de software.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

MODELOS DE PROCESSO DE SOFTWARE

14/03/2017 5IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

Um modelo de processo de software é uma representação simplificada de umprocesso de software.

Cada modelo representa uma perspectiva particular de um processo.

Os modelos que iremos estudar nesta aula são:

O modelo em cascata;

Desenvolvimento incremental; e

Engenharia de software orientada a reuso.

O MODELO EM CASCATA

14/03/2017 6

O modelo em cascata é um exemplo de umprocesso dirigido a planos.

O resultado de cada estágio é a aprovaçãode um ou mais documentos (assinados).

No estágio final do ciclo de vida o softwareé colocado em uso.

O sistema deve evoluir para permanecer útil.

Seu maior problema é a divisão inflexível doprojeto em estágios distintos.

Em princípio, o modelo em cascata deve serusado apenas quando os requisitos são bemcompreendidos.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

DESENVOLVIMENTO INCREMENTAL

14/03/2017 7

É baseado na ideia de desenvolver umaimplementação inicial, expô-la aos comentáriosdos usuários e continuar por meio da criação devárias versões até que um sistema adequadoseja desenvolvido.

Três vantagens sobre o modelo em cascata: custoreduzido, feedback dos clientes e entrega eimplementação rápida.

A abordagem incremental tem dois problemasdo ponto de vista do gerenciamento: o processonão é visível e degradação da estrutura dosistema.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

ENGENHARIA DE SOFTWARE ORIENTADA A REUSO

14/03/2017 8

Na maioria dos projetos de software, há reusode software.

Existem alguns tipos de componentes de softwareque podem ser usados em um processo orientadoa reuso, tais como web services, coleções deobjetos e softwares stand-alone.

Possui a vantagem de reduzir a quantidade desoftware a ser desenvolvido e, assim, reduzir oscustos e riscos.

Geralmente, também proporciona a entregamais rápida do software.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

ATIVIDADES DO PROCESSO

14/03/2017 9

o Processos reais de software são intercalados com sequências de atividadestécnicas, de colaboração e de gerência, com o intuito de especificar, projetar,implementar e testar um software.

o Os desenvolvedores de software usam uma variedade de diferentes ferramentasde software em seu trabalho.

o As quatro atividades básicas do processo - especificação, desenvolvimento,validação e evolução - são organizadas de forma diferente conforme o processode desenvolvimento.

o No modelo em cascata são organizadas em sequência, enquanto que nodesenvolvimento incremental são intercaladas.

o A maneira como essas atividades serão feitas depende do tipo de software, daspessoas e das estruturas organizacionais envolvidas.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

ESPECIFICAÇÃO DE SOFTWARE

14/03/2017 10

Especificação de software ou engenharia de requisitosé o processo de compreensão e definição dos serviçosrequisitados do sistema e identificação de restriçõesrelativas à operação e ao desenvolvimento do sistema.

O processo de engenharia de requisitos tem comoobjetivo produzir um documento de requisitosacordados que especifica um sistema que satisfaz osrequisitos dos stakeholders.

Existem quatro atividades principais do processo deengenharia de requisitos: estudo da viabilidade,elicitação e análise de requisitos, especificação derequisitos e a validação de requisitos.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

PROJETO DE IMPLEMENTAÇÃO DE SOFTWARE

14/03/2017 11

É o processo de conversão de uma especificação dosistema em um sistema executável.

Um projeto de software é uma descrição da estruturado software a ser implementado, dos modelos eestruturas de dados usados pelo sistema, dasinterfaces entre os componentes do sistema e, às vezes,dos algoritmos usados.

A maioria dos softwares interage com outros sistemasde software, incluindo o sistema operacional, o bancode dados, o middleware e outros aplicativos.

Ferramentas de desenvolvimento de software podemser usadas para gerar um esqueleto de um programaa partir do projeto.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

VALIDAÇÃO DE SOFTWARE

14/03/2017 12

Validação de software tem a intenção de mostrar que um software se adequa a suas especificaçõesao mesmo tempo que satisfaz as especificações do cliente do sistema.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

EVOLUÇÃO DO SOFTWARE

14/03/2017 13

Mudanças no software podem ser feitas a qualquer momento durante ou após odesenvolvimento do sistema.

O software é constantemente alterado durante seu período de vida em resposta àsmudanças de requisitos e às necessidades do cliente.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

LIDANDO COM MUDANÇAS

14/03/2017 14

A mudança é inevitável em todos os grandes projetos de software.

Qualquer que seja o modelo de processo de software, é essencial que possaacomodar mudanças no software em desenvolvimento.

A mudança aumenta os custos de desenvolvimento de software, porquegeralmente significa que o trabalho deve ser refeito.

Há algumas maneiras de lidar com mudanças e mudanças nos requisitos dosistema: prototipação de sistema e entrega incremental.

A noção de refatoração, ou seja, melhoria da estrutura e organização de umprograma, também é um importante mecanismo que suporta mudanças.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

PROTOTIPAÇÃO

14/03/2017 15

Um protótipo é uma versão inicial de um sistema de software, usado para demonstrarconceitos, experimentar opções de projeto e descobrir mais sobre o problema e suaspossíveis soluções.

Protótipos do sistema permitem aos usuários ver quão bem o sistema dá suporte a seutrabalho.

Protótipos não precisam ser executáveis para serem úteis.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

ENTREGA INCREMENTAL

14/03/2017 16

Entrega incremental é uma abordagem para desenvolvimento de software na qualalguns dos incrementos desenvolvidos são entregues ao cliente e implantados para usoem um ambiente operacional.

Quais são as vantagens x desvantagens desta abordagem?

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

DESENVOLVIMENTO ITERATIVO E INCREMENTAL

14/03/2017 17IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

MODELO ESPIRAL DE BOEHM

14/03/2017 18IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

RATIONAL UNIFIED PROCESS (RUP)

14/03/2017 19

É um exemplo de modelo de processo moderno, derivado de trabalhos sobre a UML e oUnified Software Development Process associado.

O RUP é um modelo constituído de fases que identifica quatro fases distintas no processode software.

O RUP foi projetado em conjunto com a UML (Unified Modeling Language).

O RUP não é um processo adequado para todos os tipos de desenvolvimento, como, porexemplo, desenvolvimento de software embutido.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

RESUMO

14/03/2017 20

Os processos de software são as atividades envolvidas na produção de um sistema desoftware. Modelos de processos de software são representações abstratas dessesprocessos.

Modelos gerais de processo descrevem a organização dos processos de software.Exemplos desses modelos incluem o modelo em cascata, o desenvolvimento incremental eo desenvolvimento orientado a reuso.

Engenharia de requisitos é o processo de desenvolvimento de uma especificação desoftware. As especificações destinam-se a comunicar as necessidades de sistema dosclientes para os desenvolvedores do sistema.

Processos de projeto e implementação estão relacionados com a transformação dasespecificações dos requisitos em um sistema de software executável. Métodos sistemáticosde projeto podem ser usados como parte dessa transformação.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

RESUMO

14/03/2017 21

Validação de software é o processo de verificação de que o sistema está de acordocom sua especificação e satisfaz às necessidades reais dos usuários do sistema.

Evolução de software ocorre quando se alteram os atuais sistemas de software paraatender aos novos requisitos. As mudanças são contínuas, e o software deve evoluir paracontinuar útil.

Processos devem incluir atividades para lidar com as mudanças. Podem envolver umafase de prototipação, que ajuda a evitar más decisões sobre os requisitos e projeto.Processos podem ser estruturados para o desenvolvimento e a entrega iterativos, deforma que mudanças possam ser feitas sem afetar o sistema como um todo.

O Rational Unified Process (RUP) é um moderno modelo genérico de processo,organizado em fases (concepção, elaboração, construção e transição), mas que separa asatividades (requisitos, análises, projeto etc.) dessas fases.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

PARA A PRÓXIMA AULA

14/03/2017 22

Atividade Individual

Historicamente, a introdução de tecnologia provocou mudanças profundas no mercadode trabalho e, pelo menos temporariamente, deixou muitas pessoas desempregadas.Discuta de que forma a introdução da automação extensiva em processos pode vir ater as mesmas consequências para os engenheiros de software. Se sua resposta fornão justifique. Se você acha que sim, que vai reduzir as oportunidades de emprego, éética a resistência passiva ou ativa, pelos engenheiros afetados, à introdução dessatecnologia?

Escreva em uma folha em branco à caneta seu nome e a resposta para a questãoacima e entregue para o professor na próxima aula.

IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

REFERÊNCIAS

14/03/2017 23IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO

SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson PrenticeHall, 2011. 530 p. ISSBN: 978-85-7936-108-1.