• Home
  • About
  • Mobile
  • Open Content
  • Search

Module Overview


  • Description
  • Facilitators
  • Weblinks
  • Timetable
CS3219 

SOFTWARE ENGINEERING PRINCIPLES AND PATTERNS
   2017/2018, Semester 1
   School of Computing (Computer Science)
Modular Credits: 4
  Tags: --

Learning Outcomes

Top

The discipline of software engineering has changed considerably since its introduction three decades ago.  Although the principles remain the same, the context in which they are applied is continuously evolving. This module teaches principles and their application in a way that can help students learn new paradigms fast and catch up with inevitable changes of software development realities. It provides an introduction to process models, requirements elicitation and covers the principles and concepts relevant to software design. In CS2103, an introductory software engineering module, students learn the basic concepts and knowledge of software engineering in terms of the object oriented analysis and design. There are many other activities in software development process that every software engineer is expected to be well versed with. This module considers various activities in software development process, and emphasises software architectural design, design principles and best practices. It also prepares students with essentials to take on the role of software engineer in the industry by introducing them to the basics of software evolution and project management.

A
t the end of this module, student shall be able to

  • Understand the software development process models and be able to reason about their characteristics,

  • Describe an architecture accurately,

  • Recognize major architectural styles in existing software systems,

  • Evaluate design alternatives for a problem

  • Construct a design specification for a medium-sized software system that satisfies a requirement specification,

  • Understand the use of various design principles and patterns and be able to reason about them, and understand the use of design quality attributes and be able to evaluate a design.

  • Explain how programs treat the other programs as their input data. 
    ​
  • Understand the basic concepts of software evolution.

Prerequisites

TopCS2103 or its equivalent

Teaching Modes

Top1. Weekly Lectures with Active Learning examples and exercises 
2. Weekly Tutorials to   
           - make students explore more and apply knowledge from Lecture topics
           -  make students think deeper about various topics introduced in lectures or elated topics
           -  let students prepare for exam-like questions
           -  let tutors reinforce key topics of the module in smaller groups  
           - let students ask questions in smaller group settings
3. Assignments - These are set around various key topics of the module to let students do pair or group work. The objective is to let students apply  design & implementation skills around given problems.
 

Schedule

TopCS3219  SEM1 2017-18          created 11 August 2017
Week Lectures
2 h per week
  1.  
Thu, 17 Aug
Introduction
Software Process Models & Project Management;
  1.  
Thu, 24 Aug
Requirements Elicitation and Models
  1.  
Thu, 31 Aug
Software Architectural Design


 
 
  1.  
Thu, 7 Sep
Software Design Principles
  1.  
Thu, 14 Sep
Software Design Patterns
  1.  
Thu, 21 Sep
Software Design Patterns
  Recess Week
  1.  
Thu, 5 Oct
Software Design Patterns
  1.  
Thu, 12 Oct
Software Design Quality and Evaluation
  1.  
Thu, 19 Oct
Software Construction – Program Representation
 
  1.  
Thu, 26 Oct
Software Evolution - Principles of Software Evolution
  1.  
Thu, 2 Nov
Guest Talk
  1.  
Thu, 9 Nov
Revision
  1.  
Thu, 16 Nov
Project final Demo
 
CS3219 Lectures: Thu 4-6pm , COM1 02-12
CS3219 Tutorials :Mon  2-3pm & 3-4pm / Wed 9am-10am    COM1 02-09
CA : 60%     (Assignments 50%      Tutorials & Class activities 10% )
Exam – 40%    
Exam: Monday, 27-Nov-2017 (Afternoon)

 
 

Synopsis

TopThe discipline of software engineering has changed considerably since its introduction three decades ago.  Although the principles remain the same, the context in which they are applied is continuously evolving. This module teaches principles and their application in a way that can help students learn new paradigms fast and catch up with inevitable changes of software development realities. It provides an introduction to process models, requirements elicitation and covers the principles and concepts relevant to software design. In CS2103, an introductory software engineering module, students learn the basic concepts and knowledge of software engineering in terms of the object oriented analysis and design. There are many other activities in software development process that every software engineer is expected to be well versed with. This module considers various activities in software development process, and emphasises software architectural design, design principles and best practices. It also prepares students with essentials to take on the role of software engineer in the industry by introducing them to the basics of software evolution and project management.

Syllabus

TopSee schedule for various topics in the syllabus

Practical Work

Top
1. Assignments - These are set around various key topics of the module . Students will be rqeuired to carry out design & implementation for given problems. A few linked assignments will allow students to build a  functional system for a given set of requirements. 
2. Tutorials - some of the tutorials will require students to carry out short implementation exercises around standard frameworks 

Assessment

TopCA –60%
  • Assignments 50%
  • Active Learning (Peer Learning / Tutorials & Class activities 10%)
Exam – 40%

Preclusions

TopCS3213 Software Systems Design

Workload

Top2-1-0-3-4

Workload Components : A-B-C-D-E
A: no. of lecture hours per week
B: no. of tutorial hours per week
C: no. of lab hours per week
D: no. of hours for projects, assignments, fieldwork etc per week
E: no. of hours for preparatory work by a student per week

Contact

  • IVLE Webmaster

Social Media

Latest Alerts

  • IVLE scheduled maintenance every Tuesday 0300 hrs - 0700 hrs

Centre for Instructional Technology

Legal  |  Acceptable Use Policy

Copyright © 2015, National University of Singapore. All rights reserved.