• Non ci sono risultati.

S OFTWARE E NGINEERING

Nel documento A project of the IEEE Computer Society (pagine 172-176)

INTRODUCTION

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:

Š An informative definition (when feasible)

Š A list of knowledge areas

Figure 1 gives a graphical representation of these Related Disciplines.

Figure 1 Related Disciplines of Software Engineering

LIST OF RELATED DISCIPLINES AND THEIR KNOWLEDGE AREAS

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

1 http://www.eng.auburn.edu/ece/CCCE/Iron_Man_Draft_October_2003.pdf

Š 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

12-2 © IEEE –2004 Version 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:

• Linear Algebra

2 http://www.computer.org/education/cc2001/final/cc2001.pdf

3 http://www.efmd.be/

4 http://www.ccpe.ca/e/files/report_ceab.pdf

Š Differential and Integral Calculus

Š Differential Equations

Š Probability

Š Statistics

Š Numerical analysis

Š Discrete Mathematics

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

5 http://sites.computer.org/ccse/volume/FirstDraft.pdf

6 PMBOK is a registered trademark in the United States and other nations.

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 Architecture

Š Cognitive AI II: Learning

Š Foundations of Cognitive Science

Š Information Extraction from Speech and Text

Š Lexical Processing

Š Computational Language Acquisition

Š The Nature of HCI --(Meta-)Models of HCI

9 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.

Š Use and Context of Computers --Human Social Organization and Work --Application Areas

Š Human-Machine Fit and Adaptation

Š Human Characteristics

--Human Information Processing

--Language, Communication, Interaction --Ergonomics

Š Computer System and Interface Architecture --Input and Output Devices

--Dialogue Techniques --Dialogue Genre --Computer Graphics

Š Dialogue Architecture

Š Development Process --Design Approaches --Implementation Techniques --Evaluation Techniques

--Example Systems and Case Studies

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:

1. Business Processes and Operational Assessment (BPOA)

10 http://sites.computer.org/ccse/volume/FirstDraft.pdf

11 www.incose.org

12-4 © IEEE –2004 Version 2. System/Solution/Test Architecture (SSTA)

3. Life Cycle Cost & Cost-Benefit Analysis (LCC & CBA) 4. Serviceability / Logistics (S/L)

5. Modeling, Simulation, & Analysis (MS&A) 6. Management: Risk, Configuration, Baseline (Mgt)

A PPENDIX A

K NOWLEDGE A REA D ESCRIPTION S PECIFICATIONS

Nel documento A project of the IEEE Computer Society (pagine 172-176)