Start a new search?
SCC.204: Software Design
|Department: Computing and Communications (School of)||NCF Level: FHEQ/QCF/NQF5//RQF5|
|Study Level: Part II (yr 2)||Credit Points: 15.0|
|Start Date: 09-10-2017||End Date: 15-12-2017|
|Available for Online Enrolment?: Y||Enrolment Restriction: Only available to students where listed in programme syllabus rules|
|Module Convenor: Dr J Lee|
- Syllabus Rules and Lancaster Part II Pre-requisites
- Curriculum Design
- Assessment Weights
- Educational Aims
- Learning Outcomes
- Part 1 Modules Video
- Teaching Pattern
Syllabus Rules and Pre-requisites
- Prior to SCC.204, the student must have successfully completed:
Curriculum Design: Outline Syllabus
This module introduces the fundamentals of software design, and its role for developing software systems.The first part of the module will explain that software design is the description of 1) the structure of a software system to be implemented, 2) the data which is part of the system, 3) the interfaces between system components, and 4) sometimes the algorithms to be used. Also the topics of software lifecycle will be covered, including lifecycle model selections, requirements, high level design, detailed design, implementation (coding), and the importance of aligning them.
The second part of the module will introduce various software design methods. It provides some ad-hoc ways of software design (e.g., starting from requirements (often natural language), preparing an informal design, coding commences and the design is modified as the system is implemented, etc) and their consequences. Then it explains systematic approaches to developing a software design using a set of graphical models (e.g., object model, sequence model, state transition model, structural model, data-flow model, etc.). Also, the design process involved in developing several models of the system at different levels of abstraction is explained.
The third part of the module will introduce object oriented design with UML. The four aims of modelling (visualisation of the expected system, specification of the system’s structure and/or behaviour, provision of a template for constructing the system, documentation of the decisions that have been made) are explained and design principles (e.g., information hiding) are explored. Finally, UML models along with object oriented design process are provided.
Curriculum Design: Single, Combined or Consortial Schemes to which the Module Contributes
- BSc/MSci Computer Science
- BSc/MSci Computer Science Innovation
- BSc Computer Science (Study Abroad)
- BSc/MSci Software Engineering
- BSc/MSci IT for Creative Industries
- BEng/MEng Communication Systems and Electronics
- BEng Computer Systems Engineering
- BSc Management and IT
- BSc/BA Computer Science and European Languages
- BSc/BA Computer Science and Music
- BSc/BA Computer Science and Mathematics
- BSc/BA Accounting, Finance and Computer Science
- BSc/BA Natural Sciences
- 60% Exam
- 40% Coursework
Assessment: Details of Assessment
The exam will have the duration of 150 minutes (i.e. 2.5 hours). Students have to chooseand answer 3 out of 4 questions, and they can get a maximum of 25 marks for each question.
Coursework will contain practical and written components:students will analyse realistic software requirements and produce requirements models (e.g., use cases), sequence diagrams, and architecture design reports.
Educational Aims: Subject Specific: Knowledge, Understanding and Skills
This module aims tointroduce students to the principles of software design and common software design processes. At the end of the course, students should be able to:
- Understand the importance of software architecture design and architecture styles (e.g., pipe-and-filer, client-server, layered, etc.);
- Understand the meaning of quality attributes (e.g., maintainability, performance, scalability, etc.) for software architecture design;
- Understand architectural models for specific classes of application software systems and understand the main quality attributes for deciding the classes;
- Interpret and construct UML models (e.g, use cases, class diagrams, sequence diagrams, state diagrams, etc.) of software; and
- Implement a design expressed as a UML model and understand how to use various design patterns to address certain problems.
Educational Aims: General: Knowledge, Understanding and Skills
- To enable students to appreciate the broader context of the role of computer science in the workplace, and its key role in implementing software systems.
Learning Outcomes: Subject Specific: Knowledge, Understanding and Skills
- On successful completion of this module students will be able to...
- Describe the objectives of software design in terms of quality attributes such as correctness, reusability, flexibility, robustness, efficiency, etc.;
- Apply a standard design process to develop designs respecting these qualities and using available architecture styles/design patterns;
- Represent software designs using a variety of UML models including class diagrams, use cases, sequence diagrams, state diagrams;
- Understand the relationship between UML models and code, and transfer the diagrams into code;
- Understand the benefits and drawbacks of using UML in a software development process, and choose appropriate models considering the project context.
Learning Outcomes: General: Knowledge, Understanding and Skills
- On successful completion of this module students should be able to...
- Develop stronger interpersonal skills and a better understanding of cooperative work through in-class exercises. Through the coursework, students will also learn transferable problem solving skills.
If you encounter any difficulties accessing Online Courses Handbook information please contact the Student Registry:
If you require further details in relation to academic content please contact the appropriate academic department directly.