SOFTWARE ENGINEERING

Paper Code: 
CBCA 401
Credits: 
03
Periods/week: 
03
Max. Marks: 
100.00
Objective: 

This module will help the student in learning various factors & metrics involved in software development process.

9.00
Unit I: 

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.

9.00
Unit II: 

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.

9.00
Unit III: 

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).

 

9.00
Unit IV: 

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)

 

 

 

 

 

 

 

 


9.00
Unit V: 

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.

 


ESSENTIAL READINGS: 
  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.
REFERENCES: 
  1. Girdhari Singh, “Software Engineering”, Genius Publications.
Academic Year: