09.07.2015 Views

Comparative study on various approaches of identifying classes in ...

Comparative study on various approaches of identifying classes in ...

Comparative study on various approaches of identifying classes in ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<str<strong>on</strong>g>Comparative</str<strong>on</strong>g> <str<strong>on</strong>g>study</str<strong>on</strong>g> <strong>on</strong> <strong>various</strong> <strong>approaches</strong> <strong>of</strong> <strong>identify<strong>in</strong>g</strong> <strong>classes</strong><strong>in</strong> object oriented design.Faridah Hani Mohd.Salleh 1 , Hidayah Sulaiman 2 , Zar<strong>in</strong>ah Kasirun 31 Department <strong>of</strong> Computer Science2Department <strong>of</strong> Informatics3 Department <strong>of</strong> S<strong>of</strong>tware Eng<strong>in</strong>eer<strong>in</strong>g, Universiti Malaya1, 2 College <strong>of</strong> Informati<strong>on</strong> Technology, Universiti Tenaga Nasi<strong>on</strong>alKM7 Jalan Kajang-Puch<strong>on</strong>g43009 Kajang, Selangor, MalaysiaFaridahh@uniten.edu.my , Hidayah@uniten.edu.my , zar<strong>in</strong>@fsktm.um.edu.myABSTRACTIn object-oriented s<strong>of</strong>tware design, <strong>classes</strong> are templates for def<strong>in</strong><strong>in</strong>g the characteristics and operati<strong>on</strong>s<strong>of</strong> an object. Classes and objects are frequently used <strong>in</strong>terchangeably as <strong>on</strong>e is similar to the other.Ideally, a class is a specificati<strong>on</strong> that an object implements. Identify<strong>in</strong>g <strong>classes</strong> can be very challeng<strong>in</strong>g.Should a class be badly identified, it can complicate the applicati<strong>on</strong>’s logical structure, reducereusability, and deter the applicati<strong>on</strong>’s ma<strong>in</strong>tenance. This paper discusses five exist<strong>in</strong>g <strong>approaches</strong> <strong>in</strong><strong>identify<strong>in</strong>g</strong> <strong>classes</strong> and discussi<strong>on</strong>s will be based <strong>on</strong> how these <strong>approaches</strong> identify the class, thestrengths and weaknesses <strong>of</strong> these methods and how improvements are suggested to the weaknesses. Atthe end <strong>of</strong> this paper, brief summarizati<strong>on</strong> to the related techniques <strong>of</strong> <strong>identify<strong>in</strong>g</strong> <strong>classes</strong> <strong>of</strong> exist<strong>in</strong>g<strong>approaches</strong> is presented.1. INTRODUCTIONObject-oriented systems analysis and design us<strong>in</strong>g UML has become <strong>in</strong>creas<strong>in</strong>gly popular, but veryfew tools exist to assist developers <strong>in</strong> <strong>identify<strong>in</strong>g</strong> and creat<strong>in</strong>g the right diagram. Am<strong>on</strong>g the diagramsthat will be created are use case diagram, class diagram, sequence diagram, collaborati<strong>on</strong> diagram anddeployment diagram. However, <strong>in</strong> this paper we shall discuss the <strong>approaches</strong> <strong>in</strong> <strong>identify<strong>in</strong>g</strong> <strong>classes</strong>together with its benefits and weaknesses with the primary goal <strong>of</strong> assist<strong>in</strong>g developers <strong>in</strong> creat<strong>in</strong>g classdiagram. Design<strong>in</strong>g diagram that is useful for system design is not an easy task. Thus, it is desirable tolearn some exist<strong>in</strong>g techniques <strong>in</strong> <strong>identify<strong>in</strong>g</strong> the class itself, which can help to generate class diagram.2. APPROACHES TO IDENTIFYING CLASSESThe secti<strong>on</strong> below shall further discuss and elaborate <strong>on</strong> the exist<strong>in</strong>g <strong>approaches</strong> as well as how each<strong>of</strong> the approach works. There are currently 5 exist<strong>in</strong>g <strong>approaches</strong>, and each has their significantweaknesses and benefits for <strong>identify<strong>in</strong>g</strong> class.2.1 Noun-phrase approachNoun-phrase Approach uses the technique <strong>of</strong> search<strong>in</strong>g any documentati<strong>on</strong> or requirementspecificati<strong>on</strong>s for nouns that represent potential objects. This approach was proposed by Wirfs-Brock etal. (1992). Workflow <strong>of</strong> Noun-phrase Approach beg<strong>in</strong>s with set <strong>of</strong> documents or requirementsspecificati<strong>on</strong> that formally specifies the system-level requirements <strong>of</strong> a s<strong>in</strong>gle applicati<strong>on</strong>. Developerreads through the requirements to f<strong>in</strong>d for noun or noun phrases. Whatever nouns appear <strong>in</strong> therequirements will be c<strong>on</strong>sidered as a candidate and verbs as method <strong>of</strong> the <strong>classes</strong>. Then, the list <strong>of</strong><strong>classes</strong> will be classified <strong>in</strong>to these three categories; Relevant Classes, Fuzzy Classes and IrrelevantClasses (as shown <strong>in</strong> Figure 2.1(a)). Fuzzy Classes categorized <strong>classes</strong> that are vague. Classes that fallunder Irrelevant Classes will automatically be elim<strong>in</strong>ated from the list <strong>of</strong> <strong>classes</strong>. Classes are selectedfrom the other two categories <strong>on</strong>ly. However, this is an iterative and flexible process, which developer


