Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
3 views12 pages

Software Sizing and Estimation Body of Knowledge

• The amount of literature that has been published on software engineering is considerable and the reference material included in this Guide should not be seen as a definitive selection but rather as a reasonable selection. Obviously, there are other excellent authors and excellent references than those included in the Guide. In the case of the Guide, references were selected because they are written in English, readily available, recent, and easily readable.

Uploaded by

michael
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views12 pages

Software Sizing and Estimation Body of Knowledge

• The amount of literature that has been published on software engineering is considerable and the reference material included in this Guide should not be seen as a definitive selection but rather as a reasonable selection. Obviously, there are other excellent authors and excellent references than those included in the Guide. In the case of the Guide, references were selected because they are written in English, readily available, recent, and easily readable.

Uploaded by

michael
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Software Sizing and Estimation Body of Knowledge

Open (working) issues:

• Sponsorship
• Advisory panel
• Editors
• Reviewers
• Materials list
• Content
o Knowledge Areas (KA)
o
• Schedule/timelines
o Guide
o Sponsors
o Contributors
o Certification
o Courses
o Examinations
Certified Software Estimation Professional (CSEP)

The CSEP credential is intended for mid-career software development professionals that want to
confirm their proficiency of standard software sizing and estimation practices and advance in their
careers.

Who is eligible to take the CSDP?


If you are a Senior Member of IEEE or a Licensed Software Engineer, no further qualifications are
necessary. All other candidates are required to meet both Education and Experience requirements as
outlined below.

Education: (need at least one)


• You have a bachelor's degree
• You are a CSDA certificate holder
• You are an educator at the post-baccalaureate level
• You are a full member of the IEEE
Experience: (need at least one)
• You have an advanced degree in software engineering and at least two years (about 3,500
hours) of experience in software engineering/development
• You have at least four years (about 7,000 hrs) experience in software
engineering/development

Professionals
• Confirms your proficiency of established software sizing and estimation practices
• Demonstrates your commitment to expanding your knowledge and increasing responsibilities
• Differentiates you with a credential developed by, and for, software engineering professionals

Employers
• Standardize your software sizing and estimation practices
• Protect your investment in a competent and proficient workforce
• Gives you independent assurance that employees can perform on real-world projects

CSDP Assessment Course Outline

Module 1: Software Requirements

Requirements Process

Requirements Elicitation

Requirements Analysis

Requirements Specification

Practical Considerations

Module 2: Software Design

Design Fundamentals

Key Design Issues

Software Structure and Architecture

Design Quality Analysis and Evaluation

Design Notations, Strategies and Methods


Module 3: Software Construction and Methods

Construction Fundamentals

Managing Construction

Practical Considerations

Construction Technologies

Construction Tools Software Modeling

Types of Models

Analysis

Development Methods

Module 4: Software Testing

Software Testing Fundamentals

Test Levels

Test Techniques

Human-Computer Interface (HCI)

Test-Related Measures

Test Process

Module 5: Software Maintenance and Configuration Management

Software Maintenance Fundamentals

Key Issues in Software Maintenance

Maintenance Process

Techniques for Maintenance

Management of the Configuration Process

Software Configuration Identification

Software Configuration Control


Software Configuration Status Accounting

Software Release Management and Delivery

Software Configuration Management Tools

Module 6: Software Engineering Management, Professional Practices and Economics

Initiation and Scope Definition

Software Project Planning

Software Project Enactment

Review and Evaluation

Software Engineering Measurement

Software Management Tools

Professionalism

Code of Ethics

Group Dynamics and Psychology

Communication Skills

Economic Fundamentals

Not-for-Profit Decision-Making

Present Economy

Estimation, Risk and Uncertainty

Multiple Attribute Decisions

Module 7: Software Engineering Process and Quality

Process Implementation and Change

Process Definition

Process Assessment

Measurement
Software Process Tools

Software Quality Fundamentals

Software Quality Management Process

Software Quality Practical Considerations

Module 8: Foundations

Computing Foundations

Mathematical Foundations

Engineering Foundations
PREFACE
Software engineering is an emerging discipline and there are unmistakable trends indicating an increasing

level of maturity:

• Several universities throughout the world offer undergraduate degrees in software engineering. For

example, such degrees are offered at the University of New South Wales (Australia), McMaster University

(Canada), the Rochester Institute of Technology (US), the University of Sheffield (UK), and other

universities.

• In the US, the Engineering Accreditation Commission of the Accreditation Board for Engineering and

Technology (ABET) is responsible for the accreditation of undergraduate software engineering programs.

• The Canadian Information Processing Society has published criteria to accredit software engineering

undergraduate university programs.

• The Software Engineering Institute's Capability Maturity Model for Software (SW CMM) and the new

Capability Maturity Model Integration (CMMI) are used to assess organizational capability for software

engineering. The famous ISO 9000 quality management standards have been applied to software

engineering by the new ISO/IEC 90003.

• The Texas Board of Professional Engineers has begun to license professional software engineers.

• The Association of Professional Engineers and Geoscientists of British Columbia (APEGBC) has begun

