Module Information
Course Delivery
Assessment
| Assessment Type | Assessment length / details | Proportion |
|---|---|---|
| Semester Assessment | 250 Hours Group Programming project Technical submission showing development during the project, together with a group report of approximately 10,000 words. Individual report of approximately 3,000 words. Group presentation of approximately 30 minutes. | 100% |
| Supplementary Assessment | 0 Hours Repeat year opportunity. There is no External or Supplementary Resit available for this module. | 100% |
Learning Outcomes
On successful completion of this module students should be able to:
Analyse a complex software engineering problem, taking account of wider customer context.
Working in a group, design and implement an original solution to the problem.
Test and critically evaluate their solution.
Critically assess the relative merits of various software development methodologies within the context of the given problem and nature of the project team.
Working in a group, apply the chosen software development methodology to solve the given problem.
Demonstrate a critical appreciation of design, illegal, social, ethical and professional issues encountered when developing distributed applications.
Brief description
Students will work in small groups to build a distributed application that employs the technologies and concepts taught in this and previous modules. The students will use a modern software engineering methodology to guide the work.
Aims
Students will learn about the development of distributed applications including the use of IoT, smart monitoring, and platform interoperability. What is learned is then applied within a group project.
Content
1. Introduction
Provides a roadmap to the module, with a brief overview of main concepts and how they interrelate.
2. Construction technologies
Examination of technical solutions for building distributed applications using server-side and IoT tools and frameworks. These include support for application structure and routing, user interfaces, business objects, relational mapping, messaging systems and interoperability.
3. Design issues
Software design patterns will be reviewed within the context of technologies discussed in 2. Building distributed applications requires developers to know more than just technologies, they must also know and use design techniques suited to their development. Students will learn about reusable design patterns, and particularly those used for the development of distributed applications.
4. Wider issues
Discussion of current issues that are related to 2 and 3, e.g. networking for distributed applications, including network protocols for IoT networks; scalability; approaches to testing and deployment; containers and the use of cloud computing.
There will also be discussion of Legal, Social, Ethical and Professional Issues as they apply to internet-based systems. This will extend discussions in earlier years and consider current practice in industry.
Group project
1. Group Project Tutorials. Students will be required to undertake a group project where materials taught in this and earlier modules are applied to build a distributed application. Students will be required to choose, justify and follow an appropriate software development methodology.
Tutorials will be undertaken throughout the project to set out the content of the project, and the terms on which it will be developed and assessed. Such tutorials will be undertaken where students complete their project with the help and advice of teaching staff.
2. Written Material. Various written material giving guidance on carrying out the project, assessment issues, and the project submission is provided by the Department.
Module Skills
| Skills Type | Skills details |
|---|---|
| Adaptability and resilience | Students will work as a group to develop a software system, being adaptable to changing requirements and project progress. |
| Co-ordinating with others | The students will work in a group to collaborate on analysing, designing, implementing and testing a software system. |
| Creative Problem Solving | Deciding on an appropriate design when developing a software engineering application. |
| Critical and analytical thinking | Analysis of the problem, and critical evaluation of the software system that is developed. |
| Digital capability | Inherent in subject. |
| Professional communication | Students will practice communication skills during the tutorials and group assignment. |
| Real world sense | The project has an open-ended specification that give experience of developing software for a customer. |
| Reflection | Students will critically reflect on the work, both as a group and also their individual contribution. |
| Subject Specific Skills | Expanding skills in the areas of distributed systems, internet systems and containers. |
Notes
This module is at CQFW Level 7
