Software Engineering

A Systems Approach

a course/workshop presented over five days

Software Engineering Course Introduction

This course is a 5-day total immersion in software development best practices, with a focus on the steps an organization must take to transition software development from a craft to an engineering discipline. The course approaches software development from a systems perspective: an interdisciplinary, collaborative approach to the engineering large and complex software intensive systems. All course subject areas provide actionable information on creating cost-effective solutions to practical problems by applying scientific knowledge to building software.

Who Should Attend This Course?

This course is designed for people who are responsible for specifying, acquiring, developing, evaluating, supporting and/or managing software-intensive systems, for example:

  • Software Development Team Leaders
  • Software Engineers
  • Business Analysts
  • Programmers
  • System Engineers
  • Project Managers of Software-Intensive Projects
  • Verification & Validation Managers
  • Configuration Managers
  • System Safety Managers
  • Software Maintainers
  • Software Procurement Managers

Training Method and Materials

PPI's Software Engineering training delivery is a mixture of stand-up instruction, guided discussions, and individual and group exercises which are used to deliver a very practically-oriented learning experience.

In our Software Engineering Training, you will be provided with numerous supplementary descriptions, checklists, forms and charts which you can put to use immediately.

Key Questions

  • Why do so many software projects fail?
  • What standards are used in software development? Who uses them and why?
  • What are the leading software development technical and management practices?
  • What are agile development method and techniques and where do they apply?
  • How do you determine whether software requirements are adequate?
  • What are the commonly used analysis and design patterns, techniques and tools?
  • What is verification and validation and how is it effectively integrated with core development activities?
  • How do you develop system architectures and what is their significance?
  • How should software intensive projects be planned and managed?
  • How do you implement a cost-effective risk management program?
  • What can be done to extract maximum value from inspections and technical reviews?
  • What is the role of metrics in software development?
  • How do you establish and maintain effective software development teams?
  • What techniques are used for developing critical and trusted systems?

Software Engineering Training Objective

Complex business, defense, aerospace, transportation and other technology-based projects typically involve large-scale software development. Without exception, these projects are loss-prone, high-risk enterprises (even today, sixty years on from the first application of computers, the software industry spends more than $0.50 of every software dollar on fixing bugs and dealing with security flaws or disasters such as cancelled projects). Software project performance is uneven across the industry, however it is an accepted fact that organizations that routinely deliver high quality systems, on time and on budget, inevitably have highly trained professionals who follow software engineering practices.

At the conclusion of this course participants will:

  • be better prepared to specify, plan, develop, deliver, maintain and operate a software intensive system. Given the constant evolution of software development methodologies, delegates who are already experienced software professionals will further develop their skills;
  • become an advocate in their organization for practical methods to improve software project performance;
  • identify causes of software development problems and drive project performance improvements; and
  • value the substantial body of public domain knowledge that defines world's leading practice in software engineering. For example, ISO/IEC/IEEE 12207, other IEEE and ISO standards, the Software Engineering Institute (SEI) Capability Maturity Models and the Guide to the Software Engineering Body of Knowledge (SWEBOK).

In addition, PPI's Software Engineering Training will allow delegates to develop their skills in specifying, planning and managing major software development and maintenanceefforts.

Software Engineering Course Outline

0. Course Overview

  • presenter biography
  • training objectives
  • course content

1. Introducing Software Engineering (3.0 hours)

    1.1 What is Software Engineering?

    • why software must be engineered
    • software engineering goals
    • how projects fail
    • the software engineering approach
    • what software engineers must know - SWEBOK, IEEE 12207
    • case study: Saving Obamacare

    1.2 The Craftsman and the Engineer

    • differentiating craftsmen from engineers
    • identifying productive and unproductive belief systems
    • activity: calibrating your belief systems

    1.3 The Computer Scientist and The Engineer

    • contrasting roles
    • modes of collaboration
    • ways of working
    • risks
    • computer science communities

    1.4 Software and Systems Engineering

    • systems integration
    • systems engineering environment and scope of works
    • allocating software engineering work
    • integrating software development with the systems engineering life-cycle
    • standards and organizations

    1.5 Summary: Features and Benefits

    • why software engineering is attractive to investors
    • software engineering features and benefits
    • areas for improvement

2. Process Modeling and Control (2.0 hours)

    2.1 Process Control

    • what is process control?
    • the need for a process model
    • applying process control to projects
    • process metrics
    • control actions
    • process dynamics

    2.2 Process Modeling Fundamentals

    • process model views
    • deliverable trees
    • life cycle activities
    • describing phases
    • setting milestones
    • documenting procedures
    • organisational structures

    2.3 Choosing a Life Cycle Model

    • factors affecting life cycle choice
    • waterfall model
    • incremental model
    • agile model
    • evolutionary model
    • prototyping model
    • spiral model
    • tailoring the model

3. Software Development Methods and Techniques (1.0 hour)

  • agile, extreme programming (XP), test driven development, feature driven development
  • the objectives of Agile methods
  • the agile manifesto
  • agile project management
  • agile success factors, challenges and benefits
  • rapid application development
  • scrum
  • Rational Unified Process (RUP)
  • Team Software Process (TSP)

4. Process Evaluation and Improvement (2.0 hours)

    4.1 Capability Maturity Model Integration®

    • CMMI® process improvement modes - staged, continuous
    • the maturity concept
    • CMMI® disciplines and process areas
    • appraisals and benchmarking

    4.2 ISO 15504 Software Process Improvement Capability determination (SPICE)

    • intended use
    • process assessment technique
    • process reference model
    • process attributes
    • assessment framework

