Cover Page

Systems Engineering of Software-Enabled Systems

Richard E. Fairley

Software and Systems Engineering Assoc.
CO, US

Wiley Logo

Preface

Modern physical systems would be inoperable without software. Software elements provide interfaces among physical elements, coordinate the interactions among software elements and physical elements, enable connections to system environments, and provide some (or most) of the functionality, behavior, and quality attributes of software‐enabled physical systems.

It is not an exaggeration to state that software‐enabled physical systems are ubiquitous throughout modern society, including but not limited to systems in the domains of transportation, communication, health care, energy, aerospace, military defense, manufacturing, ecology, agriculture, and intelligent structures such as buildings and bridges. Software‐enabled physical systems include real‐time embedded systems (navigation, communication), consumer products (cell phones, microwave ovens), health care devices (pacemakers, heart and lung machines), transportation systems (automobiles, light rail), energy systems (solar and wind farms, power grids), military defense systems (Tomahawk missiles, F‐35 aircraft), earth orbiting satellites (GPS, weather), and interplanetary missions (Cassini, Rosetta).

Software‐enabled physical systems have evolved so rapidly in size, complexity, and number of deployments that the systems engineering processes, methods, and techniques for gracefully coordinating development of the software elements and physical elements of software‐enabled physical systems have not evolved at a comparable pace.

This text presents processes, methods, and techniques that can be used to bridge the gaps between systems engineering and software engineering that will enable members of both disciplines to perform their tasks in a more cooperative and coordinated manner, which will permit more efficient system development and higher quality systems.

The text is presented in three parts. Part I includes Chapters 1-3. Chapter 1 provides an introduction to and overview of systems engineering and software engineering. Chapter 2 presents similarities and differences in the professional disciplines of systems engineering and software engineering. Chapter 3 presents issues that can facilitate and inhibit successful execution of software‐enabled physical systems development projects.

Part II includes Chapters 4-9 and covers the technical aspects of systems engineering for software‐enabled physical systems from system definition to system delivery. Chapter 4 presents traditional approaches to analysis, design, and development of complex systems. Chapters 5-9 present an approach for improving the linkages among systems engineering, software engineering, and the other engineering disciplines that collaborate to build software‐enabled physical systems.

Part III (Chapters 10-12) is concerned with technical management of systems engineering activities: planning and estimating, assessing and controlling, and organizing and leading project teams that develop software‐enabled systems.

Emphasis of this text is on systems engineering of software‐enabled physical systems but the material in the text can be applied to development of other kinds of complex systems.

Explanatory sidebars are included throughout the text. Each chapter of the text concludes with key points, exercises, and references. Two running examples are used to illustrate various processes, methods, and techniques for system engineering of software‐enabled physical systems: automated teller machines and a driving system simulator for ground‐based vehicles. The examples are large enough to illustrate key issues in systems engineering of software‐enabled physical systems but small enough to be treated within the page limitations of the text.

The intended audiences for the text include advanced undergraduate students, graduate students, practitioners of systems engineering and software engineering, and others who desire to know more about systems engineering and software engineering of software‐enabled physical systems.

The following references provide guidance for the material in this text:

  • ISO/IEC/IEEE Standard 15288:2015 Systems and software engineering – System life‐cycle processes;
  • ISO/IEC/IEEE Standard 12207:2017 Systems and software engineering – Software life‐cycle processes;
  • The Guide to the Systems Engineering Body of Knowledge (SEBoK);
  • The Guide to the Software Engineering Body of Knowledge (SWEBOK);
  • The Software Engineering Competency Model (SWECOM);
  • NASA's Systems Engineering Competency Model; and
  • The INCOSE Systems Engineering Handbook.

Citations for accessing these documents are provided throughout the text and in the bibliography at the end of the text. Access to these documents will be helpful in understanding the material in this text but is not essential.

I am indebted to the students and practitioners from whom I have learn as much and perhaps more than they have learned from me. I am doubly indebted to my wife and best friend Mary Jane for her thoughtful advice on the structure and content of the text.

15 January 2019

Dick Fairley

Teller County, Colorado

Part I
Systems Engineering and Software Engineering

This text is presented in three parts. Part I includes Chapters 1-3. Chapter 1 provides an introduction and overview of systems engineering and software engineering. Chapter 2 presents attributes of the professional disciplines of systems engineering and software engineering. Chapter 3 includes issues that can facilitate and inhibit successful execution of software‐enabled system development projects.