20CS416 SOFTWARE ENGINEERING LTPC 3003 Course Objective: 1. To know the fundamentals of project management activities. 2. To design software using models. 3. To gather knowledge on various software testing, maintenance methods 4. To develop an efficient software system through good group cohesiveness. 5. To verify the quality of software products Unit I FUNDAMENTALS OF SE AND REQUIREMENT ENGINEERING 9 Software Engineering Fundamentals; Software processes: Software life-cycle and process models; Process assessment models; Overview of Project Management activities; Software requirements and specifications: Requirements elicitation; Requirements analysis modeling techniques; Functional and nonfunctional requirements; User requirements, System requirements, requirement validation and software requirement specification document. Prototyping - Basic concepts of formal specification techniques. Unit II SOFTWARE DESIGN 9 Fundamental design concepts and principles; Design characteristics; System Models - Context, Behavioral, Data and, Object models, Architectural design- System structuring, Control models; Structured design; Object-oriented analysis and design; User interface design; Design for reuse; Design patterns Unit III SOFTWARE VALIDATION AND MAINTENANCE 9 Software validation: Validation planning; Testing fundamentals, including test plan creation and test case generation; Black-box and white-box testing techniques; Unit, integration, validation, and system testing; Object-oriented testing; Inspections. Software evolution: Software maintenance; Characteristics of maintainable software; Reengineering; Legacy systems; Software reuse. Unit IV SOFTWARE PROJECT MANAGEMENT 9 Team management – Team processes, Team organization and decision -making, Roles and responsibilities in a software team, Role identification and assignment, Project tracking, Team problem resolution; Project planning and scheduling; Software measurement and estimation techniques; Risk analysis and management; Software quality assurance; Software configuration management. Unit V SOFTWARE QUALITY PROCESS IMPROVEMENT 9 Overview of Quality management and Process Improvement; Overview of SEI -CMM, ISO 9000, CMMI, PCMM, TQM and Six Sigma; overview of CASE tools. Software tools and environments: Programming environments; Project management tools; Requirements analysis and design modeling tools; testing tools; Configuration management tools; Total: 45 Periods Course Outcomes: CO1 Analyze a problem, identify and define the computing requirements appropriate to its solution. CO2 Design, implement and evaluate a system / computer based system process, component or program to meet desired needs CO3 Apply design and development principles in the construction of software systems. CO4 Apply testing methods for the software products CO5 Improve the product by checking the quality of the software products Text Books 1 R. S. Pressman, Software Engineering, a practitioner‘s approach,McGraw Hill,7th Edition, 2010. 2 Ian Sommerville, "Software Engineering", 9th Edition, Addison- Wesley, 2011 References 1 Pankaj Jalote, ―Software Engineering, A Precise Approach‖, Wiley India, 2010. 2 Kelkar S.A., ―Software Engineering‖, Prentice Hall of India Pvt Ltd, 2007. 3 Stephen R.Schach, ―Software Engineering‖, Tata McGraw-Hill Publishing Company Limited,2007. Web References 1 https://www.coursera.org/courses?query=object%20oriented%20design 2 https://www.coursera.org/learn/object-oriented-design 3 https://onlinecourses-archive.nptel.ac.in/noc17_cs25 4 https://pl.cs.jhu.edu/oose/