Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Processos de engenharia de 
software baseada em componentes
Apresentação
O desenvolvimento de software é uma tarefa custosa, complexa e que tem muitos detalhes. 
Visando à melhoria no processo de desenvolvimento e na produtividade, a engenharia de software 
baseada em componentes propõe a reutilização de partes de sistemas, evitando, assim, o 
retrabalho. Dessa forma, podem-se alcançar melhores resultados no processo de software, 
reduzindo os custos, diminuindo prazos de entrega e também a complexidade em certas etapas do 
desenvolvimento.
Nesta Unidade de Aprendizagem, são apresentados os processos de engenharia de software 
baseada em componentes, bem como suas abordagens e as diferenças em relação a processos sem 
componentes.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Identificar os processos básicos da engenharia de software baseada em componentes.•
Explicar o processo de desenvolvimento para reúso.•
Diferenciar o desenvolvimento com reúso do desenvolvimento de software original.•
Desafio
Os processos de software com base em componentes têm como premissa a reutilização de software 
para que os custos de produção de determinado sistema possam ser reduzidos, evitando retrabalho 
ao ter que redesenvolver uma solução. Em uma empresa de desenvolvimento de sistemas, há 
diversos componentes de software disponíveis em sua própria biblioteca. Observe a situação a 
seguir.
Sendo assim, descreva a abordagem correta a ser seguida para que esse componente já selecionado 
possa fazer parte do sistema e resolver o problema da equipe.
Infográfico
No processo de software baseado em componentes para reúso, deve-se selecionar adequadamente 
aquele componente que pode ser integrado e, principalmente, que implementa a solução desejada. 
O processo de escolha tem etapas bem definidas e, para que haja menor risco de uma seleção 
errônea, seguir cada etapa é fundamental.
Neste Infográfico, você vai ver o passo a passo do processo de busca e seleção de um componente 
para produzir um software.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/5a31ad71-9261-4e69-9d38-b4916df0e305/aa20e600-e65a-4cb7-bb8f-2f02f983061b.jpg
Conteúdo do Livro
Em engenharia de software, diversos estudos são realizados visando a obter melhorias nos 
processos de desenvolvimento. Portanto, existem diferentes metodologias e abordagens que 
objetivam o aumento de produtividade e, consequentemente, a redução de custos. Entre elas, está 
a engenharia de software baseada em componentes. O principal objetivo dessa metodologia é o 
reúso de componentes de software já desenvolvidos, com vistas a evitar retrabalho e fazer com que 
os projetos de desenvolvimento de software sejam menos custosos, mais ágeis e seguros.
No capítulo Processos de engenharia de software baseada em componentes, base teórica desta 
Unidade de Aprendizagem, você vai ver como são iniciados e gerenciados esses processos, bem 
como suas abordagens e diferenças em relação ao software original.
Boa leitura.
DESENVOLVIMENTO 
ORIENTADO 
A REÚSO DE 
SOFTWARE
OBJETIVOS DE APRENDIZAGEM
 > Identificar os processos básicos da engenharia de software baseada em 
componentes.
 > Explicar o processo de desenvolvimento para reúso.
 > Diferenciar o desenvolvimento com reúso do desenvolvimento de software 
