lista de reuso de software

8
01 Quais os benefícios do Reuso de Software? Melhores índices de produtividade Produtos de melhor qualidade, mais confiáveis, consistentes e padronizados Redução dos custos e tempo envolvidos no desenvolvimento de software Maior flexibilidade na estrutura do software produzido, melhorando manutenibilidade e evolução Conformidade com padrões (i.e Uso de interfaces familiares) Menor tempo de desenvolvimento e validação 02 Quais os obstáculos para implantação de um programa de reuso de software em uma organização? Estruturas organizacionais inadequadas Dificuldade de encontrar software reusável Altos custos Falta de apoio gerencial Requisitos muito específicos. 03 Cite 3 fatores de possíveis falhas de um programa de reuso Falta de conhecimento sobre o domínio da aplicação que será trabalhado Não modificar processos existentes que não consideravam reuso Não alocação de equipes especializadas e independentes. 04 Cite 3 fatores de sucesso em um programa de reuso. Uso de modelos de qualidade Processo de reutilização sistemática O gerenciamento de configuração dos ativos reutilizáveis Gerenciamento Fatores humanos Maturidade do processo 05 Que tipos de artefatos podem ser utilizados? Código Executável Especificação de Requisitos Designs Dados de Teste Documentação Arquitetura 06 Cite exemplos 3 exemplos de técnicas de reuso de software e definaas. Linhas de Produto de Software : É uma técnica de reuso baseado na reutilização sistemática de um conjunto de subsistemas de software e interfaces, através da exploração de pontos comuns e na gestão de variabilidade entre os produtos, que são estabelecidos sob uma estrutura comum a partir do qual um conjunto de produtos derivados pode ser desenvolvido e produzido de forma eficiente. LPS possuem arquitetura comum e componentes compartilhados.

Upload: andre-martins

Post on 19-Dec-2015

10 views

Category:

Documents


0 download

DESCRIPTION

Lista com resposta de Reuso de Software

TRANSCRIPT

Page 1: Lista de Reuso de Software

01 ­ Quais os benefícios do Reuso de Software? Melhores índices de produtividade Produtos de melhor qualidade, mais confiáveis, consistentes e padronizados Redução dos custos e tempo envolvidos no desenvolvimento de software Maior flexibilidade na estrutura do software produzido, melhorando

manutenibilidade e evolução Conformidade com padrões (i.e Uso de interfaces familiares) Menor tempo de desenvolvimento e validação

02 ­ Quais os obstáculos para implantação de um programa de reuso de software em uma organização?

Estruturas organizacionais inadequadas Dificuldade de encontrar software reusável Altos custos Falta de apoio gerencial Requisitos muito específicos.

03 ­ Cite 3 fatores de possíveis falhas de um programa de reuso

Falta de conhecimento sobre o domínio da aplicação que será trabalhado Não modificar processos existentes que não consideravam reuso Não alocação de equipes especializadas e independentes.

04 ­ Cite 3 fatores de sucesso em um programa de reuso.

Uso de modelos de qualidade Processo de reutilização sistemática O gerenciamento de configuração dos ativos reutilizáveis Gerenciamento Fatores humanos Maturidade do processo

05 ­ Que tipos de artefatos podem ser utilizados?

Código Executável Especificação de Requisitos Designs Dados de Teste Documentação Arquitetura

06 ­ Cite exemplos 3 exemplos de técnicas de reuso de software e defina­as.

Linhas de Produto de Software : É uma técnica de reuso baseado na reutilização sistemática de um conjunto de subsistemas de software e interfaces, através da exploração de pontos comuns e na gestão de variabilidade entre os produtos, que são estabelecidos sob uma estrutura comum a partir do qual um conjunto de produtos derivados pode ser desenvolvido e produzido de forma eficiente. LPS possuem arquitetura comum e componentes compartilhados.

Page 2: Lista de Reuso de Software

Desenvolvimento Baseado em Componentes: É uma técnica de desenvolvimento voltado para a construção de componentes, pedaços de software encapsulados (entidades executáveis e independentes) para que outros desenvolvedores possam utilizá­los, substituí­los ou modificá­los, com efeitos colaterais reduzidos.

Desenvolvimento de software orientado a aspectos: Caracteriza­se em uma sub­área da engenharia de software preocupada em desenvolver métodos, técnicas e ferramentas que auxiliem em todas as fases do desenvolvimento de software, levando em consideração a nova geração de tecnologias usadas para promover melhor separação de características, tais como programação orientada a aspectos e programação orientada a assuntos.

