Course Title: Software Engineering Fundamentals for IT
Part A: Course Overview
Course Title: Software Engineering Fundamentals for IT
Credit Points: 12.00
171H School of Science
Sem 1 2020,
Sem 2 2020,
Sem 1 2021,
Sem 2 2021
RMIT University Vietnam
171H School of Science
Course Coordinator: Dr Melina Vidoni
Course Coordinator Phone: +61 3 9925 8966
Course Coordinator Email: email@example.com
Course Coordinator Location: 014.08.014B
Course Coordinator Availability: By appointment
Pre-requisite Courses and Assumed Knowledge and Capabilities
- Introduction to Programming (COSC1519)
- Web Programming (COSC2413)
- Database Concepts (ISYS1057)
Objectives/Learning Outcomes/Capability Development
This course contributes to the following Program Learning Outcomes (PLOs) for
BP162 Bachelor of Information Technology
BP232 Bachelor of Computer Studies
You will gain skills as you apply knowledge effectively in diverse contexts.
You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to:
- analyse and model requirements and constraints for the purpose of designing and implementing software artifacts and IT systems
- evaluate and compare designs of software artifacts and IT systems on the basis of organisational and user requirements.
Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to:
- design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.
You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to:
- present a clear, coherent and independent exposition of software applications, alternative IT solutions, and decision recommendations to both IT and non-IT personnel via technical reports of professional standard and technical presentations.
You will learn to work as an effective and productive team member in a range of professional and social situations, in particular to:
- work effectively in different roles, to form, manage, and successfully produce outcomes from teams, whose members may have diverse cultural backgrounds and life circumstances, and differing levels of technical expertise.
You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning. Specifically, you will learn to:
- effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems.
Course Learning Outcomes
Upon successful completion of this course you should be able to:
- CLO 1: explain how iterative software engineering processes can facilitate software development
- CLO 2: evaluate requirements for a software system
- CLO 3: apply the process of analysis and design using the object-oriented approach.
- CLO 4: work effectively in a team to analyse the requirements of a complex software system, and solve problems by creating appropriate designs that satisfies these requirements CLO 5: communicate effectively with others, especially regarding the progress of the system development and the content of the design by means of reports and presentations. Use appropriate design, version control and collaboration tools to work effectively as a team.
- CLO 6: recognise and describe current trends in the area of software engineering.
- CLO 7: Design and carry out tests using various testing techniques and tools.
Overview of Learning Activities
The learning activities included in this course are:
- Lectures: key concepts will be explained in pre-recorded lectures where material will be presented and the subject matter will be illustrated with practical examples, demonstrations, online questionnaires and guest visitors from ICT industry. These will use a context-driven approach where increasingly complex projects will be discussed.
- Tutorial/labs and/or group discussions (including online forums) will focus on projects and problem solving providing practice in the application of theory and procedures, while allowing exploration of concepts with teaching staff and other students. In the lab students will get regular feedback on their progress with group projects.
Total Study Hours
A total of 120 hours of study is expected during this course, comprising:
Teacher-directed hours (36 hours): lectorial/ tutorial/ laboratory sessions. Each week there will be, 1 hour of flipped-classroom lectorials (multiple offerings, students only need to attend 1 hour), and 2 hours of tutorial/ laboratory work. You are encouraged to participate and interact during lectorials by asking questions and suggesting alternative approaches. In the tutorials you are expected to apply the concepts presented in the lectures and discuss how they can be translated into patterns, best practices and frameworks. The laboratory sessions will introduce you to the main tools and frameworks necessary to undertake software development.
Student-directed hours (96 hours): You are expected to undertake self-directed studying and explore for new tools and techniques. You are also expected to work on your project tasks at least 4 hours a week outside class hours. You are expected to watch these in the corresponding week.
Overview of Learning Resources
You will need your own laptop do this course You will be able to access course information and learning materials through myRMIT and Canvas LMS.
Lists of relevant reference texts, resources in the library and freely accessible Internet sites will be provided.
Overview of Assessment
This course has no hurdle requirements.
Assessment Task 1: Lab 1: Git Releases, Refactoring, Build Tools, Architecture. (Weighting 20%)
This assignment will evaluate your basic use of git (version control) and Maven. You will be required to use the git console only, and to submit your console log record. This assignment will require you to structure a piece of dummy code according to the architectural patterns. You will answer basic questions about refactoring and how you applied it to your assignment.
This assessment supports CLOs 1,5,6
Assessment Task 2: Lab 2: UML Design. (Weighting 25%)
This assignment evaluates object-oriented structural and behavioural design in terms of class diagrams, sequence diagrams and matching code.
You will be given a class diagram and will have to write matching code; then modify both diagram and code, and create a sequence diagram matching the previous two. You will answer basic questions regarding your design decisions.
This assessment supports CLOs 1-3,6
Assessment Task 3: Lab 3: Unit & Acceptance Testing. (Weighting 25%)
You will be given the basic structure of a code case, along with comments that detail how it should work. A particular class will be selected. You will need to implement the business logic for that class only, and the unit tests that are required, covering borderline and common cases. You will answer basic questions about testing, validation and verification in terms of your assignment. You will be given user stories, and will have to write acceptance criteria, following the templates and structures taught in the lectures.
This assessment supports CLOs 1,2,6,7
Assessment Task 4: Scrum Master + Product Owner. (Weighting 30%) A substantial team project aims to understand how Scrum works as a lifecycle, and what implies being a Scrum Master or Product Owner in a project. The students will work in pairs to complete a simulated Sprint 1 for a particular project. They will have to devise solutions to simple problems under specific requirements, perform a thorough elicitation to understand conflicting/vague requirements, provide an analysis of different simulated situations, perform an architectural proposal for the project, and create Scrum documents.
This assessment supports CLOs 2,4,5