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