SlideShare a Scribd company logo
Chapter Three
Supply
Introduction
• Supply is about the provisioning of components and services,
whether these are reused, rented, bought, or built.
• This chapter outlines the different ways in which components and
services can be supplied and gives more detail on the activities
for designing and constructing components.
• The normal approach to supplying components is to build them,
and this is covered in detail in the later component delivery
workflow.
• With the rise of web services, however, other options to building
are now available, e.g. renting a service.
Cont.
• From a straightforward development point of view, there is little
difference between using a component and a web service; each is
a black box that provides a certain type of functionality exposed
through one or more interfaces.
• Regardless of whether the functionality will be implemented as a
component or a service, certain choices about how to obtain the
required functionality must be made:-
– reuse existing functionality that is available within your organization;
– rent the functionality from an external source;
– buy the functionality in from an external source;
– build your own functionality.
• For more detail see Table 3.1 on your text book
Making the supply decisions
• Supply decisions can be made once you have defined your
units of functionality then identified and allocated these to an
architectural layer.
• These decisions consider whether each functional unit should
be a component or a web service and whether they can be
reused/rented/bought/built.
• The issue of provenance is important to the utilization of
services as opposed to components.
• In addition to its functionality, certain quality and cost
judgments must be made about a service that are not
necessarily required for a component.
key factors to consider while making a supply
decision
• Will the service provider or the specific service still be here next
year, i.e. for the anticipated lifetime of the application?
• What is the cost model of the service?
• Use of a service may increase the cost of the application over the
life cycle.
• Does the service provide the appropriate level of systemic
quality? If the service is accessed across the public internet, what
impact will this have in terms of scalability and availability?
• For more explanation see table 3.2 on your text book
Component delivery
• The main development process on the supply side of the supply–
manage–consume approach to component-based development is
component delivery.
• These activities define the component services, specify the
internal architecture in terms of its classes, and combine with the
technical infrastructure to deliver an executable package for the
component.
• This is a view of the component based on concepts that are
meaningful to analysts, developers, and programmers.
Cont.
• Component delivery is a generic workflow that covers the different
types of component: business, technical, and data.
• Each type of component has the same set of activities within the
workflow, but each will have its own specialist developers,
techniques, and mindset that deliver the component model, and
the executable.
Basic workflow
Define component specification
• An agreed component specification includes:-
– Details of the service interfaces, including each service signature.
– The environment in which the component is going to be used and
deployed.
– A black-box test specification, which is used to determine whether the
delivered component meets the requirements defined in the component
specification.
• To help to achieve agreement on the specification, a component
management tool is used to publish each iteration so that
comments and feedback from the component’s user community
can be reviewed and any issues arising resolved.
Design component
• This step in component delivery provides a model of the internal
architecture of the component in terms of its classes, defines the
data services required, and may produce or update the persistent
data model.
• UML analysis techniques are used to model the component’s
internal structure to deliver the required component services.
• This means identifying candidate classes and their attributes,
assigning class responsibilities, and identifying class
relationships.
Cont.
• During all stages, it is recommended that any design decisions be
documented.
• Finally, the component’s object model is reviewed by others in the
component delivery team.
• Once the classes have been agreed, the next step is to identify
their behavior (class methods).
• This involves producing object interaction diagrams for each
component service and, perhaps, state diagrams for key classes.
Cont.
• As each class will have data requirements, it is important at this
point to identify the services required from data components.
• Data components are used to separate the database technology
from the business components.
Construct component
• Constructing the component involves realizing the design of the
component combined with the technical infrastructure to deliver a
tested set of services.
• Scheduling the parts in the component that are to be constructed
is determined by the use case priority, i.e. ‘build only what you
need now’.
• Therefore, for each component, service to be implemented, only
those operations on classes involved in delivering the service
need be constructed.
Cont.
• This may be a very small part of the overall component, so we are
not spending time on unnecessary items. This activity has slight
differences in the early steps for each type of component:-
– Business components require data and technical components to realize
the solution.
– Data components deliver a set of services for the given data component
specification.
– Technical components such as base classes and facility components
such as an error handler may require data component services and their
own base classes.
Test and rollout component
• Execute tests means running test scripts defined for this increment as well as
running those scripts for previous increments to ensure that the latest
changes have not broken existing services.
• All tests need to be performed under black-box conditions to verify the
external behavior of the component.
• If the tests fail, then the component developer must identify and fix the
problem; it is not the test team’s responsibility to fix the component, as there
may be errors in the OO analysis, the design or the code.
• All test results – good and bad – are documented. When the tests are
passed, then rollout means publication of the tested component
executable/package to the component user community.
Componentization of legacy systems
• In order to maximize the investment in current applications, it may
be necessary to use the existing functionality by providing a set of
services for new applications.
• In providing these services, various levels of effort and approach
are required to integrate the application.
Cont.
• These efforts can deliver wrapper components, which:-
– Encapsulate unchanged functionality in the legacy application.
– Component specifications containing the functional requirements extracted for the
existing legacy application through reverse engineering.
– Components that encapsulate the re-engineered functionality extracted from the legacy
application.
• The initial step is to define the integration strategy by assessing the
application architecture.
• After assessment, stakeholder must be agreed to ensure the feasibility of an
appropriate componentization strategy, as more than one approach can be
applied in any situation: wrapping, re-engineering, and reverse engineering.
Cont.
• Wrapping:-
– A wrapper is a component that provides a message-based interface to
non-object-oriented software such as the functionality within a legacy
application.
• Re-engineering:-
– Re-engineering the legacy application means altering the existing
functionality or interfaces to meet the new business needs.
• Reverse engineering
– Reverse engineering means using the existing logic and data descriptions
as specifications for new components, i.e. recreating the same
functionality within a new environment.
Cont.
• Whichever approach is taken, you must be aware of the risks
involved in integrating new and old systems:-
– changes to legacy code may impact the wrapper component.
– the required functionality may be inaccessible.
– the level of complexity and dependencies may be too high.
– changes to the legacy application may affect the new system.
– legacy code may be too hard to understand.
– there may be no sources of expertise in the legacy application.
Maintain component
• To resolve a defect first update the defect log, then recreate the
incident and determine a candidate solution.
• An agreed solution is used to update the component specification
and issue it to the component delivery team.
• To resolve change requests first identify the affected items, and
determine the impact and feasibility of change before scheduling
the change.
• Whenever changes are planned, it is useful to update the risk
register to reflect the increased risk of doing the change (ripple
effect) and for not doing the change (reduced functionality).
• The updated component specification is then issued ready for the
start of the scheduled component delivery process to incorporate
the changes.
Technical architecture
• Components must guarantee that they can ‘inter-operate’, i.e.
coexisting and cooperating within a common technical
environment.
• Therefore, supplying a technical architecture is key to the
successful delivery of component- or service-based solutions.
• Delivery of the technical architecture is achieved in two stages.
– The initial technical architecture is assembled and delivered.
– The technical architecture is applied to multiple development projects.
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx
Chapter Three.pptx

