Course Objectives:
This course enables the students to
1. Obtain knowledge of software engineering discipline.
2. Learn various modeling techniques for different perspectives of object-oriented software design
3. (UML)
4. Interpret analysis, design and testing principles for software project development.
5. Demonstrate and evaluate real time projects with respect to software engineering principles.
6. Select appropriate software design & development processes and for software development.
7. Develop skills to construct software of high quality that is reliable and reasonably easy to understand,
8. Modify and maintain
Course Outcomes(COs):
Learning outcomes (at course level) | Learning and teaching strategies | Assessment Strategies |
CO31. Learn need for software specifications also will be able to classify different types of software requirements and their gathering techniques.
CO32. Convert the requirements model into the design model and demonstrate use of software and user interface design principles.
CO33. Understand Software Design Process, Advanced modeling in UML and different Software testing techniques.
CO34. Design & develop the software projects using techniques learnt.
CO35. Identify risks and manage change to assure quality in software projects.
CO36. Apply testing principles on software projects and understand maintenance concepts. | Approach in teaching: Interactive Lectures, Discussion, Demonstration, Role plays
Learning activities for the students: Self-learning assignments, Effective questions, presentation, flip classroom
| Assignments Written test in classroom Classroom activity Written test in classroom Semester End Examination |
Introduction to Software and Software Engineering
The Evolving Role of Software, Software: A Crisis on the Horizon and Software Myths, Software Engineering: A Layered Technology, Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process, SDLC
Agility and Agile Process model, Extreme Programming, Other process models of Agile Development and Tools.
Software Project Requirement Analysis and Specification
Software Metrics (Process, Product and Project Metrics), Software Project Estimations, Software Project Planning (MS Project Tool), Project Scheduling & Tracking, Basic idea of behavioral modeling in UML. State diagrams, Interaction diagrams, Use case diagrams, Risk Analysis & Management (Risk Identification, Risk Projection, Risk Refinement , Risk Mitigation).
Understanding the Requirement, Requirement Modeling, Requirement Specification (SRS), Requirement Analysis and Requirement Elicitation, Requirement Engineering.
Project Planning & Scheduling
Size Estimation, Cost Estimation, Models, Static, single variable models, Static, Multivariable Models, COCOMO, The Putnam Resource Allocation Model, Risk Identification and Projection: RMMM, Project scheduling and Tracking. Object- oriented concepts and principles. software risks, Risk identification, Risk projection, risk refinement, risk mitigation, monitoring and management, the RMMM plan
Software Design & Quality Management
Design Concepts and Design Principal, Design Documentation, Design Methods: Data Design, Architectural Design, Interface Design, Component Level Design (Function Oriented Design, Object Oriented Design) (MS Visio Tool ),User Interface Design, Web Application Design, Advanced structured modeling in UML
Quality Planning: Quality Concepts, Procedural Approach to Quality Management, Software Quality assurances, software reviews, formal technical reviews, Formal approaches to SQA, Statistical Software Quality assurances, Change Management: software Configuration Management, The SCM repository, SCM Process, Configuration Management for Web Engineering.
Software Testing
Fundamentals, White Box Testing, Black Box Testing, software testing strategies, verification and Validation, System Testing, Unit testing, Integration testing and Debugging.
Software Maintenance and Configuration Management: Types of Software Maintenance, Re-Engineering, Reverse Engineering, Forward Engineering, The SCM Process, Identification of Objects in the Software Configuration, Risk-Related Monitoring. Emerging Trends in software Engineering.
· Simon Bennett, Steve McRobb and Ray Farmer, “ Object-Oriented Systems Analysis and Design Using UML” 4th Edition,McGraw Hill Education, 2010
· Charles Ritcher, “Designing Flexible Object Oriented systems with UML”, Tech Media, 2008.
· Grady Booch, James Rumbaugh, Ivar Jacobson., “The Unified Modeling Language User Guide”, 2nd Edition, Pearson, 2007.