Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 56

ICTPRG532

APPLY ADVANCED
OBJECT-ORIENTED
LANGUAGE SKILLS

LEARNER RESOURCE
This material is developed by Enhance Your Future Pty Ltd for Australian
Institute of Science and Technology (AIST)

TABLE OF CONTENTS
TABLE OF CONTENTS..................................................................................................................................... 3
UNIT INTRODUCTION.................................................................................................................................... 5
ABOUT THIS RESOURCE................................................................................................................................. 5
ABOUT ASSESSMENT..................................................................................................................................... 6
ELEMENTS AND PERFORMANCE CRITERIA..................................................................................................... 8
PERFORMANCE AND KNOWLEDGE EVIDENCE................................................................................................ 9
Developed by Enhance Your Future Pty Ltd 2
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
PERFORMANCE EVIDENCE............................................................................................................................. 9
KNOWLEDGE EVIDENCE............................................................................................................................... 10
ASSESSMENT CONDITIONS.......................................................................................................................... 11
PRE-REQUISITES.......................................................................................................................................... 11
TOPIC 1 – PLAN APPLICATION IMPLEMENTATION........................................................................................12
PLAN IMPLEMENTATION OF APPLICATION ACCORDING TO SYSTEM SPECIFICATIONS...................................13
Plan the implementation of the application.................................................................................................13
Determine the architecture of the application.............................................................................................13
An architectural framework for web-enabled application development.....................................................14
Prepare a development timeline..................................................................................................................15
Complete modelling required for the implementation.................................................................................15
Object modelling...........................................................................................................................................15
Dynamic modelling.......................................................................................................................................16
Functional modelling....................................................................................................................................16
Complete implementation plan....................................................................................................................17
Ensure that system specification are used as a part of the implementation plan.......................................17
PRESENT IMPLEMENTATION PLAN TO USER AND NEGOTIATE TO REACH AGREEMENT.................................19
Present to the implementation plan to the user...........................................................................................19
Conduct negotiations to reach agreement...................................................................................................19
Record agreements and adjust implementation plan as required...............................................................20
TOPIC 2 – IMPLEMENT THE APPLICATION DESIGN........................................................................................21
PREPARE VERSION CONTROL SYSTEM ACCORDING TO THE IMPLEMENTATION PLAN...................................21
Version control..............................................................................................................................................21
DEVELOP APPLICATION ACCORDING TO IMPLEMENTATION PLAN, SYSTEM SPECIFICATIONS AND
ORGANISATIONAL CODE CONVENTIONS...................................................................................................... 23
Develop the application according to the implementation plan..................................................................23
Develop the application according to the system specifications..................................................................23
Develop the application according to organisational code conventions......................................................24
Organisational code conventions.................................................................................................................24
DOCUMENT APPLICATION ACCORDING TO ORGANISATIONAL DOCUMENTATION CONVENTIONS................26
Organisational documentation conventions................................................................................................26
Types of documents......................................................................................................................................26
TOPIC 3 – TEST THE APPLICATION................................................................................................................ 28
DEVELOP TESTS TO DETERMINE APPLICATION LOGIC AND SYNTAX SATISFIES SYSTEM SPECIFICATIONS........28
Application logic...........................................................................................................................................28
Application syntax........................................................................................................................................28
Test to make sure that system specifications have been satisfied...............................................................29
PERFORM TESTING ON APPLICATION TO DETERMINE APPLICATION SATISFIES SYSTEM SPECIFICATIONS AND
ADDRESS VARIANCES.................................................................................................................................. 30
Develop test plans.........................................................................................................................................30
Use tests to confirm the satisfaction of system specifications.....................................................................31
Address variances.........................................................................................................................................31
DOCUMENT TESTS ACCORDING TO ORGANISATIONAL DOCUMENTATION CONVENTIONS............................32
Document tests.............................................................................................................................................32

Developed by Enhance Your Future Pty Ltd 3


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Comply with organisational document conventions....................................................................................33
TOPIC 4 – HAND OVER THE APPLICATION TO THE USER................................................................................34
Review the application against system specifications..................................................................................34
Address any identified variances..................................................................................................................34
Present the application to the user...............................................................................................................36
Provide the user with the necessary documentation...................................................................................36
Obtain user acceptance................................................................................................................................36
TOPIC 4- REQUIRED KNOWLEDGE................................................................................................................ 38
APPLY ADVANCED OBJECT-ORIENTED LANGUAGE SKILLS.............................................................................38
Inter-process communication mechanisms..................................................................................................38
Shared memory.............................................................................................................................................38
Message passing...........................................................................................................................................38
Development methodologies for large-size applications.............................................................................39
Rapid application development....................................................................................................................39
Waterfall.......................................................................................................................................................40
Agile project management...........................................................................................................................41
Critical chain or Critical path........................................................................................................................41
Testing techniques as applied to distributed application development.......................................................41
Design patterns.............................................................................................................................................43
Graphical user interface design principles....................................................................................................44
Client-server model.......................................................................................................................................48
Dynamic data structures and associated space and time complexities.......................................................49
Hash functions and data structures using hash functions and associated space and time complexities....50
Sorting algorithms and associated time complexities..................................................................................52
Search algorithms and associated time complexities...................................................................................53
Binary search................................................................................................................................................53
Jump search..................................................................................................................................................53
Programming language features and syntax...............................................................................................54
SUMMARY.................................................................................................................................................. 55
REFERENCES................................................................................................................................................ 56
Websites.......................................................................................................................................................56
Images..........................................................................................................................................................56

Developed by Enhance Your Future Pty Ltd 4


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
UNIT INTRODUCTION
This resource covers the unit ICTPRG532 - Apply advanced object-oriented language
skills.

