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.
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
United Arab Emirates - Software Engineering
Saudi Arabia - Software Engineering
South Africa - Software Engineering
Österreich - Software Engineering
Schweiz - Software Engineering
Deutschland - Software Engineering
Czech Republic - Software Engineering
Denmark - Software Engineering
Estonia - Software Engineering
Finland - Software Engineering
Magyarország - Software Engineering
Ireland - Software Engineering
Luxembourg - Software Engineering
España - Ingeniería de Software
Lithuania - Software Engineering
Nederland - Software Engineering
Portugal - Software Engineering
România - Software Engineering
Sverige - Software Engineering
Türkiye - Software Engineering
Belgique - Software Engineering
Australia - Software Engineering
Malaysia - Software Engineering
New Zealand - Software Engineering
Philippines - Software Engineering
Singapore - Software Engineering
Thailand - Software Engineering
Vietnam - 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
Uruguay - Ingeniería de Software
Venezuela - Ingeniería de Software
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
Slovakia - Software Engineering
Nigeria - Software Engineering
Botswana - Software Engineering
Slovenia - Software Engineering