G-E2HZ7JKCY4

Software Engineering

Course Code: CS-203

Credit Hours: 3 (3+0)

Prerequisites: None


Course Description

This course introduces the fundamental concepts, methodologies, and tools used in software engineering. It covers software development life cycles, requirement engineering, design principles, testing strategies, project management, and software quality assurance. Students will gain practical insights into managing software projects efficiently and ensuring high-quality software products.


Course Learning Outcomes (CLOs)

CLODomainBT Level
Understand the fundamental concepts and principles of software engineering.C2
Apply knowledge of requirement engineering, software project management, design principles, and testing.C3
Develop comprehensive software documentation using industry-standard tools and techniques.C3
Analyze software quality management practices and configuration management in software development.C4

(BT = Bloom’s Taxonomy; C = Cognitive Domain)


Weekly Course Outline


Week 1: Introduction to Software Engineering

  • Topics:
    • Concept and nature of software.
    • Overview of software engineering and its importance.
    • Professional software development practices.
    • Software application domains: Web, Mobile, Desktop, and Cloud-based applications.
  • Activity:
    • Case study discussion on software failures.

Week 2: Software Process Models

  • Topics:
    • Process structure and types of software process models.
      • Waterfall, V-Model, Incremental, Iterative, Spiral, and Agile Models.
    • Component-Based Development and Formal Methods.
  • Assignment:
    • Compare and contrast two software process models for a given scenario.

Week 3: Agile Software Development

  • Topics:
    • Principles of Agile methodologies.
    • Agile practices: Scrum, XP (Extreme Programming).
    • Agile artifacts: Product Backlog, Sprint Backlog, and Burndown Charts.
  • Class Activity:
    • Create a simple Scrum board for a mini-project.

Week 4: Requirements Engineering

  • Topics:
    • Understanding and types of requirements.
      • Functional vs. Non-functional Requirements.
    • Requirements elicitation and analysis techniques.
    • Scenario-Based Modeling and Use Cases.
  • Assignment:
    • Write a Software Requirements Specification (SRS) document.

Week 5: Requirements Modeling with UML

  • Topics:
    • Introduction to UML diagrams.
      • Use Case, Class, Sequence, and Activity Diagrams.
    • Context Models and Interaction Models.
  • Lab Activity:
    • Create UML diagrams for a library management system.

Week 6: Architectural Design and Implementation

  • Topics:
    • Architectural design principles.
    • Design patterns: MVC, Singleton, and Observer.
    • Abstraction, modularity, and reuse.
  • Assignment:
    • Develop a basic software architecture for an e-commerce application.

Week 7: Design Models and Principles

  • Topics:
    • Data Flow Diagrams (DFD) and Flowcharts.
    • Revisiting UML models.
    • Principles: SOLID, DRY, and KISS.
  • Lab Activity:
    • Design DFD for a hospital management system.

Week 8: Software Project Management

  • Topics:
    • The 4Ps of software project management: Process, People, Product, and Project.
    • Gantt Charts, Work Breakdown Structure (WBS).
    • Project estimation techniques: COCOMO, Function Point Analysis.
  • Assignment:
    • Develop a project plan using Gantt chart software.

Week 9: Midterm Examination


Week 10: Software Quality Management

  • Topics:
    • Software quality factors and standards (ISO, CMMI, Six Sigma).
    • Quality assurance and control techniques.
    • Formal Technical Reviews and Walkthroughs.
  • Class Activity:
    • Perform a peer review of SRS documents.

Week 11: Software Testing Strategies

  • Topics:
    • Testing strategies: Unit, Integration, System, and Acceptance Testing.
    • Testing techniques: White Box, Black Box, and Grey Box Testing.
    • Test-driven development (TDD).
  • Lab Activity:
    • Write test cases for a given module.

Week 12: Risk Management in Software Projects

  • Topics:
    • Risk identification, analysis, and prioritization.
    • Risk mitigation strategies and contingency planning.
  • Assignment:
    • Develop a risk management plan for a software project.

Week 13: Software Configuration Management (SCM)

  • Topics:
    • Version control systems: Git, SVN.
    • Configuration management practices.
    • Change management and auditing.
  • Lab Activity:
    • Perform basic Git operations: clone, commit, push, and pull.

Week 14: Software Maintenance and Reengineering

  • Topics:
    • Types of software maintenance: Corrective, Adaptive, Perfective, and Preventive.
    • Software reengineering and reverse engineering.
    • Impact of maintenance on software cost.
  • Assignment:
    • Develop a maintenance plan for an existing software system.

Week 15: Software Process Improvement

  • Topics:
    • Capability Maturity Model Integration (CMMI).
    • Process improvement strategies and frameworks.
    • Case studies on process improvement.
  • Class Activity:
    • Analyze a case study on process improvement.

Week 16: Course Revision and Final Project Presentations

  • Topics:
    • Comprehensive revision of all topics.
    • Final project presentations and feedback.
  • Assessment:
    • Submit final project report and present to the class.

Teaching Methodology

  • Lectures: Interactive and concept-based lectures.
  • Assignments: Regular assignments to reinforce concepts.
  • Case Studies: Real-world case studies for better understanding.
  • Quizzes: Regular quizzes to assess understanding.
  • Projects: Team-based final project for practical exposure.

Assessment Criteria

ComponentWeightage
Class Participation5%
Assignments15%
Quizzes10%
Lab Work20%
Midterm Examination20%
Final Project and Examination30%

Recommended Reading

  • Primary Textbook:
    “Software Engineering: A Practitioner’s Approach” by Roger S. Pressman, 8th Edition.
  • Reference Books:
    “Software Engineering” by Ian Sommerville, 10th Edition.
    “Applying UML and Patterns” by Craig Larman, 3rd Edition.
Scroll to Top