registering software professional engineers, and the Professional Engineers of Ontario (PEO) has also

announced requirements for licensing.

• The Association for Computing Machinery (ACM) and the Computer Society of the Institute of Electrical

and Electronics Engineers (IEEE) have jointly developed and adopted a Code of Ethics and Professional

Practice for software engineering professionals.1

• The IEEE Computer Society offers the Certified Software Development Professional certification for

software engineering. The Institute for Certification of Computing Professionals (ICCP) has long offered a

certification for computing professionals.

All of these efforts are based upon the presumption that there is a Body of Knowledge that should be

mastered by practicing software engineers. The Body of Knowledge exists in the literature that has

accumulated over the past thirty years. This book provides a Guide to that Body of Knowledge.
PURPOSE

The purpose of the Guide to the Software Engineering Body of Knowledge is to provide a consensually

validated characterization of the bounds of the software engineering discipline and to provide a topical

access to the Body of Knowledge supporting that discipline. The Body of Knowledge is subdivided into ten

software engineering Knowledge Areas (KA) plus an additional chapter providing an overview of the KAs of

strongly related disciplines. The descriptions of the KAs are designed to discriminate among the various

important concepts, permitting readers to find their way quickly to subjects of interest. Upon finding a

subject, readers are referred to key papers or book chapters selected because they succinctly present the

knowledge.

In browsing the Guide, readers will note that the content is markedly different from computer science. Just

as electrical engineering is based upon the science of physics, software engineering should be based, among

other things, upon computer science. In these two cases, though, the emphasis is necessarily different.

Scientists extend our knowledge of the laws of nature while engineers apply those laws of nature to build

useful artifacts, under a number of constraints. Therefore, the emphasis of the Guide is placed on the

construction of useful software artifacts.

Readers will also notice that many important aspects of information technology that may constitute

important software engineering knowledge are not covered in the Guide, including specific programming

languages, relational databases, and networks. This is a consequence of an engineering-based approach. In

all fields - not only computing - the designers of engineering curricula have realized that specific

technologies are replaced much more rapidly than the engineering work force. An engineer must be

equipped with the essential knowledge that supports the selection of the appropriate technology at the

appropriate time in the appropriate circumstance. For example, software might be built in Fortran using

functional decomposition or in C++ using objectoriented techniques. The techniques for software configuring

instances of those systems would be quite different. But, the principles and objectives of configuration

management remain the same. The Guide therefore does not focus on the rapidly changing technologies,

although their general principles are described in relevant KAs.

These exclusions demonstrate that this Guide is necessarily incomplete. The Guide covers software

engineering knowledge that is necessary but not sufficient for a software engineer. Practicing software
engineers will need to know many things about computer science, project management, and systems

engineering - to name a few - that fall outside the Body of Knowledge characterized by this Guide. However,

stating that this information should be known by software engineers is not the same as stating that this

knowledge falls within the bounds of the software engineering discipline. Instead, it should be stated that

software engineers need to know some things taken from other disciplines - and that is the approach

adopted in this Guide. So, this Guide characterizes the Body of Knowledge falling within the scope of

software engineering and provides references to relevant information from other disciplines. A chapter of the

Guide provides a taxonomical overview of the related disciplines derived from authoritative sources.

The emphasis on engineering practice leads the Guide toward a strong relationship with the normative

literature. Most of the computer science, information technology, and software engineering literature

provides information useful to software engineers, but a relatively small portion is normative. A normative

document prescribes what an engineer should do in a specified situation rather than providing information

that might be helpful. The normative literature is validated by consensus formed among practitioners and is

concentrated in standards and related documents. From the beginning, the SWEBOK project was conceived

as having a strong relationship to the normative literature of software engineering. The two major standards

bodies for software engineering (IEEE Computer Society Software Engineering Standards Committee and

ISO/IEC JTC1/SC7) are represented in the project. Ultimately, we hope that software engineering practice

standards will contain principles directly traceable to the Guide.

INTENDED AUDIENCE

The Guide is oriented toward a variety of audiences, all over the world. It aims to serve public and private

organizations in need of a consistent view of software engineering for defining education and training

requirements, classifying jobs, developing performance evaluation policies, or specifying software

development tasks. It also addresses practicing, or managing, software engineers and the officials

responsible for making public policy regarding licensing and professional guidelines. In addition, professional

societies and educators defining the certification rules, accreditation policies for university curricula, and

guidelines for professional practice will benefit from SWEBOK, as well as the students learning the software

engineering profession and educators and trainers engaged in defining curricula and course content.

EVOLUTION OF THE GUIDE


From 1993 to 2000, the IEEE Computer Society and the Association for Computing Machinery (ACM)

cooperated in promoting the professionalization of software engineering through their joint Software

Engineering Coordinating Committee (SWECC). The Code of Ethics was completed under stewardship of the

SWECC primarily through volunteer efforts. The SWEBOK project was initiated by the SWECC in 1998.

The SWEBOK project's scope, the variety of communities involved, and the need for broad participation