5. Requirements Analysis (8.0 hours)

  • software requirements fundamentals
  • requirements elicitation
  • requirements analysis
  • requirements specification
  • requirements validation
  • practical considerations
  • requirements analysis techniques
  • requirements documentation
  • requirements management support tools
  • workshop - requirements parsing

6. Software Design (8.0 hours)

  • software design fundamentals
  • key issues in software design
  • architectural styles
  • architectural views and frameworks
  • commonly used architectures
  • design methods
  • software design notations and representations
  • design documentation
  • design support tools
  • workshop - documenting designs

7. Software Construction (1.0 hour)

  • conquering code complexity with structure
  • ISO 9001 requirements for coding
  • coding process
  • assessing code quality
  • dealing with code complexity
  • developing coding standards

8. Systems Integration (0.5 hour)

  • integration
  • Service Oriented Architecture (SOA)
  • Web services
  • SOAP and XML
  • interface control
  • pitfalls and pointers in system integration

9. Software Maintenance (0.5 hour)

  • software maintenance fundamentals
  • key issues in software maintenance
  • maintenance techniques
  • software maintenance support tools

10. Verification and Validation (3.0 hours)

    10.1 Technical reviews

    • software walkthroughs and inspections - Fagan, Gilb
    • formal and informal reviews
    • requirements reviews
    • design reviews
    • other reviews
    • audits
    • administration of technical reviews
    • technical reviews and incremental builds
    • customer involvement in technical reviews
    • pitfalls in conducting technical reviews

    10.2 Testing

    • software testing fundamentals
    • test planning
    • test Levels
    • test techniques
    • test related measures
    • test documentation
    • software testing tools

    10.3 Other Verification and Validation Methods

    • demonstration
    • prototyping
    • simulation

    10.4 Independent Verification and Validation

    • what is IV&V?
    • why and when do you use IV&V?
    • IV&V requirements and activities
    • IV&V agents
    • implementing IV&V

11. Software Engineering Management (8.0 hours)

    11.1 Project Management Activities

    • project management frameworks
    • project initiation
    • scope definition
    • project planning
    • project monitoring, controlling, and reporting
    • project closure

    11.2 Software Development Plans

    • software development management plans and project management plans
    • relationships of an SDMP/PMP to other plans
    • content of the PMP
    • content of the SDMP
    • pitfalls in preparing a SDMP/PMP

    11.3 Scope Management

    • defining a project's scope
    • why the WBS is a foundation of effective software engineering management
    • guidelines for preparing a WBS
    • WBS decomposition and work packages
    • relationship of a WBS to cost accounts
    • WBS development pitfalls and pointers
    • workshop - developing a WBS

    11.4 Time Management

    • schedule drivers
    • activity definition
    • activity sequencing
    • activity duration estimation
    • schedule development
    • schedule control

    11.5 Cost Management

    • cost drivers
    • cost estimation techniques
    • cost estimation models
    • Earned Value Management
    • workshop - project performance review

    11.6 Risk Management

    • the nature of risk
    • components of risk
    • key risk management activities
    • workshop - risk assessment

    11.7 Configuration Management

    • configuration management fundamentals
    • configuration identification
    • configuration control
    • configuration status accounting
    • configuration auditing
    • configuration management standards
    • configuration management pitfalls and pointers

    11.8 Release and Deployment Management

    • release management
    • deployment planning
    • Business Continuity planning
    • Post Implementation Reviews

    11.9 Quality Management

    • software quality defined
    • software quality costs
    • quality frameworks
    • software quality characteristics
    • quality management techniques
    • quality management tools
    • practical considerations

    11.10 Software Performance Measurement/Metrics

    • technical performance measures
    • the Practical Software Measurement (PSM) approach
    • the ISO 15939 Software Measurement Process standard
    • the SEI Goal Driven Measurement approach
    • Function Point Analysis

12. Software Acquisition (0.5 hour)

  • ISO 12207 acquisition process
  • the CMMI® - Acquisition

13. Engineering of Trusted Software Systems (1.0 hour)

  • recognizing and classifying safety risks
  • the risk reduction process
  • safety-related system architectures
  • quantifying safety integrity
  • software safety lifecycle activities

14. Effective Team Management (1.0 hour)

  • motivation
  • emotional intelligence
  • teamwork
  • leading a development team
  • coaching a development team

15. Course Review (0.5 hour)

Software Engineering Course Schedule

How to Register

There are three simple ways to register to one of our courses.

  1. Online. You may register online by clicking the "register online" link next to the course of interest.
  2. Fax. Download a registration form by clicking the link above the schedule and fax the completed form to our offices on +61 3 9876 2664 (Australia) or +1 888 772 5191 (North America).
  3. Email. Download a registration form by clicking the link next to the course of interest and email the form here.

Upon receiving a completed registration form, a course confirmation letter and invoice will be sent electronically to the email provided within 1-2 business days. Payment can made by credit card or by bank transfer.

If you need any assistance with the registration process or have any queries, please call one of our friendly team members on Australia +61 3 9876 7345, UK +44 20 3286 1995, North America +1 888 772 5174, Brazil +55 11 3230 8256 or email us.

Select your region

Find out when PPI's Software Development course is being presented in your region:


"A very good overview of the software engineering field. Pity I couldn’t have done it 12 months ago"

delegate, Australia

All courses are available on-site

Benefits of on-site training for your organisation include:

  • tailored in delivery to your industry
  • savings of up to 50%
  • encourages teamwork
  • formal tailoring possible

Enquire about on-site training for your company

Quote of the Day

The only criterion for an optimum set of requirements (on an item) is as a part of an optimum solution to a bigger problem. - Robert Halligan

Systems Engineering NEWSLETTER

SyEN makes informative reading for the project professional, containing scores of news and other items summarizing developments in the field of systems engineering and in directly related fields.