Software System Engineering-Thayer
Software System Engineering-Thayer
Applying system-engineering principles specifically to the development of large, complex software systems provides a pow-
erful tool for process and product management. Software engineering has its early roots in system engineering which is reflect-
ed in their many common terms. This article discusses a merger between system engineering and software engineering called
software system engineering. System engineering looks at controlling the total system development including software.
Software engineering looks at controlling just software development. (System engineers would call software engineering com-
ponent engineering.) The application of system engineering to the development of software gives a large measure of control
A
software development.
pplying system engineering principles common goal of safely delivering an air- the tools the technical management task
specifically to the development of craft from takeoff to landing. Software requires.
large, complex software systems provides a provides the systems major technical The application of system engineering
powerful tool for process and product complexity. principles to the development of a comput-
management. This process is called soft- Because of this increase in size and complex- er software system produces activities, tasks,
ware engineering. Dr. Winston Royce, ity, the vast majority of large software sys- and procedures called software system engi-
father of the Waterfall chart, points out tems do not meet their projected schedule neering (SwSE). Many practitioners consid-
that software engineering was developed or estimated cost, nor do they completely er SwSE to be a special case of system engi-
from system engineering, and he argued for fulfill the system acquirers expectations1. neering and others consider it to be part of
calling the union software system engineer- This phenomenon has long been known software engineering. However, it can be
ing. Unfortunately, this did not stick, and as the software crisis [1]. In response to argued that SwSE is a distinct and powerful
software engineering and software system this crisis, software developers have intro- tool for managing the technical develop-
engineering can be viewed as separate duced different engineering practices into ment of large software projects.
processes. Software systems have become product development. This tutorial integrates the definitions
larger and more complex than ever. We can As large system solutions become and processes from the Institute of
attribute some of this growth to advances increasingly dependent on software, a sys- Electrical and Electronics Engineers
in hardware performance advances that tem engineering approach to software (IEEE) software engineering standards [2]
have reduced the need to limit a software development can help avoid the problems into the SwSE process.
systems size and complexity as a primary associated with the software crisis.
design goal. Microsoft Word is a classic Simply tracking a development pro- Systems and System
example: A product that would fit on a jects managerial and technical status Engineering
360-kilobyte diskette 20 years ago now resources used, milestones accomplished, A system is a collection of elements related
requires a 600-megabyte compact disc. requirements met, and tests completed in a way that allows a common objective
But there are other reasons for does not provide sufficient feedback to be accomplished. In computer systems,
increased size and complexity. Specifically, about the projects health. Instead, we these elements include hardware, soft-
software has become the dominant tech- must manage the technical processes as well as ware, people, facilities, and processes.
nology in many if not most technical sys- its products. System engineering provides System engineering is the practical appli-
tems. It often provides the cohesiveness Figure 1: Software Ties the System Together
and data control that enable a complex
system to solve problems.
Figure 1 is a prime example of this
Separation Assurance
Solution analysis determines the set of ponents. This differentiates Central weatherit from soft- mechanics of software engineering which
warning
Weather Data
possible ways to satisfy the require- ware engineering, Low-level whichwind produces com- made it different from computer science.
processor
ments and constraints, analyzes the puter programs and user manuals.
shear alert system
be done, the size and effort to route date link establishes the baseline for all project soft-
En develop
as life-cycle development methods.
(Tower/TRANCON) Surveillance
ject.
radar (ASR-terminal) Navigational
Process control determines the methods process is the analytical effort necessary to
radar
for controlling the project and the transform user operational needs into the
Transmit Tactical Air Navigation Aid
rective action when necessary. Tower Software system requirements and quality (process) assurance.
Product evaluation determines the quality design specifications.
Weather briefings communication switching system
and quantity of the delivered product Necessary procedures to verify, test, components.
Credit: Logicon Inc. and Roger U. Fujii
integration and testing. software requirements specification or ware requirements, software develop-
During the initial stage of softwareTable both. Software requirements include capa-to SwSE. ment standards, and software quality
Figure 3. Management Relationships
development, SwSE is responsible for bilities that a user needs to solve a problem assurance standards.
1. System Engineering Functions Correlated
software requirements analysis and archi-System or achieve an objective as well as capabili- Quality attributes specify the degree to
tectural design. SwSE also manages theEngineering
ties that a system or component needs to which software possesses attributes that
SwSE SwSE Function Description
SwSE and Project ments as follows [7]: system engineering has defined the acquir-
Definition Analysis system requirements allocated to
Solution Software Determine ways to satisfy requirements and
Management Functional requirements specify functions er and user system requirements. Its func-
Analysis Design
Organizing
constraints, analyze possible solutions, and select the
assessing the software systems risks and must be capable of performing. many as possible software system
Process Directing
Performance
costs, establishing a schedule, integratingProcess requirementsDetermine perfor- forrequirements,
specify methods andandits conclusion marks
Planning Planning and potential risks to
the Controlling
project.
system component must possess such sometimes called the allocated baseline.
and take corrective
design groups, maintaining configurationProduct
as speed, accuracy, and frequency.
action where necessary.
requirements [5]. ments with which a system or compo- and documenting the most effective
Coding and
definition Software design
relationships between project manage- straints on formats, timing, or other will implement the software system
planning
Process Planning Versus Project Planning.
testing
ment, SwSE, and software engineering. factors caused by such an interface. requirements [8]. The design represents
integrationa
Process control Software subsystem
Project management has overall manage- SwSE Design constraints affect or constrain the Management
specific, logical approach to meet the soft-
Product evaluation
waretasks
system
to becomponent, for example, Software design
to do is
thetraditionally parti-
Activities ( 2002, IEE
determines the technical approach, makesEstablishes order of precedence between Establishes schedule for completing the
Figure 3. Management Relationships tasks.
technical decisions, interfaces with thetasks. Table 1: System Engineering Functions Correlated project. to SwSE
Table 1. System Engineering Functions Correlated to SwSE.
technical acquirer, and approves the finalDetermines size of the effort.
software product. Software engineering is
Determines cost of the effort (in staff
software components.
analysis and design tools. Selects planning tools.
Problem Requirements Determine needs and constraints by analyzing
Requirements Analysis
Control Control process, measure progress, and take corrective
Systems
TableEngineering
2. Process Planning Versus Project Planning.
Ignoring the systems aspects of any soft- cation and Validation. Std. 1012-1998.
conference.html
ware project can result in software that will Piscataway: IEEE Press, 1998.
not run on the hardware selected or will November 8-9
not integrate with other software systems. Note
Conducting software engineering without
Static Analysis Summit II
1. This article uses the definitions from
conducting SwSE puts a project in jeop- IEEE/EIA 12207.0-1997, where
Fairfax, VA
ardy of being incomplete or having com- acquirer is used for customer and sup-
https://buildsecurityin.
ponents which do not work together, plier is used for developer or contrac- us-cert.gov/daisy/bsi/events.html
and/or exceeding the projects scheduled tor.
budget. November 12-16
Software engineering and SwSE are About the Author
primarily disciplines used in the front end
ICSPI 2007
of the system life cycle for technical plan- Richard Hall Thayer,
Orlando, FL
ning and at the very late part of the life
Ph.D., is a senior lectur-
cycle to verify if the plans have been met.
www.icspi.com
ing Process. Std. 1220-1998, Piscata- 6540 Chiquita WY COMING EVENTS: Please submit coming events that
are of interest to our readers at least 90 days
way: IEEE Press, 1998. Carmichael, CA 95608 before registration. E-mail announcements to:
4. Royce, W.W. Software Systems Engi- E-mail: [email protected] [email protected].