This unit describes the skills and knowledge required to undertake advanced
programming tasks using object-oriented programming languages in the development
of large-sized applications.

It applies to individuals who are programmers producing complex object-oriented


programming in the development of large-sized applications.

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


publication.

About This Resource


This resource brings together information to develop your knowledge about this unit.
The information is designed to reflect the requirements of the unit and uses headings to
makes it easier to follow.

You should read through this resource to develop your knowledge in preparation for
your assessment. At the back of the resource are a list of references you may find useful
to review.

As a student it is important to extend your learning and to search out textbooks, internet
sites, talk to people at work and read newspaper articles and journals which can provide
additional learning material.

Your trainer may include additional information and provide activities, PowerPoint
slide presentations, and assessments in class to support your learning.

Developed by Enhance Your Future Pty Ltd 5


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
About Assessment
Throughout your training we are committed to your learning by providing a training
and assessment framework that ensures the knowledge gained through training is
translated into practical on the job improvements.

You are going to be assessed for:

 Your performance and knowledge using written and practical activities that
apply to a workplace environment.
 Your ability to apply your learning to the workplace.
 Your ability to recognise common principles and actively use these on the job.

You will receive an overall result of Competent or Not Yet Competent for the assessment
of this unit. The assessment is a competency based assessment, which has no pass or
fail. You are either competent or not yet competent. Not Yet Competent means that you
still are in the process of understanding and acquiring the skills and knowledge required
to be marked competent.

The assessment process is made up of a number of assessment methods. You are


required to achieve a satisfactory result in each of these to be deemed competent
overall.

All of your assessment and training is provided as a positive learning tool. Your
trainer/assessor will guide your learning and provide feedback on your responses to the
assessment. For valid and reliable assessment of this unit, a range of assessment
methods will be used to assess practical skills and knowledge.

Your assessment may be conducted through a combination of the following methods:

 Written Activity
 Case Study
 Observation
 Practical tasks
 Short answer questions
 Third Party Report

Developed by Enhance Your Future Pty Ltd 6


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
The assessment tool for this unit should be completed within the specified time period
following the delivery of the unit. If you feel you are not yet ready for assessment,
discuss this with your trainer/assessor.

To be successful in this unit, you will need to relate your learning to your workplace.
You may be required to demonstrate your skills and be observed by your assessor in
your workplace environment. Some units provide for a simulated work environment,
and your trainer and assessor will outline the requirements in these instances.

Developed by Enhance Your Future Pty Ltd 7


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
ELEMENTS AND PERFORMANCE
CRITERIA
1. Plan application 1.1 Plan implementation of application according to system
implementation specifications

1.2 Present implementation plan to user and negotiate to reach


agreement

2. Implement the 2.1 Prepare version control system according to implementation


application design plan

2.2 Develop application according to implementation plan, system


specifications and organisational code conventions

2.3 Document application according to organisational


documentation conventions

3. Test the 3.1 Develop tests to determine application logic and syntax satisfies
application system specifications

3.2 Perform testing on application to determine application satisfies


system specifications and address variances

3.3 Document tests according to organisational documentation


conventions

4. Hand over the 4.1 Review application against system specifications and address
application to the variances
user
4.2 Present the application to the user and obtain user acceptance

Developed by Enhance Your Future Pty Ltd 8


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
PERFORMANCE AND KNOWLEDGE
EVIDENCE
This describes the essential knowledge and skills and their level required for this unit.

Performance Evidence
The candidate must demonstrate the ability to complete the tasks outlined in the
elements and performance criteria of this unit; including evidence of the ability to:

 Plan, implement, test, and handover one application, using two object-
oriented languages, including the ability to:

o Implement nested classes

o Design and implement dynamic data structures including a doubly


linked list and a binary tree

o Design and implement a data structure utilising a hash function

o Compare three sorting algorithms

o Select and implement a sorting algorithm and a comparator

o Compare three search algorithms

o Select and implement a search algorithm

o Implement two inter-process communication mechanisms

o Select and implement a search algorithm

o Implement a graphical user interface with:

 Drag and drop

 Help files

 2D graphics

o Utilise an architectural framework and third party library

o Implement a client-server application including data transfers


Developed by Enhance Your Future Pty Ltd 9
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
o Create tests and debug an application

o Document code

o Utilise a version control system for code and documentation


management

Knowledge Evidence
The candidate must be able to demonstrate knowledge to complete the tasks outlined in
the elements and performance criteria of this unit. This includes:

 Architectural framework for web-enabled application development

 Inter-process communication mechanisms

 Development methodologies for large-size applications

 Testing techniques as applied to distributed application development

 Design patterns

 Graphical user interface design principles

 Client-server model

 Dynamic data structures and associated space and time complexities

 Hash functions and data structures using hash functions and associated space
and time complexities

 Sorting algorithms and associated time complexities

 Search algorithms and associated time complexities

 Programming language features and syntax

Developed by Enhance Your Future Pty Ltd 10


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
ASSESSMENT CONDITIONS
Skills must be demonstrated in a workplace or simulated environment where conditions
are typical of those in an ICT working environment or ICT workplace. This includes:

 Database management system (DBMS)

 Networked computers

 Integrated development environment

 Debugging tools

 System specifications including problem descriptions

 Organisational code conventions

 Organisational documentation conventions

 Individual user

 Access to third party libraries and related documentation

 Access to architectural frameworks and related documentation

 Access to version control system

Assessors of this unit must satisfy the assessor requirements in applicable vocational
education and training legislation, frameworks and/or standards.

PRE-REQUISITES
This unit must be assessed after the following pre-requisite unit:

