Module Details

Module Code: SWRD C9009
Full Title: Software Design
Valid From:: Semester 1 - 2019/20 ( June 2019 )
Language of Instruction:English
Duration: 1 Semester
Credits:: 7.5
Module Owner:: Derek Flood
Departments: Unknown
Module Description: This module aims to provide students with a conceptual knowledge of the principles and techniques of software design and also enable them to critically evaluate various options available in a range of scenarios. In addition, this module will help students to improve their project management and team working skills.
 
Module Learning Outcome
On successful completion of this module the learner will be able to:
# Module Learning Outcome Description
MLO1 Apply best-practices Software design and implementation processes
MLO2 Evaluate the suitability of software development paradigms
MLO3 Develop and integrate software architectural designs.
MLO4 Evaluate the suitability of adopting a particular design pattern to provide a solution for a given software development problem
MLO5 Evaluate the need for and implement refactoring when presented with existing solutions.
Pre-requisite learning
Module Recommendations
This is prior learning (or a practical skill) that is strongly recommended before enrolment in this module. You may enrol in this module if you have not acquired the recommended learning but you will have considerable difficulty in passing (i.e. achieving the learning outcomes of) the module. While the prior learning is expressed as named DkIT module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).
No recommendations listed
 
Module Indicative Content
Supporting Activities
Quality Management Systems. Configuration Management. Defect Management. Traceability.
Object-Oriented Design Principles
Evolution of the Object-Oriented Paradigm (OOP) Underlying principles of OOP and design patterns such as the Open Closed Principle and the Liskov Substitution Principle.
Test First Development
Test First Development in the software development process Unit Testing in Test First Development
Patterns
Overview of the Families of patterns (e.g. architectural, behavioural, analysis, and design) Focus upon sample individual patterns within the various categories.
Refactoring
Principles and practice. Refactoring and design Overview of Refactoring techniques
Domain Modelling/ Design Modelling
UML notation in modelling Object-Oriented Analysis and Design Iterative and Incremental Development Conceptual Classes Design Classes
Software Development Paradigms
Object Oriented, Functional, Data Driven, Procedural
Module Assessment
Assessment Breakdown%
Course Work40.00%
Final Examination60.00%
Module Special Regulation
 

Assessments

Full Time On Campus

Course Work
Assessment Type Written Report % of Total Mark 10
Marks Out Of 0 Pass Mark 0
Timing Week 5 Learning Outcome 2,4
Duration in minutes 0
Assessment Description
Students will be asked to conduct a critical analysis of research papers in the area of software design and validation and to submit a written report during the semester.
Assessment Type Continuous Assessment % of Total Mark 30
Marks Out Of 0 Pass Mark 0
Timing Week 12 Learning Outcome 1,3,4,5
Duration in minutes 0
Assessment Description
Each student will work as part of a team to design a software solution. They will create a UML model based upon requirements, decide upon a particular approach to the design, develop the design using design patterns, and apply refactoring techniques to improve the design.
No Project
No Practical
Final Examination
Assessment Type Formal Exam % of Total Mark 60
Marks Out Of 0 Pass Mark 0
Timing End-of-Semester Learning Outcome 1,2,4,5
Duration in minutes 0
Assessment Description
The Final examination will be a 2-hour written test. Students will normally be required to answer 3 questions out of 4.

Part Time On Campus

Course Work
Assessment Type Written Report % of Total Mark 10
Marks Out Of 0 Pass Mark 0
Timing Week 5 Learning Outcome 2,4
Duration in minutes 0
Assessment Description
Students will be asked to conduct a critical analysis of research papers in the area of software design and validation and to submit a written report during the semester.
Assessment Type Continuous Assessment % of Total Mark 30
Marks Out Of 0 Pass Mark 0
Timing Week 12 Learning Outcome 1,3,4,5
Duration in minutes 0
Assessment Description
Each student will work as part of a team to design a software solution. They will create a UML model based upon requirements, decide upon a particular approach to the design, develop the design using design patterns, and apply refactoring techniques to improve the design.
No Project
No Practical
Final Examination
Assessment Type Formal Exam % of Total Mark 60
Marks Out Of 0 Pass Mark 0
Timing End-of-Semester Learning Outcome 1,2,4,5
Duration in minutes 0
Assessment Description
The Final examination will be a 2-hour written test. Students will normally be required to answer 3 questions out of 4.
Reassessment Requirement
A repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.

