EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Component-based Software Engineering

By Swati TawdeSwati Tawde

Secondary Sidebar
Software Engineering Tutorial
  • Advanced
    • Functional Point Analysis
    • Software Quality Control
    • Quality Assurance Tools
    • Prototype model advantages and disadvantages
    • UML Modelling Tools
    • Tomcat Server
    • Quality Software
    • UI Prototyping
    • Hybrid Model
    • Behavioral Model in Software Engineering
    • Flowchart symbols
    • Critical System
    • Legacy System
    • SOA Architecture
    • Software Quality Attributes
    • Software Maintenance
    • Software Cost Estimation
    • Software Inspection
    • Cohesion in Software Engineering
    • Coupling in Software Engineering
    • Component-based Software Engineering
    • Design Modeling in Software Engineering
    • Iterative Methodology
    • System Flow Diagram
    • Data Flow Architecture
    • SEICMM
    • Function Oriented Design
  • Basic
    • What is Software Engineering?
    • What is SDET
    • What Is SDLC
    • SDLC Methodologies
    • Software Classification
    • Software Design
    • Software Design Principles
    • Software Metrics
    • Utility Software Types
    • UI Design Tools
    • User Interface Design Principles
    • Architectural Design in Software Engineering
    • Software Configuration Management
    • Software Configuration Management Tools
    • What is Risk Management?
    • System Engineering
    • Object oriented programming paradigm
    • CASE Tools
  • Models
    • Prototype Model
    • What is Spiral Model
    • Waterfall?Model
    • Prototyping Tools
    • Incremental Model
    • Iterative Model
    • RAD Model
    • Fish Model
    • What is Scrum Methodology?
    • RUP? Methodology
    • COCOMO Model
    • Big Bang Model
    • System Models
    • People Capability Maturity Model
    • Analysis Modeling
    • User Interface Design
    • Capability Maturity Model Integration
    • What is Agile Development?
    • Agile Model Advantages and Disadvantages
    • Agile Process Model
    • Rational Unified Process
  • UML Daigram
    • StarUML
    • Architecture of UML
    • StarUML? Download
    • Types of UML Diagrams
    • UML Activity Diagram
    • UML Component?Diagram
    • UML Deployment Diagram
    • UML Diagram Softwares
    • UML Object?Diagram
    • UML Sequence Diagram
    • UML Use Case Diagram
    • State Diagram
    • Class Diagram
    • UML Dependency
    • UML Interaction Diagrams
    • Data Flow Diagrams
  • Interview Questions
    • Software Engineering Interview Questions
    • SDLC Interview Questions

Related Courses

Software Testing Course

Cyber Security Training

Software Development Course Training

Home Software Development Software Development Tutorials Software Engineering Tutorial Component-based Software Engineering

Component-based Software Engineering

Introduction to Component-based Software Engineering

Component-based software engineering is the process of assembling the components. This approach enables component-based software engineering to emerge from the failure of object-oriented development to support effective reuse. It is a set of pre-build standardized Software components that is made available to fit in specific architectural styles for some of the other applications domain. The application is then formed by assembling these available components, instead of assembling discrete parts of conventional programming language.

All in One Software Development Bundle(600+ Courses, 50+ projects)
Python TutorialC SharpJavaJavaScript
C Plus PlusSoftware TestingSQLKali Linux
Price
View Courses
600+ Online Courses | 50+ projects | 3000+ Hours | Verifiable Certificates | Lifetime Access
4.6 (86,064 ratings)

For example, when we purchase a stereo system, we see that each component has been designed to fit in a specific architectural style. Connections are standardized, communication protocol has been re-established. Also, assembling the components in this stereo system is easy because you don’t have to build the system from scratch, instead, you have all the components ready and you just have to connect them properly to each other.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Computer-based Software Engineering Process

The process of computer-based software engineering is as follows:

  1. First, it outlines all the system requirements.
  2. Identify the components: it involves component searching, Component selection, and component validation.
  3. Modifying the requirements according to available functionality in the components.
  4. Once again the search the components to find if there are better components that may meet the revised requirements.
  5. Compose components to create the system.

Principles of Computer-based Software Engineering

  • Computer-based software engineering is the rapid assembly and maintenance of computer-based systems where components have well-defined properties.
  • Software component is a logically cohesive, loosely coupled module that denotes a single abstraction and can be reused in the system development.
  • These components are independent of each other i.e. they do not interfere with each other because every component implementation is hidden from each other and communication between these components is through well-defined interfaces.
  • Software component is deployable only if it is self-contained and operates as a standalone entity on some Component platform that implements the component model.
  • A software component is service provider. The services offered by the components are made available through an interface and all Component interactions take place through that interface.
  • Components should be documented properly so that possible users of the components can decide whether these components meet their needs or not.

Component Composition

Component composition is the process of assembling the components to create a system. It involves the integration of components with each other and with the component infrastructure. Usually, glue code is written to integrate the components. There are three types of composition sequential composition, hierarchical composition, and additive composition.

  • Sequential composition: In this composition, composed components are executed in a sequence manner. This involves composing the interfaces provided by each component.
  • Hierarchical composition: In this composition, one component calls on the services of another. This involves composing interfaces of one component with the required interface of another.
  • Additive composition: In this composition, the interface of two components are put together to create a new component.

Composition issues

  • While composing components, there may occur conflicts between functional and non-functional requirements and between the need for rapid delivery and system evolution.
  • Proper decisions are required regarding what composition of components is efficient for delivering the Functional requirements? What composition of components can allow changes in the future? What will be the resulting properties of the composed System?

Advantages of components Based software engineering

  • The reuse of components requires less time than the development of a new component. Therefore, systems can be built h faster using the Component-based software engineering process.
  • Increase competitiveness by reducing the cost of software development and increasing the productivity of the software.
  • Limited human talent by increasing software/person. It is possible by reuse of existing solutions, rather than invent them.
  • Models the real software in the implementation environment.
  • It provides an accurate picture of the existing system prior to making changes or development.
  • It makes known software configuration issue through the Dependency relationship
  • Reveal the bottlenecks in an implementation without focusing us to read all of the code.

Conclusion

Component is a distributable unit of software. It is a physical and replaceable part of the system that conforms to and provides the realization if s t of interfaces. It may form the abstraction for a set of realizing classifiers that realize its behavior. In addition, because a class itself is a subtype of an encapsulated classifier, a component may optionally have an internal structure and down a set of ports that formalize its interaction point.

Recommended Articles

This is a guide to Component-based Software Engineering. Here we discuss Introduction, Principles of Computer-based Software Engineering, Advantages of components Based software engineering. You may also have a look at the following articles to learn more –

  1. Coupling in Software Engineering
  2. Cohesion in Software Engineering
  3. Design Modeling in Software Engineering
  4. Software Engineering Interview Questions
Popular Course in this category
Software Testing Training (11 Courses, 2 Projects)
  11 Online Courses |  2 Hands-on Projects |  65+ Hours |  Verifiable Certificate of Completion
4.5
Price

View Course

Related Courses

Cyber Security Training (10 Courses, 3 Projects)4.9
All in One Software Development Bundle (600+ Courses, 50+ projects)4.8
0 Shares
Share
Tweet
Share
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2022 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

C# Programming, Conditional Constructs, Loops, Arrays, OOPS Concept

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

Special Offer - Software Testing Course Learn More