SlideShare a Scribd company logo
2
Most read
8
Most read
13
Most read
Component Development
What we are looking?
• Standarised
• Independent
• Compassable
• Deployable
• Documented
Components needed in – qualified -> Adapted ->Assembled -> Updated
What is Component Based Development (CBD)?
• A component is a modular, portable, replaceable, and reusable set of well-defined
functionality that encapsulates its implementation and exporting it as a higher-level
interface
• Component-based architecture focuses on the decomposition of the design into
individual, functional or logical components
• With well-defined communication interfaces containing methods, events, and properties.
• It provides a higher level of abstraction and divides the problem into sub-problems
• Primary objective of component-based architecture is to ensure component reusability
What is a Component?
• It is a modular, portable, replaceable, and reusable set of well-defined functionality that
encapsulates its implementation
Characteristics :
• Reusability −
• Components are usually designed to be reused in different situations in different applications
• some components may be designed for a specific task.
• Replaceable −
• Components may be freely substituted with other similar components.
• Not context specific −
• Components are designed to operate in different environments and contexts.
• Extensible −
• A component can be extended from existing components to provide new behavior.
• Encapsulated −
• A component depicts the interfaces, which allow the caller to use its functionality, and do not expose details of
the internal processes or any internal variables or state.
• Independent −
• Components are designed to have minimal dependencies on other components.
Principles of Component−Based Design
• The software system is decomposed into reusable, cohesive, and encapsulated component units.
• Each component has its own interface that specifies required ports and provided ports; each component
hides its detailed implementation.
• A component should be extended without the need to make internal code or design modifications to the
existing parts of the component.
• Depend on abstractions component do not depend on other concrete components, which increase difficulty
in expendability.
• Connectors connected components, specifying and ruling the interaction among components. The interaction
type is specified by the interfaces of the components.
• Components interaction can take the form of method invocations, asynchronous invocations, broadcasting,
message driven interactions, data stream communications, and other protocol specific interactions.
• For a server class, specialized interfaces should be created to serve major categories of clients. Only those
operations that are relevant to a particular category of clients should be specified in the interface.
• A component can extend to other components and still offer its own extension points. It is the concept of
plug-in based architecture. This allows a plugin to offer another plugin API.
Component-Level Design Guidelines
• Attains architectural component names from the problem domain and ensures that they
have meaning to all stakeholders who view the architectural model.
• Extracts the business process entities that can exist independently without any associated
dependency on other entities.
• Recognizes and discover these independent entities as new components.
• Uses infrastructure component names that reflect their implementation-specific meaning.
• Models any dependencies from left to right and inheritance from top (base class) to bottom
(derived classes).
• Model any component dependencies as interfaces rather than representing them as a
direct component-to-component dependency.
Advantages
• Ease of deployment − As new compatible versions become available, it is easier to replace
existing versions with no impact on the other components or the system as a whole.
• Reduced cost − The use of third-party components allows you to spread the cost of development
and maintenance.
• Ease of development − Components implement well-known interfaces to provide defined
functionality, allowing development without impacting other parts of the system.
• Reusable − The use of reusable components means that they can be used to spread the
development and maintenance cost across several applications or systems.
• Modification of technical complexity − A component modifies the complexity through the use of
a component container and its services.
Advantages
• Reliability − The overall system reliability increases since the reliability of each individual
component enhances the reliability of the whole system via reuse.
• System maintenance and evolution − Easy to change and update the implementation
without affecting the rest of the system.
• Independent − Independency and flexible connectivity of components. Independent
development of components by different group in parallel. Productivity for the software
development and future software development.
What to think before code - Coding Standards in CBD
• Step 1: Is The Requirement Clear to You?
• Understanding of the Requirement clearly.
• First step to start with the coding is understanding the requirement clearly.
• If Yes, proceed with the second step.
• If No, discuss with the Business Head or the Project Manager and after the clear
understanding about the requirement proceed with the step 2.
• Step 2: All Possible Scenarios.
• We must cover all possible scenarios.
• First, we should get a clear picture about the customer requirement scenarios and for
which purpose the code will be working.
• If Yes, means if we have got to know about the scenarios that should be handled in the
code then we can proceed to the Step 3.
• If No, get the clear understanding about the scenarios by asking with your project
manager and then proceed to the step 3.
Coding Standards in CBD
• Step 3: Business Domain.
• We should get to know about the business domain on which we are working. Example:
Retail, telecom, Hospitals…etc.
• Step 4: Possible Negative Scenarios.
• We should get rid of the Negative Scenarios by handling it properly. Example: when
the user enters the wrong username or password or if the network connection is slow
then we should handle that situation. We should discuss with the project manager
about what scenarios should be handled.
• Step 5: Create Application Flow.
• We should plan the flow of the application according to the code. we should also
perform the operations accordingly.
Coding Standards in CBD
• Step 6: Doable??
• After the Understanding of the scenarios and the requirements. We should
think whether it’s possible to complete the work with our knowledge or not. If yes, you
can go to the next Step. if No, request for the training from the Project manager.
• Step 7: Development.
• After the clear understanding about the project and the scenarios that should be taken
care of, you can start with the coding but while coding you should follow some rules
and regulations.
• Nomenclature: The naming standards for the class, methods, variables they should
contain proper name according to the project.
• We need to give proper comments for each code in the method.
Component based development | what, why and how
Phase in CBD
Three phases
1. Discovery
2. Design and
3. Development
4. Governance
What to do with CBD?
What to do with CBD
• Deals with SoC ( Separation of concern)
• reuse-based
• loosely coupled independent components
• Remove UI inconsistency
• Remove duplication of effort
• Cost reduction
• Faster time to market – GTM
• Modular & scalable web site
• Ready with COTS
What to do with CBD?
• Common code base
• Common vocabulary
• "Buy" the component, "don't build" the component
What Next?
Need your help

