Jump to content
  • Advertisement
Sign in to follow this  
gretty

Software that use Component Based Architecture

This topic is 907 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

What applications/software products use Component Based Architecture (or its *variants)? Obviously its very common in game engines and games and I'm aware of Javabeans, COM using it.

 

What other well known software products/applications use Component Based Architecture? What kinds of applications are best suited towards CB architectures? For example; maybe ATM software, etc.

 

*Event Driven Architecture, Service Oriented Architecture

 

Share this post


Link to post
Share on other sites
Advertisement
Object oriented design is based on components, and OO is applicable almost everywhere, so components are applicable almost everywhere.

Share this post


Link to post
Share on other sites

Object oriented design is based on components, and OO is applicable almost everywhere, so components are applicable almost everywhere.

 

Thanks for your answer. I have made a CBA API and I am looking for ideas of applications to create with it. Do you know of any companies or applications that predominantly use CBA in  its 'pure' form (ie not as a base for an OOP application)?

Edited by gretty

Share this post


Link to post
Share on other sites

Thanks for your answer. I have made a CBA API and I am looking for ideas of applications to create with it. Do you know of any companies or applications that predominantly use CBA in  its 'pure' form (ie not as a base for an OOP application)?


Which of the twenty different ""pure"" forms are you referring to?

Share this post


Link to post
Share on other sites

 

Thanks for your answer. I have made a CBA API and I am looking for ideas of applications to create with it. Do you know of any companies or applications that predominantly use CBA in  its 'pure' form (ie not as a base for an OOP application)?


Which of the twenty different ""pure"" forms are you referring to?

 

 

Leave it up to us C++ devs to overthink a simple question and veer off on a completely different tangent.

 

If I were to ask 'What well known software products/applications use OpenCV?'; an answer is 'Tesla's driving software heavily relies on it'. Cue the counter argument that the op question is not clear enough, thus, requires defining what someone means by 'pure', 'well-known', 'CBA', 'the', 'I' and etc. An then we find us.... on a tangent.

Edited by gretty

Share this post


Link to post
Share on other sites

I've worked both inside and outside the game industry.

Pretty much all well-designed software I've worked on has used composition, and hence components, to good effect.

Any time you want to swap out behavior or build things out of other things, composition is probably the right tool.

Probably the most boring work of all I've worked on, various ETL software I've worked with, uses components. ETL is Extract / Transform / Load. Basically boring software that selects values from one database, runs a simple transformation to rename fields or run some calculations, then loads it into another database, still uses composition and components. An ETL job can chose from bunches of pre-written transformation components to map from one type to another.

Most of the good AI libraries and machine learning tools I've worked on have used composition well. Compose a network from a collection of algorithm components taking input and giving output.

Most of the image processing tools I've worked with have been based on component models, adding in kernels of various types.

The family history processing tools I've worked with have used component-based designs for how each step of the process worked through their process from name extraction and indexing through searching and tree building. Even though each team had radically different software each of the many tools used a component design to allow for service discovery, for workflow across the various systems, for continuous deployment, and so on.

And well-written games use it all over the place. Composing game objects out of smaller blocks of logic and behavior and actions.

Composition is a core facet of good software design, but sadly one that many students fail to study and too few teachers teach well.

Share this post


Link to post
Share on other sites

Yes, it's not clear. OpenCV is a concrete thing, a particular library.
Component based is a nebulous adjective that can be used to describe an endless number of different software designs -- in fact, almost every modern software design!

 

Please don't use that tone with me (bold, exclamation marks). Yes, when used by a moderator towards a user its 'emphasis' but, ofcourse, when used by a user towards another moderator it certainly wouldn't be.

 

Given you've already taken us on the tangent, I'll continue along it.

 


OpenCV is a concrete thing

 

Component based architecture is a concrete architecture. Just like message-bus, 3-Tier, N-Tier, etc.

Edited by gretty

Share this post


Link to post
Share on other sites

 


[edit] From wikipedia:

A component model is a definition of standards for component implementation, documentation and deployment. Examples of component models are: Enterprise JavaBeans (EJB) model, Component Object Model (COM) model...

Maybe you're referring to these kinds of frameworks, which define a strict specification for component communication above and beyond the standard feature set of any one particular language?

 

Haha, yes, do you mean like I mention in the second sentence of my original post?

 


What applications/software products use Component Based Architecture (or its *variants)? Obviously its very common in game engines and games and I'm aware of Javabeans, COM using it.
Edited by gretty

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!