07 ­ Cite 3 características de um componente de software

Passível de composição Implantável Independente Padronizado Documentado

08 ­ Cite 3 casos em que você pode utilizar o reuso de software.

Quando as necessidades do cliente podem ser atendidas parcialmente, mas o sistema precisa ter uma certa flexibilidade.

A equipe possui conhecimentos e habilidade nas técnicas e metodologias de reuso em um domínio específico.

Domínio de aplicação que possuam produtos genéricos 09 ­ Descreva o processo de Engenharia de Software Baseado em Componentes.

É uma abordagem que permite simultaneamente reduzir custos, minimizar o tempo necessário para desenvolver um projeto e aumentar sua qualidade.

Como outros processos definidos para o desenvolvimento de software, processos baseados em componentes são divididos em fases que atendem às disciplinas comuns em outros processos (especificação e análises de requisitos, modelagem do sistema, dentre outras), entretanto, nos processos baseados em componentes, essas disciplinas são adaptadas para maximizar o reuso de componentes, podendo necessitar de atividades voltadas especialmente para isso.

A primeira atividade é o levantamento de requisitos. Após esta, deve­se identificar os componentes candidatos para a inclusão no sistema. Com os componentes escolhidos, deve­se revalidar os requisitos no intuito de alterá­los ou adaptá­los aos componentes selecionados. Por fim, o desenvolvimento do sistema pode ser feito através da utilização dos componentes selecionados e sua adaptação para as necessidades do sistema. 10 ­ Cite os elementos básicos de um componente, descreva­os.

Interfaces: Componentes são definidos pela especificação de suas interfaces. O modelo de

componente especifica como as interfaces devem ser definidas e os elementos, tais como

Page 3: Lista de Reuso de Software

nomes de operação, parâmetros e exceções, que devem ser incluídos na definição de interface.

Informações de uso: Para que os componentes sejam distribuídos e acessados remotamente, eles

precisam ter um nome exclusivo ou identificador associado a eles. Os quais precisam ser globalmente únicos.

Implantação de uso: O modelo de componente inclui uma especificação de como os componentes

devem ser empacotados para implantação como entidades executáveis independentes. 11 ­ Porque é importante que os componentes se baseiem em um modelo de componente padrão?

Esses modelos são importantes para que os desenvolvedores se assegurem de que os componentes podem operar entre si. Eles se destinam também aos fornecedores de infra­estrutura de execução de componentes que fornecem middlewares para apoiar a operação de componentes. 12 ­ Fale sobre a importância da adoção da Arquitetura Orientada a Serviços (SOA)?

Essa arquitetura permite que as empresas aumentem sua flexibilidade dos seus processos de forma contínua para que se adeque as necessidades do mercado e reajam rapidamente às mudanças. Outros pontos chave para sua adoção são: redução de custos operacionais, agilizar o negócio, redução de custos com integração, a ampliação de reutilização de ativos e redução de riscos. 13 ­ Quais as diferenças de uma arquitetura tradicional e uma orientada a serviço.

A arquitetura tradicional consiste na definição dos componentes de software, suas

propriedades externas, e seus relacionamentos com outros softwares enquanto a

orientada a serviço é um caminho para o desenvolvimento de sistemas distribuídos nos

quais os componentes desses sistemas são serviços dedicados. Outra diferença

importante é que a arquitetura orientada a serviço é independente da tecnologia, seus

sistemas devem ser escaláveis, ela prevê o reuso e o trata como uma de suas principais

características e se adapta mais facilmente as mudanças das necessidades do mercado o

que não ocorre em uma arquitetura tradicional.

Contudo a arquitetura tradicional é mais barata, não necessita de treinamento ou

processos muito específicos dependendo do contexto da aplicação e sua aplicação é

mais barata em contextos estáticos.

14 ­ Quais as principais atividades da engenharia de domínio? Descreva­as.

O processo de engenharia de domínio é composto por duas atividades principais: análise do domínio e o projeto do domínio.

Page 4: Lista de Reuso de Software

A análise do domínio define o escopo do domínio e define um conjunto de requisitos, configuráveis reutilizáveis para os sistemas no domínio.

A atividade de projeto do domínio desenvolve uma arquitetura comum para o sistema no domínio e elabora um plano de produção.

15 ­ Defina o que é uma Linha de Produto de Software