There are no pre-requisites for this unit.

Developed by Enhance Your Future Pty Ltd 11


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
TOPIC 1 – PLAN APPLICATION
IMPLEMENTATION
Welcome to the unit ICTPRG532 - Apply advanced object-oriented language skills.

This unit describes the skills and knowledge required to undertake advanced
programming tasks using object-oriented programming languages in the development
of large-sized applications.

It applies to individuals who are programmers producing complex object-oriented


programming in the development of large-sized applications.

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


publication.

In this unit you will learn how to:

 Plan application implementation

 Implement the application design

 Test the application

 Hand over the application to the user

Let’s begin!

Developed by Enhance Your Future Pty Ltd 12


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Plan implementation of application according to
system specifications
It will be necessary to plan the implementation of the application according to the
system specifications.

Plan the implementation of the application


When planning the implementation of using object-oriented programming language
skills, it will be necessary to:

Determine the architecture of the application


The architecture or structure of the application will need to be determined using the
following advanced language concepts in order to make sure that the structure of the
application will be suited to the requirements that apply to it.

Components of the architecture requirements:

1
https://www.tutorialride.com/software-architecture-and-design/object-oriented-architecture.htm
Developed by Enhance Your Future Pty Ltd 13
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
An architectural framework for web-enabled application
development
When applying advanced object-oriented language skills as a part of the development of
large or complex programming activities, it will be necessary to make sure that the
architectural framework for web-enabled architecture development is known and
understood.

Common frameworks include:

 Single Page Applications (SPA): Modern, efficient applications are designed


to only request the most necessary elements of content and information to
generate an intuitive and interactive user experience. Single page web
applications interact with the user in a more dynamic fashion by providing
updated content within the current page, rather than loading entirely new
pages from the server with each action from the user. This helps prevent
interruptions in the user experience, transforming the behaviour of the
application such that it resembles a traditional desktop application. The most
heavyweight player is AJAX, short for Asynchronous JavaScript and XML,
which is the foundation for page communications making SPAs possible.
 Microservices: Microservices are small, lightweight services that execute a
specific, single functionality. The Microservices Architecture framework offers
a comprehensive set of advantages that help developers be more productive
and speed up the deployment process of bespoke software applications. Since
the components in the application are not directly dependent on each other
they do not need to be developed in the same coding language; developers
have free range to work with the technology stack of their choice that works
best for the needs of the service and in the desired timeframe.
 Serverless Architectures: This approach leverages third-party cloud
infrastructure services to outsource server and infrastructure management
allowing applications to execute required or custom logic without concerning
themselves with the infrastructure related tasks While it is somewhat similar
to Microservices, the development entity does not own or manage the
backend servers, which makes it simpler when the development company
does not want to manage or support the servers and the hardware they run
in.
2

Prepare a development timeline


It will be necessary to make sure that a development timeframe that is required to
achieve the necessary outcomes is able to be prepared so that this can be presented to
the client.

2
https://svitla.com/blog/web-application-architecture
Developed by Enhance Your Future Pty Ltd 14
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Complete modelling required for the implementation
It will be necessary to make sure that suitable modelling that is required for the
implementation will be completed.

The following three phases of the modelling process will need to be completed:

Object modelling
Object modelling will define the manner in which the application will be structured
according to its objects.

Object modelling will require completion of the following steps:

Dynamic modelling
Dynamic modelling will require the definition of how single objects will respond to
events and will define the behaviour of the objects.

Steps in the dynamic modelling phase include:

3
https://www.tutorialride.com/software-architecture-and-design/object-oriented-architecture.htm
Developed by Enhance Your Future Pty Ltd 15
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
4

Functional modelling
Functional modelling will define the manner in which the process will need to be
executed in an object and how data will change when it is moved between methods.

The steps in functional modelling are:

4
https://www.tutorialride.com/software-architecture-and-design/object-oriented-architecture.htm
Developed by Enhance Your Future Pty Ltd 16
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
5

Complete implementation plan


The implementation plan will need to define:

 All steps and stages of the implementation

 Necessary resources

 Deliverables and outcomes

 Timelines

Ensure that system specification are used as a part of the


implementation plan
Throughout the completion of the implementation plan, it will be necessary to make
sure that all necessary system specifications are:

 Identified

5
https://www.tutorialride.com/software-architecture-and-design/object-oriented-architecture.htm
Developed by Enhance Your Future Pty Ltd 17
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Addressed

 Catered for

Developed by Enhance Your Future Pty Ltd 18


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Present implementation plan to user and
negotiate to reach agreement
Once the implementation plan has been completed, it will be necessary to make sure
that it is presented to the user and those necessary negotiations are completed to reach
agreements on the processes and actions that will be taken.

Present to the implementation plan to the user


It will be necessary to make sure that the implementation plan for the application of the
program and the advances object-oriented language skills will be prepared in a manner
that makes it suitable for presentation.

Presentations of implementation plans may require:

 Written plans

 Modelling

 Timelines

 Schedules

 Resource management actions

 Communication plans

 Recording and reporting plans

 Monitoring plans

 Version control plans

 Development methodologies

Conduct negotiations to reach agreement


Once the plan has been presented to the user, it will be necessary to discuss all of the
components of the plan in order to make sure that the user will agree to the plan as
required.

Developed by Enhance Your Future Pty Ltd 19


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
In some cases, it may be necessary to complete negotiations to come to a solution that
the user will agree with.

The following process can be used to achieve effective negotiation:

Record agreements and adjust implementation plan as required


Once the details of the implementation plan have been discussed, and necessary
negotiations have been completed, it will be necessary to record any agreements and
make any necessary changes or adjustments to the implementation plan as required.

