Impact Of Object Oriented Design Patterns On Software .

2y ago
26 Views
2 Downloads
632.05 KB
7 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Francisco Tran
Transcription

International Journal of Scientific & Engineering Research, Volume 6, Issue 2, February-2015ISSN 2229-5518961Impact of Object Oriented Design Patterns onSoftware DevelopmentR.Subburaj Professor, Gladman Jekese, Chiedza HwataAbstract —Software design patterns are a bonanza for building large Object Oriented (OO) software systems. They provide well-testedand proven solutions to recurring problems that developers address. There are several benefits of using patterns. They can speed up thesoftware development process. Design patterns consolidate learning with an aim to make it easier for designers to use well-known andsuccessful designs developed from expert experience. At the same time software design patterns are too abstract and remain an art thathas to be mastered over time with experience. This paper seeks to evaluate the advantages and disadvantages of design patterns.Index Terms— design patterns, analysis, selection, software development, object oriented, pattern catalog, pattern usage—————————— ——————————1 INTRODUCTIONOBJECT oriented programming (OOP) has evolved toimprove the quality of the programs. However,interesting concepts such as inheritance andpolymorphism were also introduced in OOP to enhancereusability. Object oriented design patterns have beenintroduced in mid 1990s as a catalog of common solutions tocommon design problems, and are considered as standard of‘‘good’’ software designs [1]. There are several methodologiesin Object Oriented Development, of which design patterns isone of them. Due to the fact that Object Oriented Design iscomplex, it is of paramount importance that softwaredevelopers build on the experience of others by making use offrameworks or design patterns. The notion of patterns wasfirst introduced by Christopher Alexander, who identified andproposed solutions to common architectural problems. In hiswork he dealt with the question whether quality inarchitecture can be objective. By examining severalarchitectural artifacts he discovered that ‘‘good’’ qualitydesigns shared some common characteristics, or shared‘‘common solutions to common problems’’ [2]. A designpattern represents a recurring solution to a design problemwithin a particular domain such as business data processing,telecommunications, graphical user interfaces, databases, anddistributed communication software [3].Design patterns facilitate architectural level reuse byproviding “blueprints” that guide the definition, composition,and evaluation of key components in a software system.In general, a large amount of experience reuse is possible atthe architectural level. However, reusing design patterns doesnot necessarily result in direct reuse of algorithms, detaileddesigns, interfaces, or implementations [4], [5]. Itsystematically explains a general design that addresses arecurring design problem in object-oriented systems. Designpatterns also describe the problem, the solution, when toapply it, plus the consequences associated with that specificsolution. It also gives implementation hints and examples aswell as a description or template for how to solve a problemthat can be used in many different situations. The solution iscustomized and implemented to solve the problem in aparticular context. In the Gang of Four (GoF) book, patternstypically have these major elements: Intent, Motivation, ions,Consequences, Implementation, Sample Code, Known Usesand Related Patterns [6]. Although the terminology may differwith the author, all Object oriented design patterns are writtenfollowing the aforementioned factors.This paper is categorized into eight sections; with section 2representing the related work outline, section 3 explainingbasic classes of the design pattern catalog, section 4 designpattern selection, section 5 outlines how to use designpatterns, section 6 describing the advantages anddisadvantages of design patterns in 7, section 8 concluding ———— Dr. R Subburaj is a Professor and Consultant in the Department ofInformation Technology at SRM University, Chennai., India,. Email: subburaj.spr@gmail.com Gladman Jekese is an M.Tech student in Information Technology at SRMUniversity, Chennai, India, E-mail: jgman86@gmail.com Chiedza Hwata is an M.Tech student in Information Technology at SRMUniversity, Chennai, India, E-mail: chiedza11@gmail.com2 RELATED WORKObject oriented design pattern is an active area of researchin software development. Ackerman L and Gonzalez Cexplore the benefits of implementing patterns in softwaredesigns [7]. The article introduces developers and architects tothe idea of a pattern implementation which is an artifact thatallows the codification of a pattern specification for a specificenvironment and can be created and used for different phasesin the software development lifecycle [7]. Rising. L analyzesan example from a small development team and discovers thata novice pattern, called the Mediator, is a perfect fit for thedesign challenges that they had just spent hours battling [8].IJSER 2015http://www.ijser.org

