Software Integration and Product Line (Tsui's paper)

advertisement
Criteria Based Software Product Integration
Architecture
(2007)
F. Tsui
Kennesaw State University
(Southern Polytechnic State University)
Software Product Integration
Product B
Product A
integration
Packaged together
Functionally integrated
Product A
Product B
How much?
Product
A&B
Software Integration Levels
external
Product
software users, customers,
trainers and support personnel
Components
software designers and
support personnel
Internal Code
software developers and
support personnel
internal
Some Software Integration Issues
• at the code level
–
–
–
–
Inheritance (from OO)
code libraries
code patterns
etc
• at the component level
– design patterns
– component libraries, if available
– etc
• at the product level
–
–
–
–
–
–
functionalities
platforms
database
user interface
user guides
etc
Why Do We Care?
(A) Business is connected and needs to operate in an integrated fashion;
thus the software it uses must also reflect that integrated world
(B) Software industry continues to experience mergers and acquisitions ;
thus the software product and services must also be integrated
Human
Resource
Financial
procurement
...
Sales
distribution
inventory
...
Traditional Software Engineering
Guidelines :
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 Concepts
• Cohesion
• Coupling
high
–
–
–
–
–
Content
Common
Control
Stamp
Data
low
–
–
–
–
–
–
–
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Software Product Family
•
What are some of the issues that we should
consider for software product family 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
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
Implications of Coupling & Cohesion for
Software Product Family Architecture
CoExist
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
Low
Intermediate
Strong
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 “control” and/or
“stamp” coupled via data store
Application is experiencing
“procedural” or “communicational”
cohesion
Data stored, processed &
shared
Application is “ common” or
“stamp” coupled via data store or
global variable
Functionalities
Application is “ common” or
“stamp” coupled via data store or
global variable
Application is at “sequential”
cohesion and has no duplicative
features
“Coupling” and “Cohesion” in Product-Line Integration
Co-Existence
Integration
Low-Level
Integration
Intermediate
Integration
low-coupling
among products
(high)-coupling
Increase in coupling
weak product
family cohesion
Increase in cohesion
Strong
Integration
high-coupling
among products
(low)-coupling
strong product
family cohesion
Download