Wednesday, June 5, 2019

Two Object Oriented Methodologies Booch And Rambaugh Information Technology Essay

Two intention point Methodologies Booch And Rambaugh In framingation Technology EssayIn this paper Object- orientated System discipline methodologies i-e Booch, Rambaugh, argon reviewed and comp atomic number 18d with each a nonher(prenominal) with a focus on their national subprogrames. We have developed a mannikin found on a set of criteria to compare the cardinal methods. The fix of this simile is to better understand the essence philosophies and processes of each method, and native activities that each method endures. The aim of this descriptions and comparisons are not to criticize the philosophies of theses methodologies, but to give a description of the deuce methodologies that will facilitate the readers to better understand each methodological analysis, and to what extent the dickens methodologies are intention orientated. And also this comparison provides an in diversenessality in selecting and evaluating each methodologys process.(doc1)The software p ackage engineering field has been evolving over the past thirty years, but it has neer arrant(a)ly solved the software crisis. Software discipline methodologies, as an meaty element of the discipline of software engineering, have also evolved from the shallow and informal methodologies of the belatedly 1960s to the heading-oriented methodologies of the 1990s and the new millennium (doc1). at that place is a rapid culture in the object oriented paradigm during the past years and the meaning(a) reasons for much(prenominal) rapidness are that the historical human applications are baffleed in a better way as well as the object oriented paradigm enables the reus capacity of different artifacts during the development of a software dodging.Object oriented system development approach facilitates the re-use of software components. A system developed with Object Oriented Methodology (OOM) on component basis can re-use the existing components effectively, and as well as its comp onents can be shared by whatsoever other systems too. One can achieve higher productivity, better quality and low maintenance cost by adopting the OOM.Since, the object-oriented methodologies (OOM) are still growing and lodge to evolve, and there are a number of popular OOMs circulating around, but none of them is widely accepted. The software community is yet not agreed upon some(prenominal) organic issues. (1)A methodology is a systematic collection of techniques guidelines for how to build, buy, maintain and/or enhance software products. A methodology provides a basis for communication, a toolkit of techniques and a basis for repeatable, reliable software engineering. The term, method, refers to an approach to activities generally adhering to common principles 14.Object-oriented software development methodologies, starts from the appearance of hybrid methodologies, then move to seminal methodologies, and the development of integrated (third-generation/heavyweight) methodolog ies and their agile (lightweight) counterparts. The spare-time activity are the categories of Object oriented methodologies 15Seminal Shlaer-Mellor, Coad-Yourdon, RDD, Booch, OMT, OSA, OOSE,BON,Hodge-Mock, Syntropy, FusionIntegrated OPM, Catalysis, OPEN, RUP/USDP, EUP, FOOMAgile DSDM, Scrum, XP, ASD, dX, Crystal, FDDAlthough the promises, that the object-oriented software development provides, are based on solid grounds but still there is a confusion among the organization on when and how to set up in this new technology and also whether to invest or not. One of the reason for such confusion is that a great number of methodologies have been evolved during the last years. The other reason for confusion is closely link up to the attractiveness of object-oriented software Many vendors sticks the label object-oriented to their products without delivering important features as King (1989, p. 24) states If I were trying to sell (my cat) I would argue that he is object-oriented.Resear ch worryThe research question we are going to answer isTo what extent the two Object Oriented Methodologies Booch and Rambaugh methodologies are Object Oriented and to what extent the methodologies help the software development organizations?. The selection cretaria for the the above two OOM is mentioned in the section 1.4.2.Since the object oriented paradigm evolved in different areas of the software development simultaneously, accordingly fundamental concepts were different in different methodologies and were not completely standardized. Each OOM developed in a particular software domain such as real term systems and Information systems, although some cross-over exists in some concepts among the methodologies. on that pointfore, some methodologies are best in the development of applications that belong to the domain for which the methodology is evolved, while other can be utilize more generally. Even though OOM that evolved in the same domain may differ enough in different co ncepts such as process and notation and as a result can effect the software engineering goals.MotivationIn the recent years, an overwhelming popularity of object oriented analysis and object has been witnessed. This phenomenon is evidenced by the number of papers and articles that are published in various conference proceedings, journals, books, and other forms.But There are still a large part of the business world that uses traditional software development approach for applications development. And on the technology side, there is an all-embracing development in the area of Object-Oriented technologies that promises better quality and productivity through reusability, and also encourages team work.The following observation is made in a muckle active the organizations that uses OOM, performed by SumitA recent survey of IS managers revealed that 39% of organizations have adopted OO technology in some form. Nonetheless, OO development methodologies are used in only 5% of IS proje cts are developed in OO methodologies (Glass, 1999). For a specific application the first task is to decide which methodology is most appropriate for its development. sometimes we may have to adapt different methodologies.Therefore an organization, that wants to switch to object oriented technology, faces one important question which OOM is appropriate and should be chosen? A systematic comparison of available OOMs can answer such a question in a better way before selecting one of them. There are number of papers and articles that compare different aspects of the OOMs such as the reusability, documentation and others. So there is a need for the comparison which considers their system development core philosophy including all the concepts that methodologies provide in their development process. Unfortunately, the comparison of these methodologies is complicated because each OOM has its own set of definitions of the techniques, concepts, notations and are composed of informal descript ions, therefore the comparison of the methodologies depends largely on the interpretations and perceptions of the person who performs the comparison10.Such a comparison facilitate the organization that are developing software with traditional approach and straightaway these organizations want to switch from the traditional software development approach to object oriented approach.. We also want to improve the understanding of these methodologies through this comparison, and to provide an ease in selecting, and evaluating the methodologies. The other purpose is to provide knowledge to the individuals that are interested to get the knowledge about object-oriented concepts, to what extent the two methods are object oriented, and how they relate to one another. Such interest in some cases is academic (e.g., students). Similarly individuals in companies or organizations want to evaluate and select a methodology to be used in software development process. We believe that sometime these groups are precondition short time and resources to make this decision, therefore comparisons like this will provide a shortcut means of selection.Research Methodology and comparison issuesFirst we will review the existing software development methodologies (seminal methodology) that are object-oriented. We will study their system development processes to get a knowledge base about the object oriented technology. The purpose of this study is to understand their system development processes and internal activities involved in these development processes. Then we will review the two methods using a process-centered template, where we will summarize the two methodologies, and the activities and techniques discuss in the two methodologies will be highlighted.In the second step we will evaluate and compare Booch and Rumbaugh Object Oriented. We will use books, journals, proceedings, and internet sources as the data sources about the object oriented methodologies and ongoing research to gain the knowledge base.This embrace compares the two object oriented methodologies Booch method and Rambaugh method, by considering their system development core philosophy.A research has been done in Hewlett Packard Laboratories by Arnold and his colleagues 1, in which several comparing criteria are defined in the form of questions for comparing Object oriented Methodologies. These comparing criteria are based on the concepts, notations, process, and pragmatics of the OOM methodology. Influenced by the above research, this report presents a framework to compare the two selected methodologies using the same set of criteria form the above research. The framework uses these set of comparing criteria for comparing the concepts, notations, process, and pragmatics of the two selected methodology which are defined in the section 1.5.1 under the heading of comparison variables. utilise such framework helps us to avoid misunderstanding and misinterpretation of the two methods during the comparison process. Based on this framework, the two methods are extensively compared. The results are presented in a set of tables. Since the results are in tabular form so the similarities and differences as well as the strengths and weaknesses of the two methods can easily be seen. comparing VariablesAs mentioned above, this report uses four main categories of the two methodologies in the comparison which are defined as followsConceptsConcepts are related to the conceptual underpinnings of the methodology that makes it object-oriented, and explians how the concepts such as object, form, state, inheritance, aggregation, and information hiding are defined and dealt by the methodology? branchThe methodology describes what steps to be taken and in what order to gain certain task in develoment process. How well the methodology specifies the process varies largly from methodology to methodology.NotationThe methodology describes tecniques (textual, and /or graphical) to capture and re present information within the development process. Some methodologies describe graphical techniques only, while others specify the form and content of whole documents.PragmaticsThe pragmatic criteria concentrate on nontechnical features.Pragmatics covers issues like needed resources, expression suitability, learning of the instance tools, required expertise, and domain applicability.(8)Comparison variables are listed in Table 1 under each category. The selection criterion for these variables is objectiveness. The aim of this report is to do the objective comparison of methodologies. That is, hard facts are produced by these variables about a methodology showing that a methodology either body forths or does not support these variables. This selection criterion has one limitation. That is, no fine grained information regarding a variable is provided in this report for the comparison. Typically, the degree to which a methodology supports a variable is not answered in this comparis on. In order to alleviate this shortfall for some variables, the report distinguishes explicit methodology support from implicit methodology support in the comparison and provide fine grained information if appropriate.The definitions of these variables in Table I are delayed until Section 3 when the selected OOADMs are compared.Table 1 Comparison variablesCategoryVariablesConceptsClass/Object, Abstract Classes, Meta-Classes, Encapsulation, Inheritance, Association, assemblage, Methods/Messages, Type of Communications among objects and classes, ConcurrencyProcessDevelopment Process Deliverables,Development Context,Aspects of the Development Life-Cycle,Partitioning Mechanism,The Life-Cycle of the MethodologiesNotationsStatic Concepts, active Concepts,Explicit Rules for Notations SymbolsPragmaticsSystem Size,Programming Languages SupportSelection of OOMsAs mentioned above that this report compare the following two OOM for comparison.Object-Oriented geting and Techniques by J. Rumba ugh, et al. Rumbaugh 91Object-Oriented Analysis and visualize by G. Booch Booch 94The selection of OOMs is based on three criteria. First the Object Oriented Methodologies (OOM) must be published in text book form so that adequate information is available for our comparison which narrowed down our selection to those OOMs that are available in the text book form. Second the OOMs should be well-known and must be accepted by the software development community as real object-oriented methodologies. Third the methodologies must be supportred by CASE tools.The two OOM, selected in this report for camparison, fulfill and satisfy the three criteria 1, 10. Both Booch, and Rumbaugh, which are the most widely used OOM, have evolved either from the real time domain or information processing domain and also are used in general. The two methodologies has gained significant attention so cold in the software development community and are well documented at the same time.These criteria might exclu de some well-known OOMs or recent developments in the OOM, but sufficiency, maturity and general acceptance of methodologies are the primary fatalitys for software development practice.Literature reviewLimitationThis paper evaluates the aforementioned methods by marker them against a set of criteria. It is not the goal of the paper to answer the question which one is the best? But rather to show the differences between methods and to allow conclusions be drawn as to their applicability.Remaining of report is divided into four sections. Section 2 provides a brief introduction of the two methodologies. Section 3 contains the comparison of the two methodologies. Section 4 presents the conclusion for the comparison of the two OOMs. Finally, section 5 contains the references to the literature used for this research.Brief introduction Of the Booch And Rambaugh (OMT) MethodsBooch (1991, 1994)Booch introduced object oriented methodology in his book published in 1991. He was the first one t o give the idea of the object-oriented approach in software development process, which he called system heading 23. He was popular at that for his landmark paper Booch 1986 and for the work on Ada program design. He then introduced the analysis methodology to his design and extended his design model as a repeating process which he called The Micro Process) within a development process which is referred as The macro instruction Process. The macro process is shown in the figure 1 below as prescribed by Booch which is a self-iterative processFigure 1- The Macro Process -Booch 1994These two processes are discussed in the next sections.The Macro ProcessThe macro process consists of the following steps 2 3 4.1. Establish core requirements for software (conceptualization).2. Develop a model of the systems desired behavior (analysis).3. Create architecture for the implementation (design).4. Evolve the implementation through successive refinements (evolution).5. Post-delivery evolution man agement (maintenance).The Micro ProcessThe micro process consists of the following activities as shown in figure 2 below 2 3 4The classes and objects are identified at a condition abstraction level.Figure 2-The Micro Process Booch 19942. Previously identified classes and objects meanings are complete by defining the Semantics for every class and object, as well as the behavior of the system and its components are determined.3. The larboard of classes and objects as well as their implementation are specified. Decisionsabout the representation of the classes and objects are made in design model.Rambaugh OMT (1991)Rumbaugh introduced Object Modeling Technique (OMT) in 1991.OMT consists of following three major models and then it defines a method for integrating them 11 12.1. The Object Model2. The Dynamic Model3. The Functional ModelThe object modelIn this model, Objects static structure and relationships among these objects are determined within a system. The following are the main concepts used in this modelobjectclassoperationattributeassociationaggregationInheritanceDynamic modelThis model gives a description about the dynamics of the objects and their changes in states. This model shows the essential characteristics that change over time in a system by observing the objects behavior over time, and by exploring control and matters flow among the objects. The control aspects of a system are specified and implemented in this model. The following are the main concepts in this modelstatesub/super stateeventactivityactionFunctional modelThis model shows information about the data flow within a system and the outside world. The following are then main concepts of this modelprocessdata flowdata storeactor (source/sink)control flowOMT consists of five var.s.1. Analysis2. System physique3. Object Design4. Implementation (coding)5. TestingOMT processes considers the primary features in the first three phases of development (i-e Analysis, System Design and Object D esign) and are explained in following sections. The following figure 3 shows these processes.Figure 3.-The OMT process- Derr 1995.1. Analysis this phase goal is to build a comprehensible and correct model according to the real world situation. The initial problem statement is developed from the requirements of the users and information that are provided by developers and managers. The analysis phase produces the following deliverables 11 12Problem StatementObject Model, which consists of Object Model Diagram and data dictionaryDynamic Model, which consists of State Diagrams and Global EventFlow DiagramFunctional Model, which consists of Data Flow Diagram and constraints2. System design on the bases of architectural design of the system and problem domain, the system is partitioned into subsystems. The following are the system design phase deliverablesSystem Design Document consists of architectural design of the system and high-level strategic decisions for implementing data store s in the form of data structures, files, and databases.3. Object design based on the analysis model, the goal of this phase to provideImplementation details that include the domain infrastructure classes along with the internal objects needed for implementation. The following are the object design phase deliverables slender Object ModelDetailed Dynamic ModelDetailed Functional Model4. Implementation in this phase the system that is designed so far is translated into programming language code and hardware.5. Test The entire System that is developed is verified in this phase. Testing includes system level and scenario based tests.Comparison Of Booch and Rambaugh methodsThe framework used in this paper is considering the following major areas of each methodology for comparisonConceptsProcessNotationsPragmatics3.1 ConceptsA method to be consider as object oriented, it should support concepts that are related to the object oriented methologies. This comparison provides help in evaluat ing the method to the extent it is is object oriented. Therefore , in this paper we are comparing object oriented concepts of the two methodologies, Booch and Rambaugh, in the following categories.Concepts, such as Class, Object, etc.The relationships such as Inheritance and AggregationTypes of communications between objects and classes.Concurrency mechanismsObject is the fundamental concept of every object-oriented method, that must be supported by the method. An object encapsulates its internal state (or attributes) and provides a set of operations (methods/messeges) as an interface for manipulating the state. Whereas a class is a template which describes the attributes and interface of a set of objects. Object instances are produced by defining class variables.5Table 1 lists comparison of the object oreinted concepts that both methodology provides. A Y in the box for each concept represents that an artifact is provided by the coresponding methodology.Table 1. Object Oriented conc eptsMethodRumbaughBoochclasses/objectsYYabstract classesYYmeta-classesYYEncapsulationYYsingle inheritanceYY seven-fold inheritanceYYAggregationYYAssociationYYmethods/messagesYYTotal99 hearty world is concurrent, so object oriented methods often uses concurrent objects in the analysisphase to model it.Objects remain in passive mode, until an operation is invoked by another object to bring them in active mode. If there are more than one thread of control associated with active object, then it is called internally concurrent object. Therefore object oriented methods should support ways to access the shared data in concurrent systems.5Table 2. ConcurrencyMethodPassiveActiveinternally concurrentRumbaughYYYBoochYYCommuniication provides information flow and synchronization between objects that are involved in the communication.In synchronal communication the sender object send a messege to the reciever object and suspend execution until it receives an aknowlegment message from the recie ver, whereas in asynchronous communication the sender does not waitress for the aknowlegment and continues its execution.Sequential systems uses procedural call whereas concurrent object systems uses remote procedure Call for communication.Table 3. CommunicationMethodSynchronousAsynchronousProcedural outside procedureRumbaughYYYBoochYYYProcess3.2.1. Deliverables that are produced during the Development ProcessA number of different types of deliverables are generated during the development process of a system. These include a number of specifications likely requirements, analysis, design, subsystem, and test cases. Particularly, in object-oriented development process, object and classes specifications are very important. Following criteria is used to find out the deliverables that each methodology generates during the development process0 shows no deliverable is generated.1 shows deliverable is generated, but details are not provided.2 shows deliverable is generated and also well de fined.3 shows deliverable is generated, a definition is provided, and an example is given.4 shows deliverable is generated, a definition is provided, and an example is given, and a definition for the process is provided.5 shows deliverable is generated, a definition is supplied, an example is given, a definition for the process is provided, and heuristics are provided.The following table 4 represents the results of this ratingTable 4 Development process deliverablesMethodRumbaughBoochRequirement Specification21DesignSpecification22Test Cases00Object/ClassSpecification51SubsystemSpecification01Totals953.2.2. Development ContextsA set of constraints pass off during the development process which are established by development context. The following criteria are used to evaluate that whether each methodology explicitly discusses the constraints that are established by the development context, or not within the method.A Y in the With Prototyping column shows that prototyping is discuss ed explicitly in the methodology.A Y in the As Prototyping indicates that prototypes iteratively deliver the system and methodology produces prototypes into production.A Y in the With utilise shows that the methodology explicitly incorporate the reuse products into the methodThe For Reuse indicates whether the methodology delivers recyclable products for other processes or not.Table 5 Development ContextMethodRumbaughBoochWith PrototypeYAs PrototypeWith ReuseYYFor ReusePartialYAspects of the Development Life-CycleThe whole development life cycle of a methodology gives us a suggestion about the completeness and consistency of the methodology. If a methodology covers all aspects of the development lifecycle during the development process then it ensures the completeness and the consistency of the methodology and it is useful to the organization as a complete and consistent methodology.Therefore, complete life cycle coverage is very important to a life cycle with a limited coverage.F ollowing table 6 values shows these aspects0 shows this feature is not covered.1 shows this feature is covered, but with no details.2 show this feature is covered with definition.3 shows this feature is covered, a definition is given with an example (at least one).4 shows this feature is covered, a definition is given with an example (at least one) and with defined process.5 shows this feature is covered, a definition is given with an example (at least one) and with defined process, and heuristics are provided.Table 6 Development process life cycle coverageMethodRumbaughBoochDomain Analysis04Requirement Analysis52Enterprise Modeling00Design55Implement34Test20Total1515In software engineering Extensibility of the system design is a systematic measure of the ability to last or continue. A level of efforts is required to extend a system in range or scope.Table 7 ExtensibilityMethodCompleteness concurrenceExtensibilityRumbaughYYYBoochNNNTable 8 Process propertiesMethodWell-definedsteps(p rocess)Pure or hybrid attributableacross lifecycleRumbaughYHYBoochPartialPPartitioning MechanismWhen system size increases, then at a particular time, the visibility of certain information about the objects of interest is very crucial and to limit this visibility a partitioning mechanism is required. Each methodology was studied carefully to seek such mechanisms it provides. So the information in the table below was the outcome.Table 9 Partition mechanismMethodPartitioning MechanismRumbaughSubsystemsBoochSubsystemsThe Life-Cycle of the MethodologiesThe development life-cycle of each methodology was carefully reviewed so as to determine that whether the methodology follows a sequential (i-e Waterfall), iterative or recursive strategy because it is the crucial requirement for project planning. Otherwise it will yield unexpected results with high risk and would lead to total failure. The following table 10 shows that which methodology follows what strategy.Table 10 life cycle property MethodRecursiveIterativeSequentialRumbaughYBoochY3.3 Notations3.3.1. Static ConceptsEach methodology was reviewed to determine that how each methodology represents the following conceptsAggregation what are the components an object is a composed of.Communication How the classes or objects communicate with each other(i-e by sending message to one another)differentiation An object is represented as a generalization, or specialization, of another class or object?Module Interfaces The physical implementations of objectsQualifications for Reuse How much each methodology encourages the reuse of different components of development process.These concepts within each methodology indicates that how the models are used. The table 11 below shows the notations for these concepts.Table 11 Static ConceptsMethodRumbaughBoochAggregationObject ModelClass DiagramSpecializationObject ModelClass DiagramCommunicationScenarioClass DiagramModule InterfacesModuleQualifications f

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.