With effect from Academic Year 2014-15 IT224 SOFTWARE ENGINEERING Instruction Duration of Semester-End Examination Semester-End Examination Sessional Credits 4 periods per week 3 Hours 75 Marks 25 Marks 3 Course Objectives: This course introduces the students to 1. Understand the software life cycle models. 2. Understand the importance of the software development process. 3. Understand the importance of software quality and review techniques. Course Outcomes: 1. An ability to apply knowledge of mathematics, science, and engineering. 2. An ability to design and conduct experiments, as well as to analyze and interpret data, conduct tests using various testing methods to verify and validate the results. 3. An ability to identify, formulate and implement software projects. Pre-requisites: Knowledge of design, coding, and debugging programs. UNIT-I Software and Software Engineering:The Nature of Software, Software Engineering. The Software Process, Software Engineering Practice.Process Models: A Generic Process Model, Prescriptive Process Models, Specialized Process Models, The Unified Process, Process Technology, Product and Process, Process Assessment and Improvement, The CMMI, The people CMM,Introduction to Agile development. Understanding Requirements: Requirements Engineering, Establishing the Groundwork, Eliciting Requirements, Developing Use Cases, Building the Requirements Model, Negotiating Requirements, Validating Requirements. Requirements Modeling: Requirements Analysis, Scenario-Based Modeling, Problem Analysis, Data Flow Diagrams, Data Dictionaries, Entity-Relationship diagrams, Software Requirement and Specifications, Behavioral and non-behavioral requirements, Software Prototyping. UNIT-II Design Concepts: Design within the Context of Software Engineering, The Design Process, Design Concepts. Cohesion & Coupling, Classification of Cohesiveness & Coupling, Function Oriented Design, Object Oriented Design, User Interface Design. Architectural Design: Software Architecture, Architecture Styles. Component level Design: Designing Class-Based Components, Conducting Component-Level Design, Designing Traditional Components, Component-Based Development. UNIT-III Quality Concepts: Software Quality, Achieving Software Quality. Review Techniques: Cost Impact of Software Defects. Software Quality Assurance: Background Issues, Elements of Software Quality Assurance, SQA Tasks, Goals and Metrics, Formal Approaches to SQA, Statistical Software Quality Assurance, Software Reliability, The ISO 9000 Quality Standards, The SQA Plan. UNIT-IV Software Testing Strategies: A Strategic Approach to Software Testing, Strategic Issues, Validation Testing, System Testing, The Art of Debugging. Testing Tools –Rational functional tester, Win Runner, Load Runner, Testing Standards,Selenium software testing tool. Testing Conventional Applications: Software Testing Fundamentals, Internal and External Views of Testing, White-Box Testing, Basis Path Testing, Control Structure Testing, Black–Box Testing, Software Configuration Management. Product Metrics: A Framework for Product Metrics, Size Metrics like LOC, Token Count, Function Count, Design Metrics, Data Structure Metrics, Information Flow Metrics, Metrics for Testing, Metrics for Maintenance. UNIT-V Estimation: Observations on Estimation, The Project Planning Process, Software Scope and Feasibility, Resources, Software Project Estimation, Decomposition Techniques, Empirical Estimation Models, Specialized Estimation Techniques. Risk Management: Reactive versus Proactive Risk Strategies, Software Risks, Risk Identification, Risk Projection, Risk Refinement, Risk Mitigation, Monitoring, and Management, The RMMM Plan. Text Books: 1. Roger S.Pressman, “Software Engineering: A Practitioners Approach” ,7th edition, McGrawHill, 2009. Suggested Reading: 1. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, “Fundamentals of Software Engineering”, PHI, 2nd edition. 2. Ali Behforoz and Frederic J.Hadson, “Software Engineering Fundamentals”, Oxford Semester-End Press, 1996. 3. PankajJalote “An Integrated Approach to Software Engineering “, 3rd edition, Narosa Publishing house, 2008. 4. James F.Peters, WitoldPedrycz, “Software Engineering-An engineering Approach”, John Wiley Inc., 2000.