Linhas de Produto de Software é uma técnica de reuso baseado na reutilização sistemática de um conjunto de subsistemas de software e interfaces, através da exploração de pontos comuns e na gestão de variabilidade entre os produtos, que são estabelecidos sob uma estrutura comum a partir do qual um conjunto de produtos derivados pode ser desenvolvido e produzido de forma eficiente.

16 ­ Quais as Vantagens de se utilizar uma LPS?

Redução dos Custos de Desenvolvimento Aumento da Qualidade Redução do time­to­market Maior Confiabilidade no produto

17 ­ Descreva o ciclo de vida de uma LPS. Descreva as atividades e quais os artefatos que são gerados pela LPS.

Uma LPS é separada em dois processos: Engenharia de domínio: Este processo é responsável por estabelecer a

plataforma reutilizável e, assim, definir os pontos comuns e variáveis da linha de produtos.

Engenharia de aplicação: Este processo é responsável por derivar aplicativos de linha de produtos a partir da plataforma criada na engenharia de domínio. Ela explora a variabilidade da linha de produto e assegura a ligação correta da variabilidade de acordo com as necessidades específicas dos aplicativos.

O processo de engenharia de domínio é composto por quatro

sub­processos­chave: análise de domínio, arquitetura de domínio, implementação de domínio, e teste de domínio.

A análise de domínio engloba todas as atividades para elicitar e documentar os requisitos comuns e variáveis da linha de produtos.

O sub­processo de arquitetura de domínio abrange todas as atividades para a definição da arquitetura de referência da linha de produtos. A arquitetura de referência fornece uma estrutura de alto nível comum para todos os aplicativos de linha de produto.

O sub­processo de implementação de domínio lida com o projeto detalhado e da implementação de componentes de software reutilizáveis.

Teste de domínio é responsável pela validação e verificação de componentes reutilizáveis. Testes Domínio testa os componentes contra a sua especificação, ou seja, requisitos, arquitetura e artefatos de design. Além disso, o teste de domínio desenvolve artefatos de teste reutilizáveis para reduzir o esforço para testes de aplicativos.

Page 5: Lista de Reuso de Software

Artefatos de domínio: Roteiro do produto, modelo de variabilidade do domínio,

requisitos do domínio, arquitetura do domínio, artefatos de implementação do domínio e artefatos de teste do domínio

O processo de engenharia de aplicação é composta pela análise de produto,

arquitetura de produto, implementação de produto e testes de produto. A análise de produto engloba todas as atividades para desenvolver a

especificação de requisitos de aplicação. O número de artefatos de domínio reutilizaveis depende dos requisitos da aplicação.

O sub­processo de arquitetura do produto abrange as atividades para a produção da arquitetura do produto. Arquitetura do produto usa a arquitetura de referência para instanciar a arquitetura do produto. Ele seleciona e configura as peças necessárias de arquitetura de referência e incorpora adaptações específicas da aplicação.

O sub­processo de implementação do produto cria o produto. As principais preocupações são a seleção e configuração de componentes de software reutilizáveis, bem como a realização de ativos específicos da aplicação. Ativos específicos reutilizáveis são montados para formar o produto.

O sub­processo de teste de produto compreende as atividades necessárias para validar e verificar uma demanda contra a sua especificação.

Artefatos de produto: Modelo de variabilidade do produto, requisitos do produto,

arquitetura do produto, artefatos de implementação do produto, artefatos de teste do produto.

18 ­ Defina variabilidade e quais os componentes da variabilidade em uma LPS.

Variabilidade é a capacidade de mudar ou personalizar um sistema de acordo com suas possibilidades.

Componentes da varibilidade em uma LPS: Ponto de Variabilidade Variantes Resolução de uma variante

19 ­ O que é uma feature?

Uma unidade lógica de comportamento especificado por um conjunto de requisitos funcionais e não funcionais 20 ­ Quais os tipos de features que compõe um modelo de features. Defina­as.

Obrigatória: A feature tem de estar presente em todos os membros da linha de produtos.

Opcional: A feature pode ou não estar presente em um membro da linha de produtos.

Alternativa: É uma feature que é composta de um conjunto de features das quais se escolhe uma ou mais, devendo­se indicar se é necessário escolher apenas uma ou se se pode escolher mais que uma. Nestas features é necessário fazer a

Page 6: Lista de Reuso de Software

