High-Performance Application Design

Code:
ARC-008
Duration:
24 hours
Description:
Even before starting to design any software system you should realize that it may at any time become a high-performance system due to certain constrains.When developing a high-performance application, one must determine what parameters will define the systemís high performance.

This training describes the differences between high-performance, high-load, and high-availability systems. The goal of the course is to outline the main concepts, principles, and approaches that are used in designing high-performance systems.

You may often hear a phrase like ďIt must work fast!Ē. But this is not a specification requirement and you have to learn how to deal with and analyze performance requirements the right way.

The training includes exercises and examples related to application performance losses, and then outlines the main methods of achieving the required performance. The subjects discussed during the training also tackle use case examples of patterns that are used in designing software systems with high performance requirements and information about the core antipatterns that may affect a systemís performance.

Special attention is paid to preparing the system for testing and analyzing the test results. We take participants through the process of creating a program and the various methods of testing high-load systems and the systemís load model. We also include an overview of methodologies that enable a quantitative assessment of the systemís performance.

Since software developers often have to deal with problems of designing high-load systems to support big data processing with preset requirements to the response time and amount of data, this training will be useful not only for architects but also for project managers and senior developers.
Target Audience:
  • Architects
  • Designers
  • Analysts
  • Project managers
  • Team leads
  • Senior developers
Objectives:
  • Identifying a systemís performance parameters
  • How to analyze system specifications related to the load on the system
  • Planning the process of high-performance system development
  • Designing systems by using optimal methods to ensure the required performance
  • How to interact with the test team in carrying out load tests
  • How to optimize systems with high performance requirements
  • Using the SPE methodology to ensure the systemís performance at the development stage
Roadmap:
The notion of a High-Performance System
  • High-Performance application, High-Load application, High-Availability application.
  • Application performance management
  • The cost of errors in the identification and occurrence stage

Major performance parameters
  • Main parameters describing the systemís performance
  • System performance model

Specification analysis for high-performance systems
  • Identifying non-functional requirements for high-performance systems
  • Handling inconsistencies while identifying performance requirements
  • Completeness of requirements
  • Practice
  • Requirements analysis for inconsistency and completeness

High-performance system design
  • System quality attributes
  • Main reasons for system performance loss
  • Key methods to improve system performance
  • Practice
  • Part 1: Building an object sorting algorithm with the use of parallel sorting. Analyzing the algorithm
  • Part 2: Quantitative assessment of database access using indices. Analyzing the dependence of access time on the key length and number of database entries

High-performance system patterns
  • Main types of patterns used to build high-performance systems (GRASP, Architecture patterns, Application Integration patterns)
  • Use case examples of patterns in up-to-date standards
  • Use case examples of patterns in up-to-date integration systems of development frameworks
  • Practice
  • Application performance optimization for sequential processing of a large amount of data

High-performance system coding
  • Main issues of high-performance system coding
  • Optimization methods for modern compilers and runtime environments

Testing high-performance systems
  • Types of tests used to prove the systemís performance
  • Preparing to test (creating scenarios and building a load model)
  • Analyzing test results

Performance optimization for applications
  • System performance optimization
  • Ways to optimize performance of complex distributed systems
  • Performance optimization and improving the stability of Java applications
  • Improving database performance

SPE methodology
  • Introduction to the SPE methodology: history, usage limits
  • System performance model
  • Using a system performance model for the analysis of modern systems
  • Using SPE in system development
  • System analysis methodology using SPE
  • Practice
  • Building a test system performance model
Prerequisites:
Required:
  • Knowledge and ability to use UML
  • Basic knowledge of object-oriented design
Desirable:
  • Knowledge of Java language
  • Basic knowledge of PC architecture
  • Basic knowledge of data network architecture
  • Knowledge of GOF patterns
Price:
€ 450
Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. For individual participants the price is as displayed. For legal entities VAT is added to the displayed price.

Courses you may be interested in:

Location Price (plus VAT)
Bucharest 450 Euro
Krakow 450 Euro
Wroclaw 450 Euro

Sign up for High-Performance Application Design