SOFTWARE ENGINEERING
(BCS601)
SYLLABUS
Unit I
Introduction: Introduction to Software Engineering, Software Components,
Software Characteristics, Software Crisis, Software Engineering Processes,
Similarity and Differences from Conventional Engineering Processes, Software
Quality Attributes. Software Development Life Cycle (SDLC) Models: Water Fall
Model, Prototype Model, Spiral Model, Evolutionary Development Models,
Iterative Enhancement Models.
Unit II
Software Requirement Specifications (SRS): Requirement Engineering Process:
Elicitation, Analysis, Documentation, Review and Management of User Needs,
Feasibility Study, Information Modelling, Data Flow Diagrams, Entity Relationship
Diagrams, Decision Tables, SRS Document, IEEE Standards for SRS. Software
Quality Assurance (SQA): Verification and Validation, SQA Plans, Software
Quality Frameworks, ISO 9000 Models, SEI-CMM Model.
Unit III
Software Design: Basic Concept of Software Design, Architectural Design, Low
Level Design: Modularization, Design Structure Charts, Pseudo Codes, Flow
Charts, Coupling and Cohesion Measures, Design Strategies: Function Oriented
Design, Object Oriented Design, Top-Down and Bottom-Up Design. Software
Measurement and Metrics: Various Size Oriented Measures: Halestead’s
Software Science, Function Point (FP) Based Measures, Cyclomatic Complexity
Measures: Control Flow Graphs.
Unit IV
Software Testing: Testing Objectives, Unit Testing, Integration Testing, Acceptance
Testing, Regression Testing, Testing for Functionality and Testing for Performance,
Top Down and Bottom- Up Testing Strategies: Test Drivers and Test Stubs,
Structural Testing (White Box Testing), Functional Testing (Black Box Testing), Test
Data Suit Preparation, Alpha and Beta Testing of Products. Static Testing
Strategies: Formal Technical Reviews (Peer Reviews), Walk Through, Code
Inspection, Compliance with Design and Coding Standards.
Unit V
Software Maintenance and Software Project Management: Software as an
Evolutionary Entity, Need for Maintenance, Categories of Maintenance:
Preventive, Corrective and Perfective Maintenance, Cost of Maintenance,
Software Re- Engineering, Reverse Engineering. Software Configuration
Management Activities, Change Control Process, Software Version Control, An
Overview of CASE Tools. Estimation of Various Parameters such as Cost, Efforts,
Schedule/Duration, Constructive Cost Models (COCOMO), Resource Allocation
Models, Software Risk Analysis and Management.
Course Outcomes
CO 1: Define [L1:Remember] various software characteristics and
different types of software development models.
CO 2: Express [L2: Understand] the contents of SRS and apply basic
software quality assurance practices.
CO 3: Employ [L3: Apply] various methods for software design
techniques.
CO 4: Analyze [L4: Analysis] various software testing, software
maintenance and project management techniques.