More Related Content

Similar to Chapter Three.pptx

Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
module 1.pptx
module 1.pptxmodule 1.pptx
module 1.pptx
PawanBharadwaj2
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
malathieswaran29
 
Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
SHREEHARI WADAWADAGI
 
Aspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSDAspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSD
Can R. PAHALI
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
MusTufa Nullwala
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
NikhilDudka
 
Prototype Model in Software Engineering.pptx
Prototype Model in Software Engineering.pptxPrototype Model in Software Engineering.pptx
Prototype Model in Software Engineering.pptx
Ansh Kashyap
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component Saransh Garg
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staff
vijisvs2012
 
Agile Metrics : A seminal approach for calculating Metrics in Agile Projects
Agile Metrics : A seminal approach for calculating Metrics in Agile ProjectsAgile Metrics : A seminal approach for calculating Metrics in Agile Projects
Agile Metrics : A seminal approach for calculating Metrics in Agile Projects
Prashant Ram
 
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
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
Aiman Hud
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
EddyMakoyo1
 
22-REQUIREMENT.ppt
22-REQUIREMENT.ppt22-REQUIREMENT.ppt
22-REQUIREMENT.ppt
ssuser5e271f1
 
UNIT-II MMB.pptx
UNIT-II MMB.pptxUNIT-II MMB.pptx
UNIT-II MMB.pptx
sayalishivarkar1
 

