1 / 31

Object Oriented Paradigm

Object Oriented Paradigm. An evolutionary path. Programming At Its Infancy. A program is a single block of procedural code Disadvantages: Reusability is practically nil. Programming Complexity is high.

melisande
Download Presentation

Object Oriented Paradigm

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. Object Oriented Paradigm An evolutionary path

  2. Programming At Its Infancy • A program is a single block of procedural code Disadvantages: • Reusability is practically nil. • Programming Complexity is high. • Software cannot not evolve gracefully as changes in one part of the software can have unwanted side-effects.

  3. Software Development- The Structured Approach • Top-down design followed by bottom-up programming • Top-down decomposition driven by functional criteria • Architecture reflects system functions

  4. The Structured Approach - Advantages Modularization implies • Reduction in software complexity • Increased reusability • Reduction in unwanted side-effects as much of the effect is confined to the module being changed.

  5. The Structured Approach - Disadvantages • Produces satisfactory results only when functions have been identified properly and remain unchanged through time. • Software structure is induced by functions. Thus evolution of these functions may imply important structural modifications. • Guarantees only limited modularizations thereby rendering subsequent modifications difficult and filled with side-effects.

  6. Software Development - The Object Oriented Approach • A paradigm shift from a function-centric approach to an object-centric approach to software development. • Structure induced by players (which constitute the more static part of the system) rather than by functions (the dynamic and evolving part of the system). • Doesn’t replace the structured approach; builds on top of it. • Further modularization achieved through the decoupling of the system into independent objects.

  7. Object Oriented Approach - Advantages • Models the real world more closely. • Is easier to maintain because its structure is inherently decoupled. • Leads to reuse which in turn leads to faster software development and higher quality programs.

  8. Object Oriented Paradigm – Key Features • Abstraction • Encapsulation • Inheritance • Polymorphism

  9. Changing Scenario • Emergence of networks– Can the capabilities of networks be exploited to create an application that is distributed over the network? YES • Increasing software complexity– Can a software be assembled from a collection of pre-built, plug-and-play software components much in the same way as a hardware is created? YES HOW?

  10. Component Technology • A software component is defined as an independent, binary piece of code that can connect at run-time with other software components to provide the desired functionality.

  11. Component Technology - Goals • Basic Interoperability– A software component developed by one developer should be able to interoperate with other components • Versioning– It should be possible to upgrade a component without need to upgrade the entire software • Language Independence– Components written in different languages should be able to communicate • Cross-process Interoperability –Two software components running in two different process spaces should be interoperable • Cross-network Interoperability –Two software components running in two different machines connected over the network should be interoperable

  12. Component Technology – Industry Initiatives • Microsoft’s COM • OMG’s CORBA • SUN’s Java Beans / EJBs

  13. Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs

  14. COM– Key Features • Component Object Model (COM) • A component communication protocol by Microsoft • OS (Windows) dependent • Language independent • Provides a standard way of accessing all kinds of software services – be it in a library (DLL), in another process (EXE) or in another machine (DCOM)

  15. Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs

  16. CORBA Specification • A specification defined by Object Management Group (OMG) • Non-profit organization • Engaged in promoting vendor-independent solution using Object Technology • Language independent • OS independent

  17. Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs

  18. JB/EJB Specifications • Java Beans (JB), Enterprise Java Beans (EJB) • Expounded by Sun Microsystems • Language Dependent • Built around Java Language • Java specification – Controlled by Sun Microsystems • OS Independent

  19. Component Technology – Common Features • All the three technologies built on Protocols that guide the inter-Process communication among processes on same or different systems • Adopt the key features of the object-oriented paradigm • Interface is everything

  20. Component based approach to software development • Software is developed as a collection of collaborating components • Collaboration may be intra-process, inter-process or inter-network • Individual components may be written in multiple-languages (in case of COM) • Components may be ported to multiple platforms (in case of JB/EJB)

  21. Component Based Approach to Software Development Disadvantages of current technologies: • Limited language independence • JB/EJB components limited to Java • COM components support language independence but require a conscious effort • Interacting components must comply to the same standard • JB/EJB components can interact only with other JB/EJB components • Similarly with COM

  22. COM Components – Drawbacks • Allow only limited language independence • Allow inheritance only if both parent & child components are written in the same language • Can be accessed only by COM compliant components • Create DLL Hell

  23. Web Services • An application delivered as a service that can be integrated with other Web services using the ubiquitous Internet Standards (HTTP, XML, SOAP protocols). • Can be implemented using full feature set of any language, object model or platform. • Can be consumed by applications implemented in any language for any platform • Built on and an extension of COM Technology • Abstraction scaled up to higher level • Group of components, capable of delivering a meaningful service, is seen as a reusable unit • The service is extended through Contract (comparable to Interface in Component) • The Contract is published by provider on web

  24. .NET Framework • The Microsoft .NET Framework is a new platform for building integrated, internet-based, service-oriented applications to meet the needs of applications that gather information from, and interact with, a wide variety of sources, regardless of the platformsor languages in use.

  25. .NET Framework - Objectives • Use the Right Language for the Right Job –Cross Language Integration • Execute on many platforms –Platform Independence • Run Once, Run Always –The end of DLL Hell

  26. .NET Framework – Enabling Features • Standardisation of language Architecture • Common data Types, Sys_Lib etc. • Common Language Runtime (CLR) • Comparable to Java Virtual Machine but capable of handling multiple languages • Microsoft Intermediate Language (MSIL) • Comparable to byte code of Java • CLR & MSIL enable JIT compilation on any platform that supports CLR

  27. Software Development using the .NET Framework • Develop applications as a collection of collaborating components or web services that are portable across platforms and can interact across language boundaries • Strengthened by open protocol of accessibility like http, xml etc • Web Services assisted by .NET • Platform & language independence

  28. HailStorm – a user-centric web service • .Net based Web Services • The first paid web-service from Microsoft • Based on Microsoft Passport user Authentication • Domain – Personal Information Management • Helps you manage and protect your information and interaction across all applications and devices • Strengthened by Authentication, authorization and access period

  29. myAddress myProfile myContacts myLocation myNotifications MyInbox myCalendar myDocuments myApplicationsettings myFavouritewebsites myWallet myDevices myServices myUsage Hailstorm Services

  30. SoftwareDevelopment using Hailstorm • Use HailStorm services in your applications for user authentication, routing notifications to the users of your applications

  31. Future • High Independence at Low level • Easy Integration at middle level • Total Convergence at Application level • Any where – Any Time – Any Language – Any OS – Any Device • Thanx

More Related