You are on page 1of 15

CS3342 Software Design

CS3342 Software Design


Course Outline

Prof. Jacky Keung


Artificial Intelligence and Software Engineering Research Group
Department of Computer Science
City University of Hong Kong
CS3342 Software Design

CS3342 Teaching Team


 Course Lecturer

 Prof. Jacky Keung

For Consultation and Meeting :


Email Course Instructor:
Dr. Jacky Keung (jacky.keung@cityu.edu.hk)
(contact TA Mr. Liu First)

For Grades/Assignments:
Email Lead Teaching Assistant (TA):
Mr. Shuo Liu (sliu273-c@my.cityu.edu.hk)
(Please include CS3342 in the subject line)
CS3342 Software Design

Lectures

Lectures

Every Tuesday 12pm ~ 3pm


 Face-to-Face lecture: LT-1
 Lecture notes are available on Canvas e-Learning
CS3342 Software Design

Labs / Tutorial Classes


 There are x3 CS3342 Tutorial sessions in Semester B.
 Venue: CS Lab MMW2450 / MMW2462
 CS3342 – Thursday
 10:00 – 10:50 (MMW2450 / MMW2462)
 11:00 – 11:50 (MMW2450 / MMW2462)
 13:00 – 13:50 (MMW2450 / MMW2462)
Change to another tutorial session is flexible, subject to
availability
CS3342 Software Design

Course Objective
 Understand Software Engineering Concepts
 Explain and practice Software Development Process
 Learn and use UML for Software Design
 Object-oriented methodology will be explained
 Case Studies will be used to illustrate the application of the
methods, tools and techniques.

5
CS3342 Software Design

Learning Outcomes CILOs


1. describe the software process and explain the structured and object-
oriented software development methodologies;

2. elicit, analyse and specify user requirements;

3. perform object-oriented analysis and specify the analysis result using


modern specification techniques;

4. apply object-oriented design principles to formulate design solutions;

5. describe the key components in software engineering professional


ethics.
CS3342 Software Design

Prerequisites

 To achieve successful outcome in this course, you should


have, hopefully..., at least
 Basic/some understandings of software development
 Programming knowledge will be useful.
 Conceptual understanding of user interface and design
 We will learn and use Java in this course.
 Object-oriented Java Programming Language
CS3342 Software Design

Topics Covered
 Introduction

 Fundamentals in relation to software engineering

 Software engineering process

 Object-oriented analysis

 Dynamic and activity modeling

 Object-oriented design

 Introduction to OO design principle


CS3342 Software Design

Common Questions
 What programming language will be taught?
 We will use Java for CS3342 and CS3343 (next Semester)
 Software Design and its related programming paradigms
are the main focus

 Will it be a theoretical course?


 It is more of a practical course.
 The next course is CS3343 Software Engineering Practice
(next semester).

9
CS3342 Software Design

Teaching Materials
 Lecture Notes and Announcements

> CityU Canvas e-Learning

Recommended Text Books:

 Reference Textbooks
 Sommerville, I., Software Engineering, 9th Edition,
Addison-Wesley, 2010.
 Farrel, J., A Beginner's Guide to Programming Logic and Design, Comprehensive, International Edition, 7th
Edition, Cengage, 2013
 Bell, D., Software Engineering for Students – A Programming Approach, 4 th Edition, Addison-Wesley, 2005
 J.L. Whitten and L.D. Bentley, Systems Analysis and Design Methods, McGraw-Hill, New York, NY (2007)
 Bernd Bruegge and Allen H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns and
Java.2nd Edition, Prentice-Hall (2003)
 Craig Larmen, Applying UML and Patterns, Prentice Hall (2005)
CS3342 Software Design

Assessment Components 50/50


 Course Work 50%:
 1x Assignment 15% - Individual
 1x Quiz 15% - Individual Around week 9, 10

 1x Group Project 20% - In a group of 6 students


 Presentation (5%) Around week 12, 13

 Software Design Report (15%) Around week 13

 Exam 50%:
 1x Final Examination (50%) One Easy Exam!  Around Week 15, 16
 For a student to pass the course, at least 40% of the maximum mark for the
continuous assessment and 30% of the maximum mark for the examination must be
obtained.
CS3342 Software Design

Group Project
 Group Project 20% - In a group of 6 students
 Presentation (5%) Around week 12, 13
 Software Design Report (15%) Around week 13

 Within your selected tutorial class


 Form team in Week 1-2
 Project Start in Week 2
 Open topic on project
 Decide on the roles of a project (Project Manager, …, etc.)

 6 students per group


 Weekly Activity Log
 Presentation
 Group Report
CS3342 Software Design

Prelim. Course Schedule (subject to change)


Lecture Tutorial
Week 1 Introduction to Software Design Review of OO/OOP basics
Week 2 OO Programming Concepts I OOP Concepts
Week 3 OO Programming Concepts II OOP Concepts
Week 4 OO Modeling (Classes, Use Role of Variables
Cases)
Week 5 OO Modeling (Sequence Diagram) Use Case Diagrams Exercises
Week 6 OO Design Principles (OCP, LSP, Sequence Diagram Exercises
DIP)
Week 7 OO Design Principles (SRP, ISP, Design Principles Exercises
LOD)
Week 8 OO Design Patterns I Design Principles and Patterns
Week 9 OO Design Patterns II Design Patterns
Week 10 Software Ethics Design Patterns
Week 11 Mid-Term Software Ethics
13
Week 12 Exam Revision Group Project Preparation
CS3342 Software Design

Software Development Processes

CS3342

Requirements
gathering, and
software design

Software Testing
(Other courses)

Maintenance, service,
upgrades, deployments
(Other courses) CS3343
CS3342 Software Design

Any Questions?

You might also like