\relax \@writefile{toc}{\contentsline {chapter}{List of Tables}{vii}} \@writefile{toc}{\contentsline {chapter}{List of Figures}{ix}} \@writefile{toc}{\contentsline {chapter}{Abstract}{xii}} \@writefile{toc}{\contentsline {chapter}{Acknowledgments}{xiv}} \citation{WS91} \citation{Iwan95} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {1.1}Background}{1}} \citation{Iwan95} \@writefile{toc}{\contentsline {section}{\numberline {1.2}Aims}{3}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}Significance}{4}} \citation{Iwan95} \@writefile{toc}{\contentsline {section}{\numberline {1.4}Project Overview}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.4.1}Investigation}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.4.2}Development}{7}} \@writefile{toc}{\contentsline {section}{\numberline {1.5}Thesis Structure}{8}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Dependence Representations and Analysis: A Review}{10}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Review}{{2}{10}} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Introduction}{10}} \citation{BON1995} \@writefile{toc}{\contentsline {section}{\numberline {2.2}The BON Method}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Overview of the BON Method}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}BON Modeling Charts}{12}} \@writefile{toc}{\contentsline {subsubsection}{System Chart}{13}} \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces System chart for a retail banking system}}{13}} \newlabel{BonSys}{{2.1}{13}} \@writefile{toc}{\contentsline {subsubsection}{Cluster Chart}{14}} \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Cluster chart}}{14}} \newlabel{BonClust}{{2.2}{14}} \@writefile{toc}{\contentsline {subsubsection}{Class Chart}{15}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}Typed Class Interfaces}{15}} \@writefile{toc}{\contentsline {subsubsection}{Class Interfaces}{15}} \@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Class charts}}{16}} \newlabel{BonClass}{{2.3}{16}} \citation{BON1995} \@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Class interface: expanded sections}}{17}} \newlabel{BonClassIntface}{{2.4}{17}} \@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Indexing clause for a SAVING ACCOUNT class}}{18}} \newlabel{BonIndex}{{2.5}{18}} \@writefile{toc}{\contentsline {subsubsection}{Class Clustering}{18}} \@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces A nested data structure cluster}}{19}} \newlabel{BonNestCluster}{{2.6}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.4}Static Relations}{19}} \@writefile{toc}{\contentsline {subsubsection}{Inheritance Relations}{20}} \@writefile{lof}{\contentsline {figure}{\numberline {2.7}{\ignorespaces Inheritance Diagram}}{20}} \newlabel{BonInher}{{2.7}{20}} \@writefile{lof}{\contentsline {figure}{\numberline {2.8}{\ignorespaces Cluster Inheritance}}{21}} \newlabel{BonClient}{{2.8}{21}} \citation{BON1995} \@writefile{toc}{\contentsline {subsubsection}{Client Relations}{22}} \@writefile{lof}{\contentsline {figure}{\numberline {2.9}{\ignorespaces Association Relation}}{23}} \newlabel{BonAssociation}{{2.9}{23}} \@writefile{lof}{\contentsline {figure}{\numberline {2.10}{\ignorespaces Shared Association Relation}}{23}} \newlabel{BonSharedAssociation}{{2.10}{23}} \@writefile{lof}{\contentsline {figure}{\numberline {2.11}{\ignorespaces Aggregation Relation}}{24}} \newlabel{BonAggregation}{{2.11}{24}} \@writefile{lof}{\contentsline {figure}{\numberline {2.12}{\ignorespaces Indirect client dependency through generic derivation}}{24}} \newlabel{BonGerericClient}{{2.12}{24}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.5}Discussion}{25}} \citation{Unified} \@writefile{toc}{\contentsline {section}{\numberline {2.3}Unified Method}{26}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Overview of the Unified Method}{26}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Class Diagram}{28}} \@writefile{toc}{\contentsline {subsubsection}{Classes}{28}} \@writefile{lof}{\contentsline {figure}{\numberline {2.13}{\ignorespaces Class}}{28}} \newlabel{UniClass}{{2.13}{28}} \@writefile{toc}{\contentsline {subsubsection}{Templates}{29}} \@writefile{lof}{\contentsline {figure}{\numberline {2.14}{\ignorespaces Parameterized classes}}{29}} \newlabel{UniParameterClass}{{2.14}{29}} \@writefile{toc}{\contentsline {subsubsection}{Associations}{30}} \@writefile{lof}{\contentsline {figure}{\numberline {2.15}{\ignorespaces Association notation}}{30}} \newlabel{UniClient}{{2.15}{30}} \@writefile{lof}{\contentsline {figure}{\numberline {2.16}{\ignorespaces Or-association}}{31}} \newlabel{UniOrAssociation}{{2.16}{31}} \@writefile{toc}{\contentsline {subsubsection}{Inheritance}{31}} \@writefile{lof}{\contentsline {figure}{\numberline {2.17}{\ignorespaces Aggregation notation}}{32}} \newlabel{UniAggregation}{{2.17}{32}} \@writefile{lof}{\contentsline {figure}{\numberline {2.18}{\ignorespaces Inheritance}}{32}} \newlabel{UniInheritance}{{2.18}{32}} \@writefile{toc}{\contentsline {subsubsection}{Categories}{33}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.3}Discussion}{33}} \@writefile{lof}{\contentsline {figure}{\numberline {2.19}{\ignorespaces Categories (nested form)}}{34}} \newlabel{UniCategory}{{2.19}{34}} \citation{CJ93} \@writefile{toc}{\contentsline {section}{\numberline {2.4}Formal Methods Applied to Reuse}{35}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}Lower-Level Hierarchy}{35}} \@writefile{lof}{\contentsline {figure}{\numberline {2.20}{\ignorespaces Sample application of subsumption test algorithm}}{36}} \newlabel{Formal1}{{2.20}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.2}Higher-Level Hierarchy}{36}} \@writefile{lof}{\contentsline {figure}{\numberline {2.21}{\ignorespaces Sample application of clustering algorithm}}{37}} \newlabel{Formal2}{{2.21}{37}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.3}Search for Reusable Candidates}{38}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.4}Graphical Browser}{38}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.5}Discussion}{38}} \citation{Iwan95} \@writefile{toc}{\contentsline {section}{\numberline {2.5}Hierarchical Dependence Diagram (HDD)}{39}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.1}Overview of HDD}{39}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.2}Four Levels of HDD}{40}} \@writefile{lof}{\contentsline {figure}{\numberline {2.22}{\ignorespaces The Four Levels of HDD}}{41}} \newlabel{HDDFourLevel}{{2.22}{41}} \@writefile{toc}{\contentsline {subsubsection}{The Class Level (level 3)}{41}} \@writefile{lof}{\contentsline {figure}{\numberline {2.23}{\ignorespaces Class Level (Level 3) Diagram}}{42}} \newlabel{HDDClass}{{2.23}{42}} \@writefile{toc}{\contentsline {subsubsection}{The Cluster Level (Level 2)}{42}} \@writefile{lof}{\contentsline {figure}{\numberline {2.24}{\ignorespaces Cluster Level (Level 2) Diagram}}{43}} \newlabel{HDDCluster}{{2.24}{43}} \@writefile{toc}{\contentsline {subsubsection}{The Library Level (Level 1)}{44}} \@writefile{toc}{\contentsline {subsubsection}{The Platform Level (Level 0)}{44}} \citation{Iwan95} \@writefile{lof}{\contentsline {figure}{\numberline {2.25}{\ignorespaces Library Level (Level 1) diagram}}{45}} \newlabel{HDDLibrary}{{2.25}{45}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.3}The HDD Maintenance Algorithms}{45}} \@writefile{lof}{\contentsline {figure}{\numberline {2.26}{\ignorespaces Platform Level (Level 0) Diagram}}{46}} \newlabel{HDDPlatform}{{2.26}{46}} \@writefile{toc}{\contentsline {subsubsection}{Add A New Class}{46}} \@writefile{toc}{\contentsline {subsubsection}{Modify A Class}{47}} \@writefile{toc}{\contentsline {subsubsection}{Delete A Class}{48}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.4}Design Guidelines of the HDD}{49}} \@writefile{toc}{\contentsline {subsubsection}{Reusable Components}{50}} \@writefile{lof}{\contentsline {figure}{\numberline {2.27}{\ignorespaces Hierarchical Independence Concept}}{50}} \newlabel{HDDStrength}{{2.27}{50}} \@writefile{lof}{\contentsline {figure}{\numberline {2.28}{\ignorespaces Class, Cluster, Library, and Platform Reuse}}{51}} \newlabel{HDDReuse}{{2.28}{51}} \@writefile{toc}{\contentsline {subsubsection}{Hierarchical Independence Design Guidelines}{51}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.5}Discussion}{52}} \@writefile{lof}{\contentsline {figure}{\numberline {2.29}{\ignorespaces Guideline Example: Minimizing Cluster Dependence}}{53}} \newlabel{HDDGuide}{{2.29}{53}} \citation{GA90} \citation{CH93} \@writefile{toc}{\contentsline {section}{\numberline {2.6}Other Related Works}{54}} \citation{MC91} \@writefile{toc}{\contentsline {section}{\numberline {2.7}Conclusion and Discussion}{55}} \citation{Iwan95} \@writefile{toc}{\contentsline {chapter}{\numberline {3}A Two-level Framework for Hierarchical Dependence Analysis}{57}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{TwoLevelHDA}{{3}{57}} \citation{Iwan95} \citation{Unified} \citation{BON1995} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Generic Dependence Level}{58}} \newlabel{GenericDependence}{{3.1}{58}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Client Dependency}{59}} \@writefile{toc}{\contentsline {subsubsection}{InstanceOf Dependency}{59}} \@writefile{toc}{\contentsline {subsubsection}{InstanceOf Dependency}{59}} \citation{Gibbs90} \@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces InstanceOf Client/Supplier Relation}}{60}} \newlabel{InstanceOf}{{3.1}{60}} \@writefile{toc}{\contentsline {subsubsection}{PartOf Dependency}{60}} \@writefile{toc}{\contentsline {subsubsection}{Returned Class Dependency}{60}} \@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces PartOf Client/Supplier Relation}}{61}} \newlabel{PartOf}{{3.2}{61}} \@writefile{lot}{\contentsline {table}{\numberline {3.3}{\ignorespaces Returned Class Client/Supplier Relation}}{61}} \newlabel{ReturnedClass}{{3.3}{61}} \@writefile{toc}{\contentsline {subsubsection}{ParameterOf Dependency}{61}} \citation{EiffelLanguage} \@writefile{lot}{\contentsline {table}{\numberline {3.4}{\ignorespaces ParameterOf Client/Supplier Relation}}{62}} \newlabel{ParameterOf}{{3.4}{62}} \@writefile{lot}{\contentsline {table}{\numberline {3.5}{\ignorespaces Generic Class Client/Supplier Relation}}{62}} \newlabel{GenericClass}{{3.5}{62}} \@writefile{toc}{\contentsline {subsubsection}{Generic Class Dependency}{62}} \@writefile{lot}{\contentsline {table}{\numberline {3.6}{\ignorespaces Single Inheritance Dependence Relation}}{63}} \newlabel{SingleInherit}{{3.6}{63}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Inheritance Dependence}{63}} \@writefile{toc}{\contentsline {subsubsection}{Single Inheritance}{63}} \@writefile{lot}{\contentsline {table}{\numberline {3.7}{\ignorespaces Multiple Inheritance Dependence Relation}}{64}} \newlabel{MultiInherit}{{3.7}{64}} \@writefile{toc}{\contentsline {subsubsection}{Multiple Inheritance}{64}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Impact of the Different Dependencies}{64}} \newlabel{Comparison}{{3.1.3}{64}} \@writefile{toc}{\contentsline {subsubsection}{Client Dependence vs Inheritance Dependence}{65}} \@writefile{toc}{\contentsline {subsubsection}{Comparison of Client Dependencies}{65}} \@writefile{toc}{\contentsline {subsubsection}{Single Inheritance Dependence vs Multiple Inheritance Dependence}{66}} \@writefile{toc}{\contentsline {subsubsection}{Overall}{66}} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces The comparison of the strength of the different dependencies}}{66}} \newlabel{CompareDependency}{{3.1}{66}} \@writefile{toc}{\contentsline {section}{\numberline {3.2}Specific Dependence Level}{66}} \newlabel{SpecificDependence}{{3.2}{66}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Selective Inheritance in C++}{67}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Friend Relation in C++}{67}} \@writefile{lot}{\contentsline {table}{\numberline {3.8}{\ignorespaces Selective Inheritance Relation in C++}}{68}} \newlabel{SelectInherit}{{3.8}{68}} \@writefile{lot}{\contentsline {table}{\numberline {3.9}{\ignorespaces Friend Relation in C++}}{69}} \newlabel{Friend}{{3.9}{69}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Expanded Client Relation in Eiffel}{69}} \@writefile{lot}{\contentsline {table}{\numberline {3.10}{\ignorespaces Expanded Client/Supplier Relation}}{70}} \newlabel{ExpandedClient}{{3.10}{70}} \citation{Iwan95} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Enhancement of the Hierarchical Dependence Diagram}{71}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{NewHDD}{{4}{71}} \@writefile{toc}{\contentsline {section}{\numberline {4.1}Some Small Fixes to the Current HDD}{72}} \newlabel{SomeFix}{{4.1}{72}} \citation{Iwan95} \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces New dependence measurement in HDD}}{73}} \newlabel{HDDFix}{{4.1}{73}} \@writefile{toc}{\contentsline {section}{\numberline {4.2}Simple Version of HDD}{73}} \newlabel{SimpleVersion}{{4.2}{73}} \@writefile{toc}{\contentsline {section}{\numberline {4.3}Expanded Version of HDD}{74}} \newlabel{ExpandedVersion}{{4.3}{74}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Graphical Representation of the InstanceOf Dependency}{74}} \@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces InstanceOf Dependency in Expanded Cluster level HDD}}{74}} \newlabel{InstanceOfHDD}{{4.2}{74}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Graphical Representation of the PartOf Dependency}{75}} \@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces PartOf Dependency in Expanded Cluster level HDD}}{75}} \newlabel{PartOfHDD}{{4.3}{75}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}Graphical Representation of the Generic Class Dependency}{75}} \@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces Generic Class Dependency in Expanded Cluster level HDD}}{76}} \newlabel{GenericHDD}{{4.4}{76}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.4}Graphical Representation of the Returned Class Dependency}{76}} \@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Returned Class Dependency in Expanded Cluster level HDD}}{76}} \newlabel{RetClassHDD}{{4.5}{76}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.5}Graphical Representation of the ParameterOf Dependency}{77}} \@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces ParameterOf Dependency in Expanded Cluster level HDD}}{77}} \newlabel{ParameterOfHDD}{{4.6}{77}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.6}Graphical Representation of the Single Inheritance Dependency}{77}} \@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces Single Inheritance Dependency in Expanded Cluster level HDD}}{78}} \newlabel{SingleInheritHDD}{{4.7}{78}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.7}Graphical Representation of the Multiple Inheritance Dependency}{78}} \@writefile{lof}{\contentsline {figure}{\numberline {4.8}{\ignorespaces Multiple Inheritance Dependency in Expanded Cluster level HDD}}{78}} \newlabel{MultipleInheritHDD}{{4.8}{78}} \@writefile{lof}{\contentsline {figure}{\numberline {4.9}{\ignorespaces Multiple Inheritance Dependency in Expanded Class level HDD}}{79}} \newlabel{MultipleInherit2HDD}{{4.9}{79}} \@writefile{toc}{\contentsline {chapter}{\numberline {5}Environments and Tools for Hierarchical Dependence Analysis}{80}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Tool}{{5}{80}} \@writefile{toc}{\contentsline {section}{\numberline {5.1}The Environments}{81}} \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces The environments for hierarchical dependence analysis}}{82}} \newlabel{ToolEnv}{{5.1}{82}} \@writefile{toc}{\contentsline {section}{\numberline {5.2}A Prototyping Tool for Hierarchical Dependence Analysis}{82}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Parser}{83}} \newlabel{ToolParser}{{5.2.1}{83}} \@writefile{toc}{\contentsline {subsubsection}{Scope and Assumptions}{83}} \@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces The directory structure of HDD components}}{84}} \newlabel{ParDirectory}{{5.2}{84}} \@writefile{toc}{\contentsline {subsubsection}{Parser Output Data Structures}{84}} \@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces The data structure of the Parser}}{85}} \newlabel{ParserStructure}{{5.3}{85}} \@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Data in table Platform after the Parser is run}}{86}} \newlabel{PlatformData}{{5.1}{86}} \@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces Data in table Library after the Parser is run}}{86}} \newlabel{LibraryData}{{5.2}{86}} \@writefile{lot}{\contentsline {table}{\numberline {5.3}{\ignorespaces Data in table Cluster after the Parser is run}}{86}} \newlabel{ClusterData}{{5.3}{86}} \@writefile{lot}{\contentsline {table}{\numberline {5.4}{\ignorespaces Data in table Class after the Parser is run}}{87}} \newlabel{ClassData}{{5.4}{87}} \@writefile{lot}{\contentsline {table}{\numberline {5.5}{\ignorespaces Data in table ClassRel after the Parser is run}}{87}} \newlabel{ClassRelData}{{5.5}{87}} \citation{EiffelLanguage} \@writefile{lot}{\contentsline {table}{\numberline {5.6}{\ignorespaces Syntax of an Eiffel class declaration}}{88}} \newlabel{ClassDeclare}{{5.6}{88}} \@writefile{toc}{\contentsline {subsubsection}{Parsing Algorithm}{88}} \citation{EiffelLanguage} \@writefile{lot}{\contentsline {table}{\numberline {5.7}{\ignorespaces Syntax of an Eiffel class header}}{89}} \newlabel{ClassHeader}{{5.7}{89}} \@writefile{lot}{\contentsline {table}{\numberline {5.8}{\ignorespaces Example of an Eiffel class declaration}}{89}} \newlabel{ClassHeaderEg}{{5.8}{89}} \citation{EiffelLanguage} \citation{EiffelLanguage} \@writefile{lot}{\contentsline {table}{\numberline {5.9}{\ignorespaces Syntax of an Eiffel inheritance block}}{90}} \newlabel{InheritBlock}{{5.9}{90}} \@writefile{lot}{\contentsline {table}{\numberline {5.10}{\ignorespaces Syntax of an Eiffel feature block}}{91}} \newlabel{FeatureBlock}{{5.10}{91}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}HDD Maintainer}{93}} \@writefile{toc}{\contentsline {subsubsection}{Scope}{93}} \@writefile{toc}{\contentsline {subsubsection}{Maintain's Output Data Structure}{93}} \@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces The data structure of the HDD Maintainer}}{94}} \newlabel{MaintainerStructure}{{5.4}{94}} \@writefile{lot}{\contentsline {table}{\numberline {5.11}{\ignorespaces Data in table ClusterRel after loading the Parser's data}}{95}} \newlabel{ClusterRelData}{{5.11}{95}} \@writefile{lot}{\contentsline {table}{\numberline {5.12}{\ignorespaces Data in table LibraryRel after loading the Parser's data}}{96}} \newlabel{LibraryRelData}{{5.12}{96}} \@writefile{lot}{\contentsline {table}{\numberline {5.13}{\ignorespaces Data in table PlatformRel after loading the Parser's data}}{97}} \newlabel{PlatformRelData}{{5.13}{97}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Text Based HDD Drawer}{97}} \@writefile{toc}{\contentsline {subsubsection}{Concrete Syntax of Text Based HDD}{97}} \@writefile{lot}{\contentsline {table}{\numberline {5.14}{\ignorespaces The concrete syntax of the text based HDD}}{98}} \newlabel{TextHDDSyntax}{{5.14}{98}} \@writefile{toc}{\contentsline {subsubsection}{Sample Text Based HDD}{99}} \@writefile{toc}{\contentsline {chapter}{\numberline {6}Conclusion and Future Work}{102}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {6.1}Conclusion}{102}} \@writefile{toc}{\contentsline {section}{\numberline {6.2}Future Work}{103}} \citation{Iwan95} \citation{Iwan95} \citation{Iwan95} \@writefile{toc}{\contentsline {chapter}{Appendix\ A\ A Case Study: ISE Eiffel's Base Library}{104}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Case}{{A}{104}} \citation{Iwan95} \@writefile{toc}{\contentsline {section}{\numberline {A.1}Logical Hierarchical Structure}{105}} \newlabel{LogicalStructure}{{A.1}{105}} \newlabel{LogicStruct1}{{A.1}{106}} \citation{Iwan95} \newlabel{LogicStruct2}{{A.1}{107}} \@writefile{toc}{\contentsline {section}{\numberline {A.2}Text Based HDD}{107}} \newlabel{Result}{{A.2}{107}} \@writefile{toc}{\contentsline {subsubsection}{Platform Level HDD}{108}} \@writefile{toc}{\contentsline {subsubsection}{Library Level HDD}{108}} \@writefile{toc}{\contentsline {subsubsection}{Cluster Level HDD}{109}} \@writefile{toc}{\contentsline {subsubsection}{Class Level HDD}{114}} \@writefile{toc}{\contentsline {chapter}{Appendix\ B\ Source Code Listings}{145}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{SourceCode}{{B}{145}} \@writefile{toc}{\contentsline {section}{\numberline {B.1}The Parser}{145}} \@writefile{toc}{\contentsline {subsubsection}{parser.h}{145}} \@writefile{toc}{\contentsline {subsubsection}{parser.c}{146}} \@writefile{toc}{\contentsline {subsubsection}{class.h}{155}} \@writefile{toc}{\contentsline {subsubsection}{class.c}{155}} \@writefile{toc}{\contentsline {subsubsection}{classrel.h}{158}} \@writefile{toc}{\contentsline {subsubsection}{classrel.c}{159}} \@writefile{toc}{\contentsline {subsubsection}{cluster.h}{162}} \@writefile{toc}{\contentsline {subsubsection}{cluster.c}{163}} \@writefile{toc}{\contentsline {subsubsection}{library.h}{166}} \@writefile{toc}{\contentsline {subsubsection}{library.c}{167}} \@writefile{toc}{\contentsline {subsubsection}{platform.h}{169}} \@writefile{toc}{\contentsline {subsubsection}{platform.c}{170}} \@writefile{toc}{\contentsline {subsubsection}{macro.h}{173}} \@writefile{toc}{\contentsline {section}{\numberline {B.2}The Maintainer}{173}} \@writefile{toc}{\contentsline {subsubsection}{maintain.c}{173}} \@writefile{toc}{\contentsline {subsubsection}{hddtext.h}{180}} \@writefile{toc}{\contentsline {subsubsection}{hddtext.c}{181}} \@writefile{toc}{\contentsline {subsubsection}{mtcla.h}{183}} \@writefile{toc}{\contentsline {subsubsection}{mtcla.c}{184}} \@writefile{toc}{\contentsline {subsubsection}{mtclarel.h}{189}} \@writefile{toc}{\contentsline {subsubsection}{mtclarel.c}{190}} \@writefile{toc}{\contentsline {subsubsection}{mtclu.h}{194}} \@writefile{toc}{\contentsline {subsubsection}{mtclu.c}{195}} \@writefile{toc}{\contentsline {subsubsection}{mtclurel.h}{200}} \@writefile{toc}{\contentsline {subsubsection}{mtclurel.c}{201}} \@writefile{toc}{\contentsline {subsubsection}{mtlib.h}{206}} \@writefile{toc}{\contentsline {subsubsection}{mtlib.c}{206}} \@writefile{toc}{\contentsline {subsubsection}{mtlibrel.h}{211}} \@writefile{toc}{\contentsline {subsubsection}{mtlibrel.c}{212}} \@writefile{toc}{\contentsline {subsubsection}{mtplat.h}{217}} \@writefile{toc}{\contentsline {subsubsection}{mtplat.c}{218}} \@writefile{toc}{\contentsline {subsubsection}{mtplarel.h}{221}} \@writefile{toc}{\contentsline {subsubsection}{mtplarel.c}{222}} \bibstyle{chicago} \bibdata{hons} \bibcite{AGS91}{\citeauthoryear {Al-Haddad and Samadzadeh}{Al-Haddad and Samadzadeh}{1991}} \bibcite{AM94}{\citeauthoryear {Armstrong and Mitchell}{Armstrong and Mitchell}{1994}} \bibcite{Bol92}{\citeauthoryear {Bollay}{Bollay}{1992}} \bibcite{Booch1994}{\citeauthoryear {Booch}{Booch}{1994}} \bibcite{Unified}{\citeauthoryear {Booch and Rumbaugh}{Booch and Rumbaugh}{1995}} \bibcite{CA93}{\citeauthoryear {Castano and Antonellis}{Castano and Antonellis}{1993}} \bibcite{Cha91}{\citeauthoryear {Champeaux}{Champeaux}{1991}} \bibcite{Iwan95}{\citeauthoryear {Chau}{Chau}{1995}} \bibcite{CC94}{\citeauthoryear {Chen and Chen}{Chen and Chen}{1994}} \bibcite{CH93}{\citeauthoryear {Chen and Hennicker}{Chen and Hennicker}{1993}} \bibcite{CJ93}{\citeauthoryear {Cheng and J.}{Cheng and J.}{1993}} \bibcite{CY91a}{\citeauthoryear {Coad and Yourdon}{Coad and Yourdon}{1991a}} \bibcite{CY91b}{\citeauthoryear {Coad and Yourdon}{Coad and Yourdon}{1991b}} \bibcite{Fir94}{\citeauthoryear {Firesmith}{Firesmith}{1994}} \bibcite{GHJV93}{\citeauthoryear {Gamma, Helm, Johnson, and Vlissides}{Gamma et\penalty \@M \ al.}{1993}} \bibcite{Gibbs90}{\citeauthoryear {Gibbs, Tsichritzis, Casais, Nierstrasz, and Pintado}{Gibbs et\penalty \@M \ al.}{1990}} \bibcite{GA90}{\citeauthoryear {Gossain and Anderson}{Gossain and Anderson}{1990}} \bibcite{Hol93}{\citeauthoryear {Holzle}{Holzle}{1993}} \bibcite{Jez93}{\citeauthoryear {Jezequel}{Jezequel}{1993}} \bibcite{Joh93}{\citeauthoryear {Johnson}{Johnson}{1993}} \bibcite{Ken92}{\citeauthoryear {Kennedy}{Kennedy}{1992}} \bibcite{Koe94}{\citeauthoryear {Koenig}{Koenig}{1994}} \bibcite{LHKS91}{\citeauthoryear {Lewis, Henry, Kafura, and Schulman}{Lewis et\penalty \@M \ al.}{1991}} \bibcite{LHKS92}{\citeauthoryear {Lewis, Henry, Kafura, and Schulman}{Lewis et\penalty \@M \ al.}{1992}} \bibcite{MS92}{\citeauthoryear {McGregor and Sykes}{McGregor and Sykes}{1992}} \bibcite{Mey88}{\citeauthoryear {Meyer}{Meyer}{1988}} \bibcite{EiffelLanguage}{\citeauthoryear {Meyer}{Meyer}{1992}} \bibcite{Mey94a}{\citeauthoryear {Meyer}{Meyer}{1994a}} \bibcite{Mey94b}{\citeauthoryear {Meyer}{Meyer}{1994b}} \bibcite{MC91}{\citeauthoryear {Morley and Chui}{Morley and Chui}{1991}} \bibcite{Ner92}{\citeauthoryear {Nerson}{Nerson}{1992}} \bibcite{OH92}{\citeauthoryear {Ossher and Harrison}{Ossher and Harrison}{1992}} \bibcite{Rumbaugh1991}{\citeauthoryear {Rumbaugh}{Rumbaugh}{1991}} \bibcite{STK94}{\citeauthoryear {Subramanian, Tsai, and Kirani}{Subramanian et\penalty \@M \ al.}{1994}} \bibcite{BON1995}{\citeauthoryear {Walden and Nerson}{Walden and Nerson}{1995}} \bibcite{WS91}{\citeauthoryear {Wasserman}{Wasserman}{1991}} \bibcite{You94}{\citeauthoryear {Yourdon}{Yourdon}{1994}}