Componente de software

Componentes de Software é o termo utilizado para descrever o elemento de software que encapsula uma série de funcionalidades. Um componente é uma unidade independente, que pode ser utilizado com outros componentes para formar um sistema mais complexo.

A OMG define componente como "uma parte modular, possível de ser implantada e substituível de um sistema que encapsula implementação e expõe um conjunto de interfaces".

Em programação orientada a objetos um componente é a classe que implementa uma interface e é autônomo em relação a outros componentes do sistema.

Um sistema de software pode ser formado inteiramente somente por componentes, pois estes se interligam através de suas interfaces. Este processo de comunicação entre componentes é denominado composição.

PS: um objeto não implementa uma interface; um objeto é a instância de uma classe que implementa uma interface.

Modelagem

Um exemplo de modelagem de componentes independentes de um sistema de reservas em UML

Design de componentes é frequentemente modelado visualmente. Em UML 2.0 um componente é exibido como um retângulo, e uma interface é mostrada como um pirulito para indicar uma interface provida e como um ponto de conexão para indicar o consumo dessa interface.

História

A ideia de componentes de software reutilizáveis foi proposta por Douglas McIlroy em sua apresentação na Conferências de Engenharia de Software da OTAN em 1968. (Um objetivo daquela conferência foi resolver a chamada crise do software daquele tempo.) Na década de 1970, McIlroy colocou essa ideia em prática com a adição de pipelines ao sistema operacional Unix.

Brad Cox [en] redefiniu o conceito de um componente de software na década de 1980. Ele tentou criar uma infraestrutura e mercado para componentes reusáveis de terceiros inventando a linguagem de programação Objective-C.

A IBM introduziu o System Object Model [en] (SOM) no início da década de 1990. A Microsoft introduziu o Component Object Model (COM) no início da década de 1990. A Microsoft construiu muitas tecnologias de componentes específicos de domínio em COM, incluindo DCOM OLE e ActiveX.

Referências

  1. ↑ McIlroy, Malcolm Douglas (janeiro de 1969). «Mass produced software components» (PDF). Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968. Scientific Affairs Division, NATO. p. 79
  2. ↑ Rainer Niekamp. «Software Component Architecture» (PDF). Gestión de Congresos - CIMNE/Institute for Scientific Computing, TU Braunschweig. p. 4. Consultado em 29 de julho de 2011. Cópia arquivada (PDF) em 28 de março de 2012. The modern concept of a software component largely defined by Brad Cox of Stepstone, => Objective-C programming language
  3. ↑ Brad Cox (1991). Object Oriented Programming: An Evolutionary Approach. [S.l.]: Addison Wesley. ISBN 0-201-54834-8
  4. ↑ Raphael Gfeller (9 de dezembro de 2008). «Upgrading of component-based application». HSR - Hochschule für Technik Rapperswill. p. 4. Consultado em 29 de julho de 2011. 1990, IBM invents their System Object Model. 1990, as a reaction, Microsoft released OLE 1.0 OLE custom controls (OCX)[ligação inativa]

Ver também

Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.