International Journal of Scientific & Engineering Research, Volume 6, Issue 2, February-2015ISSN 2229-5518In [9], an analysis was done to verify the reusability ofdesign patterns and software packages, which uncoveredsome advantages and disadvantages of design patterns. Threeexamples employing design patterns were developed,accompanied by alternative designs that solve the sameproblem, plus a tool to calculate the scores of extensibility wasused and it suggested that in most scenarios the patternsprovide a solution that is most extensible although theconclusion cannot be generalized for all patterns in [10]. Ateam at Erricson developed frameworks based on designpatterns for two years, according to [4], [11]. The history ofdesign patterns and some developments characterizing theadvantages and disadvantages of design patterns arepresented in [12]. Appostollos 2006 evaluates usage of objectoriented design patterns in game development, provingmaintainability although the research was biased towardsgame development only [13].Yacoub, S. A., Ammar, H. H., & Mili A., teaches developersabout the abstraction benefits of design patterns. The paperexplains the benefits that include understanding thedependencies and collaboration between participatingpatterns while hiding implementation details. Douglas C.Schmidt and Paul Stephenson present a case study illustratingthe implementation of design patterns (Reactor and Acceptor)in object-oriented telecommunication software frameworkacross UNIX and Windows NT OS platforms and discuss thetechniques, benefits, and limitations of applying a mmunication software systems [4].Fowler, M. (2003), explains the value of patterns as teachingtools. Written patterns help educate other team members forbuilding and reviewing software and some developers declarepatterns as good or bad instead of appropriate or not [14]. TCline, M.P. (1996), focuses on the advantages anddisadvantages of adopting and applying design patterns,which are a valuable tool for practicing software professionals.The paper presents the practical benefits of design patterns aswell as inhibitors to pattern applications, which proves isbeneficial to IT professionals who want to learn more or desireto promote the use of design patterns [15].962There are 3 basic classes of design patterns;Structural design patternsThis group of design patterns eases software design byidentifying a simple way to realize relationships betweenentities. Such patterns are all about Class and Objectcomposition. Structural class-creation patterns use inheritanceto compose interfaces while structural object-patterns defineways to compose objects to obtain new functionality.Examples of structural design patterns include adapter,decorator, bridge, composite, flyweight, façade and proxy.Creational design patternsThese design patterns are basically concerned with classinstantiation and are composed of two dominant ideas. One isencapsulating knowledge about which concrete classes thesystem uses and the other hides how instances of theseconcrete classes are created and combined [1]. Creationaldesign patterns are further categorized into Object-creationalpatterns and Class-creational patterns, where Object-creationalpatterns deal with Object creation and Class-creationalpatterns deal with Class-instantiation. In greater details,Object-creational patterns defer part of its object creation toanother object, while Class-creational patterns defer its objectcreation to subclasses Gang of Four [17]. The examples ofcreational design patterns are; abstract factory, builder, factorymethod, singleton and prototype.Behavioral design unication patterns between objects and realize theassignment of responsibilities between objects. By doing so,these patterns increase flexibility in carrying out thiscommunication because they shift focus away from flow ofcontrol and concentrate just on the way objects areinterconnected. Observer, chain of responsibility, interpreter,iterator, memento, template method, command, visitor,strategy and mediator are some of the examples of behavioraldesign patterns.IJSER3 DESIGN PATTERN CATALOGDesign patterns can speed up the development process byproviding tested, proven development paradigms. Effectivesoftware design requires considering issues that may notbecome visible until later in the implementation. Reusingdesign patterns helps to prevent subtle issues that can causemajor problems and improves code readability for developersand architects familiar with the patterns. It has taken years toestablish common vocabulary on patterns. One of thedrawbacks to design patterns is that the same names are usedfor different patterns. For example the Value Object pattern(Fowler, Value Object, 2002) described as a pattern for storingmutable data is preferred by Fowler for static and immutabledata while he uses the Data Transfer Object pattern(Fowler,Data Transfer Object, 2002) for the former purpose [1], [16].Design patterns can be grouped according to their usage.4 HOW TO SELECT A DESIGN PATTERNWith many design patterns to choose from; it may bedifficult to find one that addresses a particular problem,especially if the list is new and unfamiliar. The problem ofsearching patterns is defined as the effort of gettinginformation about existing patterns; whereas pattern selectionis described as the problem of deciding which pattern tochoose among all available solutions. Below is an outline ofapproaches that can be used to find the design pattern thatsuits a particular problem.According to the GoF book, there are five main approachesfor searching and selecting design patterns namely; patternrepositories and pattern catalogues, recommendation systems,formal languages, search engines and other approaches [10].In [18], [19], [20], [21], the authors create online patternrepositories in order to increase the availability of patterns. Insuch repositories patterns can be retrieved through searchingcriteria and by manual browsing among various patterns.Furthermore, in [22], [23] several recommendation systems aresuggested in order to suggest the appropriate pattern,IJSER 2015http://www.ijser.org

