1 / 23

Orthogonal Views of Software: OOSD Methodology

Understand the Object-Oriented System Development (OOSD) methodology and its benefits in software development. Learn about object basics, properties, methods, and identity.

miriamj
Download Presentation

Orthogonal Views of Software: OOSD Methodology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation? Agenda

  2. Software development (SD) & Software development methodologies (SDM): • SD refers to all activities that go into producing an information system • SD is dynamic & always undergoing major changes • Many tools and methodologies • It consists of system analysis, design, implementation, testing and maintenance • SDM is a series of processes that , if followed, can lead to the development of an application • It describes how the work is to be carried out to achieve the original goal based on the system requirements • It consists of a number of steps and rules that should be performed during development

  3. Traditional development technique 1. Algorithmic centric Focus on algorithm (what is it doing) 2. Data centric Focus on data (what data is accessed) Object Oriented System Development (OOSD) or Object Oriented Analysis and Design (OOAD) Focus on object (Algorithm & Data) Orthogonal views of the software:

  4. OOSD Methodology: • It is a way to develop softwareby buildingself contained objectsthat can be easilyreplaced, modifiedandreused • In an O-O environment, software is a collection of discrete objects. • These objects encapsulate their data and functionalities to model real world "objects”.

  5. OOSD Methodology: • An object-oriented life cycle encourages a view of the world as a system of cooperative and collaborating agents. • In an OO system, everything is an object and each object is responsible for itself

  6. Example: A window object is responsible for things like opening, sizing and closing itself. OOSD Methodology: Class window { Data_type data; void close(.,.) {……..} int open(.,.) {…….} float sizing(.,.) {…..} } Class chart { Void draw(.,.) {…..} }

  7. OOSD Methodology: Note: Rather than writing a lot of code to do all the things that have to be done, you tend to create a lot of helpers that take on an active role, a spirit and that become a community whose interaction becomes an application

  8. Higher level of abstraction: Supports abstraction at object level The development can proceed at the object level & ignore rest of the system for as long as necessary This makes system development much simpler Seamless transition among different phases of SD: Easy to move from one language to another Analysis & design is not language centric Reduces the level of the complexity & redundancy More robust system development Why an Object Orientation?:

  9. Encouragement of good programming techniques: Functions and data held together Objects are independent in a system Object change has no impact on other System achieves the benefits of an object orientation Easier to produce more modular & reusable code Promotion of reusability: Objects are reusable Each object stands by itself or within a small circle of peers Powerful Inheritance technique Only differences & enhancements between classes (super & sub-class) need to be designed Why an Object Orientation?:

  10. Object basics Object Objects responds to messages Classes Meta-Class Agenda

  11. Object basics: Motivating factor behind OOAD: Make software development easier & more natural by raising the level of abstraction to the point where applications can be implemented Object: • It was first formally utilized in the simula language to simulate some aspect of reality • A real world entity, identifiable separate from its surroundings • A combination of data and logic that represents some real world entity • It is associated with • Properties • Procedures • Identity • persistence

  12. Describe the state of an object It refers to description rather than how they are represented in a particular programming language Example I am an Employee. I know my name, social security number and my address. Object basics: Object properties (Attributes):

  13. Example Object basics: Object properties (Attributes): I am a Car. I know my color, manufacturer, cost, owner and model.

  14. Methods or procedures define its behavior Behavior denotes the collection of methods that abstractly describes what an object is capable of doing Method encapsulate the behavior of an object, provide interface to the object The use of methods to exclusively access or update properties Object take responsibility for their own behavior. It simplifies application development & maintenance Object basics: Object procedures (Methods):

  15. I know how to Compute my payroll. Object basics: It does things Object procedures (Methods): • Example

  16. I know how to stop. Object basics: Object procedures (Methods): • Example

  17. Every object has its own unique & immutable identity It comes into being when the object is created & continue to represent that object from then on This identity never confused with another object, even if the original object has been deleted. It never reused The identity name never changes even if all the properties of the object change OID’s help to establish relationships/communication among objects OID’s help to implement object references during implementation Example : Employee Id, stud_Reg_Number Object basics: Object Identity (OID):

  18. Object have life time They are explicitly created & can exist for a period of time (usually the duration of the process in which they were created) An object can persist beyond application session, this characteristics is called object persistence A file or database provides longer lifeline The lifetime of an object can be explicitly terminated. After an object is deleted Object basics: Object persistence:

  19. Object basics: Objects responds to messages: • Messages essentially are non specific function calls • Objects respond to messages according to methods defined in its class • Different objects can respond to same message in different ways • Polymorphism is the main difference between a message and a subroutine call • Draw message can be sent to many objects like triangle, circle or line & each object could act differently

  20. Object basics: Objects responds to messages (con’t): • Message is the instruction & Method is the implementation • A message has a name just like method • An object understands a message when it can match the message to a method that has the same name as the message • Message says what to do & method says how to do something • Message so general, it can be used over & over again in many different contexts • Changes to method has no impact on messages & system

  21. Classes are used to distinguish one type of object from another Class is a set of objects that share a common structure & common behavior A single object is simply an instance of a class Every object of a given class has the same data format & responds to the same instructions Can create unlimited instances (except for singleton) Can use any of the predefined classes Object basics: Classes:

  22. Everything is an object. How about a class? Is a class an object? Yes, a class is an object! So, if it is an object, it must belong to a class. Indeed, class belongs to a class called a Meta-Class or a class' class. All classes are instances of a Meta-class Object basics: Meta Class (con’t):

  23. Meta-class used by the compiler. For example, the meta-classes handle messages to classes, such as constructors , "new“ and static member data Object basics: Meta Class:

More Related