MCA 201: SOFTWARE ENGINEERING
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, and 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 contextof 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, and 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.
Prescribed Book:
Roger S Pressman, “Software Engineering–A Practitioner’s Approach”, Sixth Edition, TMH
International.
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).