MCA 404 : Software Engineering

Lectures: 4 Periods/Week Sessional Marks: 30
University Exam: 3 Hours University Examination Marks: 70


UNIT-I
Introduction to Software Engineering
The Evolving Role of Software, Software, The Changing Nature of Software, Legacy Software: The Quality of legacy software, Software Evolution, Software Myths.
A Generic View of Process
Software Engineering-A Layered Technology, A Process Frame Work, The capability Maturity Model Integration (CMMI), Process Patterns, Process Assessment, Personal and Team Process Models: Personal Software Process (PSP), Team Software Process (TSP), Process Technology, Product and Process.
Process Models
Prescriptive Models, The Waterfall Model, Incremental Process Models: The Incremental Model, The RAD Model, Evolutionary Process Model: Prototyping, The Spiral Model, The Concurrent Development Model, Specialized Process Models: Component Based Development, The formal Methods Model, The Unified Process.
An Agile View of Process
What is Agility? What is Agile Process? Agile Process Models: Extreme Programming, Adaptive Software Development, Dynamic Systems Development Method, Scrum, Crystal, Feature Driven Development, Agile Modeling.

UNIT-II
Software Engineering Practice
Software Engineering Practice, communication practices, Planning Practices, Modeling Practices, Construction Practices, Deployment.
System Engineering
Computer Based Systems, The System Engineering Hierarchy, Business Process Engineering: An Overview, System Modeling.
Building the Analysis Model
Requirement Analysis, Analysis Modeling Approaches, Data Modeling Concepts, Object Oriented Analysis, Scenario Based Modeling, Flow Oriented Modeling, Class Based Modeling, Creating a Behavioral Model.
Design Engineering
Design within the context of Software Engineering, Design Process and Design Quality, Design Concepts, The Design Model, Pattern Based Software Design.

UNIT-III
Testing Strategies
A strategic Approach to Software Testing, Strategic Issues, Test Strategies for conventional Software, Testing Strategies for Object Oriented Software, Validation Testing, System Testing, the Art of Debugging.
Testing Tactics
Software Testing Fundamentals, Black Box and White Box Testing, White Box Testing, Basis Path Testing, Control Structure Testing, Black Box Testing, Object Oriented Testing Methods, Testing Methods Applicable at the class level, InterClass Test Case Design, Testing for Specialized Environments, Architectures and Applications, Testing Patterns.
Project Management
The Management Spectrum, The People, The Product, The Process, The Project, The W5HH Principles.
Metrics for Process and Projects
Metrics in the Process and Project Domains, Software Measurement¸ Metrics for Software Quality, Integrating Metrics within Software Process, Metrics for Small Organizations, Establishing a Software Metrics Program

UNIT-IV
Estimation
Observations on Estimations, The project planning process, Software Scope and Feasibility, Resources, Software Project Estimation, Decomposition Techniques, Empirical Estimation Models, Estimations for Object Oriented Projects, Specialized Estimation Techniques, The Make/Buy Decision
Quality Management
Quality Concepts, Software Quality Assurance, Software Reviews, Formal Technical Reviews, Formal Approaches to SQA, Statistical Software Quality Assurance, Software Reliability, The ISO 9000 Quality Standards, the SQA Plan
Formal Methods
Basic Concepts, Object Constraint Language (OCL), The Z specification language, The Ten Commandments for Formal Methods.
Cleanroom Software Engineering: The Cleanroom Approach, Functional Specification, Cleanroom Design, Cleanroom Testing.

Text Books

  1. Roger S Pressman, “Software Engineering–A Practitioner’s Approach”, Sixth Edition, TMH International.
    Chapters : 1,2,3,4,5,6,8,9,13,14,21,22,23,26,28,29
Reference Books
  1. Sommerville, “Software Engineering”, Seventh Edition Pearson Education (2007)
  2. S.A.Kelkar, “Software Engineering – A Concise Study”, PHI.
  3. Waman S.Jawadekar, “Software Engineering”, TMH.
  4. Ali Behforooz and Frederick J.Hudson, “Software Engineering Fundamentals”, Oxford (2008).