More Related Content

PPTX
Component based software engineering
PPTX
Extreme Programming
PDF
Software Engineering - chp8- deployment
PPTX
Incremental model
PPT
PPTX
Component Based Software Engineering
PPTX
Off the-shelf components (cots)
PPTX
Presentation on component based software engineering(cbse)
Component based software engineering
Extreme Programming
Software Engineering - chp8- deployment
Incremental model
Component Based Software Engineering
Off the-shelf components (cots)
Presentation on component based software engineering(cbse)

What's hot (20)

PPT
Software Inspection And Defect Management
PPTX
UNIT TESTING PPT
PPT
Software Testing 101
PPT
Testing Metrics
PPTX
Extreme programming
PPTX
Software quality assurance activites
PPTX
Software quality assurance
PPT
Web view
PPTX
System testing
PPT
Quality Management in Software Engineering SE24
PDF
Fault tolerance
PPTX
Software engineering 23 software reliability
PPTX
Unit testing
PPTX
Software quality assurance
PDF
Compiler design error handling
PPTX
#1 formal methods – introduction for software engineering
PPT
Chapter 13 software testing strategies
PPTX
Parallel Programming
PPTX
Unit Testing in Java
PPTX
Requirements engineering for agile methods
Software Inspection And Defect Management
UNIT TESTING PPT
Software Testing 101
Testing Metrics
Extreme programming
Software quality assurance activites
Software quality assurance
Web view
System testing
Quality Management in Software Engineering SE24
Fault tolerance
Software engineering 23 software reliability
Unit testing
Software quality assurance
Compiler design error handling
#1 formal methods – introduction for software engineering
Chapter 13 software testing strategies
Parallel Programming
Unit Testing in Java
Requirements engineering for agile methods
Ad

Similar to Component based development | what, why and how (20)

PPT
software engerring lecture number 5 .ppt
PDF
Software Process Models
PDF
Software engineering lecture notes
PDF
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
PPT
Test Driven Development
PDF
Software vjhghjjkhjkkkghhjhEngineering.pdf
PPTX
"X" Driven-Development Methodologies
PPTX
Component level design
PPTX
Architecture support for component
PPT
Software design
PDF
Chapter 2 of advanced Software Process.pdf
PPTX
Software engineering 4 critical analysis of waterfall model
PPTX
Chapter Three.pptx
PPTX
Software Development Life Cycle
PPTX
Software maintenance real world maintenance cost
PPTX
Generic Software Process Models
PPTX
SE Unit 2(1).pptx
PPTX
Software Engineering Unit 2 AKTU Complete
PPTX
Component-based Software Engineering
PDF
POLITEKNIK MALAYSIA
software engerring lecture number 5 .ppt
Software Process Models
Software engineering lecture notes
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
Test Driven Development
Software vjhghjjkhjkkkghhjhEngineering.pdf
"X" Driven-Development Methodologies
Component level design
Architecture support for component
Software design
Chapter 2 of advanced Software Process.pdf
Software engineering 4 critical analysis of waterfall model
Chapter Three.pptx
Software Development Life Cycle
Software maintenance real world maintenance cost
Generic Software Process Models
SE Unit 2(1).pptx
Software Engineering Unit 2 AKTU Complete
Component-based Software Engineering
POLITEKNIK MALAYSIA
Ad

Recently uploaded (20)

PPTX
history of c programming in notes for students .pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Transform Your Business with a Software ERP System
history of c programming in notes for students .pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
Computer Software and OS of computer science of grade 11.pptx
Softaken Excel to vCard Converter Software.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
CHAPTER 2 - PM Management and IT Context
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PTS Company Brochure 2025 (1).pdf.......
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
wealthsignaloriginal-com-DS-text-... (1).pdf
Digital Strategies for Manufacturing Companies
Digital Systems & Binary Numbers (comprehensive )
Navsoft: AI-Powered Business Solutions & Custom Software Development
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Transform Your Business with a Software ERP System

