FC Logo

FORMAN CHRISTIAN COLLEGE

(A Chartered University)

Fall 2015

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

  • 12:00pm to 1:00pm on Monday.
  • 3:00pm to 4:00pm on Tuesday and Thursday.

Teaching Assistant

  • Mahum Noor

Contact: 15-10336@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 and software requirements gathering, analysis, design and implementation in object oriented software engineering.

Category

Core Course for all Computing Students

Pre- Requisite

COMP 111 – Programming II

Course web page

http://saadbinsaleem.com/courses/softeng/COMP220.htm

Learning Objectives

·         Introducing the field of Software Engineering to students.

·         Helping students to understand the basic principles of software engineering.

·         To develop an understanding of software project planning and the ability to select the suitable model to use in software development.

·         Knowledge of all phases of software life cycle including the artifacts that are produced.

·         Ability to analyze, design and develop the system models using object oriented methodology for software development.

·         Learn to work in teams to identify requirements, analyze them and design solutions for a real world problem.

·         Developing the presentation skills among students.

·         Developing the teamwork management skills in students.

Text Book

Reference Books

  • 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.
  • Ian Sommerville “Software Engineering”, 10th edition.
  • An integrated approach to software engineering by Pankaj Jalote.

Important to know

·         All assignments are due at the mentioned time with assignment statement before 5:00 p.m. on the due date. Students can be called to appear for viva at random as and when needed to determine their knowledge gained.

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

·         Students are advised to attend all lectures but 85% attendance is compulsory. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent.

·         All work that you submit in this course must be your own.

·         Unauthorized group efforts are considered academic dishonesty.

·         You may discuss homework in a general way with others, but you may not consult anyone else's written work. You are guilty of academic dishonesty if:

o   You examine another's solution to assignment/Quiz/Project/exam.

o   You allow another student to examine your solution to a assignment/Quiz/Project/ Lab Work or any exam.

o   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 Vice Rectors office/AIC)

This course has ZERO TOLERANCE POLICY on any academic Integrity breach

·         For Mid Term, Final Term, Assignments, Quizzes and project.

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

·         Import Note: In this course, a student will not be allowed in the exam if he is continuously out of class for a consecutive week.

·         In this course, the four best quizzes will be added in the overall grading.   

Assessment Criteria

Project presentation and Opposition

5%

Quizzes and Assignments

30%

Midterm exam

25%

Final exam

40%

Total

100.00%

Lesson Plan

Week no

Contents

Activities and Deadlines

1and half

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.

 

Introduction to Software Engineering

  • What is Software?
  • 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?

Class Room Activity: Please give your rational of choosing the software engineering course.

 

 

2 and 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.

o   The incremental model (advantages and limitations).

o   The RAD & JAD models (advantages and limitations).

  • Evolutionary development Spiral model.
  • V model and system engineering.
  • The essential software process.

Quiz 1 (Please describe the seven basic principles of software engineering with examples.)

 

 

 

Quiz1 (Results)

4

and

5

Agile Methods

  • What is Agile?
  • Why Agile Software Development?
  • Agile Manifesto
  • Agile Methods.

o   SCRUM.

1)   Scrum Philosophy

2)   Scrum key concepts

3)   Scrum phases

4)   Scrum activities

5)   Scrum roles

o   Extreme Programming.

1)    Principles of XP

2)    Activities of XP

o   Lean Software Development.

1)   What is lean software development?

2)   Lean software development principles

o   KANBAN.

1)   What is Kanban?

2)   How Kanban works?

Quiz2 (Please compare two traditional software development models for developing a library management system and justify your choice.)

 

It is a descriptive quiz.

 

Submission Deadline:

17:00, Thursday 8th  October, 2015

 

Quiz2 (Results)

6

Software Project Planning

  • Introduction to software economics.
  • Analysing the software scope.

o  Software functions

o  Constraints

  • Analysing the resources.
  • Software project estimation.

o  Problem based estimation

o  Process based estimation

o  The Cocomo model.

  • Task decomposition.

o  Work break down structure (WBS).

Quiz 3 (Please create a burn down chart assuming that you are using the scrum model for developing a software project.)

 

Quiz3 (Results due)

 

Viva for quiz3 will be held on

11th November, 2015 from 2:00pm to 4:00pm

7

Please prepare a proposal to develop Use case specification and modelling of your chosen system.

Your Midterm exam will be held on Thursday 22nd October, 2015.

 

Midterm exam (Results)

 

Use case Specification and modelling  template

(An official template for your project submission)

 

Example Template (To help you in the project)

8

Software requirements engineering (an overview)

  • What is Software Requirements Engineering?
  • What are software requirements?
  • Difficulty in understanding the requirements.
  • Introduction to requirements elicitation.
  • Requirements elicitation techniques.

o  Interviews.

o  Group Interviews.

o  Observations.

o  Brain storming.

  • Feature
  • Use case
  • Requirement
  • Types of software requirements.

o  Functional Requirements.

o  Non-functional Requirements.

 

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 (Please identify the features, functional, non-functional requirements and interacting users of your chosen system.)

 

Submission Deadline:

17:00, 5th November, 2015

 

Please submit your answer at “Fcc.Submissions@gmail.com”.

 

Assignment 1 (Results due)

11

Structural Modelling

  • The concept of class.
  • Class notations.
  • Class relationships
  • Association
  • Generalization
  • Aggregation & Composition
  • Class Diagram

 

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

Assignment 2 Please draw use cases and use case model of your chosen system using UML notations.

 

Submission Deadline:

17:00, 19th November, 2015

 

Please submit your answer at “Fcc.Submissions@gmail.com”.

 

Assignment 2 (Results due)

12

An overview of software verification and validation

  • Verification strategies such a block box and white box testing. 
  • A general discussion on software validation.

Assignment 3 (Please draw a class model of the system using papyrus open source system.)  

 

Submission Deadline:

17:00, 2nd December, 2015

 

Please submit your answer at “Fcc.Submissions@gmail.com”.

 

Assignment 3 (Results due)

13

Please present your project.

Project (Please compile all the assignments to complete your project in the given template. Do also remember to prepare a presentation of your project.)  

 

Project Submission Deadline:

17:00, 2nd December, 2015

 

Please submit your answer at “Fcc.Submissions@gmail.com”.

 

Presentations will be held on:

Thursday 3rd December, 2015

14

Final Exam

 

Please fill the course evaluation form to improve this course.

 

Your final exam will be on Thursday 17th December from 11:00 to 13:00.

 

Results and grade sheet