The Guide to the Software Engineering Body of Knowledge SWEBOK.

Post on 29-Dec-2015

227 views 7 download

Transcript of The Guide to the Software Engineering Body of Knowledge SWEBOK.

The Guide to the Software Engineering Body of Knowledge

SWEBOK

Chapters1. Introduction2. Software Requirements3. Software Design4. Software Construction5. Software Testing6. Software Maintenance7. Software Configuration Management8. Software Engineering Management9. Software Engineering Process10. Software Engineering Tools and Methods11. Software Quality

Introduction

• Software Engineering is an emerging discipline– Degrees offered in SE– CSAB and ABET accreditation– Canadian IPS accreditation– SEI and ISO standards are used to assess organizations– ACM and IEEE have code of ethics

• All of these are based on presumption that there is a body of knowledge that should be mastered by practicing software engineers

Introduction

• Guide developed by international team from 1993-2001

• Definition: “Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”

Characteristics of a Profession

• Initial professional education in a curriculum validated by society through accreditation

• Registration of fitness to practice via voluntary certification or mandatory licensing

• Specialized skill development and continuing professional education

• Communal support via a professional society• A commitment to norms of conduct often prescribed by

a code of ethics.

Objectives

• Promote a consistent view of software engineering• Clarify the place of software engineering with respect

to other disciplines• Characterize the contents of the software engineering

discipline• Provide topical access to the body of knowledge• Provide a foundation for curriculum development

Software Requirements

• Requirements Engineering Process• Requirements Elicitation• Requirements Analysis• Requirements Specification• Requirements Validation• Requirements Management

Software Design

• Basic Concepts

• Key Issues of Software Design

• Structure and Architecture

• Software Design Quality Analysis and Evaluation

• Design Notations

• Software Design Strategies and Methods

Software Construction

• Four principles– reduction of complexity (remove, automate,

localize)– anticipation of diversity (change)– structuring for validation– use of external standards

• Three styles– linguistic– formal– visual

Software Testing

• Basic concepts• Test levels• Test techniques• Test-related measures• Management

Software Maintenance

• Basic concepts• Maintenance process• Key issues• Techniques for maintenance

Software Configuration Management

• Management of SCM process

• Software configuration identification

• Software configuration control

• Software configuration status accounting

• Software configuration auditing

• Software release management and delivery

Software Engineering Management

• Organizational management– policies: development, dissemination– personnel: hiring, retention, training– communication

• Process/project management– negotiation of requirements, feasibility,

reviews, planning• Software engineering measurement

– size, structure, quality, resources, models

Software Engineering Process

• Process infrastructure• Measurements • Process definition• Qualitative process analysis• Process implementation and change

Software Engineering Tools and Methods

• Software development environments

• Software development methods– heuristic methods– formal methods– prototyping methods– miscellaneous methods

Software Quality

• Software quality concepts

• Purpose and planning of software quality assurance and V&V

• Activities and techniques – SQA – V&V

• Measurement applied to SQA and V&V

CSDP

• Certified Software Development Professional

• Certification for Software Engineers– (Not a license)

• Maintained by IEEE

CSDP Requirements

• BS or equivalent University degree

• Minimum 9,000 hours software engineering experience in 6 of 11 areas

• At least two (2) years of software engineering experience within the four-year (4) period prior to the application

• Exam

CSDP Exam Areas

• I. Business Practices and Engineering Economics (3-4% questions)

• A. Engineering Economics B. EthicsC. Professional Practice D. Standards

CSDP Exam Areas

• II. Software Requirements (13-15% questions)

• A. Requirements Engineering Process B. Requirements Elicitation C. Requirements Analysis D. Software Requirements Specification E. Requirements Validation F. Requirements Management

CSDP Exam Areas

• III. Software Design (22-24% questions)• A. Software Design Concepts

B. Software ArchitectureC. Software Design Quality Analysis and

EvaluationD. Software Design Notations and Documentation E. Software Design Strategies and MethodsF. Human Factors in Software Design G. Software and System Safety

CSDP Exam Areas

• IV. Software Construction (10-12% questions)• A. Construction planning

B. Code designC. Data design and managementD. Error processingE. Source code organizationF. Code documentationG. Construction QAH. System integration and deploymentI. Code tuningJ. Construction tools

CSDP Exam Areas

• V. Software Testing (15-17% questions)• A. Types of Tests

B. Test Levels C. Testing Strategies D. Test Design E. Test Coverage of Code F. Test Coverage of Specifications G. Test Execution H. Test Documentation I. Test Management

CSDP Exam Areas

• VI. Software Maintenance (3-5% questions)• A. Software Maintainability

B. Software Maintenance Process  C. Software Maintenance Measurement D. Software Maintenance Planning E. Software Maintenance Management F. Software Maintenance Documentation

CSDP Exam Areas

• VII. Software Configuration Management (3-4% questions)

• A. Management of SCM ProcessB. Software Configuration IdentificationC. Software Configuration ControlD. Software Configuration Status AccountingE. Software Configuration AuditingF. Software Release Management and Delivery

CSDP Exam Areas• VIII. Software Engineering Management (10-12%

questions) • A. Measurement 

B. Organizational Management and CoordinationC. Initiation and Scope DefinitionD. PlanningE. Software AcquisitionF. EnactmentG. Risk ManagementH. Review and EvaluationI. Project Close OutJ. Post-closure Activities

CSDP Exam Areas

• IX. Software Engineering Process (2-4% questions)

• A. Process Infrastructure B. Process MeasurementC. Process DefinitionD. Qualitative Process AnalysisE. Process Implementation and Change

CSDP Exam Areas

• X. Software Engineering Tools and Methods (2-4% questions)

• A. Management Tools and Methods B. Development Tools and MethodsC. Maintenance Tools and MethodsD. Support Tools and Methods

CSDP Exam Areas

• XI. Software Quality (6-8% questions)

• A. Software Quality ConceptsB. Planning for SQA and V&VC. Methods for SQA and V&VD. Measurement Applied to SQA and

V&V