ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Documentos relacionados
Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education

Reutilização de Software

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Técnicas para Reutilização de Software

MODELOS DE PROCESSOS (PARTE 2)

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Frameworks. Viviane Torres da Silva

Introdução a Engenharia de Software

Reuso de Software Aula Maio 2012

Por que é importante?

ENGENHARIA DE SOFTWARE. Aula 01 A natureza do software

Processos de software

CBSE. Independência e Padronização. Características da CBSE. Fundamentos da CBSE. Middleware e Processo 22/05/2013

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Processos de Software

REUSO E REUSABILIDADE

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

Engenharia de Software

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

Manutenção Leitura: Sommerville; Pressman

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

Enterprise Application Integration (EAI)

Projeto de Arquitetura

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Capítulo 6. Projeto de arquitetura Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1

SOFTWARE REUSE. Ian Sommerville, 8º edição Capítulo 18. Aula de Luiz Eduardo Guarino de Vasconcelos

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

ENGENHARIA DE SOFTWARE. Aula 08 Gerenciamento de Projetos

ENGENHARIA DE SOFTWARE. Aula 02 Engenharia de Software

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

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

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

Leitura: Cap : Sommerville; cap20: Pressman

O que é um sistema distribuído?

PROCESSOS DE NEGÓCIOS

Introdução a Computação em Nuvem

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Introdução à Engenharia de Software

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

Requisitos de Software

Proposta Comercial. SaguiControl

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

ENGENHARIA DE SOFTWARE. Introdução

Desenvolvimento de Projetos

Engenharia de Software II

Processo de Desenvolvimento. Edjandir Corrêa Costa

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

ENGENHARIA DE SOFTWARE. Aula 07 UML - Diagrama de Casos de Uso

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Engenharia de Software I

Modelos de Processo de Software. Profª Jocelma Rios

Análise de Sistemas. Aula 5

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Evolução de Software

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

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

GERENCIAMENTO DE DADOS Exercícios

Engenharia de Requisitos

Estilos Arquiteturais

Capítulo 2 - Processos de Software

Introdução ao Desenvolvimento de

Administração de Sistemas de Informação

Nuvem e Virtualização Redes Programáveis

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

ENGENHARIA DE SOFTWARE

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Engenharia de Software I - Aula 02

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

Sistemas ERP (Enterprise Resource Planning)

Transcrição:

ENGENHARIA DE SOFTWARE Aula 17 Reuso de software

OBJETIVOS Entender os benefícios e problemas de reuso de software durante o desenvolvimento de novos sistemas; Entender o conceito de um framework de aplicações como um conjunto de objetos reusáveis e como frameworks podem ser usados no desenvolvimento de aplicações; Conhecer as linhas de produtos de software que são compostas de um arquitetura de núcleo comum e componentes configuráveis e reusáveis; e Aprender como sistemas podem ser desenvolvidos pela configuração e composição de sistemas de software de aplicação de prateleira. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 2

INTRODUÇÃO A engenharia de software baseada em reuso é uma estratégia da engenharia de software em que o processo de desenvolvimento é orientado para o reuso de softwares existentes. A disponibilidade de software reusáveis tem aumentado significativamente. O movimento open source significa que existe uma enorme base de código reusável disponível a baixos custos. Reuso de sistema de aplicação, de componentes e de objetos de funções. Uma vantagem do reuso de software é a redução dos custos globais de desenvolvimento. Benefícios do reuso de software? Problemas com o reuso de software? 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 3

O PANORAMA DE REUSO O reuso é possível em diferentes níveis, desde funções simples até aplicações completas, e normas para componentes reusáveis facilitam o reuso. Qual é a técnica mais apropriada para se usar em uma determinada situação? 1. O cronograma de desenvolvimento para o software. 2. A expectativa de duração do software. 3. O conhecimento, as habilidades e a experiência do desenvolvimento da equipe. 4. A importância do software e seus requisitos não funcionais. 5. O domínio da aplicação. 6. A plataforma em que o sistema será executado. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 4

O PANORAMA DE REUSO Figura 1 Abordagens que apoiam o reuso de software 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 5

FRAMEWORKS DE APLICAÇÕES Um framework é uma estrutura genérica estendida para se criar uma aplicação ou subsistema mais específico. É um conjunto integrado de artefatos de software (como classes, objetos e componentes) que colaboram para fornecer uma arquitetura reusável para uma família de aplicações. Os frameworks são implementados como uma coleção de classes de objetos concretos e abstratos em uma linguagem de programação orientada a objetos. Os frameworks são uma abordagem eficaz de reuso, mas são caros para serem introduzidos em processos de desenvolvimento de software. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 6

