Professional Documents
Culture Documents
Learner Resource-1
Learner Resource-1
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
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.
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.
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.
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.
Written Activity
Case Study
Observation
Practical tasks
Short answer questions
Third Party Report
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.
3. Test the 3.1 Develop tests to determine application logic and syntax satisfies
application system specifications
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
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:
Help files
2D graphics
o Document code
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:
Design patterns
Client-server model
Hash functions and data structures using hash functions and associated space
and time complexities
Networked computers
Debugging tools
Individual user
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:
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.
Let’s begin!
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.
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.
Dynamic modelling
Dynamic modelling will require the definition of how single objects will respond to
events and will define the behaviour of the objects.
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.
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
Necessary resources
Timelines
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
Written plans
Modelling
Timelines
Schedules
Communication plans
Monitoring plans
Development methodologies
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
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.
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:
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.
It will be necessary to identify these conventions and then make sure that plans for
compliance are developed and adhered to.
Types of documents
Formats
Level of detail
Types of inclusions
Naming conventions
Quality requirements
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
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
Functional testing
13
Code review
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.
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.
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.
14
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
Code review
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
User manual
Test results
Review results
Specifications sheets
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.
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.
16
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:
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
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.
Functional testing
Microservice testing
Pyramid testing
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
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.
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.
23
22
https://en.wikibooks.org/wiki/GUI_Design_Principles
23
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
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.
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
25
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.
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.
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.
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.
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
If you have any questions about this resource, please ask your trainer. They will be only
too happy to assist you when required.
Images
“Interprocess communication” N.d. Web. 12 Jul.
2019<https://www.geeksforgeeks.org/inter-process-communication/>