original.
Introdução
Os componentes de software possibilitam desenvolver e reutilizar pequenas 
soluções, que funcionam como caixas-pretas, em que há uma interface de 
entrada e saída de dados, enquanto os detalhes de implementação são es-
condidos de quem a está utilizando.
Como em todo processo de software, o desenvolvimento baseado em com-
ponentes apresenta particularidades. É necessário compreender quando e como 
utilizá-los, qual é a maneira correta de acoplar componentes ao seu sistema, 
bem como identificar a adequação de componentes ao requisito do sistema.
Processos de 
engenharia de 
software baseada 
em componentes
João Paulo Brognoni Casati
Neste capítulo, vamos abordar os processos de engenharia de software 
baseada em componentes (CBSE, do inglês component-based software 
engineering), o processo de desenvolvimento de componentes para reúso e os 
principais aspectos que diferenciam esses processos dos demais.
Processos de software baseado em 
componentes
Geralmente complexos e custosos, os processos de desenvolvimento de 
software trazem uma série de particularidades advindas dos requisitos cole-
tados na etapa de análise de sistemas. Diversas técnicas são desenvolvidas 
visando à melhoria dos processos e ao aumento da produtividade. Uma delas 
é a CBSE.
O desenvolvimento baseado em componentes conta com duas vertentes 
básicas, que, de acordo com Kotonya (2003), são as seguintes:
1. desenvolvimento para reúso de software;
2. desenvolvimento com reúso de software.
Há grandes diferenças de abordagem nessas duas vertentes, visto que 
seus objetivos específicos são completamente diferentes. Porém, como pro-
cessos de engenharia de software, elas estão ligadas ao mesmo objetivo final: 
reutilizar componentes de software.
No desenvolvimento para reúso de software, o foco é a criação de com-
ponentes. Já no desenvolvimento com reúso de software, o foco está na 
utilização de componentes já desenvolvidos (SOMMERVILLE, 2011).
Quando se vai desenvolver um sistema e pensa-se em utilizar componentes 
para que a produtividade aumente, o foco está no desenvolvimento com 
reúso de software. Portanto, a arquitetura do sistema é pensada para facilitar 
a acoplagem de componentes desenvolvidos por terceiros, a fim de suprir 
necessidades detectadas na etapa de coleta de requisitos, com menor esforço.
Para facilitar o entendimento, vamos fazer uma analogia com a construção 
de uma casa. Buscando um processo mais rápido, barato e confiável, são 
usados componentes prontos, como, por exemplo:
 � portas e janelas já testadas e aprovadas pelo fabricante, pois, assim, 
o construtor não precisa desenvolvê-las para a construção — ele apenas 
utiliza algo pronto que atenda às suas necessidades;
Processos de engenharia de software baseada em componentes2
 � componentes de acabamento (p. ex.: pisos, lustres, canos, cabos e 
equipamentos elétricos, etc.) certificados que atendam aos requisitos 
do projeto de construção, contanto que tenham sido devidamente 
testados e possam trazer segurança ao produto final.
Encontrar componentes de qualidade não é uma tarefa fácil. Há de se 
pesquisar com cautela e verificar a eficiência e a eficácia do componente 
a ser utilizado/adquirido. Quando se trata de componentes de software, 
é necessário considerar muitos processos, dentre os quais, baseando-se na 
Figura 1, podemos destacar os apresentados a seguir.
 � Deve-se testar e verificar se o componente realmente cumpre o objetivo 
para o qual foi desenvolvido, se não apresenta falhas de segurança e se 
está apto a ser utilizado no software que está sendo desenvolvido. Esse 
processo é realizado pelo certificador de componente, que, idealmente, 
deve ser uma pessoa que não o desenvolvedor. No entanto, muitas 
empresas designam essa tarefa ao desenvolvedor do componente.
 � A aquisição de componentes pode estar presente em todo o processo. 
Caso seja necessária a compra de um componente, este pode servir 
para implementar o requisito de forma integral, como fazer parte de 
um novo componente, mais complexo.
 � Para que um componente seja devidamente gerenciado, é necessário 