6
http://online.usip.org/negotiation/graphics/shell_phase.jpg
Developed by Enhance Your Future Pty Ltd 20
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
TOPIC 2 – IMPLEMENT THE
APPLICATION DESIGN
Prepare version control system according to the
implementation plan
It will be necessary to prepare a suitable version control system according to the needs
of the implementation plan.

Version control
Version control is a set of actions and processes that are completed to make sure that
the changes that are made to the code or supporting documentation are able to be
tracked and managed as required.

The version control system should be developed to include the following actions:

The version control system that is developed will need to make sure that protects the
code from:
7
https://qph.fs.quoracdn.net/main-qimg-a19c9d7157871fc298adc594a7fba77f.webp
Developed by Enhance Your Future Pty Ltd 21
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Source code changes

 Configuration changes

 Revision actions that are completed

Appropriate software and practices will need to be prepared as a part of the system to
make sure that changes to the code are able to be suitably managed and that all code
changes are trackable and controllable.

Developed by Enhance Your Future Pty Ltd 22


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Develop application according to
implementation plan, system specifications and
organisational code conventions
It will be necessary to make sure that the application is developed according to the
implementation plan, system specifications and the organisational code conventions.

Develop the application according to the implementation plan


The code must be developed according to the implementation plan that was developed
and approved, and this means that:

 All implementation requirements must be met

 Appropriate development methodologies must be applied

 Timelines must be complied with

 Modelling provided in the implementation must be complied with during


development

Develop the application according to the system specifications


It is essential to make sure that the development of the application complies with the
agreed system specifications.

The system specifications that apply to the particular application will be defined in the
software requirements specification document that will have been created as a part of
the implementation plan.

It is essential to make sure that the application is developed according to the system
requirements that have been agreed on or the software item will not be suitable for the
application it was intended.

See the diagram below to see the sections that should be included in this document:

Developed by Enhance Your Future Pty Ltd 23


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
8

Develop the application according to organisational code conventions


It is essential that the application is developed according to the organisational code
conventions.

Organisational code conventions


The organisational code conventions are sets of guidelines that the organisation has
developed or decided to comply with in order to make sure that coding quality can be
ensured and maintained.

Depending on the language that is being used a different set of guidelines may be
required to be complied with, and this will need to be investigated and applied during
the development process.

8
https://sites.google.com/site/requirementsspec/_/rsrc/1452693290833/home/software-
requirements-specification-document/2software-requirement-specification-8-638.jpg
Developed by Enhance Your Future Pty Ltd 24
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Note on code conventions:

9
https://images.slideplayer.com/26/8646735/slides/slide_2.jpg
Developed by Enhance Your Future Pty Ltd 25
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Document application according to
organisational documentation conventions
It will be necessary to make sure that the application is documented according to the
organisational documentation conventions that apply.

Organisational documentation conventions


Organisational documentation conventions are a set of guidelines that define the
manner that code and application development will need to be completed within the
organisation.

It will be necessary to identify these conventions and then make sure that plans for
compliance are developed and adhered to.

Organisational documentation conventions may include:

 Types of documents

 Formats

 Level of detail

 Types of inclusions

 Naming conventions

 Quality requirements

 Version control procedures

It is essential that detailed, clear and specific documentation requirements are met and
complied with at all times, to make sure that the processes and procedures and
outcomes of the project are able to be verified and validated.

Types of documents
There is a range of different types of documents that will be required for common
application development tasks, and these include:
Developed by Enhance Your Future Pty Ltd 26
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
10

Project documentation requirements are outlined in the diagram below:

11

10
https://www.altexsoft.com/blog/business/technical-documentation-in-software-development-types-
best-practices-and-tools/
11
https://www.altexsoft.com/blog/business/technical-documentation-in-software-development-types-
best-practices-and-tools/
Developed by Enhance Your Future Pty Ltd 27
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
TOPIC 3 – TEST THE APPLICATION
Develop tests to determine application logic and
syntax satisfies system specifications
It will be necessary to develop tests to determine the application logic and syntax
satisfies the system specifications.

Application logic
Application logic refers to the workflow of the application and whether or not it meets
the requirements of the system specifications.

Application logic should be assessed for the following three types of logic that can be
applied:

12

Application syntax
Application syntax involves the structure, grammar and organisation of the code
components; it is important that the application syntax is appropriate for the:

 Implementation plan

12
https://www.mendix.com/evaluation-guide/app-lifecycle/attachments/WF-NF-MF-comparison.png
Developed by Enhance Your Future Pty Ltd 28
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 System specifications

 Language to be used

 Coding conventions

 Logic of actions

Test to make sure that system specifications have been satisfied


Test plans and software will need to be obtained and applied or developed and applied
in order to make sure that suitable testing can be completed.

Testing may include:

 Use of debugging software

 Use of logic testing software

 Functional testing

 Assessment of code conventions

Developed by Enhance Your Future Pty Ltd 29


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Perform testing on application to determine
application satisfies system specifications and
address variances
It will be necessary to perform a range of tests on the application to determine that the
application satisfies system specifications and addresses variances as required.

Develop test plans


It will be necessary to make sure that suitable test plans are able to be developed to
meet the needs of the object-oriented application.

Note on object-oriented testing:

13

Test programs should include:

 Basic functionality testing

 Code review

 Static code analysis

 Unit testing

13
https://images.slideplayer.com/28/9322037/slides/slide_2.jpg
Developed by Enhance Your Future Pty Ltd 30
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Single user performance testing

Test plans will need to be developed and defined, and specific procedures for
completing the tests should be prepared.

