(A Chartered University)

Fall 2016

COMP 220 – Software Engineering (3 Credits Hrs)

Course Outline and Lesson Plan


Instructor Information:


Dr Saad Bin Saleem




Office Hours

  • 11:00 am to 12:00 pm on Monday, Wednesday and Friday.
  • Any other time only by appointment.

Teaching Assistant

Rafia Irshad Akhtar 

Contact address :


Course Information:


COMP 220




Software Engineering

Course Description

The aim of this course is to introduce students with the discipline of software engineering, give overview of software development lifecycle and develop software system analysis & modelling skills.  During this course, the students will get hands on experience of developing functional and structural models of the system using UML.

Class meet

Monday, Wednesday and Friday: 10:00 am to 10:50 am

Room: S-317


Core Course for all Computing Students

Pre- Requisite

COMP 111 – Programming II

Course web page 2016/COMP220.htm

Learning Objectives

Upon the completion of this course, the students are expected to have the following conceptual knowledge and can apply the learned concepts in the real world scenarios.        

·         Have an understanding about the field of Software Engineering.

·         The understanding of the basic principles of software engineering.

·         Able to choose a right software development method within the budget and time constraints and according to the needs of customers.

·         The understanding of the basic steps and prerequisites of software project planning.

·         Have an understanding about the field of Requirements Engineering.

·         Able to identify requirements and analyze them.

·         Understand the purpose of system modeling and Unified Modelling Language (UML).

·         Able to develop the functional and structural model of given software system. 

·         Able to work in the teams.

·         Able to give presentation.

Text Books

  • Ian Sommerville, Software Engineering 10th edition, Pearson Publications, 2015, ISBN-13: 978-0133943030. The slides of all the chapters are available at the following webpage of Ian Sommervile’s website. 
  • Craig Larman, Applying UML and Patterns: an introduction and object oriented analysis and design and iterative development, 3rd Ed, Prentice Hall, 2004.

Reference Books

  • Carlo Ghezzi, Mehdi JazayeriDino Mandrioli, Fundamentals of Software Engineering (2nd Edition).
  • Roger S. Pressman “Software Engineering- A practitioner’s approach”, 8th edition.
  • Alain Abran, James W. Moore, Pierre Bourque, Robert Dupuis, Leonard L. Tripp “Guide to the Software Engineering Body of Knowledge” IEEE  Edition – SWEBOK Guide V3.0.
  • An integrated approach to software engineering by Pankaj Jalote.

Important to know

·         All the assignments are due before midnight on the due date at 11:59 pm.

·         In this course, the students can be called to appear for a viva randomly to determine their knowledge. However, it is compulsory for students to appear in the viva sessions arranged by the instructor. 

·         The late assignments will not be graded, unless previous accommodations have been made with the course instructor.

·         There will be no retake for the quiz, unless previous accommodations have been made with the course instructor.

·         The students are advised to attend all lectures. However, 85% attendance is compulsory for this course. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent.

·         Any work you submit in this course that should be your own.

·         You are not allowed to submit a work of a fellow or a work which you have done together with a peer.

·         You are allowed to work in the groups only with the permission of course instructor or only if he asks you to form groups in the class. Otherwise an unauthorized group effort will be considered as an academic dishonesty.

·         You may discuss homework in a general way with your fellows. However, you are not allowed to copy or consult anyone else's written work.

·         You are guilty of academic dishonesty if:

                                I.            You examine another's solution to an assignment/quiz/project/exam

                             II.            You allow another student to examine your solution of an assignment/quiz/project/ lab-work or any exam.

                           III.            You fail to take reasonable care to prevent another student from examining your solution and that student does examine your solution.

Course Policy:

In case of unauthorized group efforts, academic dishonesty/fraud, cheating and plagiarism following policy is applicable (All cases of breach of Academic Integrity will be reported to head of department at first instance. The instructor of this course can report such cases to Vice Rectors’ office/AIC) directly. The following are key points of course policy to remember.


·         ZERO TOLERANCE POLICY on any academic integrity breach for midterm exam, final exam, assignments, quizzes and project.    

·         Cheating or violation of academic integrity in any exam/project will cause F grade in the course.

·         In this course, the instructor will take attendance quiz randomly without announcing in advance.

·         In this course, the instructor can judge the discipline of a student and can deduct discipline marks whenever necessary.

·         All the assignments should be submitted to the email with subject COMP220 Spring 2016.  

·        You should name your document with your roll number for each assignment while sending on the “”.  


Grading Policy:

·         The relative method of grading will be adopted in this course.

