Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

School of Computer Science BCS accreditation 2021 - 2026

Computer Science (Human Computer Interaction) BSc (Hons) - COMP23412 Software Engineering 2


Return to programme overview.

2.1.1 Knowledge and understanding of facts, concepts, principles & theories

Students learn to build and maintain complex enterprise applications that follow established programming design patterns such as the Model View Controller (MVC). The theoretical principles of the MVC are put in practice on a widespread Web framework, ie Spring.

Assesement : Examination, Group coursework, Lab work

2.1.2 Use of such knowledge in modelling and design

Students experience the trade-offs of hiding complexities which involves reduced control over the development framework and the understandability of what is actually going on behind the scenes. There are also the tradeoffs of using external services (SaaS) that typically promise good documentation, flexibility and number of API calls against those who don't.

Assesement : Examination

2.1.3 Problem solving strategies

The problem solving strategies involve (i) learning how to use the documentation of existing Web frameworks to address the requirements; (ii) double checking with the customers whether the course of action is sensible; (iii) splitting the requirements into smaller chunks that have to be distributed among the team members; (iv) come up with an strategy to merge all the chunks and merge them.

Assesement : Examination, Group coursework

2.1.4 Analyse if/how a system meets current and future requirements

As students build an enterprise web system over a period of ten weeks, students are given new requirement every week whereby the lecturers act as customers. Students are encouraged to check with the "customers" whether the requirements are met. In this way, students learn that requirements can be initially ambiguous and become more specific over time. They also learn that some requirements may disappear, some others will emerge unexpectedly and some other are open to interpretation.

Assesement : Examination, Group coursework

2.1.5 Deploy theory in design, implementation and evaluation of systems

The theoretical principles are put into practice in several ways: (i) the MVC in use is well-known Web framework used in industry; (ii) we use external APIs for mapping (ie Mapbox); (iii) we integrate into the MVC architecture APIs that are widely used (Twitter API); (iv) principles of testing in isolation are put in practice whereby students derive tests from requirements and learn to mock components of the Web system to facilitate testing.

Assesement : Examination, Group coursework

2.1.7 Knowledge and understanding of commercial and economic issues

When exploring the space of APIs that may help addressing the requirements, students learn the conditions of some services that are commercial and may constrain the ability of the system to scale (SaaS).

Assesement : Examination, Group coursework

2.1.8 Knowledge of management techniques to achieve objectives

Time management, workload distribution in teams and leadership are key aspects students learn while they work in teams as new requirements are released every week so they are required to be up to date.

Assesement : Not Assessed

2.1.9 Knowledge of information security issues

We devote one week to secure programming involving Spring security basics and privacy design strategies.

Assesement : Examination, Group coursework

2.2.4 Deploy tools effectively

The deployment of enterprise Web systems in an inherent part of the course unit whereby there is a lifecycle for testing and building the Web application.

Assesement : Group coursework

2.3.1 Work as a member of a development team

The teamwork project is a central part of the course unit. The customers (ie academics) release new requirements every week and each team has to break them into manageable issues that are allocated to the member of the team. These allocations is made through consensus and is made explicit on a distributed version control system (GitLab). When the number of weekly issues is less than team members students are encouraged to do pair programming within teams.

Assesement : Not Assessed

2.3.2 Development of general transferable skills

This course unit aims to simulate a software engineering team where the members of the team are given a set of requirements and then, apply the the theoretical principles taught. Teams are expected to self-learn of components involving development frameworks and external software services.

Assesement : Not Assessed

3.1.1 Deploy systems to meet business goals

The weekly requirements simulate the goals set by the customer which involve deploying and running an enterprise Web application.

Assesement : Group coursework

3.1.2 Methods, techniques and tools for information modelling, management and security

Students are taught the security and privacy risks of enterprise Web applications in general, and those principles applicable to the Web framework in use, ie Spring.

Assesement : Examination, Group coursework

3.1.3 Knowledge of systems architecture

Through coursework students build a chess video game and a system that simulates maze solving. While these are rudimentary systems, the architecture of the systems are indicative of architectural choices in simulation and games. 

Assesement : Coursework

3.2.1 Specify, deploy, verify and maintain information systems

Practical processes for testing and deploying an enterprise Web application involve following test driven principles whereby tests are often written before production code.

Assesement : Examination, Group coursework

3.2.2 Defining problems, managing design process and evaluating outcomes

Understanding customer needs is crucial to develop an enterprise Web application. We teach specification by example as a way of establishing a dialogue between the software engineering team (students) and customers (academics).

Assesement : Examination, Group coursework

3.2.3 System Design

The weekly requirements simulate the design goals set by the customer which involve deploying and running an enterprise Web application. This includes creating user interface mock-ups that are aligned with requirements and follow user interface design guidelines.

Assesement : Examination, Individual coursework

4.2.2 Defining problems, managing design process and evaluating outcomes

Understanding customer needs is crucial to develop an enterprise Web application. We teach specification by example as a way of establishing a dialogue between the software engineering team (students) and customers (academics).

Assesement : Examination, Group coursework