32555 Fundamentals of Software Development
Course area UTS: Information Technology
Delivery Autumn 2024; City
Credit points 6cp
Requisite(s)
120 Credit Points in spk(s): C10061 Bachelor of Engineering Diploma in Engineering Practice OR 120 Credit Points in spk(s): C10066 Bachelor of Engineering Science OR 120 Credit Points in spk(s): C10067 Bachelor of Engineering OR 120 Credit Points in spk(s): C09067 Bachelor of Engineering (Honours) Diploma in Professional Engineering Practice OR 120 Credit Points in spk(s): C09066 Bachelor of Engineering (Honours)
These requisites may not apply to students in certain courses. See access conditions.
Subject description
This subject introduces students to the fundamentals of contemporary software development. This subject covers the theoretical and practical aspects of software modelling and development methods, tools, and techniques. In this subject, students learn how to analyse, design, develop and evaluate software programs that implement realistic but manageably small-scale software requirements. Student learning is supported via online lectures and facilitated practical workshops (tutorial/laboratory) sessions. Peer learning and collaboration are also encouraged within and outside the classroom, however, each student must complete their individual and group tasks. The primary objective is that students experience, understand the importance of, and can apply foundational software development practices.
Subject learning objectives (SLOs)
Upon successful completion of this subject students should be able to:
- Describe the software development process and its phases. (D.1)
- Analyse user requirements and the context within which the system is being developed, in order to prepare system requirements and analysis documentation. (B.1)
- Utilise a range of modelling and programming techniques and tools to develop the proposed system. (C.1)
- Design a suitable software system to meet the specified user requirements. (C.1)
- Write software programs to implement the specified user requirements. (D.1)
- Apply appropriate testing techniques to ensure the quality of the software system. (D.1)
Course intended learning outcomes (CILOs)
This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):
Socially Responsible: FEIT graduates identify, engage, and influence stakeholders, and apply expert judgment establishing and managing constraints, conflicts and uncertainties within a hazards and risk framework to define system requirements and interactivity. (B.1)
Design Oriented: FEIT graduates apply problem solving, design thinking and decision-making methodologies in new contexts or to novel problems, to explore, test, analyse and synthesise complex ideas, theories or concepts. (C.1)
Technically Proficient: FEIT graduates apply theoretical, conceptual, software and physical tools and advanced discipline knowledge to research, evaluate and predict future performance of systems characterised by complexity. (D.1)
Contribution to the development of graduate attributes
Engineers Australia Stage 1 Competencies
Students enrolled in the Master of Professional Engineering should note that this subject contributes to the development of the following Engineers Australia Stage 1 competencies:
1.3. In-depth understanding of specialist bodies of knowledge within the engineering discipline.
1.5. Knowledge of engineering design practice and contextual factors impacting the engineering discipline.
2.2. Fluent application of engineering techniques, tools and resources.
2.3. Application of systematic engineering synthesis and design processes.
Teaching and learning strategies
Students will learn foundation level software development practices through online lectures and hands-on workshops (tutorials and labs). Students will prepare for the workshops by listening to online lectures and studying related material to effectively participate in the workshop activities. In workshops, the software modelling and development methods, tools, and techniques will be demonstrated by the tutors before being applied by students to different scenarios.
Feedback is regularly provided throughout the teaching sessions in several different formats: discussions of the workshop questions, feedback on the software models and programs developed in the laboratory and as a part of the formal assessment tasks. As the subject progresses, students gain sufficient foundational level competence to complete software development tasks within a small range of acceptable solutions.
Content (topics)
Topics covered are:
- Software Development Process
- Systems Requirements, Use Case Models
- Objects and Classes
- Systems Design: Class Diagrams
- Model-Driven Code Generation
- Object Oriented Programming
- User Interface Design
- Software Testing
Assessment
The bulk of the subject's assessment consists of a small software development case study assignment and individual online quizzes. A real life case study will be used in the subject, which requires a group of students to do analysis and design based on software industry standard software modelling techniques using a case tool. The software models will also be converted into object-oriented code using a development environment.
Assessment task 1: UML Models and Software Development
Intent: Demonstrate software modelling and software development skills.
Objective(s): This assessment task addresses the following subject learning objectives (SLOs): 2, 3, 4, 5 and 6
This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):
B.1, C.1 and D.1
Type: Project
Groupwork: Group, group and individually assessed
Weight: 70%
Task: This assessment task will require a small group of students to apply the software modelling and programming skills to the assigned case study problem. This case study task is composed of following three parts: Part 1: Analysis and Design (a) Requirement Analysis (b) UML use case model (c) UML class diagram. Part 2: Code Implementation (a) Develop the design goals (Java or Python) (b) Store/Retrieve application data into/from files (c) Implement the goals into Interactive CLI system menu (d) Implement the goals into GUI system menu (e) Apply software testing techniques for quality assurance Part 3: Assignment Showcase (a) Develop a PowerPoint presentation. (b) Present the assignment working software and PPT slides during lab hours
Due: Part 1: Analysis and Design (Due week 7 on Friday 05/04/2024 by 11:59 PM) Part 2: Software Development (Due week 12 on Monday 13/05/2024 by 9:00 AM) Part 3: Showcase (Due week 12 during lab hours) See also Further information. See also Further information.
Criteria: Correct use of UML Object Oriented Analysis and Design Techniques. Correct conversion of Software Design Models into a Software Program
Further Refer to assessment 1 brief for detailed information about assessment 1 deliverables, submission, information: and requirements.
Assessment task 2: Online Quiz on Canvas (Software Modelling)
Intent: Demonstrate understanding of theoretical concepts or knowledge of software modelling skills.
Objective(s): This assessment task addresses the following subject learning objectives (SLOs): 1, 2, 3, 4, 5 and 6
This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):
B.1, C.1 and D.1
Type: Quiz/test
Groupwork: Individual
Weight: 15%
Task: Online Assessment Quiz
Due: 11.59pm Thursday 4 April 2024
See also Further information.
Criteria: Correct use of UML Object Oriented Analysis and Design Techniques.
Further Additional information about the quiz will be provided in the quiz handout. No quiz submissions are information: allowed after the deadline. No makeup quizzes are allowed.
Assessment task 3: Online Quiz on Canvas ( Programming Concepts)
Intent: Demonstrate understanding of theoretical concepts or knowledge of programming.
Objective(s): This assessment task addresses the following subject learning objectives (SLOs): 1, 2, 4, 5 and 6
This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):
B.1, C.1 and D.1
Type: Quiz/test
Groupwork: Individual
Weight: 15%
Task: Online Assessment Quiz
Due: 11.59pm Wednesday 8 May 2024
Criteria: Correct understanding of programming concepts.
Further Additional information about the quiz will be provided in the quiz handout. No quiz submissions are information: allowed after the deadline. No makeup quizzes are allowed.
Assessment feedback
Each group assignment will be marked individually by tutor. Formative feedback will be provided to students on their assessment tasks in tutorials after two weeks of submission of their assessment tasks.
Students will also receive feedback during tutorials/labs to allow them to evaluate their progress in the subject.
Minimum requirements
In order to pass the subject, a student must achieve an overall mark of 50% or more.
Recommended texts
Software Modelling
Noushin Ashrafi and Hessan Ashrafi. Object-Oriented Systems Analysis and Design. Pearson Education (Electronic Resource available from UTS library).
Java Programming
C. Thomas Wu. An Introduction to Object-Oriented Programming with Java, McGrawHill.
References
Software Modelling
Alan Dennis, Barbara Haley Wixom and David Tegarden. System Analysis and Design UML Version 2.0. John Wiley & Sons Inc.
Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language (Electronic Resource available from UTS library).
Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (Electronic Resource available from UTS library).
Kenneth E.Kendall and Julie E. Kendall. Systems Analysis and Design, Pearson Education.
Java Programming
Frank Nielsen. Concise and practical introduction to programming algorithms in java (Electronic Resource available from UTS library).
David Parsons. Foundational Java key elements and practical programming (Electronic Resource available from UTS library).
Python Programming
Installing Jupyter Notebook and introduction: http://opentechschool.github.io/python-data-intro/core/notebo... Links to an external site.
Python for Everybody: Exploring Data Using Python 3 (2016). Charles R. Severance. PDF available. Links to an external site.
Python and required libraries: Anaconda distribution: https://docs.anaconda.com/anaconda/install/Links to an external site.
Automate the Boring Stuff with Python: https://automatetheboringstuff.com
Other resources
Canvas will be used to distribute the course material and to facilitate group work. Canvas can be accessed via https://canvas.uts.edu.au/
You will need to have a student computer account in Building 11 with the Faculty of Engineering and Information Technology. If you are a faculty student you will already have one. If you are a non-faculty student you will need to ensure you have one. If you are unsure, or need to arrange an account, you can contact IT Support via one of the options listed on https://www.uts.edu.au/current-students/managing-your-course/...
Graduate attribute development
For a full list of the faculty's graduate attributes refer to the FEIT Graduate Attributes webpage.
For the contribution of subjects taken in the Bachelor of Engineering (Honours) or Master of Professional Engineering to the Engineers Australia Stage 1 Competencies, see the faculty's Graduate Attributes and the Engineers Australia Stage 1 Competencies webpage.
Assessment: faculty procedures and advice
Marking criteria
Marking criteria for each assessment task will be available on the Learning Management System: Canvas.
Extensions
When, due to extenuating circumstances, you are unable to submit or present an assessment task on time, please contact your subject coordinator before the assessment task is due to discuss an extension. Extensions may be
granted up to a maximum of 5 days (120 hours) for standard students or up to a maximum of 7 days (168 hours) for
UTS Online students. In all cases you should have extensions confirmed in writing.
Special consideration
If you believe your performance in an assessment item or exam has been adversely affected by circumstances
beyond your control, such as a serious illness, loss or bereavement, hardship, trauma, or exceptional employment demands, you may be eligible to apply for Special Consideration.
Late penalty
For Graded subjects:
Work submitted late without an approved extension is subject to a late penalty of 10 per cent of the total available marks deducted per calendar day that the assessment is overdue (e.g. if an assignment is out of 40 marks, and is submitted (up to) 24 hours after the deadline without an extension, the student will have four marks deducted from their awarded mark). Work submitted after five calendar days is not accepted and a mark of zero is awarded.
For some assessment tasks a late penalty may not be appropriate – these are clearly indicated in the subject outline. Such assessments receive a mark of zero if not completed by/on the specified date. Examples include:
a. weekly online tests or laboratory work worth a small proportion of the subject mark, or
b. online quizzes where answers are released to students on completion, or
c. professional assessment tasks, where the intention is to create an authentic assessment that has an absolute submission date, or
d. take-home papers that are assessed during a defined time period, or
e. pass/fail assessment tasks.
For Pass/Fail subjects:
Work submitted late without an approved extension will only be assessed at the subject coordinator’sdiscretion.
Students who do not submit assessment tasks by the due dates may be referred to the Responsible Academic Officer under Student Rule 3.8.2, and a fail result may be recorded for the subject.
Request a review of a result
If you believe an error may have been made in the calculation of your result in an assessment task or the final result for the subject, it is possible to request a review of a result with the Subject Coordinator within five (5) working days of the date of release of the result.