Identifying Domain Classes From Problem Statements Lecture 6-Part 2 PDF
Document Details
Uploaded by AdoredSanAntonio
null
Tags
Related
Summary
This lecture presents techniques for identifying domain classes from problem statements, focusing on a grammatical approach using nouns. It explains advantages and disadvantages, steps to identify classes, and includes a table of categories.
Full Transcript
Identifying Domain Classes from the Problem Statements Lecture 6- part 2 Introduction Same types of objects are typically implemented by class in object-oriented programming. As the structural unit of the system can be represented through the classes, so, it is very important to iden...
Identifying Domain Classes from the Problem Statements Lecture 6- part 2 Introduction Same types of objects are typically implemented by class in object-oriented programming. As the structural unit of the system can be represented through the classes, so, it is very important to identify the classes before start implementing all the logical flows of the system. In this experiment we will learn how to identify the classes from a given problem statement. Objectives Understand the concept of domain classes Identify a list of potential domain classes from a given problem statement Domain Class In Object Oriented paradigm Domain Object Model has become subject of interest for its excellent problem comprehending capabilities towards the goal of designing a good software system. Domain Model, as a conceptual model gives proper understanding of problem description through its highly effective component – the Domain Classes. Domain classes are the abstraction of key entities, concepts or ideas presented in the problem statement [iv]. As stated in [v], domain classes are used for representing business activities during the analysis phase. Traditional Techniques for Identification of Classes 1.Grammatical Approach Using Nouns This object identification technique was proposed by Russell J. Abbot, and Grady Booch made the technique popular. This technique involves grammatical analysis of the problem statement to identify list of potential classes. The logical steps are: 1.Obtain the user requirements (problem statement) as a simple, descriptive English text. This basically corresponds to the use-case diagram for the problem statement. 2.Identify and mark the nouns, pronouns and noun phrases from the above problem statements 3.List of potential classes is obtained based on the category of the nouns (details given later). For example, nouns that direct refer to any person, place, or entity in general, correspond to different objects. And so does singular proper nouns. On the other hand, plural nouns and common nouns are candidates that usually map into classes. 1.Grammatical Approach Using Nouns Advantages This is one of the simplest approaches that could be easily understood and applied by a larger section of the user base. The problem statement does not necessarily be in English, but in any other language. Disadvantages The problem statement always may not help towards correct identification of a class. At times it could give us redundant classes. At times the problem statement may use abbreviations for large systems or concepts, and therefore, the identified class may actually point to an aggregate of classes. In other words, it may not find all the objects. Traditional Techniques for Identification of Classes 2.Using Generalization In this approach, all potential objects are classified into different groups based on some common behaviour. Classes are derived from these groups. 3.Using Subclasses Here, instead of identifying objects one goes for identification of classes based on some similar characteristics. These are the specialized classes. Common characteristics are taken from them to form the higher level generalized classes. Steps to Identify Domain Classes from Problem Statement We now present the steps to identify domain classes from a given problem statement. This approach is mostly based on the “Grammatical approach using nouns” discussed on slide , with some insights from [i]. 1.Make a list of potential objects by finding out the nouns and noun phrases from narrative problem statement 2.Apply subject matter expertise (or domain knowledge) to identify additional classes 3.Filter out the redundant or irrelevant classes 4.Classify all potential objects based on categories. We follow the category table as described by Ross (table 5-3, pg 88, ) look to the table next slide categories Explanation People Humans who carry out some function Places Areas set aside for people or things Things Physical objects Collection of people, resources, facilities and capabilities having a defined Organizations mission Concepts Principles or Ideas not tangible Things that happen (usually at a given date and time), or as a steps in an Events ordered sequence Steps to Identify Domain Classes from Problem Statement 5. Group the objects based on similar attributes. While grouping we should remember that e. Different nouns (or noun phrases) can actually refer to the same thing (examples: house, home, abode) f. Same nouns (or noun phrases) could refer to different things or concepts (example: I go to school every day / This school of thought agrees with the theory) 6.Give related names to each group to generate the final list of top level classes 7.Iterate over to refine the list of classes Advanced Concepts Identification of domain classes might not be a simple task for novices. It requires expertise and domain knowledge to identify business classes from plain English text. The concepts presented here have been kept simple in order to make a student familiarize with the subject. A lot of work has been done in this area, and various techniques have been proposed to identify domain classes. Interested readers may look at the following paper for an advanced treatment on this subject matter. I. Y. Song, K. Yano, J. Trujillo, and S. Luján-Mora. "A Taxonomic Class Modeling Methodology for Object-Oriented Analysis", In Information Modeling Methods and Methodologies , Advanced Topics in Databases Series, Ed. (J Krostige, T. Halpi n, K. Siau), Idea Group Publishing, 2004, pp. 216-240. Bibliography 1.UML and C++ A Practical Guide To Object-Oriented Development, Richard C. Lee, William M. Tepfenhart, Prentice-Hall of India, 2nd Edition, 2005 2.Fundamentals of Software Engineering, Rajib Mall, Prentice-Hall of India, 3rd Edition, 2009 Webliography 1.Domain Analysis 2.Domain Analysis Using Textual Analysis Approach 3.Domain model 4.Business Modeling – The Domain Model 5.I. Y. Song, K. Yano, J. Trujillo, and S. Luján-Mora. "A Taxonomic Class Modeling Meth odology for Object-Oriented Analysis", In Information Modeling Methods and Methodo logies, Advanced Topics in Databases Series, Ed. (J Krostige, T. Halpin, K. Siau), Ide a Group Publishing, 2004, pp. 216-240.