0% found this document useful (0 votes)
4 views10 pages

Understanding Object Technology in Java

The document provides an overview of object technology, including its principles, strengths, and historical milestones. It highlights the use of object technology in various applications such as client/server systems and real-time systems. Additionally, it contrasts object-oriented design with structured design, emphasizing encapsulation and code reuse.

Uploaded by

Mark
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views10 pages

Understanding Object Technology in Java

The document provides an overview of object technology, including its principles, strengths, and historical milestones. It highlights the use of object technology in various applications such as client/server systems and real-time systems. Additionally, it contrasts object-oriented design with structured design, emphasizing encapsulation and code reuse.

Uploaded by

Mark
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Object Oriented Development

with Java
(CT038-3.5-2)

Object Technology
Introduction

Prepared by: Lee Kim Keong First Prepared on: June 13 Last Modified on: April 19
Quality checked by: null
Copyright 2019 Asia Pacific University of Innovation and Technology
Learning outcome

• At the end of this lesson, you will be able


to
– Define object technology and its strengths
– Explain the history of object technology
– Discuss how object technology is used today

CT038-3-2 Object Oriented Development with Java Object Technology


What Is Object Technology?

• A set of principles
(abstraction,
encapsulation,
polymorphism) guiding
software construction,
together with languages,
databases, and other tools
that support those
principles. (Object
Technology - A Manager’s
Guide, Taylor, 1997.)
CT038-3-2 Object Oriented Development with Java Object Technology
The Strengths of Object
Technology
• Reflects a single paradigm
• Facilitates architectural and code reuse
• Reflects real world models more closely
• Encourages stability
• Is adaptive to change

CT038-3-2 Object Oriented Development with Java Object Technology


The History of Object Technology

• Major object technology milestones


Simula C ++ The UML

1967 Late 1980s 1996

1972 1991 2004

Smalltalk Java UML 2

CT038-3-2 Object Oriented Development with Java Object Technology


Where Is Object Technology
Used?
• Client/Server Systems and Web
Development
– Object technology
allows companies to encapsulate business
information in objects and helps to distribute
processing across the Internet or a network.

CT038-3-2 Object Oriented Development with Java Object Technology


Cont’d

• Real-time systems
– Object technology enables real-time
systems to be developed with higher
quality and flexibility.

CT038-3-2 Object Oriented Development with Java Object Technology


Differences Between OO and
Structured Design
• Object-orientation (OO)
– Melds the data and data flow process
together early in the lifecycle
– Has a high level of encapsulation
– Promotes reuse of code differently
– Permits more software extensibility

CT038-3-2 Object Oriented Development with Java Object Technology


Discussion

• What is your perception of object


technology?
• What do you perceive as object
technology’s strengths? Its weaknesses?
• Why are you making the shift to object
technology?

CT038-3-2 Object Oriented Development with Java Object Technology


Q&A

CT038-3-2 Object Oriented Development with Java Object Technology

Common questions

Powered by AI

Encapsulation contributes significantly to the stability and adaptability of software systems by allowing a class to hide its internal state and requiring all interaction to occur through an object's methods . This isolation of the internal state ensures that changes to a class's implementation do not affect other parts of a program, allowing the system to remain stable when changes are made . Furthermore, it supports adaptability by permitting developers to modify the internal implementation without impacting external interfaces, thus enhancing system maintainability .

Object technology reflects a single paradigm, facilitating architectural and code reuse, which leads to efficiency in development . It mirrors real-world models more closely, allowing for more intuitive development processes and stable systems . Additionally, it is adaptive to change, making it easier to update and maintain systems over time compared to the rigid structures often found in traditional design methods . In contrast, traditional structured design is often less flexible when it comes to modifying the data flow process and extending software capabilities .

Object technology models real-world systems more naturally by using objects to represent entities and their interactions, which mirrors how we perceive and interact with the world around us . This paradigm aligns more directly with the concept of 'entities', each having both data and behavior, thereby closely representing real-world scenarios, unlike structured programming which separates data and operations . As a result, it becomes easier to conceptualize and manage complex systems by aligning software design with real-world processes and entities .

Object technology permits greater software extensibility through its support for inheritance and polymorphism, which allows new functionality to be added without altering existing code . This extensibility is enhanced by encapsulation, which confines the impact of changes within a software module, reducing the likelihood of regression errors . By supporting modularity and reusability, developers can build upon existing objects to create new ones, accelerating development and reducing the long-term costs of software maintenance .

In client/server systems and web applications, object technology encapsulates business information within objects, facilitating modularization and promoting separation of concerns . By distributing processing across a network, systems become more efficient and scalable . This approach enables developers to manage complex data more effectively and adjust rapidly to changes in business needs, offering a significant advantage over traditional systems .

Simula, developed in 1967, introduced the concept of classes and objects, laying the groundwork for object-oriented programming . Smalltalk, in 1972, expanded these ideas by fully embracing the object model and introducing the concept of a graphical user interface . In the late 1980s, C++ added object-oriented features to C, enhancing software performance and complexity management . Java, introduced in 1991, brought object technology to the forefront of web and enterprise application development with its platform independence and ease of use, further popularizing object-oriented programming .

While object technology offers significant advantages, it also has weaknesses such as increased complexity in the initial system design phase due to the need to define objects and their relationships . It can lead to performance overhead because of the abstraction layers and dynamic behavior, such as polymorphism . Additionally, the sometimes steep learning curve associated with understanding and effectively implementing object-oriented principles can pose a challenge for developers new to this paradigm .

Object technology is guided by key principles such as abstraction, encapsulation, and polymorphism. Abstraction allows the focus on essential qualities rather than specific characteristics, thus simplifying complexity . Encapsulation enables the bundling of data with the methods that operate on that data, restricting direct access to some of an object's components and thereby reducing system complexity . Polymorphism permits objects to be treated as instances of their parent class, making it easier to add new classes of derived objects without modifying existing code, thus enhancing code extensibility and reuse .

Organizations transitioning to object-oriented design from structured design may face challenges including the need to retrain staff to understand and apply object-oriented principles . There can also be resistance to change from developers accustomed to procedural programming. Additionally, the initial setup for object-oriented systems can be complex, requiring a redesign of existing systems to fit the object model . These challenges, however, are often outweighed by the long-term benefits of scalable, maintainable, and reusable code .

Object technology enhances the development and flexibility of real-time systems by enabling higher quality development through encapsulation and polymorphism . Encapsulation allows developers to isolate faults within a system and reduce interdependencies, which is crucial for the reliability of real-time applications . Polymorphism provides the necessary flexibility to implement dynamic behavior necessary in real-time operations, simplifying modifications and the enhancement of system functions without disrupting existing processes .

You might also like