3 0 0 3 Prerequisite COIT 415 Credit Units Object-Oriented Analysis and Design Training Code/No Lab Course name Lecture Units COCS 304 Course Objectives: To introduce the concept of Object-oriented design To be familiar with problems of complex systems, evolution of object-oriented model, classes, object-oriented methodology and it notations To provide the students with applications, case studies and CASE tools Course Description Object-oriented design concepts, Introducing OO concepts through typical OO programming languages. Features and problems of complex systems, evolution the object-oriented model, foundations and elements of the object-oriented model, classes and objects, relationships among classes, relationships among objects, interplay of classes and objects, approaches to identifying classes and objects, object-oriented design methodologies, methodology notation (elements of UML or any other selected notation, class and object diagrams, interaction diagrams, state transition diagrams, process and module diagrams, etc.), applications and case studies, CASE tools. Course Outline 1. Introduction Object-Oriented Programming Languages and the object-oriented model Complex problems and complex systems Basic features and elements of the object-oriented approach Object-oriented analysis, design, and implementation Objects and Classes Messages and Interfaces Inheritance and Polymorphism Advantages, Limitations and Applications of the object-oriented approach Models and modeling languages A Unified methodology Types of models UML views and basic features Object-oriented design methodologies The rational unified process Object-oriented CASE tools: Introducing Rational Rose 2. Object Oriented Analysis Object Orientation OO Methods OOA approaches Analysis in OMT Identify objects and classes Identify associations and aggregations Identify attributes Simplify object classes using inheritance Verify access paths for likely queries Iterate and refine model Group classes into modules Analysis in Use Cases 3. Object Oriented concepts and examples OOD To OOP Abstraction and ADT Class Hierarchies Modularity Namespace Assemblies Inheritance Encapsulation and Information hiding Interfaces Polymorphism, Overloading and overriding Early and Late binding Boxing and Unboxing Abstract and sealed classes Design Issues for OOP Languages The Exclusivity of Objects Subclasses as Types Type Checking and Polymorphism Single and Multiple Inheritance Object Allocation and De-Allocation Dynamic and Static Binding Nested Classes 4. Classes and Class Models in UML Class models and diagrams Attributes and operations Association and whole-part relationships Aggregation and composition, Roles, navigability, and constraints Generalization and inheritance relationships Dependency More on classes: Qualified and derived associations Association classes Properties, tagged values, and Stereotypes Abstract classes and Parameterized classes Lab Work: Class diagrams in Rational Rose 5. Use Case Models in UML (as a gap between OOA and OOD) Actors and services System boundary Use-case relationships and Use-case generalization Actors and classes Using use-cases in software development Lab Work: Use-cases in Rational Rose Case Study 1 6. OO Modeling, Design methodologies, Interaction diagrams Design approaches, methods to get design entities from requirements Domain modeling and class diagrams Class associations Whole part relationships Generalization and Inheritance 7. Interaction diagrams Interaction and collaboration Collaboration diagrams Sequence diagrams Message passing and timing Conditional behavior and iteration Concurrency Lab Work: Interaction diagrams in Rational Rose Case Study 2 8. State and Activity Diagrams in UML Activity diagrams State diagrams Lab Work: State and activity diagrams in Rational Rose 9. Packages and subsystems Packages Subsystems Models Lab Work: Subsystem diagrams in Rational Rose Course Outcomes After completing this course the student must demonstrate the knowledge and ability to: Show the importance of systems analysis and design in solving complex problems. Show how the object-oriented approach differs from the traditional approach to systems analysis and design. Explain the importance of modeling and how the Unified Modeling Language (UML) represents an object-oriented system using a number of modeling views. Construct various UML models (including use case diagrams, class diagrams, interaction diagrams, state chart diagrams, activity diagrams, an implementation diagrams) using the appropriate notation. Recognize the difference between various object relationships: inheritance, association, whole-part, and dependency relationships. Show the role and function of each UML model in developing object-oriented software. Apply the Rational Software Suit for the construction of UML models and expressing the appropriate notation associated with each model. Assessment Strategy: Students will be assessed in this course based on a set of exams, quizzes and practical parts of it. Grades: Mid 1 Mid 2 Final Homework and quiz 20 20 40 20 Text Book: Bennett, Simon ; Skelton, John; Lunn, Ken, Schuam’s Outline of UML. 2nd Edition, New York: McGraw-Hill, 2001. Other references: Stevens, Perdita, Using UML: Software Engineering with Objects and Components, 2nd Edition, Harlow, England: Addison-Wesley, 2000. Satzinger, John & Orvik, Tore U. The Object-Oriented Approach: Concepts, System Development, and Modeling with UML, 2nd Edition, Australia: Course Technology, 2001 Time table for Object-Oriented Analysis and Design Week 1 2 3 4 5 6 7-8 9 10-11 12 13 14 15 Theoretical course contents Object-oriented design concepts Object-Oriented Programming Languages and the models Complex problems and complex systems Basic features and elements of the object-oriented approach Object-oriented analysis, design, and implementation Design, and implementation of object-oriented Advantages, Limitations and Applications of the object-oriented approach Advantages, Limitations and Applications of the object-oriented approach Models and modeling languages A Unified methodology UML views and basic features Object-oriented design methodologies Object-oriented CASE tools: Introducing Rational Rose Final exam Remarks Exam 1 Exam 2