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)