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