Syllabus - Software Engineering & Agile (CSIT-601)


Computer Science & Information Technology

Software Engineering & Agile (CSIT-601)

VI-Semester

UNIT I

Introduction, Software- problem and prospects Software development process: Software life cycle models, Open source software development, the unified process, documentation, configuration management, Safety, risk assessment.

UNIT II

Measures, Metrics and Indicators, Metrics in the Process and Project Domains, Software Measurement, Metrics of Software Quality, S/W reliability, Software estimation techniques, loc and FP estimation. Empirical models like COCOMO, project tracking and scheduling, reverse engineering.

UNIT III

Software requirements and specification: feasibility study, Informal/formal specifications, pre/post conditions, algebraic specification and requirement analysis models, Specification design tools. Software design and implementation: Software design objectives, design Like, Top-Down, bottom-up, team etc. techniques, User interface design, modularity Functional decomposition Data flow design, Data structure design, Object-oriented design, Design patterns implementation strategies.

UNIT IV

Coding standard and guidelines, programming style, code sharing, code review, software components, rapid prototyping, specialization, construction, class extensions, intelligent software agents, reuse performance improvement, debugging. Software Testing Strategies: Verification and Validation, Strategic Issues, test plan, white box, black-box testing, unit and integration testing, system testing test case design and acceptance testing, maintenance activities.

UNIT V

Agile Vs Traditional SDLC Models, Phases of Agile Model, Principles of Agile model, Agile Model - Pros and Cons, , When to use the Agile Model? , Agile Testing Methods, Scrum, Product Backlog, Scrum Practices, Process flow of Scrum Methodologies, extreme Programming (XP), Phases of eXtreme programming, Crystal Methodologies, Dynamic Software Development Method (DSDM), Feature Driven Development (FDD), Lean Software Development, KANBAN, Agile metrics.

Course Objective

This course introduces the concepts and methods required for the construction of large software intensive systems. The course aims are to develop a broad understanding of the discipline of software engineering and management of software systems.

Course Outcome

["Apply project management concepts and techniques to an IT project.", "Identify issues that could lead to IT project success or failure.", "Explain project management in terms of the software development process.", "Describe the responsibilities of IT project managers.", "Apply project management concepts through working in a group as team leader or active team member on an IT project."]

Practicals

  • Identifying the requirements from problem statements.

  • Modeling UML use case diagram & capturing use case scenarios.

  • E-R modeling from the problem statements.

  • Activity & state chart modeling.

  • Modeling UML class diagram & collaboration diagrams/sequence diagrams.

  • Identifying domain classes from the problem statements.

  • Modeling DFD.

  • Designing test suite.

  • Estimation of test coverage metrics & structural complexity.

  • Estimation of project metrics.

Reference Books

  • Schwalbe, Kathy (2016) Information Technology Project Management Edition: 8th ISBN-13: 978-1285452340, ISBN-10: 1285452348.

  • Software Engineering. A Practitioner's Approach by P, S. Pressman New edition McGraw.

  • Software project Management from concept to development Black Book by Kieron Conway, Dreamtech Press.

  • Software Engineering principle and practices- Deepak Jain Oxford University Press.

  • Software Engineering for students 4/e - Bell Douglas Pearson Education.

  • Software Project Management, Kelkar, PHI Learning.

  • Learning Agile: Understanding Scrum, XP, Lean, and Kanban, By Andrew Stellman, Jennifer Greene, 2015, O Reilly