Software Engineering
Course Title: Software Engineering
Course No: ENCT352
Nature of the Course: Theory + Lab
Semester: 6
Full Marks: 60 + 40 + 25
Pass Marks: 24 + 16 + 10
Credit Hours: 3
Course Description
Course Objectives
Course Contents
- Waterfall model and its extensions
- Incremental process model
- Evolutionary process models (Prototyping, spiral)
- Agile manifesto and the 12 principles
- Agile versus plan-driven development
- Scrum framework (Roles, artifacts, ceremonies)
- Extreme programming (XP) practices
- Lean software development
- User stories and acceptance criteria
- Product backlog creation and prioritization
- Story mapping basics
- Continuous requirements refinement (Backlog grooming)
- Need for system modeling
- Role of abstractions in managing complexity
- Concept of scenarios
- Use-case descriptions and diagrams
- Activity diagrams
- Class-based modeling
- Code walkthrough
- Code inspection
- Cleanroom technique
- Verification and validation
- Unit testing
- Integration testing
- System testing
- Acceptance testing
- Test-driven development (TDD)
- Continuous testing
- Automated unit testing basics
- Refactoring for code quality
Laboratory Works
- 1.Preparation and organization of software requirements specification (SRS) using standard templates
- 2.Construction of UML diagrams (Use case, activity, class, and sequence) using modeling tools
- 3.Design of system architecture and component structure using CASE tools
- 4.Implementation of key system modules following coding standards and best practices
- 5.Execution of testing procedures (Unit and integration) and documentation of results
- 6.Application of version control (Git), CI/CD workflow setup, and containerization using docker
- 7.Term Project
Reference Books
- 1.Pressman, R. S., Maxim, B. R. (2019). Software engineering: A practitioner's approach. McGraw-Hill Education.
- 2.Mall, R. (2018). Fundamentals of software engineering. PHI Learning.
- 3.Sommerville, I. (2016). Software engineering. Pearson.
- 4.Martin, R. C. (2009). Clean code: A handbook of agile software craftsmanship. Pearson.
- 5.Schwaber, K., Beedle, M. (2002). Agile software development with Scrum. Prentice Hall.