Software Engineering

Course Objectives :

  1.  To introduce the basic concepts of the software development processes, Software requirements and specifications
  2.  To impart knowledge of Software Project Planning and various Software design techniques for developing large software systems.
  3. To understand Software Metrics, Software Reliability, and Quality assurance using ISO 9001 and SEI-CMM.
  4. To impart the knowledge and use of software engineering processes and tools in analysis, design, implementation, software testing, documentation, and maintenance for software systems.

Course Outcomes (CO)

  • CO 1 Ability to have an understanding of SDLC Models, Techniques for Requirement Elicitation, and SRS Document.
  • CO 2 To be able to explain Software Project Planning and various methods for software design
  • CO 3 To Understand Software Metrics, Software Reliability, and Quality assurance
  • CO 4 Ability to have an understanding of Software testing, documentation and maintenance.

UNIT-I

Introduction: Introduction to Software Engineering, Importance of software engineering as a discipline, Software applications, Software Crisis, Software Processes & Characteristics, Software life cycle models, Waterfall, Prototype, Evolutionary and Spiral Models.

Software Requirements Analysis & Specifications: Requirement engineering, Functional and non-functional requirements, User requirements, System requirements, requirement elicitation techniques like FAST, QFD & Use case approach, requirements analysis using DFD, Data dictionaries & ER Diagrams, Requirements documentation, Nature of SRS, Characteristics & organization of SRS, Requirement Management, IEEE Std. for SRS. 

UNIT-II

Software Project Planning: Size Estimation like lines of Code & Function Count, Cost Estimation Models, COCOMO, Putnam resource allocation model, Validating Software Estimates, Risk Management.

Software Design: Cohesion & Coupling, Classification of Cohesiveness & Coupling, Function Oriented Design, Object Oriented Design, User Interface Design.

UNIT-III

Software Metrics: Software measurements: What & Why, Token Count, Halstead Software Science Measures, Data Structure Metrics, Information Flow Metrics.

Software Reliability: Importance, Hardware Reliability & Software Reliability, Failure and Faults, Reliability Models- Basic Model, Logarithmic Poisson Model, Software Quality Models, CMM & ISO 9001.

UNIT – IV

Software Testing: Testing process, Functional testing: Boundary value analysis, Equivalence class testing, Decision table testing, Cause effect graphing, Structural testing: Path testing, Data flow and mutation testing, unit testing, integration and system testing, Debugging, Testing Tools & Standards.

Software Maintenance: Management of Maintenance, Maintenance Process, Maintenance Models,

Regression Testing, Reverse Engineering, Software Re-engineering, Configuration Management, Documentation.

Textbook(s):

  1. K. K. Aggarwal and Yogesh Singh, “Software Engineering”, New Age International, 3rd Ed., 2005.
  2. R. S. Pressman, “Software Engineering – A Practitioner's Approach”, McGraw Hill Int. , 5th Ed., 2001.
  3. Pankaj Jalote, “An Integrated Approach to Software Engineering”, Narosa, 3rd Ed., 2005.

References:

  1. Stephen R. Schach, “Classical & Object Oriented Software Engineering”, IRWIN, 1996.
  2. James Peter, W. Pedrycz, “Software Engineering: An Engineering Approach”, John Wiley & Sons.
  3. I. Sommerville, “Software Engineering”, Addison Wesley,8th Ed., 2009.
  4. Frank Tsui and Orlando Karan, “Essentials of Software Engineering”, Joes and Bartlett, 2nd Ed., 2010.
  5. Kassem A. Saleh, “Software Engineering”, Cengage Learning, 2009.
  6. Rajib Mall, “Fundamrntal of Software Engineering”, PHI, 3rd Ed., 2009.
  7. Carlo Ghizzi, Mehdi Jazayeri and Dino Mandrioli, “Fundamental of Software Engineering”, PHI, 2nd Ed., 2003.
  8. Carol L. Hoover, Mel Rosso-Ll 

No comments:

Post a Comment