Enrolment options
1. Course aims
This course is aimed at imparting the learners the advanced concepts of software design which forms the core of the software development activities. The traditional, as well as the most modern techniques and technologies of software design, are dealt with. This module has also a practical component that simulates the shop floor experience in the learning environment through case studies etc. The learner also will be able to gain confidence in doing independent or coordinated design.
2. Learning Outcomes
A. Knowledge and Understanding
At the end of the programme students should be able to demonstrate knowledge and understanding of:
1. The advanced concepts, principles and theories of software development process.
2. Design and development of software and software systems for different/specific applications.
3. The details of standards of practice in software design development.
4. The professional, legal and ethical responsibilities of a software design engineer.
5. The environmental and social impact of software design activity.
6. Quality and benchmarks in software design.
B. Cognitive/ Intellectual Skills/ Application of Knowledge
At the end of the programme students should be able to:
- Select and apply appropriate mathematical methods for software modelling and design.
2. Use software design principles in the development of solutions to computing.
3. Apply software design knowledge and computing standards, software metrics and benchmarks to produce innovative designs software systems and components. (B3)
4. Critically assess software design work done by others.
5. Analyse failures in computer systems due to design flaws devise ways to prevent them.
C. Communication/ICT/Numeracy/Analytic Techniques/Practical Skills
At the end of the programme students should be able to:
- Specify, plan, manage, conduct and report on software design, development and research projects.
2. Prepare design documents and deliver those presentations at an advanced level.
3. Observe and record skilfully and accurately all relevant design data.
4. Analyse, evaluate and interpret data and apply them to the solution of practical software design problems.
5. Demonstrate an awareness of advanced and practical computing skills especially in the design of software systems.
6. Use computational tools and packages appropriate to software design and research.
D. General transferable skills
At the end of the programme students should be able to:
1. Have the capacity for independent learning.
2. Undertake lifelong learning with active involvement in research on software design and development.
3. Carry out independently a sustained investigation and research on software design.
4. Work effectively in a team both as a member or leader of a software design team.
5. Prepare effectively software design documents.
6. Demonstrate problem solving skills required for software design.
3. Indicative Content
Theory:
- Software Design Fundamentals
- general software concepts
- the context of software design
- the software design process
- software design techniques (abstraction, coupling & cohesion, decomposition & modularization, encapsulation/information hiding, separation of concerns, sufficiency, completeness & primitiveness)
- Key Issues in Software Design
- Concurrency control and handling of events
- distribution of components
- error and exception handling and fault tolerance
- interaction and presentation
- data persistence
- Software Structure and Architecture
- architectural structures and viewpoints
- architectural styles
- design patterns
- families of programs and frameworks
- Software Design Quality Analysis and Evaluation
- quality attributes, quality analysis, and evaluation techniques and measures
- Software Design Notations
- structural and behavioral descriptions
- Software Design Strategies and Methods
- general strategies, e.g.,
- function-oriented design methods, e.g.,
- object-oriented design methods, e.g.,
- data-structure-centered design, e.g.,
- component- based design, e.g.,
- data modelling- abstracting data structure and user permissions from the real-world application
- Software performance Design: code and algorithm based performance
- Human-Software Interface Design: Designing good and poor Interface, Interface
Design Principles and Interface Evaluation, User Centered Interface Design and any
other topic you might think is required.
Practical: related to different design fundaments with C++ or Java using OOPs concepts
Mini Project: C# or .Net framework related to design including UML design
4. Learning and Teaching Strategy
A course handbook will be provided in advance and this will contain in depth information relating to the course content and give an opportunity to the students to prepare the course. The lecture materials will be posted on the web page that will also contain comprehensive web links for further relevant information. The module will be delivered through lectures, tutorial/practice sessions and group discussions. In addition to the taught element, students will be expected to undertake a range of self-directed learning activities, which will comprise case studies and mini research projects. All supporting documents for the course will be made available on web, as printed copies and also as soft copies.
5. Assessment Strategy
100% based on individual assessment.
As this is a Theoretical and Practical module: The Final assessment shall include 60% of continuous and 40% of End of Module assessment.
The assessments shall be made 50% each for practical and theoretical aspects.
For Example:
one quiz (5%), one/two practical assignment (10%), one mini project for presentation (20%), one tutorial session (5%), short practical test (10%) and a short written test (10%) followed by final assessment (40%) of End of Module Examination divided equally into practical viva-voce and theoretical examination.
6. Assessment Criteria
For the assignment, criteria will be drawn up appropriate to the topic, based on the learning outcomes.
Background Colour
Font Face
Font Kerning
Font Size
Image Visibility
Letter Spacing
Line Height
Link Highlight
Text Alignment
Text Colour