• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Tim Cooke
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Junilu Lacar
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Stephan van Hulst
  • Peter Rooke
  • Mikalai Zaikin
Bartenders:
  • Himai Minh

Help required for identifying classes

 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,

I have a question paper, where given an application, classes have to be identified.

Question:
The following is a description of an application that can be used to maintain heterogenous documents that may be related in some way.
For example, a researcher may like to keep track of all the various documents collected while researching a particular topic. The documents are collected from various sources, and are in various formats (word documents, web pages, pdf, plain text, excel documents, images and so on).
The documents can be heirarchially related. There can be several aspects of the topic . For example, the user collects several articles under the heading �programmig languages�. After a while , the user finds articles which relate either to the principles, or to the study of existing languages. The user now creates sub headings � �principles� and �case studies� to store these documents. Then more headings appear � �syntax�, �front end� �implementation� and �back end� under �principles�;� procedural�, and �object oriented� under �case studies� and so on).
The user can create a new logical �folder� for a new topic, by setting the title of the topic. All documents collected under this heading will be bunched under this heading. As and when the user identifies subtopics, he/she creates new subheadings and stores the documents relating to it, and so on. Of course, the user can view, modify and save any existing �folder�.
The user uses the application to navigate through the compound document and view a listing of documents, and then the document he/she chooses. Navigation is through the headings. The user is allowed to search for words through the entire document, starting at any heading. Similarly, the user can make some changes like change of font, format, background to all the documents starting from some heading. The search yields a list of individual documents, which the user can view one by one.
The documents are in various formats and need the correct application to open, display, search them . (web browser and other word processing applications).Assume that these applications are available to the developer of the document manager application in the form of component objects with well defined, but varied interfaces.
The document manager application uses these other application to display the documents. Of course, the co-operation of these applications is needed in searching the entire document, or to make other changes.

1) Identify the classes in the problem. Give the design classes

Please anyone let me know how should go about solving this problem.
Should i first write a use-case then try to identify the classes using the use-case?

Thanks a lot,
Asha
 
Ranch Hand
Posts: 2187
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Should i first write a use-case then try to identify the classes using the use-case?



Writing the Use cases might help you learn more about the actual requirements and might help you formulate a business/domain object model for handling the requirements. The key activity is to first understand the business/domain requirements. One can rarely create a good design if they don't understand "what" is needed. Not "how" it can be done, it is about learning "what" needs to be done.

Once you understand "what" needs to happen, then you can work on a few "hows". When you have a few "hows", then pick one and implement it.

Good luck!
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I agree with James, if you would do proper sytem development, you would start with finding the use cases and actors. You would then document each use case and do realization of each use case. Doing that you would create one/more sequence diagrams and then one View of Participating Classes diagram (VOPC-diagram) for each use case.

If thats not the case, you can go ahead and find the design classes by
  • Underlining the nouns
  • Some nouns are attributes, some will be nothing in the design model but several will be candidate classes.

  • How are the classes related? Best way would be to create a couple of sequence diagrams to display how the objects are communicating, based on that you would find relationships and even the responsibilties of the different classes...

    But as James wrote, find the actors and use cases first...


     
    I have gone to look for myself. If I should return before I get back, keep me here with this tiny ad:
    Thread Boost feature
    https://coderanch.com/t/674455/Thread-Boost-feature
    reply
      Bookmark Topic Watch Topic
    • New Topic