can always add or remove the class where necessary. Some <strong>of</strong> the <strong>classes</strong> may also be found fromgeneral knowledge about doma<strong>in</strong> <strong>of</strong> the system.Relevant ClassesFuzzy ClassesIrrelevant ClassesFigure 2.1(a): Categories <strong>in</strong> Noun-phrase Approach. (Bahrami(1999))The workflows do not end until the correct <strong>classes</strong> are identified. Bahrami(1999) presentsguidel<strong>in</strong>es that help <strong>in</strong> select<strong>in</strong>g candidate <strong>classes</strong> from relevant and fuzzy categories <strong>of</strong> <strong>classes</strong>. Classesfrom the two categories have to be assured not fall <strong>in</strong>to any <strong>of</strong> the type <strong>of</strong> <strong>classes</strong> below:1. Redundant ClassesIf two or more <strong>classes</strong> use different words but describe a same idea, they are c<strong>on</strong>sidered as redundantclass. If this happened, the class that best describe the mean<strong>in</strong>g <strong>of</strong> the class will be chosen.2. Adjective ClassesThis type <strong>of</strong> <strong>classes</strong> may suggest a different k<strong>in</strong>d <strong>of</strong> object, different use <strong>of</strong> the same object, or it couldbe utterly irrelevant. For example, Funny Genre behaves differently than Horror Genre, so thetwo should be classified as different <strong>classes</strong>.3. Attribute ClassesValues should be treated as attributes <strong>of</strong> class not a class itself. For example, Member Address is nota class but an attribute <strong>of</strong> class Member.4. Irrelevant ClassesTypically, this type <strong>of</strong> class has no purposes. Developer will f<strong>in</strong>d it difficult to generate statement <strong>of</strong>purpose for Irrelevant Classes.Figure 2.1(b) shows process <strong>of</strong> elim<strong>in</strong>at<strong>in</strong>g the redundant <strong>classes</strong> and ref<strong>in</strong><strong>in</strong>g the rema<strong>in</strong><strong>in</strong>g <strong>classes</strong>.As what can be seen here, this process is not sequential. It is an <strong>in</strong>cremental process and analyst canmove back and forth am<strong>on</strong>g these steps as <strong>of</strong>ten as they like.Reviewredundant <strong>classes</strong>Reviewirrelevant <strong>classes</strong>ReviewadjectivesReviewattributesFigure 2.1(b): Process <strong>of</strong> elim<strong>in</strong>at<strong>in</strong>g the redundant <strong>classes</strong> and ref<strong>in</strong><strong>in</strong>g the rema<strong>in</strong><strong>in</strong>g <strong>classes</strong>(Bahrami(1999))2.2 Use Case Driven approachBahrami(1999) discuss four <strong>approaches</strong> <strong>in</strong> <strong>identify<strong>in</strong>g</strong> class <strong>in</strong> his book, title: Object-OrientedSystems Development: Us<strong>in</strong>g the Unified Model<strong>in</strong>g Language. However, am<strong>on</strong>gst the four <strong>approaches</strong>,Use Case Driven is the <strong>on</strong>e that is recommended. Jacobs<strong>on</strong> (1992) first <strong>in</strong>troduced this approach, whichfirst breaks down the entire scope <strong>of</strong> system functi<strong>on</strong>ality <strong>in</strong>to a number <strong>of</strong> use cases. Accord<strong>in</strong>g toBahrami(1999), this approach works <strong>in</strong> such a way that use case is further analyzed with a sequence andcollaborati<strong>on</strong> diagram pair. However, as what po<strong>in</strong>ted out by Bente & Sjoberg(2003), several researches