Use tests to confirm the satisfaction of system specifications


It will be necessary to use the testing process to confirm the satisfaction of the system
specifications.

Each of the system specifications should be used as benchmarks for the tests, and
appropriate levels of compliance must be identified and applied during the testing
process.

Address variances
If you identify any variances between the application developed and the system
specifications determined for the application, these will need to be addressed to ensure
the completed application will perform as required.

Developed by Enhance Your Future Pty Ltd 31


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Document tests according to organisational
documentation conventions
It will be necessary to make sure that all tests are documented according to the
organisational documentation conventions that apply.

Document tests
It is important that clear and concise documentation of the tests that were completed on
the software the outcomes that were achieved as a result of this will be documented
according to the standard conventions that apply to documentation within the
organisation.

Documentation conventions will need to be identified and considered when planning


the documentation of tests to ensure that suitable outcomes are able to be achieved.

Tests should be documented according to the following process:

14

Comply with organisational document conventions


14
http://www.chambers.com.au/Images/test_documentation_small.gif
Developed by Enhance Your Future Pty Ltd 32
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
It is important to make sure that the organisational testing procedures are documented
according to the conventions that apply within the organisation to make sure that all
suitable quality and compliance outcomes are able to be achieved.

Developed by Enhance Your Future Pty Ltd 33


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
TOPIC 4 – HAND OVER THE
APPLICATION TO THE USER
Review application against system specifications
and address variances
Prior to handing the application over to the user, it will be necessary to make sure that
the application is reviewed against the system specifications and that any variance is
addressed.

Review the application against system specifications


It will be necessary to complete a structured review of the application against the
system specifications that have been agreed upon as a part of the implementation plan.

System review plan should include the following steps:

 Step 1: Create the Validation Plan. The first step in the validation process is to
create a validation plan (VP) that identifies who, what, and where. ...
 Step 2: Define System Requirements. ...
 Step 3: Create the Validation Protocol & Test Specifications. ...
 Step 4: Testing. ...
 Step 5: Develop/Revise Procedures & Final Report.
15

Address any identified variances


Any areas of the software application that vary from the specification will need to be
addressed.

Methods that can be used to address variances include:

 Code review

 Adding or removing functions

15
https://www.cebos.com/blog/the-secret-code-of-software-validation-in-5-easy-steps/
Developed by Enhance Your Future Pty Ltd 34
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Adjusting behaviour of objects

Developed by Enhance Your Future Pty Ltd 35


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Present the application to the user and obtain
user acceptance
Once the application has been developed, reviewed and tested, it will be necessary to
present the application to the user and to obtain user acceptance.

Present the application to the user


When presenting the application to the user, it will be necessary to make sure that the
application is prepared for communication.

The application may be presented to the user:

 Via web access

 As a physical drive or hard copy

Provide the user with the necessary documentation


It will be necessary to provide the user with the necessary documentation that will be
used to support the application.

Necessary documentation may include:

 User manual

 Documentation of the application

 Test results

 Review results

 Specifications sheets

Obtain user acceptance


The user will need to be provided with reasonable time to review the application in
order to make sure that it meets all necessary requirements.

Developed by Enhance Your Future Pty Ltd 36


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
User acceptance will only be obtained when the:

 All user acceptance criteria have been met

 The user has confirmed satisfaction with the application

 All required system specification standards have been confirmed

User acceptance is the formal sign off that will be provided by the client or user once the
application is confirmed as meeting all necessary requirements. Once user acceptance
has been obtained, the project will be considered to be formally closed and complete,
and user satisfaction will have been obtained.

It will be necessary to make sure that user acceptance is formally documented and
signed off by the client.

Records of user acceptance should be maintained along with the rest of the project
documentation.

Developed by Enhance Your Future Pty Ltd 37


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
TOPIC 4- REQUIRED KNOWLEDGE
Apply advanced object-oriented language skills
Inter-process communication mechanisms
Inter-process communications mechanisms are the methods that can be used to enable
two processes to communicate with each other, and this can be achieved via:

Shared memory
Communication processes that use shared memory will require that the two processes
that are to communicate have a shared variable that allows them to share the memory
and to process computations within this memory. The shared memory will be able to be
accessed by both processes as required, and this will enable them to work together.

Message passing
Within the message passing mechanism, the two processes will establish a link between
each other, and they will use basic primitives to send and receive messages allowing
them to work together.

Diagram of the memory passing process:

16

Diagram of shared and memory passing inter-process communication mechanisms:


16
https://www.geeksforgeeks.org/inter-process-communication/
Developed by Enhance Your Future Pty Ltd 38
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
17

Development methodologies for large-size applications


It is important to be aware of development methodologies for large sized applications so
that suitable code control is able to be achieved.

Development methodologies for large sized applications include:

Rapid application development


Rapid application development is a software development model that is based on
prototyping and iterative development, but with a minimal planning phase, it focuses
mostly on the collection of required information throughout the process of
development. The RAD model will utilise both prototyping and then a series of iterative
improvements that will be made to the prototype until the process is complete. For
larger RAD development projects, a range of teams and specialists will be working on a
range of prototypes at once.

Waterfall
The waterfall software development methodology deals with items sequentially from
the planning stage right through the end of concept development. Project requirements
17
https://www.geeksforgeeks.org/inter-process-communication/
Developed by Enhance Your Future Pty Ltd 39
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
will be developed at the commencement of the plan and will not be altered unless
completely necessary.

18

The waterfall software development model is based on what is called the six staged of
falling water, and this is explained below:

 Requirements: During this initial phase, the potential requirements of the


