Course Description
This course familiarizes students with different concepts and techniques of software engineering mainly focusing on software practices, different process models, requirements engineering, project management, project planning, quality assurance and software testing techniques.
Course Objectives
The main objective of this course is to give knowledge of software engineering so that the students will be able to use different methodologies and techniques to develop high quality software.
Course Contents
Professional Software Development, Software Engineering Ethics, Case Studies
Software Process Models, Process Activities, Coping with Change, Process Improvement, Agile Software Development
Functional and Non-Functional Requirements, Requirements Engineering Processes, Requirements Elicitation, Requirements Validation, Requirements Change
Context Models, Interaction Models, Structural Models, Behavioral Models, Model Driven Architecture
Architectural Design Decisions, Architectural Views, Architectural Patterns, Application Architectures
Object-Oriented Design Using the UML, Design Patterns, Implementation Issues, Open-Source Development
Introduction to Software Testing, Development Testing, Test-Driven Development, Types of Testing
Introduction to Project Management, Management Activities, Introduction to Project Planning, Software Pricing, Plan-Driven Development, Project Scheduling, Agile Planning, Estimation Techniques, COCOMO Cost Modeling
Introduction to Software Quality, Software Quality Assurance, Software Reviews
Introduction to Version Management, Change Management and Release Management
Student should use project management tools focusing on resource management, project scheduling and people management. They should be use CASE tools for drawing UML diagrams. They should use tools for realizing agile development, version control and change control respectively. They should be able to develop test cases and use tools to demonstrate different types of testing.
References:
1. Software Engineering, 10th Edition, Ian Sommerville, Pearson Education 2016
2. Software Engineering: A Practitioner's Approach, 8th Edition, Roger S. Pressman and Bruce R. Maxim, McGraw-Hill Education 2015
3. C. Ghezzi, M. Jazayeri and D. Mandrioli, Fundamentals of Software Engineering Prentice Hall of India, Ltd.
4. G. Booch, J. Rambaugh, J. Jacobson, The unified Modeling Language – User Guide Addison - Wesley