ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Documentos relacionados
Engenharia de Software

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

Processos de Software

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

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

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

Processos de software

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

Processos de Software

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

Introdução a Engenharia de Software

Processos de Software

Capítulo 2 - Processos de Software

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Processos de. Desenvolvimento de Software

Engenharia de Software I - Aula 04

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

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Processos de Software

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

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

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

Desenvolvimento de Projetos

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

Atividades típicas do processo de desenvolvimento

Projeto e Desenvolvimento de Software

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Processo de Desenvolvimento. Edjandir Corrêa Costa

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

Engenharia de Software II

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. Prof. Me. Clodoaldo Brasilino

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

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 Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Paradigmas de Software

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

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Aula 2 Processo de Software

Modelos de Processo de Software. Profª Jocelma Rios

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

Engenharia de Software

Engenharia de Software

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

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

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Engenharia de Software

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Processos de Software

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 2 19/08/2012

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

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

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

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

Análise de Sistemas Aula 4

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

Princípios da Engenharia de Software aula 03

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

Visão Geral do RUP (Rational Unified Process)

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

ENGENHARIA DE SOFTWARE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Desenvolvimento ágil de software

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Análise e Projeto Orientados a Objetos Professora: Elisa Yumi Nakagawa PAE: Cristiane Aparecida Lana 2 semestre de 2015

Engenharia de Software. Projeto de Arquitetura

Modelos de Processo de Software

Modelos Prescritivos de Processo

Prof. Dr. Thiago Jabur Bittar

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

Processo de Engenharia de Requisitos

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

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

MODELOS DE PROCESSOS (PARTE 2)

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

Levantamento, Análise e Gestão Requisitos. Aula 01

Engenharia de Software. Herbert Rausch Fernandes

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

Rational Unified Process (RUP)

PROCESSOS DE SOFTWARE

Halison Miguel Edvan Pontes

Aula 1: Apresentação. Revisão para Prova 1. Aula 2: Motivação. O que é software? Eng. de Software em Camadas. O que é Engenharia de Software?

RUP RATIONAL UNIFIED PROCESS

Requisitos de Sistemas

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Modelos de Processo de Software

Reuso de Software Aula Maio 2012

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Informática I. Aula Aula 21-29/11/06 1

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

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

Introdução à Engenharia de Software

Engenharia de Software I

Introdução ao RUP Rational Unified Process

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

Transcrição:

ENGENHARIA DE SOFTWARE Aula 03 Processos de Software

AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 2

OBJETIVOS DA AULA Compreender os conceitos e modelos de processos de software; Apresentar três modelos genéricos de processos de software e saber quando utilizar os mesmos; Conhecer as atividades fundamentais do processo de engenharia de requisitos de software, desenvolvimento de software, testes e evolução; Entender por que os processos devem ser organizados de maneira a lidar com as mudanças nos requisitos e projeto de software; e Compreender como o Rational Unified Process (RUP) integra boas práticas de engenharia de software para criar processos de software adaptáveis. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 3

INTRODUÇÃO 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 quatro atividades 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 de software em seu desenvolvimento de software. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 4

MODELOS DE PROCESSO DE SOFTWARE Um modelo de processo de software é uma representação simplificada de um processo 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. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 5

O MODELO EM CASCATA O modelo em cascata é um exemplo de um processo dirigido a planos. O resultado de cada estágio é a aprovação de 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 do projeto em estágios distintos. Em princípio, o modelo em cascata deve ser usado apenas quando os requisitos são bem compreendidos. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 6

DESENVOLVIMENTO INCREMENTAL É baseado na ideia de 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. Três vantagens sobre o modelo em cascata: custo reduzido, feedback dos clientes e entrega e implementação rápida. A abordagem incremental tem dois problemas do ponto de vista do gerenciamento: o processo não é visível e degradação da estrutura do sistema. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 7

ENGENHARIA DE SOFTWARE ORIENTADA A REUSO Na maioria dos projetos de software, há reuso de software. Existem alguns tipos de componentes de software que podem ser usados em um processo orientado a reuso, tais como web services, coleções de objetos e softwares stand-alone. Possui a vantagem de reduzir a quantidade de software a ser desenvolvido e, assim, reduzir os custos e riscos. Geralmente, também proporciona a entrega mais rápida do software. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 8

ATIVIDADES DO PROCESSO o Processos reais de software são intercalados com sequências de atividades té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 ferramentas de 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 processo de desenvolvimento. o No modelo em cascata são organizadas em sequência, enquanto que no desenvolvimento incremental são intercaladas. o A maneira como essas atividades serão feitas depende do tipo de software, das pessoas e das estruturas organizacionais envolvidas. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 9

