Software Design Principles

Overview

The module will introduce the fundamentals of a good and secure software design i.e., software that applies fundamental design and cuber-security principles. The module offers not only the necessary theoretical foundation but also the required practical examples/exercises, along with real-world projects. The students will develop their projects via working in small teams and by following a well-defined software-engineering process. The process will start with the specification of the software requirements, will continue with the specification of the proper software design that meets the requirements, and will end with software testing to satisfy the specified requirements. The developed software will follow the object-oriented paradigm (esp., the java language will be used for the software development).

Learning Objectives

Students must be able to demonstrate knowledge in:
- specifying software requirements by using UML language,
- employing object-oriented principles
-applying design and cyber-security principles
-specifying software design by using UML language
- employing principles of package design
-applying software testing to satisfy the specified requirements.

Skills

KNOWLEDGE & UNDERSTANDING: Understand fundamental theories of software design and the importance of analysing a problem domain for a specific target audience.

INTELLECTUAL AND PRACTICAL:
• Be able to design and develop solution within a collaborative team to meet simple the requirements as expressed through the project.

Assessment

Students must complete all elements of module assessment and attain an overall pass.

Coursework

100%

Examination

0%

Practical

0%

Credits

20

Module Code

CSC1031

Teaching Period

Spring Semester

Duration

12 Weeks