Course Code: softeng
Duration: 35 hours
Overview:

Software Engineering starts where programming stops. In this course you will learn a solid foundation in Software Engineering. It builds a bridge from programming to solid engineering practices. The course gives you an overview of basic concepts and vocabulary typically used in the field. During the course, you will learn to use many techniques to plan, implement and validate software projects and to evaluate and improve development processes.

Audience:

This course is intended for software developers with various backgrounds who know at least one programming language.

Course Outline:

Day 1: Process

Introduction

  • What is Systems Engineering?
  • What is Software Engineering?
  • Why is Software Engineering difficult?
  • System requirements
  • System modeling

Software Engineering Processes

  • What is a Software Development Process?
  • Traditional Processes
  • Agile Processes
  • Processes for building High-Integrity Systems
  • Standards & certification systems

High-Integrity Systems

  • What are High-Integrity Systems?
  • The role of QM culture
  • Reasons for errors
  • Critical systems standard
  • Reliability engineering

Software Maintenance

Day 2: Planning

Requirements

  • User requirements
  • Elicitation/analysis of user requirements
  • System requirements
  • Software requirements
  • Specification of software
  • Requirements process
  • Tools to manage requirements

Software Design

  • Conways Law
  • Design patterns
  • Textual modeling tools
  • Principles of OO design
  • Design tools
  • Common architectures

Modeling

  • Planning an architecture
  • UML graphical representations
  • Non-UML graphical representations

Day 3: Code

Software Construction

  • How to take a design into code
  • Programming best practices
  • Abstraction of code
  • Programming workflow

Configuration Management

  • What is Configuration Management?
  • Configuration Management in ISO9000 and CMMI
  • CASE tools for planning, design & QA
  • CASE tools for writing software
  • Version control with SVN
  • System Integration

Code for High-Integrity Systems

  • Preventing errors
  • Catching errors
  • Reducing the impact of errors
  • Typical problems with code for High-Integrity Systems

Code quality metrics

  • Code size metrics
  • Code complexity metrics
  • Non-code metrics
  • Static analysis

Day 4: Verification & Validation

Reviews

  • Fundamentals of VV
  • Independent Verification & Validation
  • Design and requirement reviews
  • Code inspections
  • Software Walkthroughs
  • Audits
  • Other V & V methods

Testing High-Integrity Systems

  • Documents regarding safety
  • Scenarios
  • Argumentation for safety
  • Reviews of High-Integrity Systems
  • Predicting reliability
  • Formal methods
  • Costs of V + V

Automated Testing

  • Why test?
  • Automatic vs manual tests
  • Incremental testing
  • Types of tests
  • Testing tools
  • Test Harnesses

Day 5: Management

Project Management

  • What is Project Management?
  • Customer handover
  • Standards (PMP, PRINCE2)
  • Time management
  • Cost management
  • Risk management
  • Project documentation

Process Evaluation

  • The function of process evaluation
  • Acting on the metric
  • Process metrics
  • Process evaluation standards & frameworks (CMMI, ISO 9001, TickIt+)
  • Process evaluation meetings

Summary and Conclusions

Sites Published:

United Arab Emirates - Software Engineering

Qatar - Software Engineering

Egypt - Software Engineering

Saudi Arabia - Software Engineering

South Africa - Software Engineering

Brasil - Software Engineering

Canada - Software Engineering

中国 - Software Engineering

香港 - Software Engineering

澳門 - Software Engineering

台灣 - Software Engineering

USA - Software Engineering

Österreich - Software Engineering

Schweiz - Software Engineering

Deutschland - Software Engineering

Czech Republic - Software Engineering

Denmark - Software Engineering

Estonia - Software Engineering

Finland - Software Engineering

Greece - Software Engineering

Magyarország - Software Engineering

Ireland - Software Engineering

Luxembourg - Software Engineering

Latvia - Software Engineering

España - Ingeniería de Software

Italia - Software Engineering

Lithuania - Software Engineering

Nederland - Software Engineering

Norway - Software Engineering

Portugal - Software Engineering

România - Software Engineering

Sverige - Software Engineering

Türkiye - Software Engineering

Malta - Software Engineering

Belgique - Software Engineering

France - Software Engineering

日本 - Software Engineering

Australia - Software Engineering

Malaysia - Software Engineering

New Zealand - Software Engineering

Philippines - Software Engineering

Singapore - Software Engineering

Thailand - Software Engineering

Vietnam - Software Engineering

India - Software Engineering

Argentina - Ingeniería de Software

Chile - Ingeniería de Software

Costa Rica - Ingeniería de Software

Ecuador - Ingeniería de Software

Guatemala - Ingeniería de Software

Colombia - Ingeniería de Software

México - Ingeniería de Software

Panama - Ingeniería de Software

Peru - Ingeniería de Software

Uruguay - Ingeniería de Software

Venezuela - Ingeniería de Software

Polska - Software Engineering

United Kingdom - Software Engineering

South Korea - Software Engineering

Pakistan - Software Engineering

Sri Lanka - Software Engineering

Bulgaria - Software Engineering

Bolivia - Ingeniería de Software

Indonesia - Software Engineering

Kazakhstan - Software Engineering

Moldova - Software Engineering

Morocco - Software Engineering

Tunisia - Software Engineering

Kuwait - Software Engineering

Oman - Software Engineering

Slovakia - Software Engineering

Kenya - Software Engineering

Nigeria - Software Engineering

Botswana - Software Engineering

Slovenia - Software Engineering

Croatia - Software Engineering

Serbia - Software Engineering

Bhutan - Software Engineering

Nepal - Software Engineering

Uzbekistan - Software Engineering