que ele seja catalogado, armazenado e disponibilizado. Assim, seu 
potencial de reúso não fica comprometido.
Figura 1. Processos CBSE: aquisição, gerenciamento e certificação de componentes.
Fonte: Adaptada de Sommerville (2011).
Analista de domínio,
projetista,
implementador,
mantenedor,
analista de mercado
Especificador,
projetista,
integrador,
mantenedor
Bibliotecário,
vendedor,
agente
CBSE
para reúso
CBSE
com reúsoAquisição de 
componentes
Certificação de
componentes myri Bibliotecário
Fonte
externa
Repositório
de componentes
Certificador
local ou externo
Processos de engenharia de software baseada em componentes 3
As duas abordagens aqui descritas podem ser utilizadas no desenvol-
vimento de softwares. Para algumas funcionalidades, encontram-se com-
ponentes eficientes que podem perfeitamente ser usados para aumentar a 
produtividade, ao passo que, para outras funcionalidades, pode não haver 
um componente apto disponível.
Nesse último caso, a empresa pode optar por desenvolver a funciona-
lidade para a qual não encontrou um componente viável de forma comum, 
ou desenvolver um componente que atenda a essa necessidade e, quem 
sabe, à de futuros softwares que vierem a apresentar o mesmo requisito 
(PRESSMAN; MAXIM, 2021).
A reengenharia de software baseada em componentes (RBC) diz 
respeito à reimplementação de software legado em uma nova lin-
guagem orientada a componentes. Desse modo, partes do software que antes 
não poderiam ser reutilizadas se tornam componentes reusáveis. O uso dessa 
abordagem oferece duas vantagens: modernização de software legado e aumento 
do potencial de reúso (PRADO, 2005).
Geralmente os componentes desenvolvidos por uma organização são 
armazenados e disponibilizados em repositórios de componentes, que in-
cluem os componentes e as informações sobre seu uso (SOMMERVILLE, 2011).
O desenvolvimento de software baseado em componentes traz uma série 
de benefícios, dentre os quais se destacam os seguintes (BARROCA; GIMENES; 
HUZITA, 2005):
 � redução do custo e do tempo de desenvolvimento, evitando retrabalho;
 � aumento da qualidade, pois os componentes são previamente utili-
zados e testados;
 � facilidade de manutenção e atualização, permitindo que se localize 
mais facilmente onde as modificações devem ser realizadas.
Muitas vezes, o processo de software baseado em componentes pode ser 
considerado de alta complexidade. Porém, o processo todo pode se tornar 
mais coeso e produtivo ao se utilizar a abordagem correta e construir os 
componentes visando a seu reúso, ponderando sua real necessidade.
Processos de engenharia de software baseada em componentes4
A seguir, vamos apresentar a abordagem de desenvolvimento de compo-
nentes para serem reutilizados em softwares.
Desenvolvendo software para reúso
Na CBSE, uma das principais abordagens é o desenvolvimento para reúso, 
que diz respeito à criação de componentes que podem ser utilizados para 
resolver problemas de outros softwares.
De acordo com Sommerville (2011), o uso do processo de desenvolvimento 
de um componente é mais custoso que desenvolver a funcionalidade reque-
rida sem a preocupação do reúso. Isso se dá porque, quando se está criando 
um componente, deve-se pensar em muitos aspectos que possibilitem sua 
utilização em sistemas que podem ser significativamente diferentes.
A especificidade do software a ser desenvolvido contrasta com a neces-
sidade de que um componente reutilizável seja uma solução mais genérica 
que atenda a uma gama maior de problemas e que possa ser configurável, 
possibilitando sua utilização em outros softwares.
Outro problema abordado por Sommerville (2011) é que o nível de abstra-
ção da solução pode variar, fazendo com que um componente se torne mais 
específico para um dado problema, limitando sua possibilidade de reúso.
Como analogia, pensemos em uma cama. Para alguém muito mais alto 
que a maioria das outras pessoas (com mais de 2 m de altura, por exemplo), 
uma cama convencional não é confortável. Há, então, uma demanda para a 
criação de uma cama com medidas mais amplas. Porém, esse projeto não 
é tão reutilizável (isto é, viável de se produzir em larga escala) quanto o de 
uma cama com medidas padronizadas, onde a grande maioria das pessoas 
se sente confortável.
Quanto maior for a complexidade do componente, mais difícil será 
seu entendimento. Deve haver um equilíbrio entre complexidade e 
usabilidade. A usabilidade refere-se à facilidade de configuração e adequação do 
componente ao software, ao passo que a complexidade diz respeito à natureza 
do componente que pode ser utilizado para atender a uma maior quantidade de 
requisitos ou a requisitos mais complicados (PRESSMAN; MAXIM, 2021).
Processos de engenharia de software baseada em componentes 5
Apesar de o processo baseado em componentes para reúso ter o objetivo 
de tornar projetos de software mais produtivos e reduzir seus custos, há um 
aumento da complexidade e do nível de abstração quando ele é utilizado 
(PRESSMAN; MAXIM, 2021). Sendo assim, as especificidades do software podem 
ou não trazer a necessidade de se despenderem mais recursos para tornar 
uma solução de software um componente reutilizável.
Há uma série de alterações a serem feitas no componente visando a torná-
-lo mais reusável, como as apresentadas por Sommerville (2011):
 � remover especificidades;
 � tornar nomes mais gerais;
 � adicionar funcionalidades para aumentar a cobertura funcional;
 � tratar as exceções em todos os métodos;
 � adicionar interface configurável visando à adaptação do componente 
