FORMAN CHRISTIAN COLLEGE

(A Chartered University)

Spring 2016

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

  • 10:00 am to 11:00 am on Tuesday and Thursday.
  • Any other time only by appointment.

Teaching Assistant

Gadhaun Aslam

Contact address : 16-10848@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.

Category

Core Course for all Computing Students

Pre- Requisite

COMP 111 – Programming II

Course web page

http://saadbinsaleem.com/courses/softeng/Spring 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 fcc.submissions@gmail.com with subject COMP220 Spring 2016.  

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

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?
  • 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: Write down your rational of choosing the software engineering course.

 

 

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.

o   The incremental model (advantages and limitations).

  • Evolutionary development Spiral model.
  • The essential software process.

Quiz 1 (Describe the seven basic principles of software engineering. Explain each with an example to demonstrate its applicability to develop a software system.)

 

 

The submission deadline for quiz1 is 12th February, 2016 at midnight 11:59.

 

Quiz1 Results

4&5

Agile Methods

  • What is Agile?
  • Why Agile Software Development?
  • Agile Alliance
  • Agile Manifesto
  • 12 Core Principles of Agile Software Development
  • 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 (Compare two traditional software development models for developing a library management system and justify your choice.)

 

 

The submission deadline for quiz2 is 28th February, 2016 at midnight 11:59.

 

 

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 (Create a burn down chart assuming that you are using the scrum model for developing a software project.)

 

 

The submission deadline for quiz3 is 13th March, 2016 at midnight 11:59.

 

Quiz3 Results

7

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

8

Software requirements engineering (an overview)

  • What is Software Requirements Engineering?
  • What are software requirements?
  • Difficulty in understanding the requirements.
  • Introduction to requirements elicitation.
  • What is a feature
  • What is a use case
  • Types of software requirements.

o  Functional Requirements.

o  Non-functional Requirements.

 

 

 

Midterm Results

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 (Identify the problem and solution domain, features, use cases, functional and non-functional requirements of your proposed system.)

 

 

The submission deadline for Assignment 1 is 17th April, 2016 at midnight 11:59.

 

Assignment1 Results  

11

Structural Modelling

  • The concept of class.
  • Class notations.
  • Class relationships
  • Association
  • Generalization
  • Aggregation & Composition
  • How to develop a class diagram?
  • Class Diagram

Assignment 2 Write down the abstract and high level use cases of your proposed system. Also draw a use case model of the system using using UML notations.

 

The submission deadline for Assignment 2 is 28th April, 2016 at midnight 11:59

 

Assignment2 Results  

12

Developing system models 

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

 

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

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

The submission deadline for Assignment 3 is 8th May at midnight 11:59



Assignment3 Results

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

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

 

The submission deadline for Project  is 10th May, 2016 at midnight 11:59

 

 

Project Presentation and Opposition Results

14

Final exam.

 

 

Your final exam will be held as per the University schedule.

 

Final exam Results