Transcript Title
Proposed Unified “ility” Definition Framework
Andrew Long [email protected]
Motivation
Increased interest in system “ilities”
Lack of common understanding among practitioners
• Definitions • • Relationships between one ility and another Metrics
Objective: Provide a framework to promote shared discussion of system “ilities”
What are system “ilities”?
-ility
• Latin: a suffix; meaning, ability, ability to [do something] • In systems engineering “ilities” are desired system properties
“ilities” describe the system (non-functional) rather than specific system behaviors (functional)
• Functional requirements define what a system is supposed to do; e.g. Performance • Non-functional requirements define how a system is supposed to be.
Accessibility Accountability Adaptability Administrability Affordability Auditability Availability Credibility Compatibility Configurability Correctness Customizability Debugability Degradability Determinability Demonstrability Dependability Deployability Distributability Durability Effectiveness Evolvability
Some examples?
Extensibility Fidelity Flexibility Installability Integrity Interchangeability Interoperability Learnability Maintainability Manageability Mobility Modifiability Modularity Operability Portability Predictability Provability Recoverability Reliability Repeatability Reproducibility Resilience Responsiveness Reusability Robustness Safety Scalability Sustainability Serviceability (a.k.a. supportability) Securability Simplicity Stability Survivability Sustainability Tailorability Testability Timeliness Traceability Ubiquity Understandability Upgradability Usability Versatility “List of system quality attributes” – Wikipedia, May 2012
How are they related to one another?
"Engineering Systems: Meeting Human Needs in a Complex Technological World" by de Weck O., Roos D. and Magee C, MIT Press, January 2012
Common element: Uncertainty
• • In system engineering, uncertainties occur in performance & value expectations Performance: Variance between actual and desired system performance resulting from uncertainty within contexts (e.g. design, production, operations, etc.) Value: Variance in “expected value” resulting from feedback of delivered value, resulting from changing context, stakeholders, needs, etc. System “ilities” account for a system’s ability to change / react to uncertainty Figure adapted from: Ross, A.M., and Rhodes, D.H., "Using Natural Value-centric Time Scales for Conceptualizing System Timelines through Epoch-Era Analysis," INCOSE International Symposium 2008, Utrecht, the Netherlands, June 2008
Designing for Uncertainty
System “Changeability” taxonomy (Ross et al.) provides start for defining system ilities. – – – Change Effect: The difference in states (performance or value) before and after a change has taken place Robustness (No Change) Scalability (Do More / Less) □ To deconflict w/ more common scalability definitions, will refer to as Expandability Modifiability (Add, Remove, Alter ) • • Change Objective: The specific approach / plan / goal / strategies one employs to achieve a desired change effect (Think of these as common “ility” families). Objectives enabled by change enablers and must account for change considerations Change Enablers: System design elements / operational decisions that enable the change objective • Change Considerations: Constraints, Conditions, resources, etc. • Change Agent: The instigator, or force, for the change Ross, A.M., Rhodes, D.H., and Hastings, D.E., "Defining Changeability: Reconciling Flexibility, Adaptability, Scalability, Modifiability, and Robustness for Maintaining Lifecycle Value," Systems Engineering, Vol. 11, No. 3, pp. 246-262, Fall 2008.
Change Effect Change Enablers Change Considerations Change Agents
Proposed “ility” Framework
Robustness Expandability Modifiability
•
Performance Change Objectives
• • • • • Quality (Assurance and control) Safety Reliability Availability Maintainability Testability Scalability • • • • • • • • • • • Configurability Accessibility Compatibility Commonality Distributability Durability Homogeneity Heterogeneity Interchangeability Interoperability Affordability Sustainability Flexibility (External)
Value Change Objectives
• • • • Resiliency Awareness Susceptibility Vulnerability Recoverability Extensibility • • • • • • • • Evolvability Mobility Modularity Portability Repairability Reusability Serviceability (a.k.a. supportability) Understandability Usability / operability • • • Agility / Responsiveness Manufacturability Adaptability (Internal)
Maintaining Performance
Quality: Ability of a product / service to deliver desired performance in spite of internal contextual uncertainties • System performance change objectives • Robustness (No Change) change effect strategies
A A A A
Examples: Toyota Production System, Six Sigma, Taguchi loss function, Telecommunications, … Quality Aspects • Assurance: Activities designed to ensure that quality requirements are fulfilled (includes Safety, Reliability, Availability, Maintainability) • Control: Examination activities (i.e. manufacturing, production, operations) to assess system status (includes testability)
Increasing / Decreasing Performance
Scalability: Ability of a system to provide more / less functionality as a response to internal contextual uncertainties in order to delivery desired performance • System performance change objectives • Expandability (Do More / Less) change effect strategies
A B A A
Examples:
• Electronics / Networking. Performance improves after adding hardware, proportionally to the capacity added • Peer-to-Peer (P2P): Facebook, Pinterest, LinkedIn, Groupon, and many, many more…
Adding / Removing Performance
Configurability: Ability of a system to change its behavior as a response to internal contextual uncertainties in order to delivery desired performance • System performance change objectives • Modifiability (Add, Remove, Alter) change effect strategies
A A B
Examples:
• Swiss Army knife • High Mobility Multipurpose Wheeled Vehicle (HMMWV)
A
Maintaining Value
Resiliency: Ability of a system to continue to satisfy value expectations despite changes in context and /or value-based uncertainties System value change objectives Resiliency (No Change) change effect strategies
B A A A + B A + B
Example: Survivable communications systems, Network design / topology, Combat systems / aircraft survivability • Ability of an architecture to support the functions necessary for mission success in spite of hostile or adverse conditions - DoD Resiliency aspects • Awareness (Identification changing in value expectations) • Survivability (Susceptibility, Vulnerability, Recoverability)
Increasing / Decreasing Value
Extensibility: Ability of a system to satisfy expanded / contracting value expectations as a response to changes in context and value-based uncertainties System value change objectives Expandability (Do More / Less) change effect strategies
B A A A + B A + B
Examples:
• Software APIs (Application Programming Interface) that allows software behavior to be extended / modified (used) by people who don't have access to the original source code.
• Software languages (e.g. JAVA) that allow for software applications to run on a variety of operating platforms • Infrastructure (e.g. Highway, Rail, Telecommunications) • Large scale defense systems (e.g. Air Bases, Aircraft Carriers, Lockheed C-130 Hercules , Satellites)
Adding / Removing Value
Evolvability: Ability of a system to satisfy new / eliminated value expectations as a response to changes in context and value-based uncertainties System value change objectives Modifiability (Add, Remove, Alter) change effect strategies
B A A A + B A + B
Examples:
• Biological systems • Internet / World Wide Web
Change Enablers
System design / operational approaches employed to achieve desired change objective Accessibility Compatibility Commonality Distributability Durability Homogeneity Heterogeneity Interchangeability Interoperability Mobility Modularity Portability Repairability Reusability Serviceability (a.k.a. supportability) Usability / operability …
Change Considerations
Design considerations (e.g. conditions, resources, constraints, etc.) applied to design / operational approaches • • • • • Affordability (Budget) Sustainability (Resources) Agility / Responsiveness (Schedule / Response time) Manufacturability (Technology) Manageability (Organizational)
Change Agents
The instigator, or force, which employs a given change mechanism in order to achieve a desired change effect • Flexibility: External decision-maker imposed change Associated with future / delayed decisions to respond to change (i.e. Real options) • Adaptability: System self-imposed change Associated with upfront / current decisions to respond to change (i.e. Pre-planned / Baked – in) Flexibility / Adaptability are meaningless without specifying change objectives, enablers, etc.
Change Effect Change Enablers Robustness Expandability Modifiability Change Considerations Change Agents
Questions ?
•
Performance Change Objectives
• • • • • Quality (Assurance and control) Safety Reliability Availability Maintainability Testability Scalability • • • • • • • • • • • Configurability Accessibility Compatibility Commonality Distributability Durability Homogeneity Heterogeneity Interchangeability Interoperability Affordability Sustainability Flexibility (External)
Value Change Objectives
• • • • Resiliency Awareness Susceptibility Vulnerability Recoverability Extensibility • • • • • • • • Evolvability Mobility Modularity Portability Repairability Reusability Serviceability (a.k.a. supportability) Understandability Usability / operability • • • Agility / Responsiveness Manufacturability Adaptability (Internal)