op<strong>in</strong>i<strong>on</strong> seems to be c<strong>on</strong>verg<strong>in</strong>g toward the viewpo<strong>in</strong>t that use case is a primary artifact <strong>in</strong> theidentificati<strong>on</strong> <strong>of</strong> system <strong>classes</strong>. Use case driven process has been criticized for not provid<strong>in</strong>g asufficient basis for the c<strong>on</strong>structi<strong>on</strong> <strong>of</strong> class diagrams.The sequence or collaborati<strong>on</strong> diagram is a systematic way to th<strong>in</strong>k about how use case(scenario) can take place. With these two diagrams, it is <strong>in</strong>directly forc<strong>in</strong>g the analyst to th<strong>in</strong>k aboutclass or object <strong>in</strong>volved <strong>in</strong> the scenario. It is recommended to generate sequence diagram for every usecases. Classes that appear <strong>in</strong> sequence diagram are c<strong>on</strong>sidered as <strong>classes</strong> <strong>in</strong> class diagram. On the otherhand, messages passed across the <strong>classes</strong> are c<strong>on</strong>sidered as method. Figure 2.2 shows the steps <strong>of</strong> a usecase driven approach.RequirementsClasses,attributes,associati<strong>on</strong>sUse case modelScenariosClassesDoma<strong>in</strong> modelClasses,attributes,associati<strong>on</strong>sSequence diagramsMethods,associati<strong>on</strong>sClass diagramFigure 2.2: The use case driven approach (Bente & Sjoberg(2003))2.3 CRCBeck & Cunn<strong>in</strong>gham (1989) first <strong>in</strong>troduced CRC-Cards <strong>in</strong> 1989 at the annual OOPSLAc<strong>on</strong>ference. CRC stands for Class, Resp<strong>on</strong>sibilities, and Collaborator, which characterize objects byclass name, resp<strong>on</strong>sibilities, and collaborators, as a way <strong>of</strong> giv<strong>in</strong>g learners a direct experience <strong>of</strong> objects.Although Bahrami (1999) states that CRC is more suitable for learn<strong>in</strong>g purpose, other reportedcase <str<strong>on</strong>g>study</str<strong>on</strong>g> have dem<strong>on</strong>strated the effectiveness <strong>of</strong> CRC Card bey<strong>on</strong>d simply learn<strong>in</strong>g.CRC sessi<strong>on</strong> is c<strong>on</strong>ducted by hav<strong>in</strong>g all the <strong>in</strong>formati<strong>on</strong> <strong>of</strong> class such as resp<strong>on</strong>sibilities andcollaborators written <strong>on</strong> a 4” x 6” <strong>in</strong>dex card. Cards are used because <strong>of</strong> its portability, readilyavailability, and familiarity. The class name is written underl<strong>in</strong>ed <strong>in</strong> the upper-left hand corner. List <strong>of</strong>resp<strong>on</strong>sibilities are written <strong>in</strong> bullet format under class name <strong>in</strong> the left two-thirds <strong>of</strong> the card. List <strong>of</strong>collaborators are written <strong>in</strong> the right third <strong>of</strong> the card. Figure 2.5(a) depicts the idealized CRC card andFigure 2.5(b) depicts example <strong>of</strong> implementati<strong>on</strong> <strong>of</strong> CRC card <strong>in</strong> bank<strong>in</strong>g mach<strong>in</strong>e problem, aspresented by Beck & Cunn<strong>in</strong>gham (1989)..Figure 2.5(a): A CRC Index Card


