session 6
DESCRIPTION
TRANSCRIPT
- 1. Object Oriented Systems
- Object Oriented Analysis and Design is a specialised method
- It is often viewed as a strategic move to develop an Object Oriented information architecture
- Its popularity came about as a result of the failings and problems associated with relying on traditional software development methods
2. Information Architectures
- The problems associated with building an information architecture based upon procedural software systems are many
- The software maintenance issues with traditional environments are a real problem
- In reality the re-usability levels were never very high
3. Problems with Software Architectures
- Software development is still very expensive
- Organisations do make great use of existing code - code reuse?
-
- Why do you think this is?
4. O.O. Development
- O.O. development proposed a number of advantages
- It combines processes, data and flows into one modeling paradigm
- This allows objects to be modeled as independent entities that can be flexibly combined into cooperating systems
- Easy conversion from analysis to design models through the use of similar terms
5.
- Supporting multimedia information and not only record structures
-
- video
-
- sound
-
- graphics
-
- as well as text
- Requirements in organisations have moved on .
6. An Object Showing Encapsulation PROPERTIES Project-No: P56; Manager: ref PERSONS; Start-Date: 10-1-2000; Budget: 180000 People-Assigned: PERSONS; Tasks: ref PROJECT-TASKS; METHODS Add-Person(); Delete-Person(); Create-Task(); Change-Budget(); Fig:11.2 in ref 7. O.O. Method
- O.O. architectures are a bottom-up approach to developing information architectures - at least on a software and data level
- In the O.O. paradigm it is not necessary to think of developing one large system
- Objects act as independent entities with their own local goals
- Objects can then exchange messages between themselves to achieve a global goal of the large system
8. Object Architectures Project-No: P56; Manager: ref PERSONS; Start-Date: 10-1-2000; Budget: 180000 People-Assigned: PERSONS; Tasks: ref PROJECT-TASKS; Add-Person(); Delete-Person(); Create-Task(); Change-Budget(); Persons Project SURNAME: Gilligan; Date of Birth: 14-Jan-65; Date-Joined: 7-April-93; Position: Manager; Pay-Rate:6/3; Change-Position(); Change-Payrate(); Tasks Task-No:4; Date:1-6-2000; Description:Install SW Progress: ref DOCUMENT Update-program(); 9. Encapsulation & Autonomy
- Encapsulation - of data and methods
- Eliminates the need to store data and processes separately
- This should make changes easier to make
- Facilitates the idea of cooperating independent systems
10. O.O. Implementations
- Growing number of products-
-
- languages such as C++, Java
-
- database systems
- It is one common paradigm for architecture, analysis, design and implementation
- Not the case in other approaches eg. Structured Development
11. ReUse
- As objects are autonomous they should be easily plugged into systems - reuse
- In traditional systems the system is seen as a set of functions, data and processes
12. Inheritance
- Inheritance is an important concept in the Object Oriented paradigm
- Classes can be arranged hierarchically with the most general features in the top level class or superclass and the more specific features in the sub classes
- The subclasses inherit all the instance variables and methods of the superclasses
13. Inheritance Offers Producer: Time-Available: Add-Offer(); Delete-Offer(); OFFERS ITEM-OFFERS Quantity: Price/Item: Compute Value(); VOLUME-OFFERS Weight; Price/KG: Compute Value(); Bank Example 14.
- The important thing about all this is that firstly the software becomes more modular
- and secondly, the superclasses are being reused instead of redefining them all in the subclasses.
15. Use Cases
- Use cases are scripts that describe instances of how a system is used
- The main actors and roles are identified
- The way they interact with the system is described
16. Use Case - Make a sale
-
- A buyer
-
-
- Initiates a trade by creating a trader and requesting a stated amount of a selected product
-
-
-
- the trader finds product-offers that satisfy the request through the product, by obtaining offer volumes and prices, & displays to buyer
-
-
-
- the trader initiates the sale through products.The sale is verified to the buyer, & producer advised to arrange transport and invoice
-
-
- Seller arranges delivery with transport company by:
-
-
- creating a delivery docket
-
-
-
- callinga number of companies for quotes
-
-
-
- agreeing on time and charge
-
-
-
- recording agreement on delivery docket
-
Used to identify Objects (properties and methods) 17. O.O. Through Java
- Java is an object oriented language and is a good language to demonstrate object oriented principles
- This is because it was developed using a clean slate approach (Naughton & Schildt, 1997).
- In other words, Java was not designed to be source compatible with any other language
18.
- The object model in Java is simple and easy to extend, while simple types, such as integers, are kept as high performance non-objects
- Java supports the following object oriented constructs.
-
-
- Classes and objects
-
19.
- Classes act as templates for the creation of objects and hence the class construct is reused
- The listing below creates a class calledContainerwith three data items and a method to compute the volume of the container
- Parameters are passed from theContainerDemclass when objects are created and the data for the object is initialised by theContainerconstructor
- Two objects are created : container1 and container2inContainerDem . The volume method is then called for each object, and the results returned and displayed in the DOS window.
20.
- // Java program to demonstrate the use of classes and objects
- // Container uses a constructor to// initialize the dimensions of a container.
- class Container {double width;double length;double depth;// The constructor for container.
- Container(double w, double l, double d) {
- width = w;
- height = l;
- depth = d;
- }
- // The volume of the container is returned
- double volume() {
- return width * length * depth;
- }
- }
21.
- class ContainerDem {
- public static void main(String args[]) {
- // declare and initialize container objects
- Container container1 = new Container(5, 10, 15);
- Container container2 = new Container(4, 6, 10);
- double vol;
- // Use the volume method for the first container
- vol = container1.volume();
- System.out.println("The volume of container1 is " + vol);
- // Use the volume method for the second container
- vol = container2.volume();
- System.out.println("The volume of container2 is " + vol);
- }
- }
22. Questions
- Explain the main benefits of the O.O. Paradigm
- What role does O.O. play in the Information Architecture
- Contrast and compare Information Engineering and Object Orientation