proposed unified “ility” definition framework andrew long [email protected]

18
Proposed Unified “ility” Definition Framework Andrew Long [email protected]

Upload: meryl-caldwell

Post on 16-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

Proposed Unified “ility” Definition FrameworkAndrew Long

[email protected]

Page 2: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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”

Page 3: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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.

Page 4: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 5: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 6: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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.

Page 7: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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.

Page 8: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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)

Page 9: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 10: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 11: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 12: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 13: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 14: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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

Page 15: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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 …

Page 16: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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)

Page 17: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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.

Page 18: Proposed Unified “ility” Definition Framework Andrew Long andrewlong@alum.mit.edu

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)