Loading...

Course Code: CS3105H
Course Name: Software Engineering
Prerequisites: NIL
Syllabus: Introduction to Software Engineering: Software crisis and evolution, Software engineering principles, Software process models: Waterfall Model, Incremental Model, Spiral Model, Agile Methodologies, Unified Process; Requirements Engineering: Requirements elicitation techniques, Functional and non-functional requirements, Software Requirements Specification (SRS), Use Case Modeling, Requirements validation and management; Software Design: Design principles (modularity, abstraction), Architectural design; UML diagrams: Class diagram, Sequence diagram, Activity diagram, Design patterns; Software Development & Implementation: Coding standards and best practices, Version control systems Code review and refactoring; Software Testing: Testing fundamentals, Development testing, Release testing, User testing, Levels development testing: Unit testing, Integration testing, System testing; Testing techniques: Black-box testing, White-box testing, Test case design, Automation testing, Real-time testing; Software Project Management: Project planning and scheduling, Cost estimation models, Risk management, Software quality assurance, Configuration management, DevOps.
Texts: 1. Ian Sommerville, Software Engineering, 10th Edition, Pearson, 2015.
2. Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitione`s Approach, 8th Edition, McGraw-Hill, 2015.
References: 1. Pankaj Jalote, An Integrated Approach to Software Engineering, 3rd Edition, Springer, 2005.