International Journal of Scientific & Engineering Research, Volume 6, Issue 2, February-2015ISSN 2229-5518according to the problem that the developer wants to solve.There are also several papers that describe approaches that useformal languages in order to represent design patterns andselect patterns according to such a representation [24], [25][26]. Selecting patterns through search engines corresponds tosearches through keywords in engines that crawl and indexpattern descriptions. Finally, there are several otherapproaches that cannot be classified in any of the abovecategories such as [6], [27].According to [28], ways have been proposed that enablesoftware developers to find the adequate design pattern(s) fora given design problem. It remains, thus, a measure avoidingthe impact of the vast amount of design patterns present indifferent design pattern catalogues.Consider how design patterns solve design problems: Accordingto the GoF textbook discussion, design patterns help findappropriate objects, determine object granularity, specifyobject interfaces, and several other ways in which designpatterns solve design problems.Scan Intent sections from all the patterns in the catalog: Eachpattern's intent is to be considered to find one or more thatsound relevant to the current problem. A classification schemecan be used to narrow the search.Study how patterns interrelate: Considering and studyingrelationships between design patterns can help directdevelopers to the right pattern or group of patterns.Study patterns of like purpose: Each catalog classifies designpatterns as creational, structural, or behavioral patterns. Eachwill include introductory comments on the patterns andconcludes with a section that compares and contrasts them.These sections give insight into similarities and differencesbetween patterns of like purpose.Examine causes of redesign: Examining the causes of redesignin most designs to see if the current problem involves one ormore of such and then looking at the patterns that help inavoiding the causes of redesign.Consider what should be variable in the design: This approachis the opposite of focusing on the causes of redesign. Insteadof considering what might force a change to a design,consideration is to be done, so as to realize what has to bechanged without redesign. The focus is on encapsulating theconcept that diverges from the themes of many designpatterns. Consider aspects in which design patterns allowindependent variance thereby letting the designer changethem without redesign.in the pattern relate to one another needs to be achieved.Studying the code helps in learning how to implement thepattern, and this is done by looking at the sample code sectionto find concrete examples of the design pattern in the code.Choice of names for pattern participants is very importantbecause they ought to be meaningful in the applicationcontext. They are usually too abstract to appear directly in anapplication. Nevertheless, it's useful to incorporate theparticipant name into the name that appears in theapplication, as this helps make the pattern more explicitduring the implementation. For example, usage of the Strategypattern for a text composition algorithm might mean havingclasses such as Simple-Layout-Strategy or Text-LayoutStrategy [1]. The next stage involves defining the classes,declaring their interfaces, establishing their inheritancerelationships, and defining the instance variables thatrepresent data and object references. Identifying existingclasses in the application that the pattern will affect andmodifying them accordingly can also be included.Defining application-specific names for operations in thepattern generally depends on the application. Responsibilitiesand collaborations associated with each operation should beused as a guide. Consistency in the naming conventions isimportant, for example, using the "Create-" prefix consistentlydenotes a factory method. Implementing the operations is nowdone to carry out the responsibilities and collaborations in thepattern. The Implementation section offers hints to guidancein the implementation. The examples in the Sample Codesection may be of help as well [1].IJSER5 HOW TO USE DESIGN PATTERNSOnce a design pattern has been selected, the question isnow on the approach that is to be used to apply the designpattern effectively. The following are the steps that can beemployed in the use of a design pattern:The design pattern has to be read through at least once foran overview. While reading, particular attention should bepaid to the applicability and consequences sections to ensurethat the pattern is right for that specific problem. Thestructure, participants and collaborations sections must berevisited and an understanding of how the classes and objects9636 ADVANTAGES OF DESIGN PATTERNSThe following are some of the benefits of OO designpatterns.They can reduce development time as known solutions are usedinstead of reinventing the wheel thereby improving delivery speed.Design patterns promote discovery and learning with anaim to make it easier for designers to use well-known andsuccessful designs developed from expert experience (Chang,2011) [5]. According to Rising (2010) [8], there is a debateabout the merits of providing developers with formal trainingversus simply having access to a large searchable repositorywithin which to search for a pattern to address some stickyproblem. According to Bleistein (2003), engineers findthemselves under increasing pressure to deliver solutions witha high degree of quality in a timely manner [29]. As the ProjectTriangle (2011) describes, project management can only focuson two of the following three facets of a development effort:(a) speed, (b) quality, and (c) cost [30]. 'Each pattern describesa problem which occurs over and over again in ourenvironment, and then describes the core of the solution tothat problem, in such a way that you can use the solution amillion times over, without ever doing it the same way twice’[31].Design patterns provide flexibility and extensibility.Tichy (1998) describes the concept of flexibility as howdesign patterns can improve the structure of software, speedup implementation, simplify maintenance, and help avoidIJSER 2015http://www.ijser.org

