CIS 112
E N D
Presentation Transcript
CIS 112 Exam Review
Exam Content • 100 questions valued at 1 point each • 100 points total • 10 each from Chapters 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 • Exam is open-book, open-notes, internet access
What We Covered • Chapter 1 • history of the object-oriented approach • Chapter 2 • introduction to the object-oriented approach • Chapter 3 • a way of thinking about objects • Chapter 4 • introduction to terms and concepts • Chapter 5 • UML notation for model building
What We Covered • Chapter 6 • requirements modeling • Chapter 7 • hierarchies and requirements models • Chapter 8 • object-oriented system development life cycles • Chapter 9 • detailed case study • Chapter 10 • Object-oriented Design
Object-oriented system development • building block approach to system development • identify the objects that are needed in the system • identify objects that already exist and can be reused
Benefits of the object-oriented approach • addresses three pervasive problems with traditional system development • quality, productivity, and flexibility • each object is small thereby reducing complexity and leading to higher quality • an object can be reused once it is written, implemented, and tested • system can be easily modified by changing only the appropriate objects
Hierarchies • organization of classes into super and sub classes • sub classes inherit attributes and methods from those above in the hierarch • allows system to be broken down into smaller pieces that are easier to understand, implement, maintain • ensures independence of system components
Whole / Part Components Aggregation Whole Part Super Class Sub Class
Generalization / Specialization Generalization Specialization Super Class Sub Class Source: http://people.cs.vt.edu/~kafura/cs2704/oop.swe.html
Abstractions • refers to the relevant features and behaviors of an object • abstract classes are not used to create objects • designed to act as a base class to be inherited by other classes • design concept in program development that provides a foundation upon which other classes are built
CRC • class, responsibility, collaboration • used to identify and explore the nature of a system • CRC card is an index card used to represent the responsibilities of classes and the interaction between the classes • informal approach to object oriented modeling • created through scenarios, based on the system requirements, that model the behavior of the system • aids in capturing essence of object-oriented systems
Unified Modeling Language • standardized approach to object-oriented terminology and diagramming notation • used to define object-oriented constructs and models
Classes differ from objects • A class is a type of thing or a general category. • An object is a specific instance of a class.
Inheritance • Inheritance means get something from. • One class of objects can inherit attributes and methods from another. • This type of relationship is shown in the generalization/specialization hierarchy.
Polymorphism • literally means "multiple forms“ • extremely important to object-oriented programmers who have to implement messages • ability to send the same message to different receivers and have the message trigger the right method within each receiver
Sequence diagrams • presents object interaction arranged in time sequence • shows the objects involved in the scenario and the sequence of messages that are exchanged • show interactions among objects and with outside actors for a specific scenario or instance of a use case
Actors • either a person (user) interacting with the system or another system interacting with the system • use cases capture the main functionality of a system from the perspective of a user or actor
Use cases • identified by looking for events that might cause the user to interact with the system • a use case might have more than one scenario
Verifying requirements satisfaction • walk through all use cases
Custom methods • necessary when the class must process messages not handled by standard methods
Inheritance • Inheritance means get something from. • One class of objects can inherit attributes and methods from another. • This type of relationship is shown in the generalization/specialization hierarchy.
Generalization / Specialization Generalization Specialization Heirs Super Class Inherits From Sub Class Source: http://people.cs.vt.edu/~kafura/cs2704/oop.swe.html
Abstract Classes • Exists only to allow subclasses to inherit from it. • Objects of that class type not normally created. • matter of design / implementation policy • nothing to prevent it actually being done
Development Life Cycle • Widely used framework for organizing and managing system development process. • Five phases • planning • analysis • design • implementation • maintenance
Process vs. Technique • “Process” explains what tasks to do and when to do them. • “Technique” describes approaches that could or should be used for the tasks at hand. • how to implement the process
Objectives vs. Scope • Objectives are statements that define the expected benefits of the system. • Scope defines the boundary of the system. • describes what the system will be used for • defines main users • prevents requirements creep • ever-expanding objectives • keeps cost and schedule under control
Starting an Object-Oriented Project • Start by identifying the most important business events. • there might be many more events buy only the important or typical events need to be identified early on • this can lead rapidly to an initial prototype that can ultimately be expanded into the full system • yields gradual implementation and growing benefits
Use Cases • Use cases provide natural way of dividing the system into manageable units. • The objective of use cases is to identify what the system must do for the user to complete required work tasks.
Physical vs. Logical Models • Physical model includes details of system implementation. • Logical model specifies what is required without defining implementation details.
User Evaluation • A variety of different types of users will typically interact with a system. • Prototyping and evaluation by users will help identify the most effective design of the overall system structure and user interface.
Considerations During Transition • Three main areas need to be considered during transition to object-oriented methods. • tools • methodology or means of employment • organization’s culture
Benefits of OO Implementation • Methods and attributes can be added to existing object classes without disrupting the rest of the system. • New classes can be added easily. • Additional features can be added after the main functionality has been implemented.