I
NTRODUCTION
In order to circumscribe software engineering, it
is necessary to identify the disciplines with which software
engineering shares a common boundary. This chapter identifies, in
alphabetical order, these Related Disciplines. Of course, the
Related Disciplines also share many common boundaries between
themselves.
Using a consensus-based recognized source, this
chapter identifies for each Related Discipline:
LIST OF RELATED DISCIPLINES AND THEIR KNOWLEDGE
AREAS

Figure 1 gives a graphical representation of these Related
Disciplines.

Figure 1 Related Disciplines of Software
Engineering
Computer Engineering

The draft report of the volume on computer
engineering of the Computing Curricula 2001 project (CC2001)1
states that “computer engineering embodies the science and
technology of design, construction, implementation and maintenance
of software and hardware components of modern computing systems and
computer-controlled equipment.”
This report identifies the following Knowledge
Areas (known as areas in the report) for computer engineering:
-
Algorithms and Complexity
-
Computer Architecture and Organization
-
Computer Systems Engineering
-
Circuits and Systems
-
Digital Logic
-
Discrete Structures
-
Digital Signal Processing
-
Distributed Systems
-
Electronics
-
Embedded Systems
-
Human-Computer Interaction
-
Information Management
-
Intelligent Systems
-
Computer Networks
-
Operating Systems
-
Programming Fundamentals
-
Probability and Statistics
-
Social and Professional Issues
-
Software Engineering
-
Test and Verification
-
VLSI/ASIC Design
Computer Science

The final report of the volume on computer
science of the Computing Curricula 2001 project (CC2001)2
identifies the following list of knowledge areas (identified
as areas in the report) for computer science:
-
Discrete Structures
-
Programming Fundamentals
-
Algorithms and Complexity
-
Architecture and Organization
-
Operating Systems
-
Net-Centric Computing
-
Programming Languages
-
Human-Computer Interaction
-
Graphics and Visual Computing
-
Intelligent Systems
-
Information Management
-
Social and Professional Issues
-
Software Engineering
-
Computational Science and Numerical Methods
Management

The European MBA Guidelines defined by the
European association of national accreditation bodies (EQUAL)3
states that the Master of Business Administration degree should
include coverage of and instruction in
1)
Accounting
-
Finance
-
Marketing and Sales
-
Operations Management
-
Information Systems Management
-
Law
-
Human Resource Management
-
Economics
-
Quantitative Analysis
-
Business Policy and Strategy
Mathematics

Two sources are selected to identify the list of
knowledge areas for mathematics. The report titled “Accreditation
Criteria and Procedures”4
of the Canadian Engineering Accreditation Board
identifies that appropriate elements of the following areas should
be present in an undergraduate engineering curriculum:
A more focused list of mathematical topics
(called units and topics in the report) that underpin software
engineering can be found in the draft report of the volume on
software engineering of the Computing Curricula 2001 project
(CC2001).5
Project Management

Project management is defined in the 2000 Edition
of A Guide to the Project
Management Body of Knowledge (PMBOK®
Guide6) published by
the Project Management Institute and adopted as IEEE Std 1490-2003,
as “the application of knowledge, skills, tools, and techniques to
project activities to meet project requirements.”
The Knowledge Areas identified in the PMBOK Guide
for project management are
-
Project Integration Management
-
Project Scope Management
-
Project Time Management
-
Project Cost Management
-
Project Quality Management
-
Project Human Resource Management
-
Project Communications Management
-
Project Risk Management
-
Project Procurement Management
Quality Management

Quality management is defined in ISO 9000-2000 as
“coordinated activities to direct and control an organization with
regard to quality.” The three selected reference on quality
management are
-
ISO 9000:2000 Quality management systems --
Fundamentals and vocabulary
-
ISO 9001:2000 Quality management systems –
Requirements
-
ISO 9004:2000 Quality management systems --
Guidelines for performance improvements
The American Society for Quality identifies the
following Knowledge Areas (first-level breakdown topics in their
outline) in their Body of Knowledge for certification as a Quality
Engineer:7
2) Management and Leadership in Quality
Engineering
-
Quality Systems Development, Implementation
And Verification
-
Planning, Controlling, and Assuring Product
and Process Quality
-
Reliability and Risk Management
-
Problem Solving and Quality Improvement
-
Quantitative Methods
Software Ergonomics

