10(8)
10(8)
Course Objective:
To introduce Object-oriented software engineering (OOSE) - which is a popular technical approach
to analyzing, designing an application, system, or business by applying the object- oriented paradigm
and visual modeling.
Course Outcomes:
Upon successful completion of the course, a student will be able to:
1. Understand and apply the fundamental principles of Object-Oriented Programming (OOP)
concepts and Unified Modeling Language (UML) basics, in the development of software
solutions.
2. Analyze and specify software requirements, develop use cases and scenarios, apply object-
oriented analysis and design (OOAD) principles
3. Familiar with the concept of test-driven development (TDD) and its practicalimplementation
4. Analyze and Evaluate Software Maintenance and Evolution Strategies
5. Apply Advanced Object-Oriented Software Engineering Concepts
UNIT-I
Introduction to Object-Oriented Programming: Overview of software engineering, Introduction to
Object-Oriented Programming (OOP) concepts (classes, objects, inheritance, polymorphism), Unified
Modelling Language (UML) basics, Introduction to software development process and software
development life cycle (SDLC).
UNIT-II
Requirements Analysis and Design: Requirements analysis and specification, Use cases and
scenarios, Object-oriented analysis and design (OOAD), Design patterns, UML modelling techniques
(class diagrams, sequence diagrams, state machine diagrams, activity diagrams)
UNIT-III
Software Construction and Testing: Software construction basics, Object-oriented design principles,
Object-oriented programming languages (Java, C++, Python), Software testing basics (unit testing,
integration testing, system testing), Test-driven development (TDD)
UNIT-IV
Software Maintenance and Evolution: Software maintenance basics, refactoring techniques Software
version control, Code review and inspection, Software evolution and reengineering
UNIT-V
Advanced Topics in Object-Oriented Software Engineering: Model-driven engineering (MDE),
Aspect-oriented programming (AOP), Component-based software engineering (CBSE), Service-
oriented architecture (SOA), Agile software development and Scrum methodologies.
Text Book(s)
1. An Introduction to Object-Oriented Analysis and Design and the Unified Process, 3rd
Edition, Craig Larman, Prentice-Hall.
2. Programming in Java by Sachin Malhotra, Oxford University Press
Reference Books
1. Requirements engineering: processes and techniques, G.Kotonya and, I.Sommerville, 1998,
Wiley
2. Design Patterns, E.Gamma, R. Helm, R. Johnson, and J. Vlissides
3. The Unified Modeling Language Reference Manual, J. Rumbaugh, I.Jacobson and G.
Booch, Addison Wesley
List of Experiments:
Select domain of interest (e.g. College Management System) and identify multi-tier software
application to work on (e.g. Online Fee Collection). Analyze, design and develop this application
using OOSE approach:
1. Develop an IEEE standard SRS document. Also develop risk management and project plan
(Gantt chart).
2. Understanding of System modeling: Data model i.e. ER – Diagram and draw the ER Diagram
with generalization, specialization and aggregation of specified problem statement
3. Understanding of System modeling: Functional modeling: DFD level 0 i.e. Context Diagram
and draw it
4. Understanding of System modeling: Functional modeling: DFD level 1 and DFD level 2 and
draw it.
5. Identify use cases and develop the use case model.
6. Identify the business activities and develop an UML Activity diagram.
7. Identity the conceptual classes and develop a domain model with UML Class diagram.
8. Using the identified scenarios find the interaction between objects and represent them using
UML Interaction diagrams.
9. Draw the state chart diagram.
10. Identify the user interface, domain objects, and technical services. Draw the partial layered,
logical architecture diagram with UML package diagram notation.
11. Implement the technical services layer.
12. Implement the domain objects layer.
13. Implement the user interface layer.
14. Draw component and deployment diagrams.