International Journal of Scientific & Engineering Research, Volume 6, Issue 2, February-2015ISSN 2229-5518architectural drift. Future changes (extensibility) consistentwith one of these hinges are relatively inexpensive, but forcingthe software to change in other ways is like bending yourelbow backwards; the system normally breaks [32].It is alsobeneficial to use known solutions that are tried and tested.Patterns make the communication of development teams easier.Because design patterns capture distilled experience, theycan provide a communication tool throughout the softwaredevelopment lifecycle and across diverse communities ofdesigners and programmers (Cline, 1996) [15]. This improvedcommunication among software developers is a benefit thatcan empower less experienced developers to produce highquality designs. According to Fowler (2003) [33], an expert ona team can use written design patterns to help educate otherteam members as they work through software requirement,design, and review.Patterns are underspecifiedDesign patterns are underspecified since they generally donot over constrain implementations. This is beneficial sincepatterns permit flexible solutions that are customizable toaccount for application requirements and constraints imposedby the application development. Because they areunderspecified, implementing a pattern on your own for aparticular purpose is one of the best ways to learn about it [4].Design patterns capture knowledge that is implicitly understoodOnce developers are exposed to, and properly motivatedby, design patterns they are eager to adopt the patternnomenclature and concepts. This stems from the fact thatpatterns codify knowledge that is already understoodintuitively. Therefore, once basic concepts, notations, andpattern template formats are mastered, it is straightforward todocument and reason about many portions of a system’sarchitecture and design using patterns [34].They promote a structured means of documenting softwarearchitecturesThis is done by capturing the structure and collaboration ofparticipants in a software architecture at a higher level thansource code. This abstraction process is beneficial since itcaptures the essential architectural interactions whilesuppressing unnecessary details [4]. Design patterns make iteasier to reuse successful designs and architectures.Expressing proven techniques as design patterns makes themmore accessible to developers of new systems. Design patternshelp in the choice of design alternatives that make a systemreusable and avoid alternatives that compromise reusability.Design patterns can even improve the documentation andmaintenance of existing systems by furnishing an explicitspecification of class and object interactions and theirunderlying intent. Put simply, design patterns help a designerget a design "right" faster [1]. Patterns improve thedocumentation and maintenance of existing systems byfurnishing an explicit specification of class and objectinteractions and their underlying intent.Patterns are a known solution for building software systems, andprovide solutions to recurring problemsDevelopers employ design patterns because they make useof tested solutions. According to Bansyia et al; “Softwarereusability reflects the presence of object-oriented964characteristics that allow a system to be reapplied to a newproblem without significant effort”, (Bansiya and Davis, 2002)[35]. Design patterns capture expertise and make it accessibleto non-experts in a standard form. Therefore patterns help inidentifying common solutions to recurring problems. Thesolution is really what the pattern is, yet the problem is a vitalpart of the context. A pattern cannot be fully understoodwithout understanding the problem, and the problem isessential to helping people find a pattern when they need it[15].Design patterns can be used to provide a software hinge oradaptability pointDesign patterns constrain maintenance programmers byreducing the chance of breaking a design pattern’sadaptability point (or software hinge). Object-oriented designpatterns specify the relationships between the participatingclasses and determine their collaboration. Such solutions areespecially geared to improve adaptability, by modifying theinitial design in order to ease future changes [1]. Each patternallows some aspect of the system structure to changeindependently of other aspects.They make it easier to reuse successful designs and avoidalternatives that diminish reusabilityDesign patterns capture the static and dynamic structuresof solutions that occur repeatedly when developingapplications in a particular context [1], [17], [36].Systematically incorporating design patterns into the softwaredevelopment process helps improve software quality sincepatterns address a fundamental challenge in large-scalesoftware development: communication of architecturalknowledge among developers. Patterns can also be used insoftware architecture and, if applied properly, increaseflexibility and reusability of the underlying system. Eachpattern allows some aspect of the system structure to changeindependently of other aspects [13].Improved IT process and communicationDesign patterns coordinate the entire process andcommunity through a common vocabulary. They assist inimproving software communication quality since they addressa fundamental challenge in large-scale software development;communication of architectural knowledge among developers[4].Constrain maintenance programmersRequire maintenance programmers to understand andpreserve the integrity of the design patterns duringmaintenance changes. This therefore ensures preservation ofthe credibility of the quality of design patterns.Design patterns can be used reactively and proactively throughfragmenting and abstraction of design.Design patterns can be used reactively as a documentationtool to classify the fragments of a design and proactively tobuild robust designs with design-level parts that have wellunderstood trade-offs [15].Design patterns can turn a trade-off into a win-win situation byallowing multiple facets of quality that are often viewed as mutuallyexclusive.The notion of patterns was first introduced by ChristopherAlexander, who identified and proposed solutions to commonIJSERIJSER 2015http://www.ijser.org

