Essay details:

  • Subject area(s): Engineering
  • Price: Free download
  • Published on: 7th September 2019
  • File format: Text
  • Number of pages: 2

Text preview of this essay:

This page is a preview - download the full version of this essay above.

Software Components and Component-Based Software Requirements Engineering

     Nelly Nkhoma

Information, communication and Technology Department. School of Engineering, Information and Communications University Zambia.


Software components and Component-Based Software Engineering (CBSE) research is an important area of Software Engineering (SE)  that has become so prominent in our modern world of technology. They both support and improve the development of reusable components that are useful in the process of software creation solutions. In today’s world of technology, Software components are gaining considerable support and this has become one way of developing object- oriented systems and business applications. Component-Based Software Engineering (CBSE) has expectations that components should exist in repositories in order for them to be reused and stored efficiently, which is not usually the case in most instances. The main aim of this writing is to discuss the importance of software components and Component-Based Software Engineering and how they can be used.

Keywords: Reuse, Software Engineering, Software Components, Component-Based Software Development (CBSD) and Component-Based Software Engineering (CBSE).

1.  Introduction

Software Engineering can be defined as the application of systematic, disciplined and quantifiable approaches to the development, operation and maintenance of software. Software Engineering involves areas such as Software Components and Component-Based Software Engineering (CBSE). Software Components can be defined as the building blocks of a software and are sometimes called the ingredients of applications. Component-Based Software Engineering (CBSE) is a branch of software engineering that involves the process of developing theories, processes, technologies and tools that are needed in supporting and enhancing  the evolution  of  reusable  components  that  are  useful  for  creation  of  software solutions.  This area also involve other areas such as Component- Based Software Development (CBSD) and it include traditional  software  development process which proceeds gradually from requirement gathering and specification to system delivery. CBSE in our modern world of technology greatly involve two separate development processes and these are; component development and system development. Component development is the process of generating components that can be used and reused in many applications. System development on the other hand is concerned with assembling components into applications that are able to meet the system requirements.

Building software from components enables different approaches to software development and this helps most software developers to generate different methods of developing software. CBSE promises a much larger and universal reuse leading to quick every day market, reducing the costs and improving the quality of the software. Components are usually regarded as part of the starting platform for orientation of service and the main aim of building software component is its ability to be reused. There is nothing  more  important  in the minds  most inventors in  building  components  than coming up with  a  type  that many different programs can reuse rather than developing from scratch every time. It takes major efforts and awareness to write a software component that can be effectively reusable.  These components must be fully documented, tested thoroughly and designed with the aim that it will be put to unexpected use. The  development  in  software  reuse  has  been  gradual  and  reckoning  from  the  time  the programming concept was structured to object oriented methods. This embraces the reuse of existing  functions  or  code  library,  objects  and  classes  which  have  been  useful  in building software.

2. Problem Statement

In engaging CBD, existing components are searched out and then assembled and adapted to form a proposed system. Components can be assembled and reused to build a software system only if they exist and are available. More attention is usually needed in providing such components across many problem domains as they already exists in most hardware industries. It is preferably advisable to reuse processes or common artefacts of a software than to build from the scratch. It has commonly been discovered that the development  of  software  systems  from  existing components  continues  to  hold  the  attention  of  the software  engineering  community in so many ways but the  Problem  is how to  select those  components  so as  to  reduce  costs  and the time of development in the process of increasing the  quality  of  systems.  Component-Based  Software  Engineering  or  CBSE  represents  a  new development  paradigm that deals with  assembling  software  systems from  components which gives the major reason as to why reuse of components  should  be increased.

3.  Aim and Objectives

This piece of work will give a discussion on the importance of software components and Component-Based software engineering in our modern world of technology and generally in software development. The main aim of this paper is to show the composition of software components and Component-Based Software Engineering and their importance

4.  Methodology

This study involved systematic literature review and case study. The relevant documents and publications were obtained and analyzed qualitatively in order to acquire the required and relevant details of the topic of study and these were extracted using inductive approach.

Further methodologies used in this research include: conducting a pattern-based domain engineering in identifying structure points and repeating patterns and also analyzing data and behaviors.

5.  Related Work

George T.H ( ) in his definition states that, “A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard\".Olubukola D. Adekola*, Sunday. A. Idowu and Adewale O. Adebayo (2016, p.) in their writing cited that ‘Component-Based Software Engineering (CBSE) research is a branch of software engineering that has to do with developing theories, processes, technologies and tools supporting and enhancing  evolution  of  reusable  components  that  are  useful  for  creation  of  software Solutions”. Sharanjit ‘et al’. (2016, p.449) Indicates that, “Component-based  software  development is a new way  for  more  flexibility  of  software  generation, composition  and  integration”. (Ivica .C. ‘et al’. 2016) in their writing, highlights that, “Both customers and producers share the enthusiasm for the CBSE approach because of the obvious advantages: The development time dramatically decreases, the usability of the products increases, the production costs usually decrease, and so on Component-based development poses that reuse could get better”.

6. Discussion

Software component can sometime be defined as any pre-written code that defines interfaces  

Component-Based Software Engineering is an approach which generally depends on building different systems from already existing components that provide support for the development and as assemblies of systems. Component-based Software Engineering is basically based on principles and one of these is Reusability.  This principle allows the same component to be used in many systems.  In most cases, the  need  to  reuse  a component  leads  to  some  technical  limitations  such as:  good  documentation  that must be  available in order to reuse a component as well  as its  well-organized reuse process. This should include the similar architecture of the components that should be provided to ensure consistency and efficiency of the system. The other principle is substitutability and this means that the overall system should work in spite of which component is being used. Substitutability encompasses some constraints such as the runtime of replacement of the components. Extensibility is another principle that can take any of the two shapes, either extending components which are part of a system or increase the functionality of individual components. But this also involve technical challenges such as design-time which is very important as designing of a software requires enough time.

The main Characteristics of Component-Based Software Engineering.

Component-based software development provides a platform for more flexibility of software generation, software composition and software integration. The main characteristics of Component-Based Software Engineering are:

• Components generally do something useful. This is so because they are the basic building block of a software.

• It has a small related set of functions or services that allows its functionality and reuse.

• Real Object-Oriented programs (OOP) are component based as they require reusability.

• Components are compassable. This is so because all the components play a very important role in a system and this makes them to be accomplishing.

• Frameworks often define component families because they specify the actual reuse ability of each component.

...(download the rest of the essay above)

About this essay:

This essay was submitted to us by a student in order to help you with your studies.

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, . Available from:< > [Accessed 17.10.19].