·         One percent from the overall 5 percent absolute attendance marks will be deducted if you are absent during the attendance quiz.

·         Misbehavior or disturbance in the class will lead to the deduction of 1% absolute mark from the overall discipline marks.

·         In this course, all the assignments and two best quizzes will be added in the overall grading.

·         In this course, 7% is the weight of each assignment, 5% is the weight of two best quizzes and 4% is the weight of project presentation and opposition.

Assessment Criteria

Attendance quizzes




Quizzes, Assignments, Project presentation and Project opposition


Midterm exam


Final exam




Lesson Plan

Week no


Activities and Deadlines


Course Introduction:

  • The objectives of course.
  • Why students need to study this course?
  • How this course will help students in shaping their careers.
  • The teaching strategy I am adopting.
  • The course assessment criteria.

Organize yourselves in the group of three to do your assignments and choose a software system to develop during this course.


Introduction to Software Engineering

  • What is Software?
  • Terminologies and Definitions.
  • Software Qualities.
  • The common problems with a software project.
  • What is Software Engineering?
  • The relationship between software engineering and software system engineering.
  • The seven basic principles of software engineering by Barry Boehm.
  • What is a software project?
  • How to deliver a successful software project?




2 & 3 

Software Development Life Cycle

Introduction to software development

  • Traditional approach to software development.

o   Water wall (the phases in water wall model, advantages and limitations).

  • Rapid prototyping cycle (advantages and limitations).
  • Phased models (advantages and limitations).
  • Iterative Development.
  • Spiral model.

o   The incremental model (advantages and limitations).

  • The essential software process.


Quiz 1results



Agile Methods

  • What is Agile?
  • Why Agile Software Development?
  • Agile Alliance
  • Agile Manifesto
  • 12 Core Principles of Agile Software Development
  • Scrum Agile Method

1)   Scrum Philosophy

2)   Scrum key concepts

3)   Scrum phases

4)   Scrum activities

5)   Scrum roles


Quiz 2 results


Introduction to Software Requirements

  • What are software requirements?
  • Difficulty in understanding the requirements.
  • Types of software requirements.

o  Functional Requirements.

o  Non-functional Requirements.

·         Introduction to user stories.

  • Writing user stories.
  • Introduction to requirements elicitation.
  • What is a feature.
  • What is a use case.

Quiz 3 will be announced in the class.   




·           Revision


·           Prepare a proposal to develop Use case specification and modelling of your chosen software system.



Use case Specification and modelling  template

(An official template for your project submission)


Example Template (To help you in the project)


Introduction to Git Version Control System

  • What are the versions control systems?
  • Why versions control systems?
  • Why git version control system?
  • The download and the installation of git version control system.
  • Using git version control system (A tutorial session).
  • The repository.
  • Making commits.
  • Commits and graphs.
  • A typical workflow.




Your midterm will be held on Friday 28th October, 2016.

9 & 10 

Introduction to System modelling

  • Why we need to build system models.
  • What is modelling?
  • Introduction to UML.
  • UML modelling notations.

Functional Modelling

  • Uses cases.

o  Writing use cases.

o  High level use cases.

o Extended level use cases.

·         Use case model.

Assignment 1 Description (Deadline for the assignment1 is 8th November, 2016)




Papyrus tutorial for drawing the use case model.


Structural Modelling

  • The concept of class.
  • Class notations.
  • Class relationships
  • Association
  • Generalization
  • Aggregation & Composition
  • How to develop a class diagram?
  • Drawing Class Diagram (A tutorial session).

Assignment 2 Description (Deadline for the assignment2 is 18th November, 2016)  



Papyrus tutorial for developing the class model.



Developing system models 

  • Introduction to UML model generation.
  • Introduction to code generation through UML models.
  • Introduction to papyrus.


A tutorial session on papyrus (An open source tool to create the UML model of the system).

Assignment 3 Description

(Deadline for the assignment3 is 28th November, 2016)  



An overview of software verification and validation

  • What is software verification?
  • What is software validation?
  • What is software testing?
  • How verification and validation contributes to software testing?
  • Why we need to do software testing?
  • Example of software failures
  • Software testing strategies

o   Exhaustive testing

o   Efficient testing

o   Equivalence classes

1)    White box and black box testing

2)    Generating equivalence classes

3)    Coverage in white box testing



The deadline for the Project submissions is Sunday 4th December, 2016.  




Your project viva and presentations will be held in the week starting from the Monday 5th December, 2016


Final exam.


Your final exam will be held on Wednesday 14th December 10, 2016 from 2:00 pm to 4:00 pm.