Figure 2.5 (b): A CRC Index Card (Beck & Cunn<strong>in</strong>gham (1989)).CRC card sessi<strong>on</strong> is always performed <strong>in</strong> group. The group members are encouraged to pick upthe card whose role they are assum<strong>in</strong>g while “execut<strong>in</strong>g” a scenario. Classes are extracted from the usecase descripti<strong>on</strong>s by perform<strong>in</strong>g a grammatical parse. List <strong>of</strong> <strong>classes</strong> is made up <strong>of</strong> the nouns <strong>in</strong> theproblem statement. Bahrami(1999) writes:Start with few cards (<strong>classes</strong>) then proceed to play “what if”. If the situati<strong>on</strong> class forresp<strong>on</strong>sibility not already covered by <strong>on</strong>e <strong>of</strong> the objects, either add the resp<strong>on</strong>sibility to anobject or create a new object to address the resp<strong>on</strong>sibility. If <strong>on</strong>e <strong>of</strong> the objects becomes toocluttered dur<strong>in</strong>g this process, copy the <strong>in</strong>formati<strong>on</strong> <strong>on</strong> its card to a new card, search<strong>in</strong>g formore c<strong>on</strong>cise ways <strong>of</strong> say<strong>in</strong>g what the object does. If it is not possible to shr<strong>in</strong>k the <strong>in</strong>formati<strong>on</strong>further and the object is still to complex, create a new object to assume some <strong>of</strong> theresp<strong>on</strong>sibilities.Identify <strong>classes</strong> andresp<strong>on</strong>sibilityIterateIdentifycollaborati<strong>on</strong>Assignresp<strong>on</strong>sibilityFigure 2.5(c): The Classes, Resp<strong>on</strong>sibilities, and Collaborators process (Bahrami(1999)).2.4 Comm<strong>on</strong>-Class PatternAccord<strong>in</strong>g to Bahrami(1999), Comm<strong>on</strong>-Class Pattern approach is based <strong>on</strong> the knowledge base<strong>of</strong> the comm<strong>on</strong> <strong>classes</strong> proposed by <strong>various</strong> researchers, such as Shlaer and Mellor, Ross, and Coad andYourd<strong>on</strong>. These researchers compiled and listed several categories for f<strong>in</strong>d<strong>in</strong>g the candidate <strong>classes</strong> andobjects. Candidate <strong>classes</strong> and objects come from <strong>on</strong>e <strong>of</strong> the follow<strong>in</strong>g sources, as presented byBahrami(1999):• C<strong>on</strong>cept class - e.g: reservati<strong>on</strong>• Events class - e.g: arrival


