• Home
  • About
  • Mobile
  • Open Content
  • Search

Module Overview


  • Description
  • Facilitators
  • Weblinks
  • Timetable
CS3219 

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

Learning Outcomes

Top

LEARNING OUTCOMES

At 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. 
  • ​Write a program to process some representation of code for some purpose

Prerequisites

TopCS2103/T

Teaching Modes

Top1. Weekly Lectures with Active Learning in-class 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. Seminars - a peer-learning activity set around specific themes to let students explore cutting edge technology and research issues related to module topics. Seminars also help students carry out team work and sharpen their  presentation and technical writing skills.
4. Assignments(6) - 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

Top

Week 

Topic(s)

Week 1 (Aug 10)

Module Introduction  Pair-up for assignments
Software Development Process

Week 2 (Aug 17)

Requirements elicitation and Specification

Week 3 (Aug 24)

Industry talk

Week 4 (Aug 31)

Software Architecture   

Week 5 (Sep 7)

  Software Design Principles

Week 6 (Sep 14)

Seminars – presentations

Week 7 (Sep 28)

 Software Design  Patterns - Application Control & Messaging Patterns 

Week 8 (Oct 5)

Software Design Quality and Evaluation   Assignment Demo

Week 9 (Oct 12)

Software Construction - Program Representation  Object interaction Patterns  

Week 10 (Oct 19)

Seminars – presentations   Software Design Quality and Evaluation  

Week 11 (Oct 26)

Software Evolution  Program Representation     

Week 12 (Nov 4)

TBD  Software Evolution

Week 13 (Nov 9)

Module Review    

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

Top1. Seminars - Students explore cutting edge technology and reserach issues related to module topics. Some of the topics require preparing demoable examples.
2. Assignments - These are set around various key topics of the mdoule . 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.  
 

Assessment

TopCA –70%
  • Assignments 55%
  • Active Learning (Seminars 5% / Tutorials & Class activities 10%)
Exam – 30%

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 assignments 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.