application are methodically analyzed and written down in a specification
document that serves as the basis for all future development. The result is
typically a requirements document that defines what the application should
do, but not how it should do it.
 Analysis: During this second stage, the system is analyzed in order to properly
generate the models and business logic that will be used in the application.
 Design: This stage largely covers technical design requirements, such as
programming language, data layers, services, etc. A design specification will
typically be created that outlines how exactly the business logic covered in
the analysis will be technically implemented.
 Coding: The actual source code is finally written in this fourth stage,
implementing all models, business logic, and service integrations that were
specified in the prior stages.
 Testing: During this stage, QA, beta testers, and all other testers
systematically discover and report issues within the application that need to
be resolved. It is not uncommon for this phase to cause a “necessary repeat”
of the previous coding phase, in order for revealed bugs to be properly
squashed.
 Operations: Finally, the application is ready for deployment to a live
environment. The operations stage entails not just the deployment of the
application, but also subsequent support and maintenance that may be

18
https://airbrake.io/blog/sdlc/waterfall-model
Developed by Enhance Your Future Pty Ltd 40
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
required to keep it functional and up-to-date.
19

Agile project management


Agile project management is an adaptive methodology that responds to a range of
changing conditions and feedback that is collected throughout the process. Agile
project management is more responsive but requires much more consultation and
management.

Critical chain or Critical path


The critical chain methodology is less focused on tasks and actions as with waterfall and
agile project management methodologies and is more focused on the schedule of the
item that needs to be created. This methodology is most suited to projects that have a
heavy resource consumption and must be completed quickly.

Testing techniques as applied to distributed application development


It is important to be aware of a range of testing techniques as applied to distributed
application development.

Distributed applications are those which are designed to run on several computers
through the use of a network and may be stored as a cloud computing program or on a
range of multiple systems. Distributed applications will run simultaneously on
different computers and systems, even in the completion of a single task.

When a program is developed across a range of computers and systems, this is the
process of conducting distributed development.

The following diagram shows the necessary quality requirements for a distributed
application:

19
https://airbrake.io/blog/sdlc/waterfall-model
Developed by Enhance Your Future Pty Ltd 41
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
20

When developing testing that can be used on a distributed system, it will be necessary to
code tests to the same level of complexity as the program itself and to ensure that
testing is able to be conducted from all nodes in order to make sure that test results are
able to be trusted.

The testing of distributed systems will require:

 Functional testing

 Microservice testing

 Case scenario testing

 Pyramid testing

Due to the complex requirements of distributed application testing, it will be necessary


to make sure that test plans are developed to meet the specific needs of the application.

20

https://www.packtpub.com/mapt/book/application_development/9781787126992/9/ch09lvl1sec48/c
hallenges-in-testing-distributed-applications
Developed by Enhance Your Future Pty Ltd 42
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Design patterns
Design patterns are a range of simplified patterns that can be applied to resolve typical
software application design and coding issues, and design patterns can be:

 Sources

 Purchased

 Developed

 Adapted

Example design patterns that are commonly used include:

Chain of responsibility - A way of passing a request between a chain of objects


Command - Encapsulate a command request as an object
Interpreter - A way to include language elements in a program
Iterator - Sequentially access the elements of a collection
Mediator - Defines simplified communication between classes
Memento - Capture and restore an object's internal state
Null Object - Designed to act as a default value of an object
Observer - A way of notifying change to a number of classes
State - Alter an object's behavior when its state changes
Strategy - Encapsulates an algorithm inside a class
Template method - Defer the exact steps of an algorithm to a subclass
Visitor - Defines a new operation to a class without change
21

Graphical user interface design principles


There is a range of graphical user interface design principles, and these include:

1. Aesthetically pleasing Provide visual appeal by following these presentation and


graphic design principles:
 Provide a meaningful contrast between screen elements.
 Create groupings.
 Align screen elements and groups.
21
https://sourcemaking.com/design_patterns
Developed by Enhance Your Future Pty Ltd 43
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Provide three dimensional representation
 Use colors and graphics effectively and simply.
2. Clarity The interface should be visually, conceptually and linguistically clear,
including
 Visual elements
 Functions
 Metaphors
 Words and text
3. Compatibility Provide compatibility with the following:
 The user
 The task and job
 The product
 Adopt the user’s perspective
4. Comprehensibility A system should be easily understood and learned. A user
should know the following
 What to do
 What to look at
 When to do it
 Where to do it
 Why to do it
 How to do it
 The flow of actions, responses, visual preparations and information should
be in a sensible order that is easy to recollect and place in context.
5. Configurability Permit easy personalization, configuration and reconfiguration of
settings.
 Enhances a sense of control
 Encourages an active role in understanding
6. Consistency A system should look, act, and operate the same throughput. Similar
components should:
 Have a similar look
 Have similar uses.
 Operate similarly
 The same action should always yield the same result.
 The function of the elements should not change
 The position of standard elements should not change.

Developed by Enhance Your Future Pty Ltd 44


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
7. Control The user must control the interaction.
 Actions should result from explicit user requests
 Actions should be performed quickly
 Actions should be capable of interruption or termination
 The user should never be interrupted for errors
 The context maintained must be from the perspective of the user.
 The means to achieve goals should be flexible and compatible with the
user’s skills, experiences, habits and preferences.
 Avoid modes since they constrain the actions available to the user.
 Permit the user to customize aspects of the interface, while always
providing a proper set of defaults.
8. Directness Provide direct ways to accomplish tasks
 Available alternatives should be visible,
 The effect of actions on objects should be visible.
9. Efficiency
 Minimize eye and hand movements, and other control actions.
 Transitions between various system controls should flow easily and freely.
 Navigation paths should be as short as possible.
 Eye movement through a screen should be obvious and sequential.
 Anticipate the user’s wants and needs whenever possible.