a diferentes situações;
 � aumentar a independência integrando componentes.
O problema de haver muitas exceções para serem tratadas é que elas au-
mentam a complexidade do componente, o que o torna de difícil compreensão 
e faz com que sua configuração passe a ser mais custosa (SOMMERVILLE, 2011).
A frequência com que um problema é encontrado dentro de um ambiente 
de desenvolvimento de software também é primordial para que se decida 
transformar a solução em um componente (PRESSMAN; MAXIM, 2021).
Há de se ponderar também entre o reúso e a usabilidade de um compo-
nente. Por se tratar de algo que será objeto de reúso, uma interface genérica 
deve ser construída. Segundo Sommerville (2011), essa interface deve fornecer:
 � simplicidade;
 � fácil compreensão;
 � operações que forneçam interação para diferentes possibilidades de 
reúso;
 � equilíbrio entre complexidade e usabilidade.
Sistemas legados também são fontes interessantes de soluções que podem 
se tornar componentes. É comum que funcionalidades desse tipo de sistema 
se tornem componentes para um sistema mais moderno que venha a ser 
desenvolvido (BARROCA; GIMENES; HUZITA, 2005).
Processos de engenharia de software baseada em componentes6
O Google ([20--]) tem diversos componentes que podem ser utilizados 
em softwares, como, por exemplo, gráficos que permitem visualizar 
dados em sistemas. Esses gráficos são componentes configuráveis e reutili-
záveis que podem ser adaptados de maneira rápida, sem muito esforço e com 
pouco custo, reduzindo a despesa de criação de gráficos visuais em sistemas 
computacionais.
Depois de concluída a etapa de desenvolvimento do componente, este 
deve ser testado, certificado e gerenciado. Os testes são realizados, e, então, 
o componente é certificado. Essa etapa utiliza um processo que é definido 
pela empresa desenvolvedora do componente, não sendo comumente exe-
cutada pelo desenvolvedor. O gerenciamento objetiva armazenar e catalogar 
o componente, de modo a facilitar a sua descoberta por possíveis utilizado-
res, além de manter histórico e controle sobre suas versões e atualizações 
(BARROCA; GIMENES; HUZITA, 2005).
É comum que não se tenha acesso ao código-fonte do componente, mas 
este pode ter licença de código aberto, o que possibilita maior flexibilidade 
de configuração, distribuição e entendimento pelos utilizadores (SOMMER-
VILLE, 2011).
O papel dos componentes é auxiliar a arquitetura de software a alcançar 
os objetivos quanto ao desenvolvimento de software. Sendo assim, eles 
são parte integrante e devem ser desenvolvidos com a possibilidade de se 
comunicar com os demais itens do sistema (PRESSMAN; MAXIM, 2021).
Na próxima seção, vamos apresentar a abordagem de engenharia de 
software com reúso, focando o aprendizado na utilização de componentes 
prontos em desenvolvimento de software.
Desenvolvendo softwarecom reúso
Na engenharia de software convencional, o termo “componente” é utilizado 
para denominar estruturas internas do sistema que executam uma lógica 
de processamento e provêm uma interface de chamada para sua execução 
(PRESSMAN; MAXIM, 2021).
Quando o objetivo é desenvolver um software que fará uso de componentes 
reutilizáveis, deve-se pensar o processo desde o início. Na Figura 2, é exibido 
o esquema do processo de desenvolvimento com reúso.
Processos de engenharia de software baseada em componentes 7
Figura 2. Processo CBSE: com reúso.
Fonte: Adaptada de Sommerville (2011).
Esboçar
requisitos
de sistema
Identificar
componentes
candidatos
Modificar 
requisitos de acordo
com componentes
descobertos
Projetar
arquitetura
Identificar
componentes
candidatos
Compor
componentes para
criar sistemas
Como pode ser observado nos blocos exibidos na Figura 2, o processo de 
software baseado em componentes com reúso deve ser pensado desde o 
início do projeto (em que se esboçam os requisitos do sistema).
Um segundo passo seria identificar possíveis componentes para que, 
então, se revisem os requisitos do sistema. Sim, talvez seja necessário, ou 
viável do ponto de vista de custo, que alguns requisitos sejam revistos apenas 
baseando-se no que componentes podem oferecer em relação ao aumento 
da produtividade.
A composição de componentes também é uma opção válida nesse caso. 
Portanto, as duas abordagens se conversam e podem ser aplicadas em con-
junto — aliás, um componente pode ter outros componentes menores como 
partes de si (BARROCA; GIMENES; HUZITA, 2005).
É importante escolher corretamente os componentes e verificar sua 
confiabilidade. Caso seja necessária uma adaptação do componente, 
deve-se adicionar o custo do software de integração ao projeto.
Para diferenciar a engenharia de software convencional da baseada em 
componentes com reúso, Sommerville (2011) apresenta alguns aspectos im-
portantes a respeito de desenvolvimento com componentes. Veja a seguir.
Processos de engenharia de software baseada em componentes8
1. Há incentivo para que os stakeholders sejam mais flexíveis em relação 
aos requisitos, pois há de se ter um conjunto de requisitos definidos 
antes do desenvolvimento do sistema, visto que é necessário identificar 
componentes para uso no sistema. Trata-se de uma abordagem que se 
diferencia consideravelmente da engenharia de software incremental.
2. Os requisitos geralmente são moldados de acordo com os componentes 
que estão disponíveis para o desenvolvimento do software. Nesse caso, 
pode ser necessário o convencimento dos usuários.
3. Mudanças nos requisitos podem ocorrer devido à incompatibilidade 
entre componentes que tenham sido selecionados para compor o 
software.
4. Muitas vezes são necessários adaptadores, ou seja, camadas de soft-
ware que façam com que componentes incompatíveis possam ser 
integrados.
São comuns camadas de software de integração entre componentes ou 
entre um componente e o sistema, pois nem sempre a linguagem de programa-
ção, o paradigma e o formato dos dados de entrada e saída são padronizados.
As camadas de integração são pequenos softwares que fazem conversão 
de dados, readequação ou até mesmo algum processamento mais complexo 
que possibilite que o componente “converse” com o restante do sistema 
(SPAGNOLI; BECKER, 2003).
Além das diferenças citadas, pode-se também observar que a adoção 
da CBSE implica um esforço para encontrar, testar e adquirir componentes. 
Portanto, é necessário que se avalie a real necessidade de se utilizar esse 
tipo de engenharia.
Como você pôde compreender neste capítulo, o processo de CBSE tem 
como objetivo o reúso de peças de software que podem ser integradas a 
diferentes sistemas. Visando tanto ao desenvolvimento dessas peças quanto à 
sua utilização, o intuito é que haja melhora em aspectos como produtividade, 
segurança, desempenho e controle.
Referências
BARROCA, L.; GIMENES, I. M. S.; HUZITA, E. H. M. Desenvolvimento baseado em com-
ponentes. In: GIMENES, I. M. S.; HUZITA, E. H. M. (org.). Desenvolvimento baseado em 
componentes: conceitos e técnicas. Rio de Janeiro: Ciência Moderna, 2005. p. 27-56.
GOOGLE. Google charts. [Mountain View]: Google, [20--]. Disponível em: https://deve-
lopers.google.com/chart. Acesso em: 24 set. 2021.
Processos de engenharia de software baseada em componentes 9
KOTONYA, G. The CBSE process: issues and future visions. In: CBSENET WORKSHOP, 
2., 2003, Budapeste. Proceedings [...]. [S. l.: s. n.], 2003.
PRADO, A. F. Reengenharia de software baseada em componentes. In: GIMENES, I. M. 
S.; HUZITA, E. H. M. (org.). Desenvolvimento baseado em componentes: conceitos e 
técnicas. Rio de Janeiro: Ciência Moderna, 2005. p. 105-166.
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 
9. ed. Porto Alegre: AMGH, 2021.
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
SPAGNOLI, L. A.; BECKER, K. Um estudo sobre o desenvolvimento baseado em compo-
nentes. Porto Alegre: PUCRS, 2003. (Technical Report Series, n. 26).
Leituras recomendadas
COCKBURN, A. Escrevendo casos de uso eficazes: um guia prático para desenvolvedores 
de software. Porto Alegre: Bookman, 2005.
VETORAZZO, A. R. Engenharia de software. Porto Alegre: Sagah, 2018.
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os edito-
res declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Processos de engenharia de software baseada em componentes10
Dica do Professor
O conceito de generalização é muito utilizado nos processos de engenharia de software baseada em 
componentes, sendo que sua função primordial é tornar um componente reusável. A tomada de 
decisão sobre criar ou não um componente é baseada não só em seu potencial de reutilização, mas 
também em números concretos de custos.
Nesta Dica do Professor, você vai ver a junção desse conceito com a ponderação sobre quando se 
deve criar um componente de uma solução de software visando à redução de custos de forma geral.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/4d91d91f8deb3aa5cd588e4aeb332557
Exercícios
1) Nos processos de engenharia de software baseados em componentes, é possível fazer uma 
divisão macro em relação ao foco de sua aplicação. Dessa forma, surgem em suas diferentes 
vertentes abordagens particularmente diferentes.
Existem duas vertentes principais relacionadas aos processos de engenharia software 
baseados em componentes. Quais são elas?
A) Desenvolvimento para reúso de software e desenvolvimento com reúso de software.
B) Desenvolvimento com componentização e desenvolvimento para componentização.
C) Desenvolvimento para reúso e desenvolvimento de componentes
D) Desenvolvimento com reúso e reutilização de componentes.
E) Desenvolvimento de componentes reutilizáveis e testes de componentes.
2) No processo de software baseado em componentes, há diferentes abordagens de utilização, 
dependendo do objetivo – reúso, redução de custos e aumento de produtividade.
Na abordagem de desenvolvimento para reúso de software, o foco está:
A) no uso de componentes de terceiros para diminuir a complexidade do software.
B) na criação de componentes, visando a sua reutilização posterior.
C) na flexibilização dos requisitos para uso de um maior número de componentes.
D) na redução de custos relacionados ao desenvolvimento do software, reduzindo a quantidade 
de componentes a serem criados.
E) no aumento de custos de produção do software, visando à utilização de componentes de 
terceiros.
Um componente de software deve ser construídocom o objetivo de reduzir custos do 
desenvolvimento do sistema. Sendo assim, deve haver a possibilidade de sua utilização em 
outros softwares que possam ser desenvolvidos.
3) 
Para aumentar o potencial de reúso de um componente, as seguintes ações devem ser 
realizadas:
I. Tornar os nomes mais gerais.
II. Remover especificidades.
III. Inserir código específico de um sistema.
IV. Adicionar interface configurável.
Assinale a alternativa que indica apenas as ações corretas.
A) I, II e III.
B) I, III e IV.
C) I, II e IV.
D) II, III e IV.
E) I e III.
4) Componentes de software, geralmente, têm complexidade elevada. Para facilitar o reúso de 
um componente, é preciso criar uma interface genérica para que outros softwares acessem 
sem necessidade de muita adaptação.
Os principais conceitos buscados em uma interface de componente são:
I. Fácil compreensão dos parâmetros de configuração.
II. Pouca parametrização, engessando a parte configurável do componente.
III. Facilidade de uso, reduzindo a quantidade de possibilidades de aplicação do componente.
IV. Complexidade mantida em níveis controlados.
Assinale a alternativa que indica apenas os itens corretos.
A) I e IV.
B) I e III.
C) II e III.
D) II e IV.
E) I e II.
5) Para que um componente de software apresente segurança na sua utilização, assim como 
eficiência e eficácia na solução do problema (implementação do requisito), é necessária sua 
certificação.
Em relação à certificação de componentes, avalie as afirmativas a seguir:
I. O próprio desenvolvedor do componente pode fazer a certificação.
II. Apesar de acontecer com frequência, o desenvolvedor não deve ser o certificador do 
componente.
III. Certificadores externos podem ser requeridos para que haja uma visão imparcial sobre o 
desenvolvimento.
IV. Certificadores internos participam do processo de certificação de um componente.
V. Os stakeholders devem participar do processo de certificação, visto que são os 
interessados no desenvolvimento do software.
Assinale a alternativa que indica apenas as afirmativas corretas.
A) I, II e III.
B) III, IV e V.
C) II, III e IV.
D) I, III e IV.
E) II, IV e V.
Na prática
A criação de um componente de software sempre tem como objetivo trazer benefícios para a 
empresa desenvolvedora, seja na redução de custos, seja no encurtamento de prazos e até no 
aumento da qualidade do produto. Saber quando criar um componente de software faz parte de um 
processo de decisão, para a qual devem ser considerados vários fatores: o potencial de reúso do 
componente; a análise comparativa do custo de desenvolvimento; e o benefício que ele pode trazer 
a longo prazo.
Confira, em Na Prática, o processo de decisão para a criação de um componente para uma solução 
comum entre vários projetos. 
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/51f2a228-7384-4761-8a9d-4eb9bb56691d/e4ca2e75-d4eb-40bc-824b-5b23bde7dccc.jpg
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Breve estudo sobre engenharia de componentes
Este texto traz diversas informações acerca de componentes. Além disso, conta com informações 
técnicas sobre desenvolvimento de software em geral.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Engenharia de software baseada em componentes (CBSE)
Este vídeo traz informações resumidas sobre o processo de software baseado em componentes de 
modo geral. Além disso, é abordada, entre outros temas, a modelagem e exemplificado um sistema 
com base em componentes, com um comparativo interessante entre objetos e componentes.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Desenvolvimento de software I – Conceitos básicos [série 
Tekne/IFRS]
Este livro traz abordagens e processos básicos, visando à revisitação de alguns conceitos de suma 
importância.
Conteúdo interativo disponível na plataforma de ensino!
 https://www.devmedia.com.br/breve-estudo-sobre-engenharia-de-componentes/19139?v=1890764505
https://www.youtube.com/embed/gu3aHklLOqQ

Mais conteúdos dessa disciplina