PCC CS 504 Software Engineering
3 Credits
Module 1
Introduction: What is Software Engineering and its history, software crisis, Evolution of a Programming System Product, Characteristics of Software, Brooks’ No Silver Bullet, and Software Myths, Software Development Life Cycles: Software Development Process, The Code- and-Fix model, The Waterfall model, The Evolutionary Model, The Incremental Implementation, Prototyping, The Spiral Model, Software Reuse, Critical Comparisons of SDLC models, An Introduction to Non-Traditional Software Development Process: Rational Unified Process, Rapid Application Development, Agile Development Process.
Module 2
Requirements: Importance of Requirement Analysis, User Needs, Software Features and Software Requirements, Classes of User Requirements: Enduring and Volatile, Sub phases of Requirement Analysis, Functional and Nonfunctional requirements, Barriers to Eliciting User requirements, The software requirements document and SRS standards, Requirements Engineering, Case Study of SRS for a Real Time System. Tools for Requirements Gathering: Document Flow Chart, Decision Table, Decision Tree, Introduction to nontraditional Requirements.
Module 3
Software Design: Goals of good software design, Design strategies and methodologies, Data oriented software design, Coupling, Cohesion, Modular structure, Packaging, Structured Analysis: DFD, Data Dictionary, Structured Design: Structure chart, Object oriented design, Top-down and bottom-up approach, UML, UML Diagrams, Design patterns,.
Module 4
Software Project Management: Overview of Project Manager Responsibilities & project planning, Software Measurement and Metrics: Line of Code (LOC), Function Point (FP) based measures, Various Size Oriented Measures: Halstead's software science, Project Size estimation Metrics Project Estimation, Techniques, COCOMO, Staffing Level Estimation, Scheduling, Organization & Team Structures Staffing, Risk Management.
Module 5
Software Coding & Testing: Development: Selecting a language, Coding guidelines, Writing code, Code documentation. Testing process, Design of test cases, Functional Testing: Boundary value analysis, Equivalence class testing, Decision table testing, Cause effect graphing, Structural testing, Cyclomatic Complexity Measures: Control flow graphs, Path testing, Data flow and mutation testing, Unit testing, Integration and system testing, Debugging, Alpha & beta testing, testing tools & standards.
Module 6
Software Maintenance: Management of maintenance, Maintenance process, Maintenance models, Regression testing, Reverse engineering, Software reengineering, Configuration management, documentation.
Module 7
Software Reliability & Quality Management: Introduction to reliability and metrics to reliability measure, Overview of S/W Quality management System ISO 9000, SEI CMM.
Text Book:
1. Software Engineering: A Practitioner's Approach, R. S. Pressman, McGraw Hill
2. Fundamental of Software Engg. By Rajib Mall 4th edition PHI
3. A Concise Introduction to Software Engineering By Pankaj Jalote
Reference Book:
1. Zero Defect Software, G. G. Schulmeyer, McGraw-Hill
2. Object Oriented Modeling and Design, J. Rumbaugh, Prentice Hall
3. Software Engineering, K.K. Aggarwal, Yogesh Singh, New Age International Publishers