Learning Outcomes:
On completion of this module students are expected to:
a). Understand the four fundamental steps of software development: software specification, design and implementation, validation and evolution.
b). Propose a software architectural design of the software application.
c). Formulate a Scrum project plan divided into sprints to develop the software application.
d). Create a fully functional prototype of the software application following the Scrum software process model.
Indicative Module Content:
Lectures 1-2: Module Introduction and Project Description
Presents an overview of concepts of software development: software specification, design and implementation, validation and evolution.
Describes the software engineering team project challenge.
Lectures 3-4: Scrum software methodology and architectural design
The basics of agile software process model and Scrum software methodology.
Introduction to system modelling and software architectural design.
Lectures 5-6: Clean testing principles and JUnit Framework
Lectures 7-11: Lectures on graphical user interface (GUI) packages, JavaFX and LibGDX.
Lectures 12-18: Clean architecture and code
Good software architecture, programming paradigms, and clean code practices (clean testing, formatting, classes, functions and error handling).
Lectures 18-21: Advanced software engineering principles (SOLID design and component principles), and Authentic Learning Workshops
The authentic learning workshops offer a real-world context for groups to practice Scrum activities. Each workshop has specific learning objectives, where groups participate in code walk-throughs to ensure that clean code principles are upheld. Tutors provide guidance, clarifications, and additional resources to support the groups throughout the process.