10. Familiarity Employ familiar concepts and use a language that is familiar to the
user.
 Keep the interface natural, mimicking the user’s behavior patterns.
 Use real world metaphors.
11. Flexibility A system must be flexible to the different needs of its users, enabling a
level and type of performance based upon:
 Each user’s knowledge and skills.
 Each user’s experience.
 Each user’s personal preference
 Each user’s habits
 The conditions at that moment
12. Forgiveness
 Tolerate and forgive common and unavoidable human errors
 Prevent errors from occurring whenever possible.
 Protect against possible catastrophic errors.

Developed by Enhance Your Future Pty Ltd 45


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 When an error does occur, provide constructive messages.
13. Predictability The user’s should be able to anticipate the natural progression of
the task.
 Provide distinct and recognizable screen elements
 Provide cues to the result of an action to be performed
 All expectations should be fulfilled uniformly and completely.
14. Recovery A system should permit:
 Commands or actions to be abolished or reversed.
 Immediate return to a certain point if difficulties arise.
Ensure that users never lose their work as a result of
 An error on their part
 H/W, S/W or communication problems.
15. Responsiveness The system must rapidly respond to the user’s requests.
 Provide immediate acknowledgement for all user actions
 Visual
 Textual
 Auditory
16. Simplicity
 Provide as simple an interface as possible
 Provide defaults
 Minimize screen alignment points.
 Make common actions simple at the expense of uncommon actions being
made harder.
 Provide uniformity and consistency
Five ways to provide simplicity:
 Present common and necessary functions first.
 Prominently feature important functions,
 Hide more sophisticated and less frequently used functions
17. Transparency
 Permit the user to focus on the task or job, without concern for the
mechanics of the interface.
 Workings and reminders of workings inside the computer should be
invisible to the user.
18. Trade-offs
 Final design will be based on a series of trade-offs balancing often-

Developed by Enhance Your Future Pty Ltd 46


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
conflicting design principles
 People’s requirements always take precedence over technical requirements
22

Client-server model
The client-server model describes the manner in which a server will provide the
necessary resources to multiple clients. The client-server model is commonly used in
the development of web applications.

Examples of servers in the client-server model include:

 Web servers

 Mail servers

 File servers

The application will be developed to make necessary requests from the client to the
server in order to allow application actions to be completed.

Diagram of the client-server model:

23

22
https://en.wikibooks.org/wiki/GUI_Design_Principles
23

Developed by Enhance Your Future Pty Ltd 47


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Dynamic data structures and associated space and time complexities
Data structures are groupings of data comprised of units of data that are organised in a
method that makes them congruent to all other units of data in the group. Data
structures are especially useful in improving access to data and assisting programmers
in implementing specified tasks that make use of the data within the data structures.

A dynamic data structure which is often referred to as a DDS is a collection or structure


of data in memory that is able to be grown or shrunk depending on the need, and this
enables programmers to control the amount of memory that is used. Dynamic data
structures are able to remain flexible in size through the allocation and re-allocation of
unused memory.

Data structures will need to be sorted and searched in order for them to be used as a
part of the programming process.

It is important to make sure that data structures are suitably organised to make sure
that sorting and searching or hashing algorithms are able to be used efficiently with
them.

The manner in which tables are organised and associated will relieve the time and space
complexities that apply to them.

A range of different programming languages will use dynamic data structures, and these
include:

 C

 C++

 Java

Hash functions and data structures using hash functions and


associated space and time complexities
Hashing involves the transformation of a string of characters into a shorter fixed-length
key or value that can be used to represent the string that was originally created.

Developed by Enhance Your Future Pty Ltd 48


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Hashing can be used to retrieve and index database items as it is quicker to retrieve
these when the hashed key is used instead of searching the original value.

Time complexities apply to hashing in relation to the calculations regarding the number
of steps that will need to be completed and processes in order to complete the hash
function.

Space complexities arise in relation to the amount of memory that will need to be used
up in order for the hash function to be completed in a reasonable and feasible manner.

Time and space considerations must be made in order to achieve efficient and suitable
hash functions.

For example, for a database that has a series of names stored in it in alphabetical order
will need to be searched letter by letter until the correct name is found which can result
in a lengthy search process. If hashing was applied to the names, then a number or
simple hash could be attached to the names, and this would result in a much faster
search result.

The efficiency of the hashing application is determined by the efficiency of the hashing
technique that is applied, an array will be created, and the hashes will be stored within
its positions.

Hashing will be implemented using the following two steps:

1. Elements will be converted to integers using hash functions; the elements will be
used as an index to allow storage of the original element in the hash table.
2. The element will be stored in the hash table where it can be retrieved quickly
through the use of the hash key.

Hashing note:

hash = hashfunc(key)
index = hash % array_size

In this method, the hash is independent of the array size, and it is then reduced to an
index (a number between 0 and array_size − 1) by using the modulo operator (%).
Developed by Enhance Your Future Pty Ltd 49
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
24

Hashing data structure example:

25

Example hash functions that could be used:

Here are some relatively simple hash functions that have been used:
 Division-remainder method: The size of the number of items in the table is
estimated. That number is then used as a divisor into each original value or
key to extracting a quotient and a remainder. The remainder is the hashed
value. (Since this method is liable to produce a number of collisions, any
search mechanism would have to be able to recognize a collision and offer an
alternate search mechanism.)
 Folding method: This method divides the original value (digits in this case)
into several parts, adds the parts together, and then uses the last four digits
(or some other arbitrary number of digits that will work) as the hashed value
or key.
 Radix transformation method: Where the value or key is digital, the number
