Unit Code and Title ICT505 Software Development
Unit Outline
Unit Code and Title ICT505 Software Development
Course(s) Master of Business
Credit Points 6 Credit Points
Duration 12 Weeks
AQF Level 9
Student Workload Students should expect to spend approximately 120 hours on learning activities across the study period. This includes time spent attending scheduled classes, undertaking individual study and completing assessments.
Mode of Delivery Face-to-face
Pre-Requisites Nil
Name of Unit Coordinator Dr Muhammad Usman Ali Khan
Contact Information Email: usman@pia.edu.au
Consultation: Refer to your Moodle unit page for your lecturers consultation time.
Unit Description
This unit reflects the scope and intent of the applied computing study design and features a problem-solving methodology to create digital solutions in a range of contexts. Software Development is an introductory course that provides students with an understanding of the software development process. The topics covered in this unit are Data Structures and Algorithms, Software design principles and processes, Design patterns and software architectures, Modelling using the Unified Modelling Language (UML), Tools for design, testing, and development, Functional Programming, Object-Oriented Programming, Debugging.
The unit begins with an introduction to the software development process, including the different phases involved in developing software. The unit then covers the process of gathering and analyzing user requirements, including techniques for requirements elicitation, documentation, and analysis. This unit focuses on the implementation and testing phases of SDLC, and the software development processes.
Students will also explore defensive programming techniques to prevent software bugs during implementation and learn how to test your system thoroughly using different types of test cases including design principles and patterns. Basic object-oriented programming (OOP) concepts are required for topics covered in defensive programming and object-oriented testing.
Unit Learning Outcomes (ULOs)
On successful completion of this unit, students will be able to:
ULO1Evaluate elements of programming in program applications.
ULO2Apply a structured algorithm to solve the descriptive problem specification.
ULO3Create consistently readable and efficient code using programming style conventions.
ULO4Implement software development process and methods in prescribing user and system requirements, software implementation, testing, deployment, installation, and maintenance.
Learning and Teaching Approach
Learning and teaching in this unit applies the Institutes model of providing transformational learning experiences that are student-centred, collaborative, active, reflective and applied. Key themes embedded into the resources, challenges and assessments are ethical practice, sustainability, evidence-based decision making and real-world applications. Completion of the learning activities for each topic will give students the discipline knowledge and skills required to complete the assessments.
Successful completion of all assessments demonstrates that the unit learning outcomes have been achieved. Additional support to further enhance students academic skills is available from the Academic Enhancement team.
Expectations of Students
You are expected to:
Prepare for scheduled classes by completing assigned activities;
Attend all scheduled classes;
Actively participate in all class activities;
Seek clarification and advice from teaching staff as needed;
Submit assessments on time;
Review and reflect on feedback on assessments and seek clarification about feedback where needed; and
Notify the lecturer if you are unable to attend a class.
Schedule of Learning and Teaching Activities
Topic Number Topic Content
1 Software Development:
Phases A short overview of software development process that will make a developer understand that what kind of software and document they need during a software development process, which includes:
Challenges
Overview of Software Development
Nature and Types of Software
Software Systems and Documentation
Types of Software Development Projects
Software Development Life Cycle (SDLC)
The Four P's in Software Development
2 Software Development:
Process- Part-I An understanding of software development processes or methods which includes: Plan Driven Models
Waterfall model
V-model
Spiral model
Prototype Model
Unified Process (UP)/ Rational Unified Process (RUP)
3 Software Development:
Process- Part-II An understanding of software development processes or methods which includes: Agile Methods
Scrum
eXtreme Programming (XP)
Lean Software Development
Test Driven Development (TDD)
Kanban
4 Modeling Software System
using
Unified Modeling Language
(UML)-Part-I An understanding of Unified Modelling Language and to use it, it further includes:
Model Software Systems.
UML and Object-oriented Modelling
Overview of the UML
Object-oriented Modelling
Classes
Attributes
Operations
Associations
Multiplicity
Aggregation and Composition
5 Modeling Software System
using
Unified Modeling Language
(UML)-Part-II A detailed overview of UML features which includes:
Association Class
Generalization
Inheritance
Coverage
Coverage Types
Constraints
6 Introduction to the Algorithms and Languages:
This is an introduction to a programming section focusing on algorithms and Python. Students will learn about the concept and importance of algorithms, as well as gain an introduction to Python and its capabilities. This includes:
The New Age of Programming
What is Python
Introduction to Python
Interpreted vs. Compiled
Python Packages
Python Packages for Science and Numerical Computations
Anaconda
Python Editors: Python IDLE , Visual Studio Code, Spyder , Visual Studio , PyCharm , Wing Python IDE , Jupyter Notebook
7 Get Started with Python To facilitate their learning, students will install Python and Visual Code to run the code examples which Includes:
Resources
Python IDE: Start with my First Python Program
Python Shell
Running Python from the Shell
Scripting Mode
8 Programming Fundamentals: Python Part-I This section includes hands-on coding exercises, collaborative problem-solving tasks. Additionally, students will have the opportunity to work on the Weekly Activities to apply their knowledge and showcase their understanding of variables, data types, and expressions in Python which includes:
Basic Python Program
Variables; Numbers, Strings, String Input
Built-in Functions
Python Standard Libraries
Plotting in Python
9 Programming Fundamentals: Python Part-II An understanding of the basics of Python Programming which Includes:
If/Else statements; Arrays: For Lops, While Loops
Creating Functions in Python
Creating Classes in Python
Creating Python Module
File Handling
10 Python Database
Development An understanding of the data base development with Python Programming which Includes:
Structure Query Language (SQL)
SQL server with Python
My SQL with Python
* Mongo with Python
11 Python Application
Development An understanding of the applications development with Python Programming which Includes:
Desktop GUI Applications; PyQt. Pyside2, Thinker WxPython
We Applications
Database Applications
Create GUI Applications
12 Software Implementation
and Testing Understanding of the purpose and the major activities of software implementation which includes:
Implementation Life Cycle Role and Activities
Producing Solid Code
Defensive Programming
Code Review
Refactoring
Debugging
Testing Overview
Plan Tests
Design Tests
Assessment Information
Assessment Task Weighting Due Length/ Duration Learning Outcome(s)
Assessment 1:
Lab Activities 40%
Individual
Invigilated week 1
Week 3,6,9,12 Varies between 30 and 60 minutes ULO1
ULO2
ULO3
Assessment 2a:
Case Study
Assessment 2b: Presentation
(Recorded)
20%
Group Report
10%
Group Presentation Week 8 1500 words
10 Minutes ULO1
ULO2
Assessment 3a:
Technical Project
Assessment 3b:
Presentation
(Recorded)
20%
Individual Report
10%
Individual Presentation Week 11
2000 words
5-8 Minutes ULO1
ULO2
ULO3
ULO4
*Detailed information relating to each assessment in the Assessment Block on Moodle.
Grading
Each assessment and the final mark for the unit will be determined as follows:
Mark Grade
0% - 49% Fail
50% - 64% Pass
65% - 74% Credit
75% - 84% Distinction
85% and above High Distinction
Requirements to Pass a Unit
In order to pass the unit, you must:
Attempt all assessments;
Achieve a minimum of 50% of overall marks; and
Achieve a minimum of 50% of marks in invigilated assessments
Resources
Recommended Reading:
Hans-Petter Halvorsen, Software Development A Practical Approach, 1st Edition, 2020
Hans-Petter Halvorsen, Python for Software Development, 1st Edition, 2020
You can refer to topic resources on your Moodle unit page.
Academic Misconduct
Ethical conduct and academic integrity and honesty are fundamental to the mission of PIA and academic misconduct will not be tolerated by the Institute. It is the responsibility of every student to make sure that you understand what constitutes academic misconduct and to refrain from engaging in it. Please refer to the Institutes Academic Integrity and Misconduct Policy for further details.
Changes to Unit Outlines
This Unit Outline may be updated and amended from time to time. Any changes will be notified to students through the Online Learning System (Moodle) for the unit.