Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University

advertisement
Criteria Based Software Product Integration
Architecture
F. Tsui
Southern Polytechnic State University
Software Integration
• at the code level
– Inheritance (from OO)
– object code libraries
– code patterns
• at the component level
– design patterns
– component libraries, if available
• at the product level
–
–
–
–
code
database
user interface
user guides
Software Product Integration
• Why do we care?
– Business is connected and needs to operate in an
integrated fashion; thus software it uses must also
reflect that
•
•
•
•
•
human resource
procurement
sales
financial
etc.
– Software industry itself experiences a large
amount of partnerships or merger/acquisition
activities; thus there is a need for two or more
successful software products to operate as a
product “family”
Software Product Family
•
What are some of the issues that we should
consider for software product family or for software
product architecture?:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Terminology
Packaging & delivery
User interface
Product manuals and user guides
Application functionalities
Application flow and control
Data stored, processed, and shared
Systems, subsystems, and middleware platforms
Internationalization
Customer support and maintenance
A Software Product Integration Architecture
Co-Existence
Integration
Low-Level
Integration
Intermediate
Integration
Increasing levels of product integration
Strong
Integration
“Coupling” and “Cohesion” in Product Integration
Co-Existence
Integration
Low-Level
Integration
Intermediate
Integration
Strong
Integration
low-coupling
Increase in coupling
high-coupling
weak product
family cohesion
Increase in cohesion
strong product
family cohesion
A Software Product Integration Architecture
Co-Existence
Integration
-Packaging & delivery
-System, subsystem
& middleware platform
-internationalization
Low-Level
Integration
Intermediate
Integration
Strong
Integration
A Software Product Integration Architecture
Co-Existence
Integration
-Packaging & delivery
-System, subsystem
& middleware platform
-Internationalization
Low-Level
Integration
-Terminology
-Application UI
-Product manuals
-Product support&
maintenance
Intermediate
Integration
Strong
Integration
A Software Product Integration Architecture
Co-Existence
Integration
-Packaging & delivery
-System, subsystem
& middleware platform
-Internationalization
Low-Level
Integration
-Terminology
-Application UI
-Product manuals
-Product support&
maintenance
Intermediate
Integration
- Data stored,
processed & shared
-Application flow &
control
Strong
Integration
A Software Product Integration Architecture
Co-Existence
Integration
-Packaging & delivery
-System, subsystem
& middleware platform
-Internationalization
Low-Level
Integration
-Terminology
-Application UI
-Product manuals
-Product support&
maintenance
Intermediate
Integration
Strong
Integration
- Data stored,
- Functionalities
processed & shared
& features
-Application flow &
control
Low Coupling and High Cohesion
• Coupling is the degree of connectedness
among modules:
– Control passing
– Data passing
• Coupling should be kept to minimum – low
coupling in design
• Cohesion is the degree of relatedness of the
parts within a module
• Cohesion should be maximized --- high
cohesion in design
Application of Traditional “modular”
Coupling and Cohesion Notions
• Coupling
–
–
–
–
–
Content
Common
Control
Stamp
Data
• Cohesion
–
–
–
–
–
–
–
Coincidental
Logical
Temporal
Procedural
Communicational
Sequential
Functional
Implications of Coupling & Cohesion for
Software Product Family Architecture
CoExist
Low
Architectural Issue
Coupling
Cohesion
Packaging & delivery
Physically packaged together
Product may be at “coincidental”
Cohesion level
System, subsystem,
middleware platform
Using the same platforms
Internationalization
Same language across product
family
Terminology
Commonalities in icons, terms,
etc. and in their respective
semantics
Application’s UI
Similar looks and navigational
approach
Product manuals
Same in content and mode of
presentation
Product support &
maintenance
Release and fix physically
packaged together and delivered
together
Same levels of support and same
methodology of fix and release
distribution
Application flow & control
Application is “stamp” or
“control” coupled via data store
Application is experiencing
“procedural” or
“communicational” cohesion
Data stored, processed &
shared
Application is “ common”
coupled via data store or global
variable
Intermediate
Strong
Functionalities
Application is at “sequential”
cohesion and has no duplicative
features
“Coupling” and “Cohesion” in Product Integration
Co-Existence
Integration
Low-Level
Integration
Intermediate
Integration
Strong
Integration
low-coupling
Increase in coupling
high-coupling
weak product
family cohesion
Increase in cohesion
strong product
family cohesion
Download