Architectures

Download Report

Transcript Architectures

The Guide to the Software Engineering Body of Knowledge

SWEBOK

Chapters

1. Introduction 2. Software Requirements 3. Software Design 4. Software Construction 5. Software Testing 6. Software Maintenance 7. Software Configuration Management 8. Software Engineering Management 9. Software Engineering Process 10. Software Engineering Tools and Methods 11. 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. Ethics C. 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 Architecture C. Software Design Quality Analysis and Evaluation D. Software Design Notations and Documentation E. Software Design Strategies and Methods F. Human Factors in Software Design G. Software and System Safety

CSDP Exam Areas

IV. Software Construction (10-12% questions)

• A. Construction planning B. Code design C. Data design and management D. Error processing E. Source code organization F. Code documentation G. Construction QA H. System integration and deployment I. Code tuning J. 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 Process B. Software Configuration Identification C. Software Configuration Control D. Software Configuration Status Accounting E. Software Configuration Auditing F. Software Release Management and Delivery

CSDP Exam Areas

VIII. Software Engineering Management (10-12% questions)

• A. Measurement B. Organizational Management and Coordination C. Initiation and Scope Definition D. Planning E. Software Acquisition F. Enactment G. Risk Management H. Review and Evaluation I. Project Close Out J. Post-closure Activities

CSDP Exam Areas

IX. Software Engineering Process (2 4% questions)

• A. Process Infrastructure B. Process Measurement C. Process Definition D. Qualitative Process Analysis E. 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 Methods C. Maintenance Tools and Methods D. Support Tools and Methods

CSDP Exam Areas

XI. Software Quality (6-8% questions)

• A. Software Quality Concepts B. Planning for SQA and V&V C. Methods for SQA and V&V D. Measurement Applied to SQA and V&V