DKIT reserves the right to alter the nature and timings of assessment

 

Module Workload

Workload: Full Time On Campus
Workload Type Contact Type Workload Description Frequency Average Weekly Learner Workload Hours
Lecture Contact No Description Every Week 1.00 1
Practical Contact No Description Every Week 2.00 2
Directed Reading Non Contact No Description Every Week 2.00 2
Independent Study Non Contact No Description Every Week 7.00 7
Total Weekly Learner Workload 12.00
Total Weekly Contact Hours 3.00
Workload: Part Time On Campus
Workload Type Contact Type Workload Description Frequency Average Weekly Learner Workload Hours
Lecture Contact No Description Every Week 1.00 1
Practical Contact No Description Every Week 2.00 2
Directed Reading Non Contact No Description Every Week 2.00 2
Independent Study Non Contact No Description Every Week 7.00 7
Total Weekly Learner Workload 12.00
Total Weekly Contact Hours 3.00
 
Module Resources
Recommended Book Resources
  • Jane Cleland-Huang, Orlena Gotel , Andrea Zisman. (2012), Software and Systems Traceability, Springer, [ISBN: 1447122380].
  • Freeman, Freeman, Bates & Sierra. (2004), Head First Design Patterns, O‚ÄôReilly, [ISBN: 0-596-00712-4].
  • Martin Fowler. (2019), Refactoring: Improving the Design of Existing Code, 2. Addison Welsey, [ISBN: 0134757599].
  • Robert C. Martin. (2003), Agile Software Development, Principles, Patterns, and Practices, Pearson, [ISBN: 0135974445].
  • Noushin Ashrafi, Hessam Ashrafi. (2008), Object Oriented Systems Analysis and Design, Pearson Education; International, [ISBN: 0131354795].
  • Craig Larman. (2004), Applying UML and Patterns, 3rd. Prentice Hall, [ISBN: 0131489062].
  • Dr. Edward Lavieri. (2019), Hands-On Design Patterns with Java: Learn design patterns that enable the building of large-scale software architectures, Packt Publishing, [ISBN: 1789809770].
Supplementary Book Resources
  • Kent Beck. (2007), Implementation Patterns, Addison Wesley, [ISBN: 0321413091].
  • Shalloway, Trott. (2004), Design Patterns Explained, Addison Welsey, [ISBN: 0321247140].
  • Martin Fowler. (2002), Patterns of Enterprise Application Architecture, Addison Wesley, [ISBN: 0-321-12742-0].
  • Steven John Metsker, William C. Wake. (2006), Patterns in Java, 2nd ed. [ISBN: 0321333020].
  • Andy Oram, Greg Wilson. (2007), Beautiful Code: Leading Programmers Explain How They Think, O'Reilly Media, [ISBN: 0596510047].
  • Alur, Crupi, Malks. (2003), Core J2EE Patterns, Prentice Hall, [ISBN: 0-13-142246-4].
  • Philip A. Laplante. (2011), Encyclopedia of Software Engineering, Taylor & Francis Group, [ISBN: 978-1-42-0059].
This module does not have any article/paper resources
Other Resources
  • Journal, IEEE Software Magazine.
  • Journal, IEEE Transactions on Software Engineering.
  • Journal, Journal of Software Maintenance and Evolution: Research and Practice.
  • Journal, Journal of Systems and Software.
  • Journal, Journal of Software Quality.
  • Journal, IET Software.
  • Conference Proceedings, International Conference of Software Engineering (ICSE).
  • Conference Proceedings, International Conference on Software Process Improvement and Capability Determinations (SPICE)..
  • Conference Proceedings, European Systems & Software Process Improvement and Innovation Conference, (EuroSPI).
  • Conference Proceedings, ACM. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).
  • Conference Proceedings, European Conference for Object-Oriented Programming (ECOOP).