Component-based software development




















This way, the complexity of building a system is significantly decreased. As everything else, using component-based software development has its own disadvantages too. Some of its problems include. A component model defines standards for component documentation, implementation and deployment.

It also specifies the elements included in the interface definition. Some component model examples include:. These models are used from middleware that provides support for executing components.

Component model implementations provide:. To conclude, in this article, I tried to analyze a new way of building complexed software systems and the difference of this approach with traditional software engineering.

Although there are some problems using it, these are the main reasons that will make component-based software engineering widely spread in software development industry. Cai Xia, Michael R. Your email address will not be published. What is Component-Based Software Engineering?

The principles of component-based software development approach But what are some of the principles followed while building these components? Reusable: The components should be designed in a way that enables them to be used in different applications and different scenarios. This way, we can reduce cost and become much more productive since we will spend time only on customizing an already existing component.

Replaceable: Each component should be able to be replaced by a similar one in case it is no longer suitable, different functionality is required or the current component is obsolete. Lack of context specification: Components should lack context specification. This way, they can be integrated into different environments and contexts.

Thus developing software at Internet speed using the currently available software engineering principles and practices are found inefficient and insufficient.

This forced researchers in software engineering field to think about the necessity of designing new methodologies and paradigms to take head on these challenges. Thus came the most important component technology, which advocates development of software applications by creating components and assembling them. As the demand for more flexible, adaptable, extensible, and robust Web-based enterprise application systems accelerates, adopting new software engineering methodologies and development strategies become critical.

These strategies must support the construction of enterprise software systems that assemble highly flexible software components coded in different times by different developers. Traditional software development strategies and engineering methodologies, which require development of software systems from scratch fall short in this regard. What is CBSD?

Component-based software development advocates developing software systems by selecting reliable, reusable and robust software components and assembling them within appropriate software architectures. Motivation 2 But you would Crash at least 2 times a day Have to buy a new car every time a new traffic signal is installed Have to learn to drive again every time you buy a new model 5. Other industries follow different approaches They get very good results in areas were we don't.

Car industry: agile process, complex product that is built rapidly. Construction industry: much higher cost associated to change, but they anticipate it better. They work using components Higher re-use rate Simplifies testing Simplifies maintenance Better overall quality Components developed by third parties Shorter development cycle Better ROI 7. A software component can be deployed independently and is subject to composition by third parts.

Can be used by other SW components 2. Can be used by others without the intervention of the authoring developer Like CMS. Includes specifications for all of its dependencies.

Includes documentation of all the offered functionalities. Its behavior can be understood from its specifications. Can be coupled to other components. Can be incorporated to a SW system rapidly and smoothly. Disadvantages Clairvoyance: design a component without knowledge of its final user.

Customization: it is hard to customize a component without access to its implementation. Painter model 1 Painter model 2 There are 2 techniques to create images One of them is the painter model You take an element brush, pencil and use it to create images from scratch. Free strokes are used. Natural approach. I believe it is the perfect analogy for how we develop software. We begin with a blank page.

Imagine the product as if it were finished. Implement the solution line by line. Composition model 1 Composition model 2 It is about creating images from existing elements.

Example: mosaic Example: draw a chess board. I believe this is the approach we must follow when creating software. Take known and well defined elements. Put them together in a smart way. Create only the missing components. There is an enormous amount of existing components in the world of software.



0コメント

  • 1000 / 1000