ICTPRG503
Debug and monitor applications


Application

This unit describes the skills and knowledge required to debug and monitor a software application.

It applies to individuals who work as developers, testers and support engineers, using logging and tracing techniques to identify software problems and to monitor systems.

No licensing, legislative or certification requirements apply to this unit at the time of publication.


Elements and Performance Criteria

ELEMENT

PERFORMANCE CRITERIA

Elements describe the essential outcomes.

Performance criteria describe the performance needed to demonstrate achievement of the element.

1. Implement a framework for logging and error handling

1.1 Determine the logging framework for writing text messages at a certain level or priority to log files, or for sending data to monitoring applications

1.2 Create a custom event log for an application

1.3 Analyse the logs to check the state of the running application

2. Debug and trace an application

2.1 Apply basic debugging techniques such as breakpoints, stepping through and over code, and stack trace

2.2 Identify and use the tools to debug software applications

2.3 Write the code for debugging (print, assert and stop statements)

3. Monitor the application’s performance

3.1 Identify and use profiling tools to verify the parts of the system that consume the most resources, such as random access memory (RAM), central processing unit (CPU) and time

3.2 Analyse performance issues, and apply any changes to improve the performance of the application

Evidence of Performance

Evidence of the ability to:

use a logging framework to create an event log for an application

use tools and techniques to trace and debug an application

use profiling tools to collect data about an application's performance, identify and analyse identified issues and implement changes to improve performance.

Note: If a specific volume or frequency is not stated, then evidence must be provided at least once.


Evidence of Knowledge

To complete the unit requirements safely and effectively, the individual must:

provide examples of common logging frameworks. logging and tracing tools, and profiling tools

explain the functions of profiling tools, and logging and tracing tools

explain the basic principles of:

computer hardware, networking and components

database-management systems

object-oriented programming

open-source development tools

describe procedures for developing small-size applications

outline the software development life cycle (SDLC).


Assessment Conditions

Gather evidence to demonstrate consistent performance in conditions that are safe and replicate the workplace. Noise levels, production flow, interruptions and time variances must be typical of those experienced in the programming and software development industry, and include access to:

sufficient privileges to use performance monitoring tools on client and server system

specific debugging tools and licenses, depending on the particular platform.

Assessors must satisfy NVR/AQTF assessor requirements.


Foundation Skills

This section describes language, literacy, numeracy and employment skills incorporated in the performance criteria that are required for competent performance.

Skill

Performance Criteria

Description

Reading

1.1, 1.3, 2.1, 2.2, 2.3, 3.1

Interprets and critically analyses complex texts, and applies the appropriate strategies to construct meaning from complex texts

Writing

1.2

Displays a knowledge of structure and layout, employing a broad vocabulary, grammatical structure, and the conventions appropriate to text when creating a custom event log

Numeracy

1.3, 3.2

Selects from, and applies, an expanding range of mathematical and problem-solving strategies when analysing logs, and monitoring applications data

Get the work done

All

Uses systematic, analytical processes in complex, non-routine situations, setting goals, gathering relevant information, and identifying, and evaluating options against the agreed criteria

Uses analytical processes to decide on a course of action, establishing the criteria for deciding between options

Uses a systematic process to identify possible solutions to a difficult problem

Understands the key principles and concepts underpinning the design, and operation, of digital systems and tools


Sectors

Programming and software development