High-Performance Application Design

High-Performance Application Design

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.

Duration
24 hours
Course type
Online
Language
English
Duration
24 hours
Location
Online
Language
English
Code
ARC-008
Training for 7-8 or more people? Customize trainings for your specific needs
High-Performance Application Design
Duration
24 hours
Location
Online
Language
English
Code
ARC-008
€ 700 *
Training for 7-8 or more people? Customize trainings for your specific needs

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.

certificate
After completing the course, a certificate
is issued on the Luxoft Training form

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

Target Audience

  • Architects
  • Designers
  • Analysts
  • Project managers
  • Team leads
  • Senior developers

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

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
Still have questions?
Connect with us