COMP 220 - Software Engineering
COMP 220 - Software Engineering
(A Chartered University)
Teaching Lesson Plan and Course Outline
Spring 2025
Course Details:
COMP 220: Software Engineering (Section A, B), 3 Credit Hours
Prerequisites:
COMP 200: Data Structures and Algorithms
Office Hours:
MWF 12:00 – 1:00
Resources:
• Lecture notes uploaded at Moodle.
• Any other resources will be shared if required.
Introduction:
This course aims to introduce students to the discipline of software engineering, give an overview of plan-driven and
agile software development process models and software process activities, introduce the field of software
requirements engineering, develop software system analysis & modeling skills, introduce configuration and version
management, and software testing disciplines.
During this course, the students will get hands-on experience in developing use cases and structural models of the
software system using UML. Overall, this course will help students develop the basic concepts for pursuing further
studies in the software engineering discipline and/or starting a career as a software developer in industry.
Learning Objectives:
This course comprises the following course learning objectives.
CLO1 Students should be able to understand the basic concepts of the software engineering field.
CLO2 Students should understand plan-driven and agile software development methods.
CLO3 Students should be able to use traditional/plan-driven software development methods/models in real-world
software development scenarios.
CLO4 Students should be able to differentiate between the problem domain/ solution domain and the problem of
their software system.
CLO5 Students should be able to develop the use case and the structural model of the given software system
CLO6 Students should be able to differentiate between the verification and validation concepts and have a basic
knowledge of software testing test cases and testing techniques.
The following are the Student Learning Objectives for this course:
SLO1 Students will demonstrate comprehension of fundamental concepts in software engineering, including software
development lifecycle, requirements engineering, design principles, and quality assurance.
SLO2 Students will differentiate between plan-driven and agile software development methodologies, understanding
their principles, processes, strengths, and limitations.
SLO3 Students will apply traditional/plan-driven software development methods/models in practical software
development contexts, demonstrating proficiency in project planning, requirements analysis, design,
implementation, and testing.
SLO4 Students will identify and distinguish between the problem domain, solution domain, and the problem of the
software system, understanding the context, stakeholders, requirements, and constraints influencing software
development.
SLO5 Students will develop use case diagrams and structural models (e.g., class diagrams, state diagrams) for a given
software system, demonstrating proficiency in requirements analysis and system design.
SLO6 Students will differentiate between verification and validation concepts in software engineering, and
demonstrate basic knowledge of software testing principles, test case design, and testing techniques.
Textbook:
• 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.
• Roger S. Pressman “Software Engineering- A practitioner’s approach”, 8th edition. The slides of all the
chapters are available at the webpage of Pressman’s website.
Reference Books:
• Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Fundamentals of Software Engineering (2nd Edition). The
slides of all the chapters are available at the website of this book.
• 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.
• 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.
Software Process
• Software process description.
• Plan-driven and agile processes.
Software Process Models
• The water fall model.
• Incremental Development.
• Integration and Configuration.
2&3 • Reuse oriented software engineering.
• Software process activities.
o Software Specification.
o Software Design and Implementation.
o Software validation.
o Software evolution
• Coping with change.
o Prototyping.
o Incremental delivery
Agile Methods
• What is Agile?
• Agile software development
• Plan-driven and agile software development.
4&5
• Agile manifesto
• Agile development techniques.
o Extreme programing.
o Extreme programing practices.
• Agile project management
o Scrum.
8
Midterm exam
16 Final exam.
Note: One credit is defined as one hour of classroom or direct faculty instruction and a minimum of two
hours of out-of-class student work each week of the semester. A credit hour means teaching a theory course
for 50 minutes each week throughout the semester.