Fundamentals of Software Engineering Course Outline
Fundamentals of Software Engineering Course Outline
Course Description
This course provides an introduction to the problems of software development and the processes
and methods used to address them. All phases in the software development life cycle, except testing
and maintenance which are postponed to Advanced Software Engineering, will be introduced. The
course also deals with software project planning, cost estimation, tracking and control, staffing, risk
management, and software configuration plan.
Learning Outcomes
At the end of the course, the student should be able to do the following:
Understand the basic principles of Software Engineering
Understand software process and state-of-the-arts software process models
Write requirements specification documents
Design a system, component, or process to meet desired needs.
Course Content
Week Lecture Topics
1 Chapter 1: Introduction & Overview
What is software?
What is software engineering?
Why Software Engineering?
Software quality
Software Engineering and the Engineering Profession
Ethics in Software Engineering
2-4 Chapter 2: Software processes & Models
Sequential Software Process models
Iterative Software Process models
5 Chapter 3: Agile Development
What Is Agility?
Agility and the Cost of Change
What Is an Agile Process?
Extreme Programming (XP)
Other Agile Process Models
6-8 Chapter 3: Requirement Engineering
Software Requirements
Requirement Engineering Process
System Models
9-10 Chapter 4: Software Project management
Responsibility of Software Project Managers,
Project Planning,
the organization of SPMP document,
Project Size Estimation Metrics
Project Estimation Techniques
Scheduling, Organization and Team Structures,
11-13 Chapter 5; Software Design
Software Design
Software Architectures
Function Oriented Design
Detailed Design
14-15 Chapter 6; Coding
Programming Principles & guidelines
Coding process
Validation & Verification
Metrics
References
1. Ian Sommerville (2011), Software Engineering 8th or later edition. Pearson Education Ltd.
2. Fundamental Software Engineering by Rajib Mall 2nded, Prentice Hall, India, 2004
3. Software Engineering: A Practitioner‘s Approach, Seventh Edition (2010) 7th Edition by
Pressman, Roger S, McGraw-Hill Companies, Inc.