distinção de alternativas OR, que permite mais do que uma feature, e XOR, que mostra a exclusão mútua.

21 ­ Elabore um modelo de features como no mínimo 10 features para o domínio de aplicativo móvel de comunicação (exemplos: Messenger, whatsapp, hangout). O modelo deve ter: features obrigatórias, features opcionais, feature XOR e features OR. O modelo deve conter pelo menos uma restrição requerida e um

a restrição de exclusão.

22 ­ A partir do modelo de features definido na questão anterior, selecione o conjunto de features de pelo menos 5 produtos.

Produto 1: SinglePerson, Public, Contacts, ConversationHistory, Number, Name, Audio, Vibrate, Text;

Produto 2: Group, Public, Contacts, ConversationHistory, Name, Audio, Vibrate,

Text, Multimedia; Produto 3: SinglePerson, Group, Icon, Public, Contacts, ConversationHistory,

Name, Number, Help, Audio, Vibrate, Light, Rightone, Calls, Text, Multimedia; Produto 4: SinglePerson, Group, Private, Contacts, ConversationHistory, Help,

Audio, Vibrate, Text; Produto 5: SinglePerson, Group, Private, Contacts, ConversationHistory, Audio,

Vibrate, Light, Multimedia; 23 ­ Quais os tipos de abordagens para construção de uma LPS? Descreva­as.

Pró­ativa: Com esta abordagem os ativos base são desenvolvidos primeiro para futuro produtos. Aqui são considerados todos os produtos a serem gerados previamente fazendo­se um planejamento inicial completo.

Extrativa: Nesta abordagem os ativos base já existem, bem como uma versão da

linha de produtos, o que acontece é a evolução desta linha realizando­se incrementos na mesma à medida que novos requisitos aparecem.

Reativa: Com esta abordagem, inicialmente são analisados quais os produtos já

existentes e como eles são estruturados de modo a extrair as comunalidades e

Page 7: Lista de Reuso de Software

variabilidades destes para então poder se derivar uma versão inicial da Linha de Produtos. 24 ­ Cite exemplo de 3 medidas de reuso de software e explique­as.

Relative Cost of Reuse (RCR) ­ Custo Relativo ao Reuso: Reuse Frequency (RF) ­ Frequência de Reuso Reuse Percent (RP) ­ Percentual de Reuso

25 ­ O que é uma linha de processo de software?

É uma família de processos de software com um conjunto gerenciado de características que satisfazem necessidades específicas de uma organização e que são desenvolvidos a partir de um conjunto de processos básicos comuns 26 ­ Compare os conceitos de linha de produto de software e linha de processos de software.

Adaptação da técnica já existente de LPS poderia ser aplicado a processos, assim uma linha de processo de software é um conjunto de processos que compartilham um conjunto de características comuns e variáveis, e são desenvolvidos a partir de artefatos que podem ser combinados entre si afim de adaptar o processo. A LPS é um conjunto de aplicações com uma arquitetura comum e componentes interligados onde os componentes podem ser adaptados afim de gerar novos produtos especializados. 27 ­ Qual a motivação de uma empresa utilizar uma linha de processos de software?

Demanda crescente pela definição e melhoria contínua de processos para promover o desenvolvimento produtivo de software de qualidade 28 ­ Quais as características de um padrão de software?

Deve ser uma solução para um problema em um contexto Você deve ser capaz de dizer ao solucionador do problema o que fazer e como

resolver o problema Deve ser maduro, uma solução provada A solução deve ser construída dentro da ótica do solucionador do problema e pode

ser implementada milhões de vezes sem se repetir Deve ser capaz de se reproduzir

29 ­ Cite e descreva os componentes essenciais para definição de um padrão de software.

Nome : Nomes de padrões devem se tornar parte do vocabulário do domínio Contexto : Ajuda a ter uma visão abrangente de onde o problema surge

expressando o seu início, a sua essência e o seu corpo Problema : Problema a ser resolvido descrito claramente. Expresso por uma

simples pergunta ou por uma formulação resumida do problema Solução : Deve descrever claramente o que é necessário para resolver o problema Usos conhecidos : Exemplos de aplicações do padrão em sistemas reais

Page 8: Lista de Reuso de Software

30 ­ Identifique e descreva um padrão de alguma fase do ciclo de desenvolvimento de software com os seguintes itens: nome do padrão, contexto, problema e solução. 31 ­ Qual a relação entre o reuso e os modelos de qualidade de processos?