Component based development | what, why and how

  • 2. What we are looking? • Standarised • Independent • Compassable • Deployable • Documented Components needed in – qualified -> Adapted ->Assembled -> Updated
  • 3. What is Component Based Development (CBD)? • A component is a modular, portable, replaceable, and reusable set of well-defined functionality that encapsulates its implementation and exporting it as a higher-level interface • Component-based architecture focuses on the decomposition of the design into individual, functional or logical components • With well-defined communication interfaces containing methods, events, and properties. • It provides a higher level of abstraction and divides the problem into sub-problems • Primary objective of component-based architecture is to ensure component reusability
  • 4. What is a Component? • It is a modular, portable, replaceable, and reusable set of well-defined functionality that encapsulates its implementation Characteristics : • Reusability − • Components are usually designed to be reused in different situations in different applications • some components may be designed for a specific task. • Replaceable − • Components may be freely substituted with other similar components. • Not context specific − • Components are designed to operate in different environments and contexts. • Extensible − • A component can be extended from existing components to provide new behavior. • Encapsulated − • A component depicts the interfaces, which allow the caller to use its functionality, and do not expose details of the internal processes or any internal variables or state. • Independent − • Components are designed to have minimal dependencies on other components.
  • 5. Principles of Component−Based Design • The software system is decomposed into reusable, cohesive, and encapsulated component units. • Each component has its own interface that specifies required ports and provided ports; each component hides its detailed implementation. • A component should be extended without the need to make internal code or design modifications to the existing parts of the component. • Depend on abstractions component do not depend on other concrete components, which increase difficulty in expendability. • Connectors connected components, specifying and ruling the interaction among components. The interaction type is specified by the interfaces of the components. • Components interaction can take the form of method invocations, asynchronous invocations, broadcasting, message driven interactions, data stream communications, and other protocol specific interactions. • For a server class, specialized interfaces should be created to serve major categories of clients. Only those operations that are relevant to a particular category of clients should be specified in the interface. • A component can extend to other components and still offer its own extension points. It is the concept of plug-in based architecture. This allows a plugin to offer another plugin API.
  • 6. Component-Level Design Guidelines • Attains architectural component names from the problem domain and ensures that they have meaning to all stakeholders who view the architectural model. • Extracts the business process entities that can exist independently without any associated dependency on other entities. • Recognizes and discover these independent entities as new components. • Uses infrastructure component names that reflect their implementation-specific meaning. • Models any dependencies from left to right and inheritance from top (base class) to bottom (derived classes). • Model any component dependencies as interfaces rather than representing them as a direct component-to-component dependency.
  • 7. Advantages • Ease of deployment − As new compatible versions become available, it is easier to replace existing versions with no impact on the other components or the system as a whole. • Reduced cost − The use of third-party components allows you to spread the cost of development and maintenance. • Ease of development − Components implement well-known interfaces to provide defined functionality, allowing development without impacting other parts of the system. • Reusable − The use of reusable components means that they can be used to spread the development and maintenance cost across several applications or systems. • Modification of technical complexity − A component modifies the complexity through the use of a component container and its services.
  • 8. Advantages • Reliability − The overall system reliability increases since the reliability of each individual component enhances the reliability of the whole system via reuse. • System maintenance and evolution − Easy to change and update the implementation without affecting the rest of the system. • Independent − Independency and flexible connectivity of components. Independent development of components by different group in parallel. Productivity for the software development and future software development.
  • 9. What to think before code - Coding Standards in CBD • Step 1: Is The Requirement Clear to You? • Understanding of the Requirement clearly. • First step to start with the coding is understanding the requirement clearly. • If Yes, proceed with the second step. • If No, discuss with the Business Head or the Project Manager and after the clear understanding about the requirement proceed with the step 2. • Step 2: All Possible Scenarios. • We must cover all possible scenarios. • First, we should get a clear picture about the customer requirement scenarios and for which purpose the code will be working. • If Yes, means if we have got to know about the scenarios that should be handled in the code then we can proceed to the Step 3. • If No, get the clear understanding about the scenarios by asking with your project manager and then proceed to the step 3.
  • 10. Coding Standards in CBD • Step 3: Business Domain. • We should get to know about the business domain on which we are working. Example: Retail, telecom, Hospitals…etc. • Step 4: Possible Negative Scenarios. • We should get rid of the Negative Scenarios by handling it properly. Example: when the user enters the wrong username or password or if the network connection is slow then we should handle that situation. We should discuss with the project manager about what scenarios should be handled. • Step 5: Create Application Flow. • We should plan the flow of the application according to the code. we should also perform the operations accordingly.
  • 11. Coding Standards in CBD • Step 6: Doable?? • After the Understanding of the scenarios and the requirements. We should think whether it’s possible to complete the work with our knowledge or not. If yes, you can go to the next Step. if No, request for the training from the Project manager. • Step 7: Development. • After the clear understanding about the project and the scenarios that should be taken care of, you can start with the coding but while coding you should follow some rules and regulations. • Nomenclature: The naming standards for the class, methods, variables they should contain proper name according to the project. • We need to give proper comments for each code in the method.
  • 13. Phase in CBD Three phases 1. Discovery 2. Design and 3. Development 4. Governance
  • 14. What to do with CBD?
  • 15. What to do with CBD • Deals with SoC ( Separation of concern) • reuse-based • loosely coupled independent components • Remove UI inconsistency • Remove duplication of effort • Cost reduction • Faster time to market – GTM • Modular & scalable web site • Ready with COTS
  • 16. What to do with CBD? • Common code base • Common vocabulary • "Buy" the component, "don't build" the component