• Organizati<strong>on</strong> class - e.g: Department• People class - e.g: passenger• Places class - e.g: travel <strong>of</strong>fice• Tangible th<strong>in</strong>gs and devices class - e.g: sensorUs<strong>in</strong>g this approach, analyst should th<strong>in</strong>k about <strong>classes</strong> that fall <strong>in</strong>to entire sources as presentedabove. For example, Food Service Management System: restaurant and food stores arepossible <strong>classes</strong> categorize under Places class. The process not yet f<strong>in</strong>ishes till all the six <strong>classes</strong> arec<strong>on</strong>sidered.2.6 KRB Seven-Step MethodMost <strong>of</strong> existed <strong>approaches</strong> do not discuss about how to generate complete class diagram, which<strong>in</strong>clude associati<strong>on</strong> and multiplicity. One approach named KRB Seven-Step Method is found to providea way to generate complete class diagram. Brown (2002) <strong>in</strong>troduces this approach with assistance fromAnil Kapur and Ravi Rav<strong>in</strong>dra. The KRB Seven-Step Method provides more complete and detail stepscompared to other <strong>approaches</strong>. The seven steps are presented below:Step 1: Candidate <strong>classes</strong>Classes are discovered from <strong>in</strong>terface, entity, and c<strong>on</strong>trol <strong>classes</strong> that are significant to the system.There are four ways to generate a list <strong>of</strong> nouns for candidate entity <strong>classes</strong>; client <strong>in</strong>terview,requirements model and other documentati<strong>on</strong>, bra<strong>in</strong>storm<strong>in</strong>g and Delphi method.Step 2: Def<strong>in</strong>e <strong>classes</strong>Once the <strong>classes</strong> have been identified, some check<strong>in</strong>g has to be d<strong>on</strong>e to see if the class is reallyimportant to the doma<strong>in</strong> <strong>of</strong> the system. Each candidate class is subjected to three checks: Real-worldidentifier, Def<strong>in</strong>iti<strong>on</strong>, Sample attributes and Behaviors.Step 3: Establish associati<strong>on</strong>sThis step is c<strong>on</strong>cerned with the questi<strong>on</strong>: “What does <strong>on</strong>e <strong>of</strong> these do to <strong>on</strong>e <strong>of</strong> those?” In f<strong>in</strong>d<strong>in</strong>gand handl<strong>in</strong>g the answer to this questi<strong>on</strong>, below factors are c<strong>on</strong>sidered:• Discover<strong>in</strong>g the verb• Establish<strong>in</strong>g the multiplicity• Captur<strong>in</strong>g all possible <strong>in</strong>teracti<strong>on</strong>s• Attitude <strong>of</strong> the usersStep 4: Expand many-to-many associati<strong>on</strong>sBrown (2002) realizes that an M:M associati<strong>on</strong> has nowhere to place event data attributes. As such,a new <strong>in</strong>tersecti<strong>on</strong> class must be created to carry them. Every M:M associati<strong>on</strong> is break out <strong>in</strong>to pair <strong>of</strong>1:M associati<strong>on</strong>s, with the many ends po<strong>in</strong>t<strong>in</strong>g at this new <strong>in</strong>tersecti<strong>on</strong> class.Step 5: AttributesUsers are required to go through each <strong>of</strong> the <strong>classes</strong> <strong>in</strong> the model and f<strong>in</strong>d any th<strong>in</strong>kable attributes.Step 6: Normalizati<strong>on</strong>The pr<strong>in</strong>ciple <strong>of</strong> normalizati<strong>on</strong> <strong>in</strong> this c<strong>on</strong>text is to make sure that every data element (attribute) isattached to the class <strong>of</strong> objects that it truly describes. Normalizati<strong>on</strong> is performed till the third level <strong>of</strong>normalizati<strong>on</strong> (1NF, 2NF and 3NF).Step 7: Operati<strong>on</strong>sMethods used to identify operati<strong>on</strong>s are object states and statechart diagram, Rebecca Wirfs-Brock’smethods that used resp<strong>on</strong>sibilities and collaborati<strong>on</strong>s and sequence diagram.


