SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Software architecture
Software architectureSoftware architecture
Software architecturenazn
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoringkim.mens
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)REHMAT ULLAH
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Mohamed Sami El-Tahawy
 
Incremental model
Incremental modelIncremental model
Incremental modelHpibmx
 
Component based software development
Component based software developmentComponent based software development
Component based software developmentEmmanuel Fuchs
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING Abhinav Shukla
 

Was ist angesagt? (20)

Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Software Quality Management
Software Quality ManagementSoftware Quality Management
Software Quality Management
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software design
Software designSoftware design
Software design
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Component based software development
Component based software developmentComponent based software development
Component based software development
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING
 

Ähnlich wie Component based development | what, why and how

Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul 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.pdfJayanthi Kannan MK
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentnikhil sreeni
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development MethodologiesDamian 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 modelVaibhav Khanna
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance costmalathieswaran29
 
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).pptxaryan631999
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software EngineeringSalman Khan
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
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 PracticesSantosh Botre
 

Ähnlich wie 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
 
"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 design
Software designSoftware design
Software design
 
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 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
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software Engineering
 
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
 

Kürzlich hochgeladen

How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기Chiwon Song
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Projectwajrcs
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxPrakarsh -
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 

Kürzlich hochgeladen (20)

How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Sustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire ThornewillSustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire Thornewill
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Program with GUTs
Program with GUTsProgram with GUTs
Program with GUTs
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptx
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 

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