Systems Engineering and Software Engineering

From SEBoK
Jump to navigation Jump to search

Software is prominent in most modern systems architectures and is often the primary means for integrating complex system components. Software engineering and systems engineering are not merely related disciplines; they are intimately intertwined. (See Systems Engineering and Other Disciplines.) Good systems engineering is a key factor in enabling good software engineering.

The SEBoK explicitly recognizes and embraces the intertwining between systems engineering and software engineering, as well as defining the relationship between the SEBoK and the Guide to the Software Engineering Body of Knowledge (SWEBOK) (Abran et al. 2004).

This knowledge area describes the nature of software, provides an overview of the SWEBOK, describes the concepts that are shared by systems engineers and software engineers, and indicates the similarities and difference in how software engineers and systems engineers apply these concepts and use common terminology.

Topics

Each part of the SEBoK is divided into knowledge areas (KAs), which are groupings of information with a related theme. The KAs in turn are divided into topics. This KA contains the following topics:

Discussion

Software engineers, like systems engineers,

  • engage in analysis and design, allocation of requirements, oversight of component development, component integration, verification and validation, life cycle sustainment, and system retirement.
  • work with component specialists (for example, user interface, database, computation, and communication specialists) who construct or otherwise obtain the needed software components.
  • may be component specialists for certain kinds of components; they engage with other kinds of software component specialists as necessary.
  • sometimes adapt existing components and incorporate components supplied by customers and affiliated organizations.

These commonalities would make it appear that software engineering is merely an application of systems engineering, but this is only a superficial appearance. The differences between the two disciplines arise from two fundamental issues:

  1. Differences in educational backgrounds and work experiences that result in different approaches to problem solving, and
  2. Different ways of applying shared concepts based on the contrasting natures of the software medium and the physical media of traditional engineering.

Table 1 itemizes some of the shared concepts that are applied in different ways by systems engineers and software engineers. Each discipline has made contributions to the other. Table 1 indicates the methods and techniques developed by systems engineers adapted for use by software engineers and, conversely, those that have been adapted for use by systems engineers.

Table 1. Adaptation of Methods Across Systems Engineering and Software Engineering (Fairley and Willshire 2011). Reprinted with permission of Dick Fairley and Mary Jane Willshire. All other rights are reserved by the copyright owner.

Systems Engineering Methods
Adapted to Software Engineering
Software Engineering Methods
Adapted to Systems Engineering
  • Stakeholder Analysis
  • Requirements Engineering
  • Functional Decomposition
  • Design Constraints
  • Architectural Design
  • Design Criteria
  • Design Tradeoffs
  • Interface Specification
  • Traceability
  • Configuration Management
  • Systematic Verification And Validation


  • Model-Driven Development
  • UML-SysML
  • Use Cases
  • Object-Oriented Design
  • Iterative Development
  • Agile Methods
  • Continuous Integration
  • Process Modeling
  • Process Improvement
  • Incremental V&V

References

Works Cited

Abran, A. and J.W. Moore (exec. eds); P. Borque and R. Dupuis (eds.). 2004. Guide to the Software Engineering Body of Knowledge (SWEBOK). Piscataway, NJ, USA: The Institute of Electrical and Electronic Engineers, Inc. (IEEE). Available at: http://www.computer.org/portal/web/swebok

Primary References

Abran, A. and J.W. Moore (exec. eds); P. Borque and R. Dupuis (eds.). 2004. Guide to the Software Engineering Body of Knowledge (SWEBOK). Piscataway, NJ, USA: The Institute of Electrical and Electronic Engineers, Inc. (IEEE). Available at: http://www.computer.org/portal/web/swebok

Brooks, F. 1995. The Mythical Man-Month, Anniversary Edition. Boston, MA, USA: Addison Wesley Longman Inc.

Fairley, R.E. 2009. Managing and Leading Software Projects. Hoboken, NJ, USA: John Wiley and Sons.

Additional References

Pressman, Roger. 2009. Software Engineering: A Practitioner's Approach. 7th Ed. New York, NY, USA: McGraw Hill.

Schneidewind, Norman. 2009. Systems and Software Engineering with Applications. New York, NY: Institute of Electrical and Electronics Engineers.

Sommerville, Ian. 2010. Software Engineering. 9th Ed. Boston, MA, USA: Addison Wesley.


< Previous Article | Parent Article | Next Article >
SEBoK v. 1.9.1 released 30 September 2018

SEBoK Discussion

Please provide your comments and feedback on the SEBoK below. You will need to log in to DISQUS using an existing account (e.g. Yahoo, Google, Facebook, Twitter, etc.) or create a DISQUS account. Simply type your comment in the text field below and DISQUS will guide you through the login or registration steps. Feedback will be archived and used for future updates to the SEBoK. If you provided a comment that is no longer listed, that comment has been adjudicated. You can view adjudication for comments submitted prior to SEBoK v. 1.0 at SEBoK Review and Adjudication. Later comments are addressed and changes are summarized in the Letter from the Editor and Acknowledgements and Release History.

If you would like to provide edits on this article, recommend new content, or make comments on the SEBoK as a whole, please see the SEBoK Sandbox.

blog comments powered by Disqus