3. BENEFITS AND WEAKNESSESApproach Benefit Weakness Improvements byRelated researchNoun-phrase • Uses requirementspecificati<strong>on</strong>,which <strong>in</strong>directlyencourage analystto use what theyalready havewithout a need togenerate newth<strong>in</strong>gs to identifyclass for classdiagram.Use-Case Driven • Helps <strong>in</strong> deal<strong>in</strong>gwith complexity <strong>of</strong>system. (Regnell etal.(1995))• Simple. (Regnell etal.(1995))• Usage to validatedesign model.(Shull et al.(1999))CRC • Portable• Tangible• Difficulty <strong>in</strong>volvedwith hav<strong>in</strong>g to dealwith a large number<strong>of</strong> nouns <strong>in</strong>documentati<strong>on</strong> orrequirementspecificati<strong>on</strong>s.(Poo(1999))• Assumes developer tohave a well specifiedrequirements orproblem specificati<strong>on</strong>document beforebe<strong>in</strong>g able to identifynouns from them.• A largely manualprocess driven byheuristics thatanalysts acquirethrough experience.(Overmyer etal.(2001))• Analyst with limitedexperience may f<strong>in</strong>dthis processcumbersome.• Not provid<strong>in</strong>g asufficient basis for thec<strong>on</strong>structi<strong>on</strong> <strong>of</strong> classdiagrams.• A gap between theuse case model andthe class diagram.• Miss<strong>in</strong>g <strong>classes</strong>because the use casemodel is <strong>in</strong>sufficientfor deriv<strong>in</strong>g allnecessary <strong>classes</strong>.• Mistak<strong>in</strong>grequirements fordesign• Lack <strong>of</strong> synthesis• Dependency• Unable to generatetest casesautomatically(Regnell et al.(1995))• Possibility <strong>of</strong> LowCohesi<strong>on</strong> and High• Overmyer etal.(2001) proposesLIDA (L<strong>in</strong>guisticAssistant forDoma<strong>in</strong> Analysis),which providel<strong>in</strong>guisticassistance <strong>in</strong> themodeldevelopmentprocess.• The greatestimprovement thatLIDA does toNoun-phraseapproach ismak<strong>in</strong>g transiti<strong>on</strong>from textualdescripti<strong>on</strong>s toother notati<strong>on</strong>s forobject-orientedanalysis bychang<strong>in</strong>g theprocess frommanual toautomated.• Poo(1999)proposes theextensi<strong>on</strong> <strong>of</strong> theUse CaseModel<strong>in</strong>gapproach, aprocess known asEvent Script<strong>in</strong>g.• Usage OrientedRequirementsEng<strong>in</strong>eer<strong>in</strong>g(UORE), as anextensi<strong>on</strong> <strong>of</strong> UseCase DrivenAnalysis. (Regnellet al.(1995))• Liu et al.(2001)proposes a formalmethod, which isable to buildmodels forrequirementanalysis.• Fayad et al.(2003)proposes new CRC


