BN209 - Software Engineering

Credit Points: 15 credit points

Workload: 48 hours

Prerequisite: N/A

Co-requisite: N/A

Aims & Objectives

This is a core unit out of a total of 24 units in the Bachelor of Engineering Technology (Telecommunications) BEngTech(Tel) and an elective unit in Bachelor of Networking (BNet). This unit addresses the BNet and BEngTech(Tel) course learning outcomes and complements other courses in a related field by developing students’ knowledge and skills in software engineering. For further course information refer to: http://www.mit.edu.au/study-with-us/programs/bachelor-networking and http://www.mit.edu.au/study-with-us/programs/bachelor-engineering-technology-telecommunications. This unit is part of the AQF Level 7 (BNet and BEngTech(Tel)) courses.

This unit provides an overview of the field of software engineering, with emphasis on key aspects of the system development lifecycle (SDLC) such as requirements engineering, analysis, design and testing.   Object oriented and service oriented architectures are introduced, along with information systems design.  There is also an introduction to estimation for software projects, process and project metrics, and the use of CASE tools. 

The unit will introduce students to the most common concepts, processes, techniques, and theories essential in software development, and analyse and discuss the common issues that software engineers and developers often face and how to overcome them. 

This unit will cover the following topics:

  • Software Engineering Overview 
  • Software Planning and Specification 
  • Software Requirements Analysis and Specification
  • Software Prototyping, Design Techniques 
  • Implementation – Software Building, Testing, Documentation and Maintenance 

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. Determine system requirements through requirements elicitation and workshops.
b. Explain the process for, and execute, verification and validation of system requirements.
c. Apply use case, data and process modelling techniques to specify system requirements.
d. Compare and contrast different software engineering process models: waterfall, evolutionary, spiral, prototyping.
e. Implement a simple software prototype using an interactive development environment.
f. Explain and properly utilise various types of software tests.
g. Define system specifications including technical, economical and operational feasibility. 

Weekly Topics

This unit will cover the content below:

Week # Lecture Topic Laboratory
1 Software Engineering Overview Software and software engineering, software process, software engineering practice, professional and ethical responsibility, key challenges for software engineering, components of software engineering and software engineering jobs
2 Software Process A software process model, major strengths & weaknesses in software process models, software process standards, assessments & improvements, software methodologies, approaches to system development and Agile development
3 Software Planning and Specification Software project management activities, software project planning, software project scheduling, software supporting plans, software risk planning, and software planning specification
4 Software Requirements Analysis and Specification Types of requirements, reasons for requirement analysis, elements of requirements analysis, data modelling, the domain model class diagram, and systems requirements specification
5 Software Prototyping Prototyping in the software process, rapid prototyping techniques, user interface prototyping, benefits of software prototyping and troubles of software prototyping
6 Software Design Techniques Design concepts, design models, architectural design and user interface design
7 Mid Semester Test Database implementation
8 Object Oriented and Service Oriented Design Objects and object classes, object-oriented design process and service-oriented design process
9 Software Implementation Purpose of implementation, operations to undertake, site preparation, system evaluation, database maintenance
10 Software Quality Assurance Quality concepts, software quality assurance (SQA), software reviews, formal technical reviews, formal approaches to SQA, statistical quality assurance Software reliability, availability and safety, and the SQA plan
11 Software Configuration Management Why do software configuration management (SCM)?, what is SCM?, Rationale for having SCM, functional areas of SCM and tools for SCM
12   Review

Assessment

Assessment Task Due Date A B Learning Outcomes Assessed
Formative Assignment 1 Week 3 (8/04/2022) 5%   a
In-Class Test Week 7 (03/05/2022)   10% a-c
Assignment 2 (Group) Week 11 (01/06/2022) 35%   a-g
Laboratory participation & submissions Week 2 – 11  10%   a-g
Final Examination (2 hours)     40% a-g
TOTALS   50% 60%  

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

Contribution and participation 
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.

Presentations (if applicable)
For presentations conducted in class, students are required to wear business attire.

Textbook and Reference Materials

Text Book:

  • Roger S. Pressman, Bruce R. Maxim, Software Engineering: A Practitioner's Approach, McGraw-Hill Education, 2019.

References:

  • I. Sommerville, Software Engineering 10th ed.. Addison Wesley, Wokingham, England: 2015.
  • J. W. Satzinger, R. B. Jackson, and S. D. Burd, 7th ed. System Analysis and Design in a Changing World Cambridge. 2015.
  • K. E. Kendall and J. E.  Kendall, Systems Analysis and Design.  9th ed Pearson Education Inc. 2015.

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.