base (or radix) can be changed resulting in a different sequence of digits. (For
example, a decimal numbered key could be transformed into a hexadecimal
numbered key.) High-order digits could be discarded to fit a hash value of
uniform length.
 Digit rearrangement method: This is simply taking part of the original value
or key such as digits in positions 3 through 6, reversing their order, and then
using that sequence of digits as the hash value or key.
26

24
https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/
25
https://www.geeksforgeeks.org/hashing-data-structure/
26
https://searchsqlserver.techtarget.com/definition/hashing
Developed by Enhance Your Future Pty Ltd 50
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Sorting algorithms and associated time complexities
Sorting algorithms are methods that are used to sort the data in an array to enable it to
be accessed, searched, retrieved and output in an efficient manner to make sure that
programs can run as planned.

Sorting algorithms will use patterns to sort all of the data that is found within a database
according to instructions.

Depending on the range of data that is to be sorted time complexities will comply and it
is important that sorting algorithms are selected based on the complexity of the task to
make sure that they can be used in an efficient manner.

Search algorithms and associated time complexities


Search algorithms are algorithms that will enable the searching for data within a
database using a specific set of instructions.

Examples of search algorithms include:

Binary search
Binary search is an algorithm that searches in a more efficient manner that the linear
type searches and is reliant on the items in the list are sorted to enhance the speed of
searching. Am binary search which is also known as a logarithmic search, Binary chop,
or half interval, is a search algorithm that is able to find the position of a target piece of
data within a sorted array. The Binary search will be able to compare the target data
element to the middle element in the array, and if they are unequal, it will continue
searching the remaining half until it either finds the data or confirmed that the data
element that it was searching for is not present.

Jump search
Jump search can be used for searching complex data structures when the list is a sorted
array. The purpose of the jump search is to enhanced efficiency by checked fewer
elements that a linear search would check which in turn will result in faster searching.

Developed by Enhance Your Future Pty Ltd 51


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
Jump search will check one entry and then will jump ahead according to set value, once
the correct interval has been found a linear search will be conducted only on that
portion to find the desired element.

Time complexity that applies to the use of search algorithms is defined by the number of
steps that will need to be taken to achieve a result.

Programming language features and syntax


The language features of a programming language are the manner in which the language
will work and the functions that can be achieved with it.

The syntax for a programming language refers to the language:

 Grammar

 Structure

 Commands

 Patterns

It is essential to conduct research and to make sure that all programming languages are
used within these constraints and according to the manner in which the language should
be used to make sure that appropriate functionality and security are able to be
maintained.

Common object-oriented programming languages include:

 Java

 C++

 C#

 Python

 PHP

 JavaScript

 Ruby
Developed by Enhance Your Future Pty Ltd 52
ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
 Perl

 Object Pascal

 Objective-C

Developed by Enhance Your Future Pty Ltd 53


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
SUMMARY
Now that you have completed this unit, you should have the skills and knowledge to
undertake advanced programming tasks using object-oriented programming languages
in the development of large-sized applications.

If you have any questions about this resource, please ask your trainer. They will be only
too happy to assist you when required.

Developed by Enhance Your Future Pty Ltd 54


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
REFERENCES
Websites
“Design principles GUI” N.d. Web. 12 Jul.
2019<https://en.wikibooks.org/wiki/GUI_Design_Principles>

“design patterns” N.d. Web. 12 Jul. 2019<https://sourcemaking.com/design_patterns>

“Software validation” N.d. Web. 12 Jul. 2019<https://www.cebos.com/blog/the-secret-


code-of-software-validation-in-5-easy-steps/>

“Web application architecture” N.d. Web. 12 Jul. 2019<https://svitla.com/blog/web-


application-architecture>

Images
“Interprocess communication” N.d. Web. 12 Jul.
2019<https://www.geeksforgeeks.org/inter-process-communication/>

“Document tests” N.d. Web. 12 Jul.


2019<http://www.chambers.com.au/Images/test_documentation_small.gif>

“Object oriented testing” N.d. Web. 12 Jul.


2019<https://images.slideplayer.com/28/9322037/slides/slide_2.jpg>

“Application logic” N.d. Web. 12 Jul. 2019<https://www.mendix.com/evaluation-


guide/app-lifecycle/attachments/WF-NF-MF-comparison.png>

“Documentation types” N.d. Web. 12 Jul.


2019<https://www.altexsoft.com/blog/business/technical-documentation-in-
software-development-types-best-practices-and-tools/>

“Code conventions” N.d. Web. 12 Jul.


2019<https://images.slideplayer.com/26/8646735/slides/slide_2.jpg>

“Software requirements specification” N.d. Web. 12 Jul.


2019<https://sites.google.com/site/requirementsspec/_/rsrc/1452693290833/home/
software-requirements-specification-document/2software-requirement-specification-
8-638.jpg>

“Client-server model” N.d. Web. 12 Jul. 2019<https://techterms.com/definition/client-


server_model>

“Version control” N.d. Web. 12 Jul. 2019<https://qph.fs.quoracdn.net/main-qimg-


a19c9d7157871fc298adc594a7fba77f.webp>

Developed by Enhance Your Future Pty Ltd 55


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name
“Negotiation” N.d. Web. 12 Jul.
2019<http://online.usip.org/negotiation/graphics/shell_phase.jpg>

“Object oriented architecture” N.d. Web. 12 Jul.


2019<https://www.tutorialride.com/software-architecture-and-design/object-
oriented-architecture.htm>

Developed by Enhance Your Future Pty Ltd 56


ICTPRG532 - Apply advanced object-oriented language skills Version 3
Course Code and Name

You might also like