To understand the phases in a software project
To understand fundamental concepts of requirements engineering and Analysis Modeling.
To understand the various software design methodologies
To learn various testing and maintenance measures
UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT 9
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models –Introduction to Agility-Agile process-Extreme programming-XP Process.
UNIT II REQUIREMENTS ANALYSIS AND SPECIFICATION 9
Software Requirements: Functional and Non-Functional, User requirements, System requirements, Software Requirements Document – Requirement Engineering Process: Feasibility Studies, Requirements elicitation and analysis, requirements validation, requirements management-Classical analysis: Structured system Analysis, Petri Nets- Data Dictionary.
UNIT III SOFTWARE DESIGN 9
Design process – Design Concepts-Design Model– Design Heuristic – Architectural Design -Architectural styles, Architectural Design, Architectural Mapping using Data Flow- User Interface Design: Interface analysis, Interface Design –Component level Design: Designing Class based components, traditional Components.
UNIT IV TESTING AND MAINTENANCE 9
Software testing fundamentals-Internal and external views of Testing-white box testing – basis path testing-control structure testing-black box testing- Regression Testing – Unit Testing – Integration Testing – Validation Testing – System Testing And Debugging –Software Implementation Techniques: Coding practices-Refactoring-Maintenance and Reengineering-BPR model-Reengineering process model-Reverse and Forward Engineering.
UNIT V PROJECT MANAGEMENT 9
Software Project Management: Estimation – LOC, FP Based Estimation, Make/Buy Decision COCOMO I & II Model – Project Scheduling – Scheduling, Earned Value Analysis Planning – Project Plan, Planning Process, RFP Risk Management – Identification, Projection – Risk Management-Risk Identification-RMMM Plan-CASE TOOLS
TOTAL :45 PERIODS
On Completion of the course, the students should be able to:
Identify the key activities in managing a software project.
Compare different process models.
Concepts of requirements engineering and Analysis Modeling.
Apply systematic procedure for software design and deployment.
Compare and contrast the various testing and maintenance.
Manage project schedule, estimate project cost and effort required.
- Roger S. Pressman, ―Software Engineering – A Practitioner‟s Approach‖, Seventh Edition, Mc Graw-Hill International Edition, 2010.
- Ian Sommerville, ―Software Engineering‖, 9th Edition, Pearson Education Asia, 2011.
1. Rajib Mall, ―Fundamentals of Software Engineering‖, Third Edition, PHI Learning PrivateLimited, 2009.
2. Pankaj Jalote, ―Software Engineering, A Precise Approach‖, Wiley India, 2010.
3. Kelkar S.A., ―Software Engineering‖, Prentice Hall of India Pvt Ltd, 2007.
4. Stephen R.Schach, ―Software Engineering‖, Tata McGraw-Hill Publishing Company Limited,2007.