Software Engineering
0%
Course Title: Software Engineering
Course No: CSC375
Nature of the Course: Theory + Lab
Semester: 6
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 8 + 8
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1. Introduction
2 hrs
1.1. Software Engineering Fundamentals
- Software and its Types
- Attributes of Good Software
- Software Engineering and its Importance
- Fundamental Software Engineering Activities
- Difference between Software Engineering and Computer Science
- Difference between Software Engineering and System Engineering
- Challenges and Cost of Software Engineering
- Professional Software Development
- Software Engineering Diversity
- Internet Software Engineering
- Software Engineering Ethics
2.1. Process Models
- Software Process
- Waterfall Model
- Incremental Development
- Integration and Configuration
2.2. Process Activities
- Software Specification
- Software Design and Implementation
- Software Validation
- Software Evolution
2.3. Change and Improvement
- Coping with Change
- Prototyping
- Incremental Delivery
- Process Improvement
3.1. Agile Methodologies
- Agile Development
- Plan-Driven vs. Agile Development
- Agile Methods
- Agile Development Techniques
- Introduction to Agile Project Management
4.1. Requirements Analysis
- Concept of User and System Requirements
- Functional and Non-Functional Requirements
- Requirements Engineering Process
- Requirements Elicitation
- Requirements Specification
- Requirements Validation
- Requirements Change
5. System Modeling
6 hrs
5.1. Modeling Techniques
- Introduction to System Modeling
- Context Models
- Interaction Models
- Structural Models
- Behavioral Models
- Model-Driven Architecture
6.1. Software Architecture
- Introduction
- Architectural Design Decisions
- Architectural Views
- Architectural Patterns
- Application Architectures
7.1. Design and Development
- Introduction
- Object-Oriented Design using UML
- Design Patterns
- Implementation Issues
- Open-Source Development
8. Software Testing
5 hrs
8.1. Testing Methods
- Introduction
- Validation and Verification Testing
- Software Inspection
- Software Testing Process
- Development Testing
- Test-Driven Development
- Release Testing
- User Testing
9.1. Evolution and Maintenance
- Evolution Process
- Legacy Systems
- Software Maintenance
10.1. Project Management
- Software Project Management
- Project Planning
- Risk Management
- People Management
- Reporting and Proposal Writing
10.2. Planning and Estimation
- Software Pricing
- Plan-Driven Development
- Project Scheduling
- Estimation Techniques
- COCOMO Cost Modeling
10.3. Quality and Configuration
- Introduction to Quality Management
- Introduction to Configuration Management
Laboratory Works
- 1.Software Engineering Project
Text Books
- 1.Software Engineering, 10th Edition, Ian Sommerville, Pearson Education 2016
Reference Books
- 1.Software Engineering: A Practitioner's Approach, 8th Edition, Roger S. Pressman and Bruce R. Maxim, McGraw-Hill Education 2015
- 2.Beginning Software Engineering, Rod Stephens, John Wiley & Sons Inc 2015