Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 87

This Material is developed by Enhance Your Future Pty Ltd for Australian Institute of Science and Technology

(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

 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.
PLAN IMPLEMENTATION OF APPLICATION
ACCORDING TO SYSTEM SPECIFICATIONS

 When planning the implementation of an application using object-oriented programming language


skills, it will be necessary to:
 Determine the architecture of the application
 An architectural framework for web-enabled application development
 Prepare a development timeline
 Complete modelling required for the implementation
 Complete implementation plan
 Ensure that system specification are used as a part of the implementation plan
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:
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)
 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

 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:
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
 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

 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:
 Source code changes
 Configuration changes
 Revision actions that are completed
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:
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

 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:
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

 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.
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

 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
 Message passing
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:
 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

 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:
 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
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
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.

You might also like