Course title: CIT 3109: SOFTWARE ENGINEERING COURSE OUTLINE 39 HOURS
Prerequisite: SYSTEM ANALYSIS AND DESIGN
Course purpose:
This course is aimed at helping students build up an understanding of how to develop a software
system from scratch by guiding them through the development process and giving them the
fundamental principles of system development with object oriented technology using UML. The
course will initiate students to the different software process models, project management,
software requirements engineering process, systems analysis and design as a problem-solving
activity, key elements of analysis and design, and the place of the analysis and design phases
within the system development life cycle.
Learning outcomes
At the end of the course, the student should be able to demonstrate the following:
Develop an understanding of, software process models, project management and the ability
to select the suitable model to use in software development.
Develop an understanding of requirements engineering process and distinguish between
different types of requirements.
Ability to analyze, design and develop the system models using object oriented methodology
(UML) for software development.
Ability to prepare the software requirements specification document for a software project
Demonstrate the ability to research a particular topic and develop it for a specific audience
and purpose.
Implement various quality assurance techniques, including unit testing, functional testing,
and automated analysis tools
Course description
Introduction to Software Engineering. Software Processes/Introduction to software development
life cycle/models, Software development methods. Software requirements engineering, Software
Design. System Modeling: Introduction to OO Analysis and Design (UML), Use Cases,
Sequence Diagrams, Conceptual Modelling, Class Diagrams. Modularity verification and
validation. Debugging environments. Documentation. Software project management. Cost
estimation models. Issues in software quality assurance and software maintenance.
Configuration management. Software standards and metrics. Software tools support for systems
engineering. Certification. CASE tools.
COURSE PLAN
WEEK 1&2: CHAPTER ONE: INTRODUCTION TO SOFTWARE ENGINEERING
1.1. Introduction
Page 1 of 4
1.2. Basic concepts: Frequently Asked Questions (FAQ’s)
1.2.1. What is software?
1.2.2. Categories of software.
1.2.3. Who does it?
1.3. The role of software
1.4. Software evolution
1.5. Software process
WEEK 3: CHAPTER TWO: SOFTWARE PROCESSES
2.1 Software process models
2.2 Process iteration
2.3 Process activities
2.4 Design and Implementation
Lesson Software validation, evolution and Automated
process support
2.5 Computer-aided software engineering
WEEK4: CHAPTER THREE: SOFTWARE REQUIREMENTS ENGINEERING
2.1. Software requirements.
2.2. Data requirements.
2.3. Functional and non-functional requirements
2.4. User requirements
2.5. System requirements
2.6. Interface specification
2.7. The software requirements documents
2.8. Software engineering processes
WEEK 5: CHAPTER 4: DESIGN ENGINEERING &ASSIGNMENT 1
3.1. Design concepts
3.1.1. Abstraction
3.1.2. Architecture
3.1.3. Distributed system architecture
3.1.4. Object oriented design
3.2. Patterns
3.3. Design classes
3.4. Modularity-component level design
3.5. Information hiding
3.6. Functional independence
WEEK 6: CAT 1
WEEK 7: CHAPTER 4: SOFTWARE TESTING
4.1. Verification and validation
4.2. Organizing for software testing
Page 2 of 4
4.3. Testing strategies
4.3.1. Unit testing
4.3.2. Integration testing
4.4. Testing strategies for object-Oriented architecture.
4.4.1. Unit testing
4.4.2. Integration testing
4.5. Criteria for completion of testing
WEEK 8: CHAPTER 5: SOFTWARE PROJECT MANAGEMENT
5.1. Management activities
5.2. Project planning
5.3. Project scheduling
5.4. Risk management
WEEK 9: CHAPTER 6: SOFTWARE METRICS, SIZING, COST ESTIMATION
/SOFTWARE
COST ESTIMATION
6.1. Software measurements and metrics
6.2. Software productivity
6.3. Software estimation techniques
6.4. Algorithmic cost modeling
6.5. Project duration and staffing
6.6. Exercises on cost estimation
WEEK10: CAT2
WEEK 11: CHAPTER 7: QUALITY MANAGEMENT
7.1. Process and product quality
7.2. Software Quality Assurance and Standards
7.3. Quality planning
7.4. Quality control
7.5. Software measurement and metric
7.6. SQA activities
WEEK12: CHAPTER 8: CONFIGURATION MANAGEMENT
8.1. Configuration management planning
8.1.1. Planning
8.1.2. Change management
8.1.3. Version and release management
8.1.4. CASE tools for configuration management.
WEEK13: CHAPTER 9: SOFTWARE MAINTENANCE
9.1. perfective,
Page 3 of 4
9.2. adaptive
9.3. corrective maintenance
9.4. preventive
Teaching Methodology
Lecture, class discussion, assignment/project, group work/discussion
Instruction materials /equipment
White board, Projector, Lecture Slides, computer components.
Course assessment Course Evaluation
Continuous Assessment Tests 20%
Assignments 10%
End of semester examination 70%
Total 100%
Course reference text books
Main Textbooks
The following are suitable texts books for this course:
1) Sommerville, I. (2020). Engineering software products. 11th Edition London: Pearson
2) Summerville, I. (2015). Software Engineering, 10th Edition. Addison-Wesley, ISBN: 0-
13-394303-8
3) Lecture notes: include presentations that will be made available by the instructors
and notes that you will take during lectures
Textbooks/Journals for further reading
1. Bernd Bruegge and Allen H. Dutoit, (2010) Object Oriented Software Engineering –
using UML, Patterns, and Java, Third Edition, Prentice Hall,
2. Goger S. Pressman , Software Engineering : A Practitioners Approach
3. Ian Sommerville’s web-site for the textbook: http://iansommerville.com/software-
engineering-book/ [Note: 10 th edition]
4. The Software Engineering Institute, at Carnegie Mellon University, www.sei.cmu.edu
5. The Object Management Group: www.omg.org
Page 4 of 4