Module Details
Module Code: |
SWRD C9009 |
Full Title:
|
Software Design
|
Valid From:: |
Semester 1 - 2019/20 ( June 2019 ) |
Language of Instruction: | English |
Module Owner:: |
Derek Flood
|
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 Work | 40.00% |
Final Examination | 60.00% |
Module Special Regulation |
|
AssessmentsFull-time
Part-time
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 |
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 |
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).
| |