Need for software engineering, Software quality attributes, Software product pipelines, Software life cycle models and processes, Requirement engineering using UML Diagrams.
Software Architecture and Design:
Design principles, Design Patterns, Architecture Versus Design, Modularity, Software Components and Connectors, Architecture Styles.
Essence of Modern Software Engineering:
Software engineering essence, Essence language, Essence kernel, Using essence kernel in agile development practices, Agile Principles, Agile process models through essence kernel, Large scale complex development Using kernel.
Software Testing:
Quality metrics, Coding style and Static analysis tools, Verification and validation, Various testing techniques and Test case generations.
Software Project Management:
Software versioning and Continuous integration, Project management and Risk analysis, Configuration management, Cost analysis and estimation.
Laboratory
Assignment/Project on Software requirement acquisition, UML diagrams, Preparing software requirement specification, Practicing agile methods, User story, Backlog, Test case generation, Unit testing, CI configurations, Cost estimation, Manpower management and Sprint analysis using Burndown carts.
Learning Materials
Textbook
R. S. Pressman, B.R. Maxim (2019), Software Engineering: A Practitioner’s Approach, McGraw-Hill India, 2019, 9th Edition.
Mark Richards, Neal Ford (2020), Fundamentals of Software Architecture, O’Reilly Media, Inc.
L. Bass, P. Clements, R. Kazman (2012), Software Architecture in Practice, Pearson, 3rd Edition.
I. Jacobson, H. Lawson, P.W. Ng, P.E. McMahon, M. Goedicke (2019), The Essentials of Modern Software Engineering, ACM Books.