[go: up one dir, main page]

0% found this document useful (0 votes)
34 views5 pages

COMP 220 - Software Engineering

The document outlines the course details for COMP 220: Software Engineering at Forman Christian College, including prerequisites, learning objectives, assessment criteria, and a detailed course schedule. It emphasizes the introduction to software engineering concepts, methodologies, and practical applications through hands-on experience with UML and software development processes. The course aims to equip students with foundational knowledge and skills necessary for further studies or a career in software development.

Uploaded by

qatotoqat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views5 pages

COMP 220 - Software Engineering

The document outlines the course details for COMP 220: Software Engineering at Forman Christian College, including prerequisites, learning objectives, assessment criteria, and a detailed course schedule. It emphasizes the introduction to software engineering concepts, methodologies, and practical applications through hands-on experience with UML and software development processes. The course aims to equip students with foundational knowledge and skills necessary for further studies or a career in software development.

Uploaded by

qatotoqat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

FORMAN CHRISTIAN COLLEGE

(A Chartered University)
Teaching Lesson Plan and Course Outline
Spring 2025

Dr. Nosheen Sabahat


Email: nosheensabahat@fccollege.edu.pk

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.

Rules for Students:


• Students are expected to attend every lecture and read the notes uploaded at Moodle.
• All work that you submit in this course must be your own. Unauthorized group efforts are considered
academic dishonesty.
• Academic dishonesty or cheating will result in zero points and will be referred to the AIC (Academic Integrity
Committee) at FCC for necessary action.
• All the assignments are due before midnight on the date at 11:59 pm. You need to follow the assignment
instructions given at Moodle.
• The late assignments will not be graded.
• There will be no retake of any quiz.
• Any work you submit in this course that should be your own.
• You are not allowed to submit the work of a fellow or work that you have done together with a
peer other than allowed.
• You are allowed to do your course project in a group of three students.

Assessment Criteria (Tentative): Grading will be based on the following criteria:


Assessment Method Weightage
Attendance/Class Participation/Activities 5%
Quizzes 15%
Assignments 10%
Project 15%
Mid Term 20%
Final Assessment 35%
Total 100

Course Content, Learning Material & Activities Schedule


Week no Contents
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 a group of three to do your course project which includes three to four assignments.

Introduction to Software Engineering


1 • Terminologies and definitions.
• What is software?
• What is software engineering?
• Software development life cycle (SDLC) models
• Roles and responsibilities in software engineering teams
• Ethical and professional considerations in software engineering
• Frequently asked questions about software engineering.
• Essential attributes of good quality software.
• Software engineering diversity and the types of software application types

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.

Introduction to Software Requirements Engineering


• What is software requirements engineering?
• Problem domain.
• Solution domain.
• Use case.
6&7 • What are software requirements?
• Types of software requirements.
• Functional versus non-functional requirements.
• Goals and requirements.
• Metrics for specifying non-functional requirements

8
Midterm exam

Introduction to System modelling


• Why we need to build system models.
• What is modelling?
• What is UML?
• The types of different UML models.
9 & 10
• UML modelling notations.
Use case Modelling
• Writing Use cases.
• Developing Use case model.
• Developing sub use cases.
Structural Modelling
• What is programming and the different aspects of programming?
• Procedural programming.
• Object oriented programming
• The representation of class in C++.
• Access modifiers.
• Class representation in UML.
o Class name.
o Class attributes.
o Class operations.
10 & 11 o Class responsibilities.
• Class relationships
o Association relationship.
o Generalization relationship.
o Aggregation relationship.
o Composition relationship.
o Dependency relationship.
• Interface.
• Enumerations.
• Exceptions.
• Packages.
Introduction to configuration management
• What is configuration management?
• Configuration management activities.
12 & 13 • Multi version systems.
• Configuration management terminologies.
• Version management
o Code line and base line.
o Version control systems.
o Centralized version control systems.
• Distributed version control systems

Introduction to software testing


• What is program testing?
• Verification versus Validation
• Software Inspection versus software testing
• Software testing strategies
o Development testing
13 & 14 o Unit testing
o Object class testing
o Automated testing
o Partition testing
o Component testing
o Interface testing
o System testing
o Use-case testing
Software Evolution
• Evolution Processes
15
• Legacy Systems
• Software Maintenance

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.

You might also like