Software Engineering

A Systems Approach

a course presented over five days by Mr. Hanno Retief

Software Engineering Course Introduction

This 5-day course in Software Engineering provides an overview of the elements for the effective realization of software intensive systems that are cost effective, on schedule and meet all stakeholder requirements over the full life cycle.

The course approaches software development from a systems perspective: as an interactive and concurrent interdisciplinary, collaborative approach between multiple parties in engineering both small and large, complex software intensive systems.  All course subject areas provide actionable information on creating cost-effective solutions to practical problems by applying scientific and practical 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

The course is delivered using a mixture of presentation, discussion and a variety of practical exercises and group work sessions. The course utilizes different adult learning techniques optimized for the type of content that needs to be mastered.

Throughout the course there is a strong focus on interaction, variety, the social aspects of learning and integration with the learner’s existing knowledge framework. The result is a highly engaging course with a great degree of subject mastery.

Key Questions

  • Why do so many software projects fail?
  • Which paradigms. methodologies, models and standards are used in software development? What should be used where and more importantly; 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, defence, aerospace, transportation and other technology-based projects typically involve large-scale software development. Without exception, these projects are loss-prone, high-risk enterprises.  Following something like the Standish CHAOS report makes it depressingly clear that there has been very little improvement in the last 20 years in terms of the ability to successfully complete software projects.  Despite the high rate of general failure, software project performance is uneven across the industry.  This course looks at the various elements that contribute towards success, not just in the areas of software architecture and design but across all aspects of the software development life cycle as well as the organisational infrastructure.
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). 

Software Engineering Course Outline

1.Introduction and Overview

  • introduce the presenter and go over the learning methodology
  • an overview of course structure and methodology 
  • general introduction into software engineering
  • history of software development, recent trends, the current state and beyond the current state 
  • an engineering approach to software development including concurrent engineering, systems methodology and thinking 
  • key role-players in a typical software development environment
  • life cycle characteristics and typical stages
  • process fundamentals and development models
  • sequential versus incremental and iterative development models
  • different software development methodologies and their applicability
  • the performance of different software development methodologies
  • lean software development and value driven design
  • tailoring and process improvement principles

2. Technical Processes

  • requirement analysis
    • system requirements, system boundaries, hierarchy and subsystems
    • requirement quality attributes and other fundamentals
    • requirement documentation, natural language, UML, and storyboards
    • requirement parsing
    • concept of use documents
    • software tools  
    • common pitfalls in performing RA
  • software design
    • design fundamentals
    • architectural styles and patterns
    • evolutionary architecture
    • design methods
    • software design notations and presentations
    • documentation and tools
  • software construction
    • dealing with complexity
    • standards for coding
    • process
    • assessing quality
  • system and software integration
    • integration strategies
    • system oriented architecture
    • web services
    • communication protocols
    • interface controls
    • pitfalls and pointers
  • validation and verification
    • fundamentals
    • formal, informal, technical, design, code, requirement and other reviews
    • testing
    • other V&V methods
  • transition (transfer between different owners)
  • operations, maintenance and support
  • disposal or retirement

3. Project Processes

  • project management: frameworks, planning, assessment and control
  • estimation and costing
  • risk management
  • configuration management
  • change management
  • quality management
  • release and deployment
  • information management
  • human elements and building effective teams

4. Agreement Processes

  • overview and contract models
  • acquisition
  • supply

5. Enterprise Level Processes

  • project portfolio management and program management
  • life cycle model management
  • quality management
  • human resource management
  • knowledge management
  • enterprise tools

6. Software Fields

  • This section briefly looks at a couple of speciality fields, providing enough information to appreciate the significance and be able to interact with experts in the field. Topics includes:

    • engineering of trusted/high integrity systems
    • software life cycle cost analysis
    • interoperability
    • usability analysis and human system integration

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:


"The course exceeded my expectations it was of broader scope and more real-world focus"

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

Logic will get you from A to B. Imagination will take you everywhere. - Albert Einstein

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.