• Reviewable• Simple• Multi-Purpose• Accessible• Traceable• Mapp<strong>in</strong>g Ability• Reusable(Fayad et al.(2004))Comm<strong>on</strong>-Class Pattern • Suitable for n<strong>on</strong>technicaland semitechnicalusers dueto <strong>in</strong>clusi<strong>on</strong> <strong>of</strong>some <strong>of</strong> thefamiliar <strong>classes</strong>KRB Seven-Step • More rigorous, <strong>in</strong>depth,simplewithout too muchmath.• Covers all aspects<strong>of</strong> class diagram<strong>in</strong>clud<strong>in</strong>gnormalizati<strong>on</strong>Coupl<strong>in</strong>g• Object performs most<strong>of</strong> the work, leav<strong>in</strong>gall the m<strong>in</strong>oroperati<strong>on</strong>s to a set <strong>of</strong>essentially useless<strong>classes</strong>• Difficulty <strong>in</strong> Def<strong>in</strong><strong>in</strong>gResp<strong>on</strong>sibilities• Difficulty <strong>in</strong> Mapp<strong>in</strong>g• Difficulty <strong>in</strong>Identify<strong>in</strong>g Classes• Difficulty <strong>in</strong> Mapp<strong>in</strong>g• More suitable to beused when analystswork <strong>in</strong> group(Fayad et al. (2003))• C<strong>on</strong>cepts <strong>of</strong> some <strong>of</strong>the <strong>classes</strong> aremis<strong>in</strong>terpreted• Fully manual process• For a very large andcomplex system, itmay take some timeto th<strong>in</strong>k <strong>of</strong> all possible<strong>classes</strong> that may be<strong>in</strong>volved.• No guided steps <strong>in</strong><strong>identify<strong>in</strong>g</strong> attributes.card format.Limitedresp<strong>on</strong>sibilitieswill help preventlow cohesi<strong>on</strong> andhigh coupl<strong>in</strong>g aswell as reduce thepossibility <strong>of</strong>macho <strong>classes</strong>(multipleresp<strong>on</strong>sibilities areassigned to certa<strong>in</strong>class).4. CONCLUSIONFor the exist<strong>in</strong>g <strong>approaches</strong> discussed above, skill <strong>of</strong> def<strong>in</strong><strong>in</strong>g class depends <strong>on</strong> the experienceand overall knowledge <strong>of</strong> analyst and developers. Use Case Driven Approach, Comm<strong>on</strong> ClassPattern and Noun Phrase Approach are the three <strong>approaches</strong> that apparently require these skills.Other than that, use case diagram, sequence diagram, requirements document, bra<strong>in</strong>storm<strong>in</strong>gsessi<strong>on</strong>s and cards are some <strong>of</strong> the development work-product used by the other two <strong>approaches</strong>.One general weakness <strong>of</strong> the exist<strong>in</strong>g <strong>approaches</strong> found is lack <strong>of</strong> explanati<strong>on</strong>s <strong>on</strong> when to applythese methods. In additi<strong>on</strong>, these current <strong>approaches</strong> not always atta<strong>in</strong> the essential aspects neededby many <strong>in</strong> future, where everybody wants someth<strong>in</strong>g simple and time-sav<strong>in</strong>g <strong>in</strong> c<strong>on</strong>struct<strong>in</strong>g<strong>classes</strong>. However, <strong>on</strong>e good aspect from all the exist<strong>in</strong>g <strong>approaches</strong> is that the usage <strong>of</strong> use casediagram is rema<strong>in</strong>ed as it is because it could be used to guide and verify the generated class diagramand make more ref<strong>in</strong>ed design judgments.