ESPECIFICAÇÃO DE SOFTWARE Especificação de software ou engenharia de requisitos é o processo de compreensão e definição dos serviços requisitados do sistema e identificação de restrições relativas à operação e ao desenvolvimento do sistema. O processo de engenharia de requisitos tem como objetivo produzir um documento de requisitos acordados que especifica um sistema que satisfaz os requisitos dos stakeholders. Existem quatro atividades principais do processo de engenharia de requisitos: estudo da viabilidade, elicitação e análise de requisitos, especificação de requisitos e a validação de requisitos. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 10

PROJETO DE IMPLEMENTAÇÃO DE SOFTWARE É o processo de conversão de uma especificação do sistema em um sistema executável. Um projeto de software é uma descrição da estrutura do software a ser implementado, dos modelos e estruturas de dados usados pelo sistema, das interfaces entre os componentes do sistema e, às vezes, dos algoritmos usados. A maioria dos softwares interage com outros sistemas de software, incluindo o sistema operacional, o banco de dados, o middleware e outros aplicativos. Ferramentas de desenvolvimento de software podem ser usadas para gerar um esqueleto de um programa a partir do projeto. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 11

VALIDAÇÃO DE SOFTWARE Validação de software tem a intenção de mostrar que um software se adequa a suas especificações ao mesmo tempo que satisfaz as especificações do cliente do sistema. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 12

EVOLUÇÃO DO SOFTWARE Mudanças no software podem ser feitas a qualquer momento durante ou após o desenvolvimento do sistema. O software é constantemente alterado durante seu período de vida em resposta às mudanças de requisitos e às necessidades do cliente. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 13

LIDANDO COM MUDANÇAS A mudança é inevitável em todos os grandes projetos de software. Qualquer que seja o modelo de processo de software, é essencial que possa acomodar mudanças no software em desenvolvimento. A mudança aumenta os custos de desenvolvimento de software, porque geralmente significa que o trabalho deve ser refeito. Há algumas maneiras de lidar com mudanças e mudanças nos requisitos do sistema: prototipação de sistema e entrega incremental. A noção de refatoração, ou seja, melhoria da estrutura e organização de um programa, também é um importante mecanismo que suporta mudanças. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 14

PROTOTIPAÇÃO 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. Protótipos do sistema permitem aos usuários ver quão bem o sistema dá suporte a seu trabalho. Protótipos não precisam ser executáveis para serem úteis. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 15

ENTREGA INCREMENTAL Entrega incremental é uma abordagem para desenvolvimento de software na qual alguns dos incrementos desenvolvidos são entregues ao cliente e implantados para uso em um ambiente operacional. Quais são as vantagens x desvantagens desta abordagem? 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 16

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

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

RATIONAL UNIFIED PROCESS (RUP) É um exemplo de modelo de processo moderno, derivado de trabalhos sobre a UML e o Unified Software Development Process associado. O RUP é um modelo constituído de fases que identifica quatro fases distintas no processo de 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, por exemplo, desenvolvimento de software embutido. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 19

RESUMO Os processos de software são as atividades envolvidas na produção de um sistema de software. Modelos de processos de software são representações abstratas desses processos. Modelos gerais de processo descrevem a organização dos processos de software. Exemplos desses modelos incluem o modelo em cascata, o desenvolvimento incremental e o desenvolvimento orientado a reuso. Engenharia de requisitos é o processo de desenvolvimento de uma especificação de software. As especificações destinam-se a comunicar as necessidades de sistema dos clientes para os desenvolvedores do sistema. Processos de projeto e implementação estão relacionados com a transformação das especificações dos requisitos em um sistema de software executável. Métodos sistemáticos de projeto podem ser usados como parte dessa transformação. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 20

RESUMO Validação de software é o processo de verificação de que o sistema está de acordo com 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 para atender aos novos requisitos. As mudanças são contínuas, e o software deve evoluir para continuar útil. Processos devem incluir atividades para lidar com as mudanças. Podem envolver uma fase 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, de forma 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 as atividades (requisitos, análises, projeto etc.) dessas fases. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 21

PARA A PRÓXIMA AULA Atividade Individual Historicamente, a introdução de tecnologia provocou mudanças profundas no mercado de trabalho e, pelo menos temporariamente, deixou muitas pessoas desempregadas. Discuta de que forma a introdução da automação extensiva em processos pode vir a ter as mesmas consequências para os engenheiros de software. Se sua resposta for nã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 dessa tecnologia? Escreva em uma folha em branco à caneta seu nome e a resposta para a questão acima e entregue para o professor na próxima aula. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 22

REFERÊNCIAS SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. 530 p. ISSBN: 978-85-7936-108-1. 14/03/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 23