150 likes | 266 Views
Factors Affecting Effort to Integrate and Test a System of Systems. Richard D. Stutzke Science Applications International Corp. 6725 Odyssey Drive Huntsville, AL 35806-3301 USA (256) 971-6528 (office) (256) 971-6678 (facsimile) (256) 971-6562 (asst) Presented at the
E N D
Factors Affecting Effort to Integrate and Test a System of Systems Richard D. Stutzke Science Applications International Corp. 6725 Odyssey Drive Huntsville, AL 35806-3301 USA (256) 971-6528 (office) (256) 971-6678 (facsimile) (256) 971-6562 (asst) Presented at the 20th International COCOMO and Software Cost Modeling Forum Los Angeles, California 25-28 October 2005 Richard.D.Stutzke@saic.com SoS
Agenda • Context • Factors to Consider • Modeling Approach • Size Measures • Single Build • Multiple Builds • Estimating Process SoS
Context • Definition: • A System of Systems (SoS) connects multiple systems to solve a large scale problem. • Engineers have built systems of systems for a century or so: • Hardware-intensive (e.g., large ships) • Complex analog/mechanical systems (e.g., airplane) • Complex digital systems (servos, computers) (e.g., modern airplane) • Large integrated plants and information systems (oil refiners, airport) • Ultralarge netcentric systems (e.g., Future Combat System) • Example: the Future Combat System • Design and integrate 14 major weapons systems • Integrate and synchronize with ~157 complementary systems • Use ~53 “critical technologies” SoS
Key Activities “MBASE/RUP” SoS
Essential Complexity Factors • The number of application domains • Maturity of business processes (detail of description) • Compliance (uniform use of the defined processes) • The number of sites • Homogeneity of configurations (platforms, applications) • Geographic dispersion • The number of functional threads • Use cases • Must include exception handling (90/10 rule) • Degree of autonomy ( more functionality) • Required Performance • Speed of response (ops tempo) • Dependability, Safety, Security, etc. • Unprecedentedness in any of the above SoS
Man-Made Complexity Factors • Choice of solution technology • Number of domains • Technology maturity and readiness (-) • Technology refresh (+) • Maturity of engineering (-?) • Development • Test • Transition • Maturity of management processes (-) • The number of stakeholder organizations involved • Buyer, Owner, Operator, User • Developer, Maintainer • Regulator, “the Public”, “the Media” • Personnel turnover for all types of stakeholders (+) • Inadequate funding • Omitted activities (-) • Low estimates (assume “best case”, ignore risks) (+) • Incremental funding (+) • Unprecedentedness in any of the above (-) Note: Long project duration increases (+) or decreases (-) the adverse effects. SoS
Modeling Assumptions • The original design identifies all of the necessary interfaces. • May overlook some interfaces • Misunderstood interfaces lead to volatility and rework. • Each interface for the SoS has two parts: • Common part : shared components that provide the interface functionality (“API”) • System-specific part : glue code for the component system. • Producing multiple builds incurs additional costs for: • Breakage • Maintenance and support • Note: These will affect the glue code and common API differently. SoS
Activities Covered • Build and unit test the interface code • API (common, shared code) • Glue code (component-specific) • Implement and test each link • Identify links using an N-squared matrix • Multiple builds are messy but doable SoS
An N-Squared Matrix TO FROM Notes: 1 – Assumes “symmetry” for each interface pair 2 – Each cell may identify more than one interface SoS
C B A D 1 2 2 Counting a Single Release Note: # Glue modules ≠ 2 * (# Links) SoS
Estimating a Single Release • Assume “constant effort” for a given activity: EAPI = Build and unit test common code EGLUE = Build and unit test one glue module ELINK = Effort to test one link • Estimated Effort ETOTAL = (# API) * EAPIBuild API + (# GLUE) * EGLUE Build Glue + (# LINK) * ELINK Test Links SoS
Recursion Equations* • First build: L(1) = LN(1) M(1) = 0 U(1) = 0 • Subsequent Builds L(b) = L(b-1) + LN(b) U(b) = L(b-1) - M(b) *These equations assume that no links are ever deleted. SoS
Steps of the Estimating Process • Identify the component systems (name, owner) • Identify and categorize the interfaces (name, owner, API complexity and/or size*) • Build the triangular N-squared matrix (from/to, glue code complexity and/or size*) • Calculate the effort by build • Build and unit test APIs and glue modules • Integrate and test links (new, modified, and possibly deleted) • Sum the values for all builds *If the interface will evolve, specify values by build and include breakage or volatility. SoS