suggested a need for full-time rather than volunteer management. For this purpose, the IEEE Computer

Society contracted the Software Engineering Management Research Laboratory at the Université du

Québec à Montréal (UQAM) to manage the effort. In recent years, UQAM has been joined by the �cole

de technologie supérieure, Montréal, Québec.

The project plan comprised three successive phases: Strawman, Stoneman, and Ironman. An early

prototype, Strawman, demonstrated how the project might be organized. The publication of the widely

circulated Trial Version of the Guide in 2001 marked the end of the Stoneman phase of the project and

initiated a period of trial usage. The current Guide marks the end of the Ironman period by providing a

Guide that has achieved consensus through broad review and trial application.

The project team developed two important principles for guiding the project: transparency and consensus.

By transparency, we mean that the development process is itself documented, published, and publicized so

that important decisions and status are visible to all concerned parties. By consensus, we mean that the

only practical method for legitimizing a statement of this kind is through broad participation and agreement

by all significant sectors of the relevant community. Literally hundreds of contributors, reviewers, and trial

users have played a part in producing the current document.

Like any software project, the SWEBOK project has many stakeholders - some of which are formally

represented. An Industrial Advisory Board, composed of representatives from industry (Boeing, Construx

Software, the MITRE Corporation, Rational Software, Raytheon Systems, and SAP Labs-Canada), research

agencies (National Institute of Standards and Technology, National Research Council of Canada), the

Canadian Council of Professional Engineers, and the IEEE Computer Society, has provided financial support

for the project. The IAB's generous support permits us to make the products of the SWEBOK project publicly

available without any charge (see http://www.swebok.org). IAB membership is supplemented with the

chairs of ISO/IEC JTC1/SC7 and the related Computing Curricula 2001 initiative. The IAB reviews and
approves the project plans, oversees consensus building and review processes, promotes the project, and

lends credibility to the effort. In general, it ensures the relevance of the effort to real-world needs.

The Trial Version of the Guide was the product of extensive review and comment. In three public review

cycles, a total of roughly 500 reviewers from 42 countries provided roughly 9,000 comments, all of which

are available at www.swebok.org. To produce the current version, we released the Trial Version for

extensive trial usage. Trial application in specialized studies resulted in 17 papers describing good aspects of

the Guide, as well as aspects needing improvement. A Web-based survey captured additional experience:

573 individuals from 55 countries registered for the survey; 124 reviewers from 21 countries actually

provided comments - 1,020 of them. Additional suggestions for improvement resulted from liaison with

related organizations and efforts: IEEE-CS/ACM Computing Curricula Software Engineering; the IEEE CS

Certified Software Development Professional project; ISO/IEC JTC1/SC7 (software and systems engineering

standards); the IEEE Software Engineering Standards Committee; the American Society for Quality,

Software Division; and an engineering professional society, the Canadian Council of Professional Engineers.

CHANGES SINCE THE TRIAL VERSION

The overall goal of the current revision was to improve the readability, consistency, and usability of the

Guide. This implied a general rewrite of the entire text to make the style consistent throughout the

document. In several cases, the topical breakdown of the KA was rearranged to make it more usable, but we

were careful to include the same information that was approved by the earlier consensus process. We

updated the reference list so that it would be easier to obtain the references.

Trial usage resulted in the recommendation that three KAs should be rewritten. Practitioners remarked that

the Construction KA was difficult to apply in a practical context. The Management KA was perceived as being

too close to general management and not sufficiently specific to software engineering concerns. The Quality

KA was viewed as an uncomfortable mix of process quality and product quality; it was revised to emphasize

the latter.

Finally, some KAs were revised to remove material duplicating that of other KAs.

LIMITATIONS
Even though the Guide has gone through an elaborate development and review process, the following

limitations of this process must be recognized and stated:

• Software engineering continues to be infused with new technology and new practices. Acceptance of new

techniques grows and older techniques are discarded. The topics listed as "generally accepted" in this

Guide are carefully selected at this time. Inevitably, though, the selection will need to evolve.

• The amount of literature that has been published on software engineering is considerable and the

reference material included in this Guide should not be seen as a definitive selection but rather as a

reasonable selection. Obviously, there are other excellent authors and excellent references than those

included in the Guide. In the case of the Guide, references were selected because they are written in

English, readily available, recent, and easily readable, and - taken as a group - they provide coverage of

the topics within the KA.

• Important and highly relevant reference material written in languages other than English have been

omitted from the selected reference material.

Additionally, one must consider that

• Software engineering is an emerging discipline. This is especially true if you compare it to certain more

established engineering disciplines. This means notably that the boundaries between the KAs of software

engineering and between software engineering and its related disciplines remain a matter for continued

evolution.

The contents of this Guide must therefore be viewed as an "informed and reasonable" characterization of the

software engineering Body of Knowledge and as baseline for future evolution. Additionally, please note that

the Guide is not attempting nor does it claim to replace or amend in any way laws, rules, and procedures

that have been defined by official public policy makers around the world regarding the practice and definition

of engineering and software engineering in particular.

You might also like