Modeling Concepts & Class Modeling
What is Object Orientation? What is OO development? OO themes; Evidence for usefulness of OO development; OO modeling history. Modeling as Design Technique: Modeling; abstraction; The three models. Object and class concepts; Link and associations concepts; Generalization and inheritance; A sample class model; Navigation of class models; Practical tips. Advanced object and class concepts; Association ends; N-array associations; Aggregation; Abstract classes; Multiple inheritance; Metadata; Reification; Constraints; Derived data; Packages; Module
State Modeling and Interaction Modeling State Modeling:
Events, States, Transitions and Conditions; State diagrams; State diagram behavior; Practical tips. Advanced State Modeling: Nested state diagrams; Nested states; Signal generalization; Concurrency; A sample state model; Relation of class and state models;
Interaction Modeling: Use case models; Sequence models; Activity models. Use case relationships; Procedural sequence models; Special constructs for activity models
System Conception and Analysis
System Conception: Devising a system concept; elaborating a concept; preparing a problem statement.
Overview of analysis; Domain class model; Domain state model; Domain interaction model; Iterating the analysis. Application Analysis: Application interaction model; Application class model; Application state model; adding operations.
System Design and Class Design
Overview of system design; Estimating performance; Making a reuse plan; Breaking a system in to sub-systems; Identifying concurrency; Allocation of sub-systems; Management of data storage; Handling global resources; Choosing a software control strategy; Handling boundary conditions
Class Design: Overview of class design; Bridging the gap; Realizing use cases; Designing algorithms; Recording downwards, Refactoring; Design optimization; Reification of behavior.
Patterns and Design Patterns
What is a pattern and what makes a pattern? Pattern categories; Relationships between patterns; Pattern description.
Introduction, Model View Controller, Structural decomposition: Whole-Part, Access Control: Proxy; Management Patterns: Command processor; Communication Patterns: Forwarder-Receiver; Client-Dispatcher-Server; Publisher-Subscriber
Course Outcomes (CO):
At the end of this course, the students will be able to
CO1: Acquire knowledge of - Basic UML Concepts and terminologies - Life Cycle of Object oriented Development - Modeling Concepts
CO2: Identify the basic principles of Software modeling and apply them in real world applications
CO3: Produce conceptual models for solving operational problems in software and IT environment using UML
CO4: Analyze the development of Object Oriented Software models in terms of - Static behaviour - Dynamic behaviour
CO5: Evaluate and implement various Design patterns
Question paper pattern:
Text Books:
1. Michael Blaha, James Rumbaugh, “Object-Oriented Modeling and Design with UML”, 2nd Edition, Pearson Education / PHI, 2005. (Chapters 1 to 9, 11 to 14.10,15.1 to 15.8)
2. Frank Buschmann, RegineMeunier, Hans Rohnert, Peter Sommerlad, Michael Stal, “Pattern-Oriented Software Architecture, A System of Patterns”, Volume 1, John Wiley and Sons, 2006. (Chapters 1, 2.4, 3)
Reference Books:
1. Grady Booch et al, “Object-Oriented Analysis and Design with Applications”, 3rd Edition, Pearson, 2007.
2. Mark Priestley, “Practical Object-Oriented Design with UML”, 2nd Edition, Tata McGraw-Hill, 2003.
3. K. Barclay, J. Savage, “Object-Oriented Design with UML and JAVA”, Elsevier, 2008.
4. Booch, G., Rumbaugh, J., and Jacobson, I., “The Unified Modeling Language User Guide”, 2nd Edition, Pearson, 2005.
5. E. Gamma, R. Helm, R. Johnson, J. Vlissides, “Design Patterns-Elements of Reusable Object- Oriented Software”, Addison-Wesley, 1995.
6. Michael R Blaha, James R Rumbaugh, “Object Oriented Modeling and Design with UML”, 2nd Edition, Prentice Hall, 2004