International Journal of Scientific & Engineering Research, Volume 6, Issue 2, February-2015ISSN 2229-5518architectural problems. In his work he dealt with the questionwhether quality in architecture can be objective. By examiningseveral architectural artifacts he discovered that ‘‘good’’quality designs shared some common characteristics, orshared ‘‘common solutions to common problems’’ [2].Adaptability must be explicitly designed into the software indesignated places.7 DISADVANTAGES OF DESIGN PATTERNSThe following provides the views of critics;Remains an art which can only be mastered after using it formany yearsDevelopers can still make a mistake of employing a designpattern where it is not necessary, for example given asubsystem does not necessarily qualify the usage of a proxypattern. It is dependent on experience of usage by thedevelopers. According to Manolescu (2007), adoption rates arestill low for IT organizations due to lack of discovery andlimited education around how to apply design patterns tospecific domain contexts. A survey from Manolescu (2007)indicates that only half of the developers and architects in ITorganizations use patterns. Additionally, ninety percent ofrespondents that claim to be pattern practitioners hadn’t takenany educational courses on design patterns. Manolescuattributes this low adoption rate to the fact that findingpatterns relevant to a particular problem isn’t trivial andbecause the design pattern world doesn’t have anauthoritative index [16]. This challenge is, in part, due to thenature of how patterns often match a problem domain andeach domain needs a distinct approach (Bleistein, 2003) [29].Over engineering and under-engineeringUsing patterns and languages of patterns to generatearchitectures may lead to over-engineering the design of aprogram. Over-engineering happens when a design or a pieceof code is more flexible or sophisticated than it should be,most likely in preparation for future extensions that may ormay not come. Over-engineering is the opposite of underengineering, which occurs when a programmer chooses thepath of least resistance to design and implement a program,leading to a solution that is suboptimal and that must bechanged to adapt to foreseeable changes. Under-engineering ismuch more frequent than over-engineering, becauseprogrammers often work under time and cost pressures and,thus, cannot spend the required time to carefully think andcraft their changes. Time and cost pressures often lead to thedecay of the program design and implementation. A solutionto both under- and over-engineering is to apply refactoringprior to modifying the design or the code of the program. Therefactoring step is necessary to clean up the program andmakes it ready for change, at the right time and with the rightamount of work. Refactoring to or away from patterns is thusa preliminary step before modifying the program, like dustinga room is before painting it. It contributes to the change bymaking it easy and safe to perform, even though it is not thechange per se [12].They target the wrong problem sometimes965The need for patterns results from using computerlanguages or techniques with insufficient abstraction ability[37]. Under ideal factoring, a concept should not be copied,but merely referenced. But if something is referenced insteadof copied, then there is no "pattern" to label and catalog.Conway’s law suggests that “organizations which designsystems are constrained to produce designs which are copiesof the communication structures of these organizations”(Conway, 1968) [38]. Although Conway’s law was not verifiedat the time of its publishing it was heavily cited for decadesand recent studies from Harvard Business School (McCormacket al., 2008) and Microsoft research (Agape et al., 2008) confirmit [39].Use of design patterns does not necessarily improve qualityMany studies in the literature are based on the premise thatdesign patterns improve the quality of object-orientedprograms. Yet, some studies suggest that the use of designpatterns does not always result in “goo” designs. For example,a tangled implementation of patterns impacts negatively thequality that these patterns claim to improve. Also, patternsgenerally ease future enhancement at the expense ofsimplicity. Thus, evidence of quality improvements throughthe use of design patterns consists primarily of intuitivestatements and examples. There is little empirical evidence tosupport the claims of improved reusability, expandability andunderstandability as put forward in when applying designpatterns. Also, the impact of design patterns on other qualityattributes is unclear.Developers and managers must recognize that learning acollection of patterns is no substitute for design and implementationskillsIn fact, patterns often lead team members to think theyknow more about the solution to a problem than they actuallydo. For example, recognizing the structure and participants ina pattern (such as the Reactor or Acceptor patterns)Design patterns may increase complexityDesign pattern flexibility often comes at a price ofcomplexity as dynamic, highly parameterized software isharder to understand and document (Wendorff, 2001).Patterns are said to be half-baked, that means one always haveto finish the development and adapt it to their ownenvironment. The research indicates that the poor judgmentsof individual software developers often add complexitywithout benefit which results in designs that become difficultto alter or remove [40].Conventional pattern catalogs are too abstractOne of the main concerns with conventional patterncatalogs [1], [17], however, is that they are too abstract.According to research, overly abstract pattern descriptionsmake it difficult for developers to understand and apply aparticular pattern to systems they were building in most cases.Use of inappropriate design patternsAs usual, however, restraint and a good sense of aestheticsare required to resist the temptation of elevating complexconce

