Professional Documents
Culture Documents
Ictprg532 V3
Ictprg532 V3
(AIST)
ICTPRG532 - Apply advanced
object-oriented language skills
Plan application implementation
Implement the application design
Test the application
Hand over the application to the user
TOPIC 1 – PLAN APPLICATION
IMPLEMENTATION
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)
Microservices
Serverless Architectures
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.
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
Dynamic modelling
Functional modelling
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:
FUNCTIONAL MODELLING
Throughout the completion of the implementation plan, it will be necessary to make sure that all
necessary system specifications are:
Identified
Addressed
Catered for
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.
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.
TOPIC 2 – IMPLEMENT THE
APPLICATION DESIGN
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:
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.
Note on code conventions:
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
TYPES OF DOCUMENTS
There is a range of different types of documents that will be required for common application
development tasks, and these include:
Project documentation requirements are outlined in the diagram below:
TOPIC 3 – TEST THE APPLICATION
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:
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
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
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:
Test programs should include:
Basic functionality testing
Code review
Static code analysis
Unit testing
Single user performance testing
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.
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:
COMPLY WITH ORGANISATIONAL
DOCUMENT CONVENTIONS
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.
TOPIC 4 – HAND OVER THE
APPLICATION TO THE USER
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.
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
Adjusting behaviour of objects
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.
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.
TOPIC 4- REQUIRED KNOWLEDGE
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:
Diagram of shared and memory passing inter-process communication mechanisms:
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
Waterfall
Agile project management
Critical chain or Critical path
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 will be developed at the commencement of the plan and will not be altered
unless completely necessary.
The waterfall software development model is based on what is called the six staged of falling water,
and this is explained below:
Requirements
Analysis
Design
Coding
Testing
Operations
AGILE PROJECT MANAGEMENT
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
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
GRAPHICAL USER INTERFACE DESIGN
PRINCIPLES
There is a range of graphical user interface design principles, and these include:
Aesthetically pleasing
Clarity
Compatibility
Comprehensibility
Configurability
Consistency
Control
Directness
Efficiency
Familiarity
Flexibility
Forgiveness
Predictability
Recovery
Responsiveness
Simplicity
Transparency
Trade-offs
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:
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.
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.
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:
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.
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 (%).
Hashing data structure example:
Example hash functions that could be used:
Here are some relatively simple hash functions that have been used:
Division-remainder method
Folding method
Radix transformation method
Digit rearrangement method
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
Jump search
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.
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
Common object-oriented programming languages include:
Java
C++
C#
Python
PHP
JavaScript
Ruby
Perl
Object Pascal
Objective-C
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.