Similar to Chapter Three.pptx (20)

Sandeep Gupta
Sandeep GuptaSandeep Gupta
Sandeep Gupta
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
module 1.pptx
module 1.pptxmodule 1.pptx
module 1.pptx
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
 
Aspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSDAspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSD
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
 
Prototype Model in Software Engineering.pptx
Prototype Model in Software Engineering.pptxPrototype Model in Software Engineering.pptx
Prototype Model in Software Engineering.pptx
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staff
 
Agile Metrics : A seminal approach for calculating Metrics in Agile Projects
Agile Metrics : A seminal approach for calculating Metrics in Agile ProjectsAgile Metrics : A seminal approach for calculating Metrics in Agile Projects
Agile Metrics : A seminal approach for calculating Metrics in Agile Projects
 
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
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
 
22-REQUIREMENT.ppt
22-REQUIREMENT.ppt22-REQUIREMENT.ppt
22-REQUIREMENT.ppt
 
UNIT-II MMB.pptx
UNIT-II MMB.pptxUNIT-II MMB.pptx
UNIT-II MMB.pptx
 

Recently uploaded

Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
top1002
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
symbo111
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Soumen Santra
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
Intella Parts
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
ChristineTorrepenida1
 

Recently uploaded (20)

Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
 

Chapter Three.pptx

  • 2. Introduction • Supply is about the provisioning of components and services, whether these are reused, rented, bought, or built. • This chapter outlines the different ways in which components and services can be supplied and gives more detail on the activities for designing and constructing components. • The normal approach to supplying components is to build them, and this is covered in detail in the later component delivery workflow. • With the rise of web services, however, other options to building are now available, e.g. renting a service.
  • 3. Cont. • From a straightforward development point of view, there is little difference between using a component and a web service; each is a black box that provides a certain type of functionality exposed through one or more interfaces. • Regardless of whether the functionality will be implemented as a component or a service, certain choices about how to obtain the required functionality must be made:- – reuse existing functionality that is available within your organization; – rent the functionality from an external source; – buy the functionality in from an external source; – build your own functionality. • For more detail see Table 3.1 on your text book
  • 4. Making the supply decisions • Supply decisions can be made once you have defined your units of functionality then identified and allocated these to an architectural layer. • These decisions consider whether each functional unit should be a component or a web service and whether they can be reused/rented/bought/built. • The issue of provenance is important to the utilization of services as opposed to components. • In addition to its functionality, certain quality and cost judgments must be made about a service that are not necessarily required for a component.
  • 5. key factors to consider while making a supply decision • Will the service provider or the specific service still be here next year, i.e. for the anticipated lifetime of the application? • What is the cost model of the service? • Use of a service may increase the cost of the application over the life cycle. • Does the service provide the appropriate level of systemic quality? If the service is accessed across the public internet, what impact will this have in terms of scalability and availability? • For more explanation see table 3.2 on your text book
  • 6. Component delivery • The main development process on the supply side of the supply– manage–consume approach to component-based development is component delivery. • These activities define the component services, specify the internal architecture in terms of its classes, and combine with the technical infrastructure to deliver an executable package for the component. • This is a view of the component based on concepts that are meaningful to analysts, developers, and programmers.
  • 7. Cont. • Component delivery is a generic workflow that covers the different types of component: business, technical, and data. • Each type of component has the same set of activities within the workflow, but each will have its own specialist developers, techniques, and mindset that deliver the component model, and the executable.
  • 8.
  • 10. Define component specification • An agreed component specification includes:- – Details of the service interfaces, including each service signature. – The environment in which the component is going to be used and deployed. – A black-box test specification, which is used to determine whether the delivered component meets the requirements defined in the component specification. • To help to achieve agreement on the specification, a component management tool is used to publish each iteration so that comments and feedback from the component’s user community can be reviewed and any issues arising resolved.
  • 11. Design component • This step in component delivery provides a model of the internal architecture of the component in terms of its classes, defines the data services required, and may produce or update the persistent data model. • UML analysis techniques are used to model the component’s internal structure to deliver the required component services. • This means identifying candidate classes and their attributes, assigning class responsibilities, and identifying class relationships.
  • 12. Cont. • During all stages, it is recommended that any design decisions be documented. • Finally, the component’s object model is reviewed by others in the component delivery team. • Once the classes have been agreed, the next step is to identify their behavior (class methods). • This involves producing object interaction diagrams for each component service and, perhaps, state diagrams for key classes.
  • 13. Cont. • As each class will have data requirements, it is important at this point to identify the services required from data components. • Data components are used to separate the database technology from the business components.
  • 14. Construct component • Constructing the component involves realizing the design of the component combined with the technical infrastructure to deliver a tested set of services. • Scheduling the parts in the component that are to be constructed is determined by the use case priority, i.e. ‘build only what you need now’. • Therefore, for each component, service to be implemented, only those operations on classes involved in delivering the service need be constructed.
  • 15. Cont. • This may be a very small part of the overall component, so we are not spending time on unnecessary items. This activity has slight differences in the early steps for each type of component:- – Business components require data and technical components to realize the solution. – Data components deliver a set of services for the given data component specification. – Technical components such as base classes and facility components such as an error handler may require data component services and their own base classes.
  • 16. Test and rollout component • Execute tests means running test scripts defined for this increment as well as running those scripts for previous increments to ensure that the latest changes have not broken existing services. • All tests need to be performed under black-box conditions to verify the external behavior of the component. • If the tests fail, then the component developer must identify and fix the problem; it is not the test team’s responsibility to fix the component, as there may be errors in the OO analysis, the design or the code. • All test results – good and bad – are documented. When the tests are passed, then rollout means publication of the tested component executable/package to the component user community.
  • 17. Componentization of legacy systems • In order to maximize the investment in current applications, it may be necessary to use the existing functionality by providing a set of services for new applications. • In providing these services, various levels of effort and approach are required to integrate the application.
  • 18. Cont. • These efforts can deliver wrapper components, which:- – Encapsulate unchanged functionality in the legacy application. – Component specifications containing the functional requirements extracted for the existing legacy application through reverse engineering. – Components that encapsulate the re-engineered functionality extracted from the legacy application. • The initial step is to define the integration strategy by assessing the application architecture. • After assessment, stakeholder must be agreed to ensure the feasibility of an appropriate componentization strategy, as more than one approach can be applied in any situation: wrapping, re-engineering, and reverse engineering.
  • 19. Cont. • Wrapping:- – A wrapper is a component that provides a message-based interface to non-object-oriented software such as the functionality within a legacy application. • Re-engineering:- – Re-engineering the legacy application means altering the existing functionality or interfaces to meet the new business needs. • Reverse engineering – Reverse engineering means using the existing logic and data descriptions as specifications for new components, i.e. recreating the same functionality within a new environment.
  • 20. Cont. • Whichever approach is taken, you must be aware of the risks involved in integrating new and old systems:- – changes to legacy code may impact the wrapper component. – the required functionality may be inaccessible. – the level of complexity and dependencies may be too high. – changes to the legacy application may affect the new system. – legacy code may be too hard to understand. – there may be no sources of expertise in the legacy application.
  • 21. Maintain component • To resolve a defect first update the defect log, then recreate the incident and determine a candidate solution. • An agreed solution is used to update the component specification and issue it to the component delivery team. • To resolve change requests first identify the affected items, and determine the impact and feasibility of change before scheduling the change.
  • 22. • Whenever changes are planned, it is useful to update the risk register to reflect the increased risk of doing the change (ripple effect) and for not doing the change (reduced functionality). • The updated component specification is then issued ready for the start of the scheduled component delivery process to incorporate the changes.
  • 23. Technical architecture • Components must guarantee that they can ‘inter-operate’, i.e. coexisting and cooperating within a common technical environment. • Therefore, supplying a technical architecture is key to the successful delivery of component- or service-based solutions. • Delivery of the technical architecture is achieved in two stages. – The initial technical architecture is assembled and delivered. – The technical architecture is applied to multiple development projects.