At the same time software design patterns are too abstract and remain an art that has to be mastered over time with experience. This paper seeks to evaluate the advantages and disadvantages of design patterns. Index Terms— design patterns, analysis, selection, software development, object oriented,

Related Documents:

method dispatch in different object-oriented programming languages. We also include an appendix on object-oriented programming languages, in which we consider the distinction between object-based and object-oriented programming languages and the evolution and notation and process of object-oriented analysis and design, start with Chapters 5 and 6;

Object Class: Independent Protection Layer Object: Safety Instrumented Function SIF-101 Compressor S/D Object: SIF-129 Tower feed S/D Event Data Diagnostics Bypasses Failures Incidences Activations Object Oriented - Functional Safety Object: PSV-134 Tower Object: LT-101 Object Class: Device Object: XS-145 Object: XV-137 Object: PSV-134 Object .

as object–oriented design. Object–oriented development approaches are best suited to projects that will imply systems using emerging object technologies to construct, manage, and assemble those objects into useful computer applications. Object oriented design is the continuation of object-oriented analysis,

Object oriented design methods emerged in the 1980s, and object oriented analysis methods emerged during the 1990s. In the early stage, object orientation was largely . and extensible system. Whole object oriented modeling is covered by using three kinds of models for a system description. These models are: object model,

object-oriented programming language is based on a kind of old object-oriented programming language. For example, though C language is an object-oriented programming language, it still retains the pointer which is complex but has strong function. But C# improved this problem. C# is a kind of pure object-oriented language.

Reusability, CK Metric, Object - Oriented. 1. INTRODUCTION Object oriented systems continue to share a major portion of software development and customer base for these systems is on the rise. This is because there are many advantages in taking the object oriented concept. The weakness though is that most object oriented systems tend to be .

Object built-in type, 9 Object constructor, 32 Object.create() method, 70 Object.defineProperties() method, 43–44 Object.defineProperty() method, 39–41, 52 Object.freeze() method, 47, 61 Object.getOwnPropertyDescriptor() method, 44 Object.getPrototypeOf() method, 55 Object.isExtensible() method, 45, 46 Object.isFrozen() method, 47 Object.isSealed() method, 46

2 Database System Concepts 8.3 Silberschatz, Korth and Sudarshan Object-Oriented Data Model! Loosely speaking, an object corresponds to an entity in the E- R model.! The object-oriented paradigm is based on encapsulating code and data related to an object into single unit.! The object-oriented data model is a logical data model (like