CA725

SOFTWARE ENGINEERING

OBJECTIVE:
To impart concepts of a comprehensive study on the theories, processes, methods, and techniques of building high-quality software in cost-effective ways.
Introductory concepts – The evolving role of software – Its characteristics, components and applications- A layered technology – the software process – Software process models - Software process and project metrics – Measures, Metrics and Indicators- ethics for software engineers.
Software Project Planning – Project planning objectives – Project estimation – Decomposition techniques – Empirical estimation models - System Engineering- Risk management.
Analysis and Design – Design concept and Principles, Methods for traditional, Real time of object oriented systems – Comparisons – Metrics- Quality assurance
Testing fundamentals – Test case design – White box testing – Basis path testing – Control structure testing – Black box testing – Strategies: Unit testing integration testing – Validation Testing – System testing – Art of debugging – Metrics, Testing tools.
Formal Methods Clean-room Software Engineering – Software reuse – Reengineering – Reverse Engineering – standards for industry
REFERENCES:
1. Rajib Mall, “Fundamentals of Software Engineering”, 3rd Edition, PHI, 2009.
2. Roger S. Pressman, "Software Engineering-A practitioner’s approach", 6thEdition, McGraw Hill, 2001.
3. Ian Sommerville, Software engineering, 8thEdition,Pearson education Asia, 2007.
4. PankajJalote, “An Integrated Approach to Software Engineering”, Springer Verlag,1997.
5. James F Peters,WitoldPedryez, “Software Engineering – An Engineering Approach”, John Wiley and Sons, 2000.
6. Ali Behforooz, Frederick J Hudson, “Software Engineering Fundamentals”, Oxford University Press, 2009.
Course Outcome:
Students will be able to:
1. State the proven principles/techniques/tools, current standards, and best practices of software Engineering.
2. Estimate cost, effort and risk involved in a project
3. Choose a suitable design model for software development
4. Develop a software using formal software engineering approaches
5. Describe the principles of re-engineering and reverse engineering