This repository contains my coursework, lab implementations, and practice programs for Object Oriented Concepts II (OOP-II) using Java, based on the official Software Engineering syllabus.
This course focuses on advanced object-oriented design, composition, design principles, concurrency, enterprise Java, and real-world software architecture.
- Course Title: Object Oriented Concepts II
- Credits: 2 Credit Theory + 1 Credit Lab
- Language: Java
A structured revision of fundamental OOP concepts with deeper design perspective:
- Objects: Data & Behavior
- Classes, Attributes, and Methods
- 🔒 Encapsulation & Data Hiding
- 🧬 Inheritance (Superclasses & Subclasses)
- 🧠 Abstraction and Is-A Relationship
- 🔁 Polymorphism
- 🔗 Composition and Has-A Relationship
- Composition vs Inheritance
- Aggregation and Association
- Cardinality and Dependency Management
- UML Representation of Composition
- Building Objects in Phases
- Avoiding Tight Coupling
- Class Diagrams
- Attributes and Methods
- Access Modifiers
- Interfaces
- Inheritance Hierarchies
- Aggregation, Association & Cardinality
- Portable Data Concepts
- XML Fundamentals
- XML vs HTML
- XML with Object-Oriented Languages
- DTD (Document Type Definition)
- XML Validation
- CSS with XML
- Basics of Persistence
- Flat File Storage
- XML-based Serialization
- Writing Objects to Relational Databases
- Object-Based Scripting Languages
- Objects in Web Pages
- Distributed Objects
- Enterprise Applications
- Client-Server Approaches
- Proprietary vs Non-Proprietary Systems
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Component-Based Architecture
- Design Patterns (Introduction)
- Code Smells and Refactoring Concepts
- Generic Classes and Methods
- Wildcards
- Type Safety
- Collection Interfaces
- List & SortedList
- Set, SortedSet & NavigableSet
- Map, SortedMap & NavigableMap
- Queue, Deque & Stack
hashCode()andequals()ComparatorvsComparable
ClassClassjava.lang.reflectPackage- Accessing Fields and Methods
- Reflection with Exception Handling
- Dynamic Programming Concepts
- Java Thread Model
- Creating & Running Threads
- Thread Pools
- Thread Synchronization
wait(),notify()join()andsleep()- Java Concurrency API
- Swing Components
- Containers
- Event Handling
- Layout Managers
SwingWorker
SerializableInterface- Writing & Reading Objects
- Customized Serialization
- Controlling Serialization
- Exception Handling
- Client & Server Model
- Ports & Protocols
- I/O-based Communication
ServerSocketClassURLandURLConnection
- Servlet Life Cycle
HttpServletHttpRequest&HttpResponseRequestDispatcherHttpSession&ServletContext- Cookies & Filters
- HTTP Headers & MIME Types
IntrospectorPropertyDescriptorEventSetDescriptorMethodDescriptor
oop-ii-java/
│── composition/
│── uml-modeling/
│── solid-principles/
│── generics/
│── collections/
│── multithreading/
│── reflection/
│── serialization/
│── socket-programming/
│── servlets/
│── swing-ui/
│── design-patterns/
By completing this course, I aim to:
- Design scalable and maintainable object-oriented systems
- Apply SOLID principles effectively
- Build multi-threaded and distributed Java applications
- Understand enterprise-level Java architecture
- Think like a software designer, not just a programmer
- The Object Oriented Thought Process — Matt Weisfeld
- Java How to Program — Deitel & Deitel
- Java: The Complete Reference — Herbert Schildt
- Head First Java — Kathy Sierra & Bert Bates
A.S.M. Morshed Software Engineering Institute of Information Technology (IIT) Noakhali Science and Technology University
OOP • Java • Software Design