proposed unified “ility” definition framework andrew long [email protected]
TRANSCRIPT
Proposed Unified “ility” Definition FrameworkAndrew Long
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.
Some examples? Accessibility Accountability Adaptability Administrability Affordability Auditability Availability Credibility Compatibility Configurability Correctness Customizability Debugability Degradability Determinability Demonstrability Dependability Deployability Distributability Durability Effectiveness Evolvability
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
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
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.
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 changeRoss, 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.
Proposed “ility” Framework
Change Effect
Performance Change Objectives
Value Change Objectives
Robustness Quality (Assurance and control)• Safety• Reliability• Availability• Maintainability• Testability
Resiliency• Awareness• Susceptibility• Vulnerability• Recoverability
Expandability Scalability ExtensibilityModifiability Configurability Evolvability
Change Enablers
• Accessibility• Compatibility• Commonality• Distributability• Durability• Homogeneity• Heterogeneity• Interchangeability• Interoperability
• Mobility• Modularity• Portability• Repairability• Reusability • Serviceability (a.k.a. supportability)• Understandability• Usability / operability
Change Considerations• Affordability • Sustainability
• Agility / Responsiveness• Manufacturability
Change Agents • Flexibility (External) • 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
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)
A A A A
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
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…
A B A A
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
Examples: • Swiss Army knife• High Mobility Multipurpose Wheeled Vehicle (HMMWV)
Adding / Removing Performance
A B A 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
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)
A A
B
A + B
A + B
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
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)
A A
B
A + B A + B
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
Examples: • Biological systems• Internet / World Wide Web
A A
B
A + B A + B
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 specifyingchange objectives, enablers, etc.
Questions ?
Change Effect
Performance Change Objectives
Value Change Objectives
Robustness Quality (Assurance and control)• Safety• Reliability• Availability• Maintainability• Testability
Resiliency• Awareness• Susceptibility• Vulnerability• Recoverability
Expandability Scalability ExtensibilityModifiability Configurability Evolvability
Change Enablers
• Accessibility• Compatibility• Commonality• Distributability• Durability• Homogeneity• Heterogeneity• Interchangeability• Interoperability
• Mobility• Modularity• Portability• Repairability• Reusability • Serviceability (a.k.a. supportability)• Understandability• Usability / operability
Change Considerations• Affordability • Sustainability
• Agility / Responsiveness• Manufacturability
Change Agents • Flexibility (External) • Adaptability (Internal)