FORMAN CHRISTIAN COLLEGE

(A Chartered University)

Spring 2017

COMP 220 – Software Engineering (3 Credits Hrs)

Course Outline and Lesson Plan

 

Instructor Information:

Name

Dr Saad Bin Saleem

Email

SaadSaleem@fccollege.edu.pk

Office

S 214

Office Hours

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

Teaching Assistant

Rafia Irshad Akhtar 

Contact address :  17-10348@formanite.fccollege.edu.pk

 

Course Information:

Code

COMP 220

Credits

3

Title

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

Section A: Monday, Wednesday and Friday: 14:00 to 14:50

Section B: Tuesday and Thursday: 14:00 to 15:15

Room: S 210

Category

Core Course for all Computing Students

Pre- Requisite

COMP 111 – Programming II

Course web page

http://saadbinsaleem.com/courses/softeng/Spring 2017/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. You can download the pdf copy of the second edition of the book.

Reference Books

  • Carlo Ghezzi, Mehdi JazayeriDino Mandrioli, Fundamentals of Software Engineering (2nd Edition). The slides of all the chapters are available at the following website of this book.
  • Roger S. Pressman “Software Engineering- A practitioner’s approach”, 8th edition. The slides of all the chapters are available at the following webpage of Pressman’s website. 
  • 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 fcc.submissions@gmail.com with subject COMP220 Spring 2017.  

·        You should name your document with your roll number for each assignment while sending on the “fcc.submissions@gmail.com”.  

 

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 all the quizzes will be added in the overall grading.

·         In this course, 7% is the weight of each assignment, 1.25% is the weight of each quiz and 4% is the weight of project presentation and opposition.

Assessment Criteria

Attendance quizzes

5%

Discipline

5%

Quizzes, Assignments, Project presentation and Project opposition

30%

Midterm exam

25%

Final exam

35%

Total

100.00%

Lesson Plan

Week no

Contents

Activities and Deadlines

1&2

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.
  • 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 1 will be held in the 2nd week.

 

 

4&5

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 will be held in the 4th week.

 

 

 

 

Activity 1 will be held in the 5th week.

6

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.

 

 

Activity 2 will be held in the 6th week.

7

·           Revision

 

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

 

 

Software system specification & modelling  template

(An official template for your project submission)

 

Work report template (An official template for your work report submission)

 

Example Template (To help you in the project)

8 &9

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

 

(The deadline for the Assignment 1 is Friday 31th March, 2017)  

10 

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 

 

(The deadline for the Assignment 2 is Monday 24th April, 2017).  

 

11

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

 

(The deadline for the Assignment 3 and Complete project submission is Monday 15th May, 2017).  



12

 

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.

 

 

Quiz 3 will be announced in the class.  

13

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 presentations submission is Monday 15th May, 2017.  

 

 

Quiz 4 will be held in the 13th week.  

14

Final exam.

 

Your project viva and presentations will be held in the week starting from Monday 15th May, 2017