REFERENCESBahrami, A. (1999). Object Oriented Systems Development: Us<strong>in</strong>g the Unified Model<strong>in</strong>g Language.S<strong>in</strong>gapore: McGraw-Hill.Brown, D.W. (2002). An Introducti<strong>on</strong> to Object-Oriented Analysis: Objects and UML <strong>in</strong> Pla<strong>in</strong> English,2 nd Editi<strong>on</strong>. US: John Wiley & S<strong>on</strong>s, Inc.Jacobs<strong>on</strong>, I. (1992). Object-oriented S<strong>of</strong>tware Eng<strong>in</strong>eer<strong>in</strong>g—A Use Case Driven Approach, Addis<strong>on</strong>-Wesley.Wirfs-Brock, Rebecca; Wilkers<strong>on</strong>, Brian; Wiener, Lauren. (1992). Design<strong>in</strong>g Object-Oriented S<strong>of</strong>tware.Englewood Cliffs, NJ: Prentice Hall.Beck, K.; Cunn<strong>in</strong>gham, W.(1989) A Laboratory For Teach<strong>in</strong>g Object-Oriented Th<strong>in</strong>k<strong>in</strong>g. In:C<strong>on</strong>ference proceed<strong>in</strong>gs <strong>on</strong> Object-oriented programm<strong>in</strong>g systems, languages and applicati<strong>on</strong>s, Volume24 Issue 10, September 1989, ACM Press.pp.1-6Fayad, M.E.; Hamza, H.; Sanchez, H. (2003) A pattern for an effective class resp<strong>on</strong>sibility collaborator(CRC) cards. In: IEEE Internati<strong>on</strong>al C<strong>on</strong>ference <strong>on</strong> Informati<strong>on</strong> Reuse and Integrati<strong>on</strong>, Oct. 2003, IEEEComput.Assoc.Press.pp.584 - 587Poo, D.C.C (1999) Events <strong>in</strong> Use Cases as a Basis for Identify<strong>in</strong>g and Specify<strong>in</strong>g Classes and Bus<strong>in</strong>essRules. In: Proceed<strong>in</strong>gs <strong>of</strong> Technology <strong>of</strong> Object-Oriented Languages and Systems, June 1999, IEEEComput.Assoc.Press.pp.204 - 213Fayad, M.E.; Hamza, H.; Sanchez, H.(2004) A Pattern Language For Crc Cards. In: The 11th C<strong>on</strong>ferenceOn Pattern Languages Of Programs (Plop2004), Sept. 2004Regnell, B.; Kimbler, K.; Wesslen, A.(1995) Improv<strong>in</strong>g The Use Case Driven Approach ToRequirements Eng<strong>in</strong>eer<strong>in</strong>g. In: Proceed<strong>in</strong>gs <strong>of</strong> the Sec<strong>on</strong>d IEEE Internati<strong>on</strong>al Symposium <strong>on</strong>Requirements Eng<strong>in</strong>eer<strong>in</strong>g, March 1995, IEEE Comput.Assoc.Press.pp.40 – 47Anda, B.; Sjoberg, D.I.K.(2003) Apply<strong>in</strong>g Use Cases to Design Versus Validate Class Diagrams - aC<strong>on</strong>trolled Experiment Us<strong>in</strong>g a Pr<strong>of</strong>essi<strong>on</strong>al Model<strong>in</strong>g Tool. In: Proceed<strong>in</strong>g <strong>of</strong> Internati<strong>on</strong>al SymposiumEmpirical S<strong>of</strong>tware Eng<strong>in</strong>eer<strong>in</strong>g, 30 Sept.-1 Oct, IEEE Comput.Assoc.Press.pp.50 – 60Shull, F; Travassos, G.H.; Carver, J.; Basili, V.R Evolv<strong>in</strong>g a Set <strong>of</strong> Techniques for OO Inspecti<strong>on</strong>s.University <strong>of</strong> Maryland Technical Report CS-TR-4070, October 1999Z. Liu; J. He; X. Li.(2001) Formal and Use-Case Driven Requirement Analysis <strong>in</strong> UML. In: ComputerS<strong>of</strong>tware and Applicati<strong>on</strong>s C<strong>on</strong>ference -COMPSAC , 8-12 Oct. 2001, IEEEComput.Assoc.Press.pp.215 - 224Overmyer, S.P.; Benoit, L.; Owen, R.(2001) C<strong>on</strong>ceptual model<strong>in</strong>g through l<strong>in</strong>guistic analysis us<strong>in</strong>gLIDA. In: Proceed<strong>in</strong>gs <strong>of</strong> the 23rd Internati<strong>on</strong>al C<strong>on</strong>ference <strong>on</strong> S<strong>of</strong>tware Eng<strong>in</strong>eer<strong>in</strong>g (ICSE), 12-19May, IEEE Comput.Assoc.Press.pp.401 – 410S<strong>of</strong>tware Quality and Coupl<strong>in</strong>g and Cohesi<strong>on</strong>, Access Date: 25 March 2005 Kellen,V. 12 December1993, http://www.kellen.net/Coupl<strong>in</strong>g%20and%20Cohesi<strong>on</strong>.htm

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!