The field of ergonomics is defined by ISO
Technical Committee 159 on Ergonomics as follows: “Ergonomics or
(human factors) is the scientific discipline concerned with the
understanding of the interactions among human and other elements of
a system, and the profession that applies theory, principles, data
and methods to design in order to optimize human well-being and
overall system performance.”8
A list of Knowledge Areas for ergonomics as it
applies to software is proposed below:9
-
Cognition
-
Cognitive AI I: Reasoning
-
Machine Learning and Grammar Induction
-
Formal Methods in Cognitive Science: Language
-
Formal Methods in Cognitive Science:
Reasoning
-
Formal Methods in Cognitive Science:
-
Cognitive AI II: Learning
-
Foundations of Cognitive Science
-
Information Extraction from Speech and Text
-
Lexical Processing
-
Computational Language Acquisition
-
The Nature of HCI
-
Human Information Processing
-
Language, Communication, Interaction
-
Ergonomics
-
Input and Output Devices
-
Dialogue Techniques
-
Dialogue Genre
-
Computer Graphics
-
Dialogue Architecture
-
Development Process
A more focused list of topics on human-computer
interface design (called units and topics in the report) for
software engineering curriculum purposes can be found in the draft
report of the volume on software engineering of the Computing
Curricula 2001 project (CC2001).10
Systems Engineering

The International Council on Systems Engineering
(INCOSE)11
states that “Systems Engineering is an interdisciplinary
approach and means to enable the realization of successful systems.
It focuses on defining customer needs and required functionality
early in the development cycle, documenting requirements, then
proceeding with design synthesis and system validation while
considering the complete problem: operations performance, test,
manufacturing, cost and schedule, training and support and
disposal.”
Systems engineering integrates all the
disciplines and specialty groups into a team effort forming a
structured development process that proceeds from concept to
production to operation. Systems engineering considers both the
business and the technical needs of all customers with the goal of
providing a quality product that meets user needs.
The International Council on Systems Engineering
(INCOSE, www.incose.org) is working on a Guide to the Systems
Engineering Body of Knowledge. Preliminary versions include the
following first-level competency areas:
-
Business Processes and Operational Assessment
(BPOA)
-
System/Solution/Test Architecture (SSTA)
-
Life Cycle Cost & Cost-Benefit Analysis (LCC
& CBA)
-
Serviceability / Logistics (S/L)
-
Modeling, Simulation, & Analysis (MS&A)
-
Management: Risk, Configuration, Baseline
(Mgt)
-
http://www.eng.auburn.edu/ece/CCCE/Iron_Man_Draft_October_2003.pdf
-
http://www.computer.org/education/cc2001/final/cc2001.pdf
-
http://www.efmd.be/
-
http://www.ccpe.ca/e/files/report_ceab.pdf
-
http://sites.computer.org/ccse/volume/FirstDraft.pdf
-
PMBOK is a registered trademark in the
United States and other nations.
-
http://isotc.iso.ch/livelink/livelink.exe/fetch/2000/2122/687806/ISO_TC_159__
Ergonomics_.pdfnodeid=1162319&vernum=0http://www.asq.org/cert/types/cqe/bok.html
-
http://isotc.iso.ch/livelink/livelink.exe/fetch/2000/2122/687806/ISO_TC_
159_Ergonomics_.pdfnodeid=1162319&vernum=0
-
This list was compiled for the 2001
edition of the SWEBOK Guide from the list of courses offered at
the John Hopkins University Department of Cognitive Sciences and
from the ACM SIGCHI Curricula for Human-Computer Interaction.
The list was then refined by three experts in the field: two
from Université du Québec à Montréal and W. W. McMillan, from
Eastern Michigan University. They were asked to indicate which
of these topics should be known by a software engineer. The
topics that were rejected by two of the three respondents were
removed from the original list.
-
http://sites.computer.org/ccse/volume/FirstDraft.pdf
-
www.incose.org