Software Engineering

Paper Code: 
25CBCA401
Credits: 
03
Periods/week: 
03
Max. Marks: 
100.00
Objective: 

Course Objectives:

The course will enable the students to

1.  Obtain knowledge of software engineering discipline.

2.  Interpret analysis, design and testing principles for software project development.

3.  Learn various factors & metrics involved in software development process.

 

Course Outcomes: 

Course

Learning Outcome

(at course level)

Learning and

teaching

strategies

Assessment

Strategies

Course

Code

Course

Title

 

 

 

 

25CBCA401

 

 

 

 

Software Engineering (Theory)

CO199. Analyse and compare the different software development models.

CO200. Examine metrics associated with software evaluation.

CO201. Critically assess the effectiveness of various software design concepts and design models.

CO202. Evaluate and select appropriate testing strategies for software projects.

CO203. Critically Analyse measures of software reliability and availability, and explore strategies for software maintenance and reengineering.

CO204.Contribute effectively in course- specific interaction.

Approach in teaching: Interactive Lectures, Discussion, software development Scenarios

 

Learning activities for the students: Self-learning assignments, Effective scenario based questions, Seminar presentation, Role plays.

Class test, Semester end examinations, Quiz, Assignments, Presentation, Individual and group projects

 

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: 

 ESSENTIAL READINGS:

1. Pankaj Jalote, “An Integrated Approach to Software Engineering (Third Edition)”,          Narosa Publishing House.

2. Roger S. Pressman, “Software Engineering (A Practitioner’s Approach) (Eighth              Edition)”, Mc- Graw Hill International.

Academic Year: