MDA523 - Software Engineering Fundamentals

Credit Points: 20 credit points

Workload: 60 hours

Prerequisite: N/A

Co-requisite: N/A

Aims & Objectives

This is a core unit out of a total of 12 units in the Master of Data Analytics with a major in Software Engineering. This unit addresses the MDA course learning outcomes and complements other courses in a related field by developing students’ specialised knowledge of the fundamental principles of software engineering for producing correct, tested, documented and maintainable software in practice. For further course information refer to: http://www.mit.edu.au/study-withus/programs/master-data-analytics. This unit is part of the AQF level 9 (MDA) course. 
 
This unit provides a thorough introduction to the field of software engineering, with emphasis on the key aspects of software engineering principles in practice, including the software process, software requirements modelling, software design concepts, architectural design patterns, software quality, security and testing, software configuration management, software metrics and analytics, and managing software projects.
 
The unit will introduce students to the most common concepts, design processes, modelling techniques, and theories essential in software development, and analyse and discuss the common problems that software engineers often face and the methods used to overcome them.  
 
This unit will cover the following topics: 

  • The Software Process
  • Software Requirements Modelling
  • Software Design Concepts
  • Software Architectural Levels
  • Software Quality, Security and Testing
  • Software Configuration Management
  • Software Metrics and Analytics
  • Managing Software Projects

Learning Outcomes

4.1 Course Learning Outcomes 
The Course learning outcomes applicable to this unit are listed on the Melbourne Institute of Technology’s website: www.mit.edu.au  
 
4.2 Unit Learning Outcomes 

At the completion of this unit, students should be able to: 
a. Apply software engineering principles and agile processes for producing modern software;
b. Analyse business problems and elicit user requirements by referencing software engineering methodologies; 
c. Develop software architectural models and design patterns in meeting software specifications;
d. Implement quality assurance metrics and multiple testing techniques to ensure correct, quality and secured software;
e. Select software configuration management techniques to create modularised and maintainable software systems.  
 

Weekly Topics

This unit will cover the content below:

Week Topics
1 Introduction to Software Engineering
2 The Software Process
3 Software Requirements Modelling
4 Software Design Concepts
5 Levels of Software Architectural Design
6 Software Quality and Testing
7 Software Security Engineering
8 Software Configuration Management
9 Software Metrics and Analytics
10 Managing Software Projects
11 Viable Software Plan and Risk Management
12 Review

Assessment

Assessment Task Due Date Release Date A B Learning Outcomes Assessed
Assignment 1 (Formative) Week 3 Week 1 5%   a
In-class test Week 6 Week 1   10% a-b
Assignment 2 Week 11 Week 7 25%   c-d
Laboratory and Problem Based Learning participation & submission Week 2-11 Week 2-11 10%   a-e
Final Examination (3 hours)       50% a-e
TOTALS     40% 60%  

Task Type: Type A: unsupervised, Type B: supervised.

Class Participation and Contribution 
This unit has class participation and student contribution as an assessment. The assessment task and marking rubric will follow the Guidelines on Assessing Class Participation (https://www.mit.edu.au/about-us/governance/institute-rules-policies-andplans/policies-procedures-and-guidelines/Guidelines_on_Assessing_Class_Participation). Further details will be provided in the assessment specification on the type of assessment tasks and the marking rubrics. 

Textbook and Reference Materials

Textbook

  • Pressman, R. S., Maxim, B. R. (2019). Loose Leaf for Software Engineering: A Practitioner's Approach. United States: McGraw-Hill Education.

References

  • Ahmed, A., Prasad, B. (2016). Foundations of Software Engineering. United States: CRC Press.
  • Winters, T., Wright, H., Manshreck, T. (2020). Software Engineering at Google: Lessons Learned from Programming Over Time. United States: O'Reilly Media.
  • Jorgensen, P. C. (2018). Software Testing: A Craftsman’s Approach, Fourth Edition. United States: CRC Press.

Adopted Reference Style: IEEE

Students are required to purchase the prescribed text and have it available each week in the class.

Graduate Attributes

MIT is committed to ensure the course is current, practical and relevant so that graduates are “work ready” and equipped for life-long learning. In order to accomplish this, the MIT Graduate Attributes identify the required knowledge, skills and attributes that prepare students for the industry.
The level to which Graduate Attributes covered in this unit are as follows:

Ability to communicate Independent and Lifelong Learning Ethics Analytical and Problem Solving Cultural and Global Awareness Team work Specialist knowledge of a field of study

Legend

Levels of attainment Extent covered
The attribute is covered by theory and practice, and addressed by assessed activities in which the students always play an active role, e.g. workshops, lab submissions, assignments, demonstrations, tests, examinations.
The attribute is covered by theory or practice, and addressed by assessed activities in which the students mostly play an active role, e.g. discussions, reading, intepreting documents, tests, examinations.
The attribute is discussed in theory or practice; it is addressed by assessed activities in which the students may play an active role, e.g. lectures and discussions, reading, interpretation, workshops, presentations.
The attribute is presented as a side issue in theory or practice; it is not specifically assessed, but it is addressed by activities such as lectures or tutorials.
The attribute is not considered, there is no theory or practice or activities associated with this attribute.