The course will enable the students to
Course Outcomes (COs):
Learning Outcome (at course level) | Learning and teaching strategies | Assessment Strategies |
The students will: CO 151.Analyze and compare the different software development models CO 152.Examine metrics associated with software evaluation CO 153.Compose the Software requirements specification document by understanding the software requirements CO 154.Evaluate the software design concepts and design model CO 155.Assess various strategies for Testing software projects | Approach in teaching: Interactive Lectures, Discussion, Tutorials, software development scenarios Learning activities for the students: Self-learning assignments, Effective scenario based questions, Seminar presentation, giving tasks, Role plays.
| Class test, Semester end examinations, Quiz, Solving problems in tutorials, Assignments, Presentation, Individual and group projects |
Software Engineering Fundamentals: Software, Problem Domain, Software Engineering Challenges.
The Software Process: Software Processes (processes, projects & products, component), Characteristics of Software Processes.
Software Development Process Models: Waterfall Model, Prototyping, Iterative Enhancement Model, Spiral Model. Introduction to Agile Model: Principles, Steps, Various Agile Process Models.
Software Requirement Analysis & Specification: Need, Characteristics & Components. Introduction to Requirements Modeling: Data Flow Diagram and Use Cases.
Introduction to Metrics: Function Point, Line of Code (LOC) and KLOC.
Software Project Planning: Cost Estimation- Uncertainties in Cost Estimation, Building Cost Estimation Models, On Size Estimation, COCOMO Model. Project Scheduling: Average Duration Estimation, Project Scheduling & Milestones. Quality Assurance Plans: Verification & Validation, Inspection & Reviews.
Design Engineering: Design Process & Design Quality, Design Concepts (abstraction, architecture, patterns, modularity, information hiding, functional independence, refinement, refactoring, and design classes), The Design Model (data design elements, architectural design elements, interface design elements, component-level design elements, deployment-level design elements).
Testing Strategies & Tactics: A strategic approach to software testing, Strategic issues, Software testing fundamentals, Test characteristics, Test Strategies for conventional software: Unit Testing, Integration testing, Validation Testing, System testing, Black-Box testing, White Box testing. The art of debugging (process & strategies)
Risk Management: Overview, Assessment, Control.
Software Reliability: Measures of Reliability & Availability, Software Safety.
Maintenance and Reengineering: Introduction to: Software Maintenance, Software Supportability, Reengineering, Reverse Engineering, Restructuring, and Forward Engineering.
1. Pankaj Jalote, “An Integrated Approach to Software Engineering (Second Edition)”, Narosa Publishing House. 2. Roger S. Pressman, “Software Engineering (A Practitioner’s Approach) (Sixth Edition)”, Mc-Graw Hill International.
1. Girdhari Singh, “Software Engineering”, Genius Publications