SlideShare a Scribd company logo
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.
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

What's hot

Component Based Development
Component Based DevelopmentComponent Based Development
Component Based Development
Ben McCormick
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
Arslan Anwar
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
Alonzee Tash
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
Syed Zaid Irshad
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
Saqib Raza
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
Sandeep Singh
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
Nethan Shaik
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
Lilia Sfaxi
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
Mr. Swapnil G. Thaware
 
Incremental process model
Incremental  process  modelIncremental  process  model
Incremental process model
Madushan Sandaruwan
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9Ian Sommerville
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overviewelliando dias
 

What's hot (20)

Component Based Development
Component Based DevelopmentComponent Based Development
Component Based Development
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 
Software design
Software designSoftware design
Software design
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Incremental process model
Incremental  process  modelIncremental  process  model
Incremental process model
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
 

Similar to Component based development | what, why and how

Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Atul Karmyal
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
nikhil sreeni
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
Damian T. Gordon
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component Saransh Garg
 
Software engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall modelSoftware engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall model
Vaibhav Khanna
 
Chapter Three.pptx
Chapter Three.pptxChapter Three.pptx
Chapter Three.pptx
ThedronBerhanu
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
malathieswaran29
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process ModelsEducation Front
 
SE Unit 2(1).pptx
SE Unit 2(1).pptxSE Unit 2(1).pptx
SE Unit 2(1).pptx
aryan631999
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
Aiman Hud
 
UNIT-II MMB.pptx
UNIT-II MMB.pptxUNIT-II MMB.pptx
UNIT-II MMB.pptx
sayalishivarkar1
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
Mohammed Fazuluddin
 
S.E Lec #1.pptx
S.E Lec #1.pptxS.E Lec #1.pptx
S.E Lec #1.pptx
RaajpootQueen
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Software Architecture Practices
Software Architecture PracticesSoftware Architecture Practices
Software Architecture Practices
Santosh Botre
 

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

Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
Component level design
Component   level designComponent   level design
Component level design
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component
 
Software engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall modelSoftware engineering 4 critical analysis of waterfall model
Software engineering 4 critical analysis of waterfall model
 
Chapter Three.pptx
Chapter Three.pptxChapter Three.pptx
Chapter Three.pptx
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
SE Unit 2(1).pptx
SE Unit 2(1).pptxSE Unit 2(1).pptx
SE Unit 2(1).pptx
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
UNIT-II MMB.pptx
UNIT-II MMB.pptxUNIT-II MMB.pptx
UNIT-II MMB.pptx
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
S.E Lec #1.pptx
S.E Lec #1.pptxS.E Lec #1.pptx
S.E Lec #1.pptx
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Software Architecture Practices
Software Architecture PracticesSoftware Architecture Practices
Software Architecture Practices
 

Recently uploaded

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 

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.
  • 12.
  • 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