LINHAS DE PRODUTO DE SOFTWARE Uma das abordagens mais eficazes para o reuso é criar linhas de produtos de software ou famílias de aplicações. Uma linha de produtos de software é um conjunto de aplicações com uma arquitetura comum e componentes compartilhados, sendo cada aplicação especializada para refletir necessidades diferentes. O núcleo do sistema é projetado para ser configurado e adaptado para atender às necessidades de clientes diferentes. Isso pode envolver a configuração de alguns componentes, implementação de componentes adicionais e a modificação de alguns dos componentes para refletir novos requisitos. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 7

REUSO DE PRODUTOS COTS Um produto de prateleira (COTS, do inglês commercial-off-the-shelf) é um sistema de software que pode ser adaptado às necessidades de diferentes clientes sem alterar o código-fonte do mesmo. Praticamente todos os softwares de desktop e uma grande variedade de produtos de servidor são softwares COTS. Como esse software é projetado para uso geral, costuma incluir muitos recursos e funções. Portanto, tem o potencial de ser reusado em diferentes ambientes e como parte de aplicações diferentes. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 8

SISTEMAS DE SOLUÇÃO COTS Sistemas de solução COTS são sistemas genéricos de aplicação que podem ser projetados para suportar um tipo de negócio em particular, atividade de negócio ou, por vezes, uma empresa completa. Único produto que oferece a funcionalidade necessária para um cliente. Baseados em uma solução genérica e em processos padronizados. O foco do desenvolvimento é a configuração do sistema. O fornecedor do sistema é responsável pela manutenção. O fornecedor do sistema fornece a plataforma para o sistema. Um sistema de Enterprise Resource Planning (ERP) pode apoiar toda a fabricação, os pedidos e as atividades de gerenciamento com o cliente, em uma grande empresa. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 9

SISTEMAS INTEGRADOS COTS Sistemas integrados COTS são aplicações que incluem dois ou mais produtos COTS ou, às vezes, sistemas de aplicações legados. Vários produtos de sistemas heterogêneos são integrados para fornecer funcionalidade customizada. Podem ser desenvolvidas soluções flexíveis para processos do cliente. O foco do desenvolvimento é a integração do sistema. O proprietário do sistema é responsável pela manutenção. O proprietário do sistema fornece a plataforma para o sistema. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 10

RESUMO Atualmente, a maioria dos novos sistemas de software de negócio é desenvolvida com reuso de conhecimento e códigos de sistemas já implementados. Existem muitas maneiras de se reusar um software, desde o reuso de classes e métodos em bibliotecas até o reuso de sistemas de aplicação completos. As vantagens do reuso de software são redução de custos, desenvolvimento de software mais rápido e diminuição de riscos, além de aumento de confiança no sistema. Ademais, especialistas podem ser usados mais eficazmente, concentrando sua expertise no projeto de componentes reusáveis. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 11

RESUMO Frameworks de aplicações são coleções de objetos concretos e abstratos projetados para o reuso por meio da especialização e a adição de novos objetos. Geralmente, eles incorporam boas práticas de projeto por meio de padrões de projeto. As linhas de produto de software são aplicações relacionadas, desenvolvidas a partir de uma ou mais aplicações-base. Um sistema genérico é adaptado e especializado para atender aos requisitos específicos de funcionalidade, plataforma de destino ou configuração operacional. O reuso de produtos COTS está preocupado com o reuso de sistemas de prateleira em grande escala. Eles fornecem uma grande funcionalidade e seu reuso pode reduzir radicalmente os custos e o tempo de desenvolvimento. Os sistemas podem ser desenvolvidos por meio da configuração de um único produto genérico COTS ou integrando dois ou mais produtos COTS. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 12

RESUMO Os sistemas ERP (Enterprise Resource Planning) são exemplos de reuso de COTS em grande escala. Você cria uma instância de um sistema ERP por meio da configuração de um sistema genérico com informações sobre regras e processos de negócios do cliente. Possíveis problemas com o reuso baseado em COTS incluem a falta de controle sobre a funcionalidade e o desempenho, a falta de controle sobre a evolução de sistema, a necessidade de suporte dos fornecedores externos e as dificuldades em assegurar que os sistemas possam interoperar. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 13

ATIVIDADE Trabalho Individual Escrever um texto legível à caneta que forneça uma resposta para cada uma das perguntas a seguir. A atividade deve ser entregue na próxima aula. Cite quatro casos em que você pode recomendar o não reuso de software. A maioria dos softwares de desktop, como softwares de processamento de textos, podem ser configurados de várias maneiras. Examine o software que você usa regularmente e liste as opções de configuração para ele. Sugira as dificuldades que os usuários podem ter na configuração do software. Se você usar o Microsoft Office ou Libre Office, esses são bons exemplos para usar neste exercício. 14/11/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 14

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