Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!
  • 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 all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

IBM-Write use cases

 
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
46) Which of the following MUST be present to write use cases? [2]
a) Development team
b) Object technology expert
c) Domain expert
d) Requirements decision maker
My answer: cd. But I've seen different answers like ac, which I think should be present at the phase of developing domain models. I am willing to see other people's opinions. Thanks in advance.

 
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I would lean towards A and C.
The HINT is "to write use cases".To identify/write use cases, interaction between the Domain expert and the Development team is important.
The Development team would schedule interviews with the Domain expert to understand the "Requirement Risks" (as Martin Fowler mentions in his book).The team would be responsible to write use cases,which is usually a short paragraph - (paraphrased)This is specific enough for the users/domain expert to understand the basic idea and also gives a broad sense to the development team of what is lurking inside!!
Note that, the requirement study is done prior to writing use cases.We normally reference the requirements with a particular use case.Hence Requirement Decision Maker is required before writing an use case.
Hope this helps,
Sandeep
[This message has been edited by Desai Sandeep (edited May 19, 2001).]
 
Ranch Hand
Posts: 233
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Writes Fowler on p. 20: (the emphases are mine)
"The team that builds the domain model should be a small group (two to four people) that include developers and domain experts. The smallest viable team would be one developer and one domain expert."
Of course, the above paragraph refers to the domain model, not use cases per se. However, I don't see why use cases (or any plan and elaborate phase artifact for that matter) should be any different.
Also, given that it is the use cases that will drive the development process, I don't believe it would be very wise for the development team to be left out of their writing.
My two cents,
Panagiotis.
 
Desai Sandeep
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Panagiotis,
You have quoted the correct information from Martin Fowler's book.
Also on Page 19, he says "Domain Modelling can be a great adjunct to use cases" and (paraphrased) Domain Modelling process can quicky yield a lot of understanding, which can more easily identify the use cases for the various users.
Clearly, this means Domain Modelling and "writing use cases" go hand-in-hand.As for the team who could do this work, the information on Page 20 (which you provided in your post) confirms that A(Development Team) and C(Domain Expert) are the correct choices.
The only doubt is why leave out choices B and D.IMO, these are some of the reasons:

  1. You cannot do without a "Development team", since they are the ones who have to implement the use cases later on in the Project.They have to work on the use cases in order to correctly understand the requirement.
  2. If at all "Requirements Decision Maker" is needed, he should be one of the members of Development team, so that later he can work on synchronizing the use cases as and when the requirements become more evident.
  3. If you go through Larman's book, expanded use case contains a section called "Cross References".(see Page 50-51 of Craig Larman's book).This section of the use case relates to the System functions, which are the requirements identified before writing use cases.It makes sense to identify what system should do (the System Function Requirement; other requirements may also be identified) before writing use cases to elaborate on the System responses in the expanded use case.
  4. If "Requirement Decision Maker" works in tandem with "Domain Expert" to identify requirement and write use cases, and then hands over to the "Development Team" for the Build phase - you might witness serious communication problems - There is every chance that the Development team may fail to interpret the jargons of the problem domain correctly.If that happens, most likely the team would end up developing wrong software solution!!
    Also updating an use case, as and when the requirements become more evident would involve 3 profiles - "Development Team","Requirement Decision Maker" and "Domain Expert", which looks unrealistic.
  5. "Requirement Decision Maker" working with "Development Team" doesn't seem appropriate, since there is a high risk of loosing out on critical use cases without a "Domain Expert"
  6. "Object technology expert" would be required only in the Design/Construct stage.

  7. Hope this helps,
    Sandeep

    [This message has been edited by Desai Sandeep (edited May 19, 2001).]
 
Caroline Iux
Ranch Hand
Posts: 103
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Originally posted by Panagiotis Varlagas:
Writes Fowler on p. 20: (the emphases are mine)
"The team that builds the domain model should be a small group (two to four people) that include [b]developers
and domain experts. The smallest viable team would be one developer and one domain expert."
[/B]


Where does object technology expert fit into the picture here? Fowler should be counted as an object technololy expert. So if the question is about writing object models, the answer should be a,b,c?

Originally posted by Desai Sandeep:

The Development team would schedule interviews with the Domain expert to understand the "Requirement Risks" (as Martin Fowler mentions in his book).


Desai, could you please point me to the paragraph you mentioned above. I couldn't find it in the book. However, I do find on page 18, Fowler mentioned "During the elaboration phase, you should schedule interviews with users for the purpose of gathering use case." So, I guess user, development team and domain experts need to be present to write use cases.
 
Desai Sandeep
Ranch Hand
Posts: 1157
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,


Originally posted by Caroline Iux:
Where does object technology expert fit into the picture here? Fowler should be counted as an object technololy expert. So if the question is about writing object models, the answer should be a,b,c?


We are still in the elaboration stage.The emphasis is on understanding/analysing the system, rather than designing it.The 6th point that I mentioned, specifies this fact.Also, I believe, you may not require a "Object technology expert".If you refer to the "Dealing with Skills risk" in Martin Fowler's book, he presents a concept of mentoring.I think, that should take care of catering the needs of OO skills of the developers.In other words, he should be considered as part of the "Development Team" rather than a seperate entity.


Originally posted by Caroline Iux:
Desai, could you please point me to the paragraph you mentioned above. I couldn't find it in the book. However, I do find on page 18, Fowler mentioned "During the elaboration phase, you should schedule interviews with users for the purpose of gathering use case." So, I guess user, development team and domain experts need to be present to write use cases.


Incidentally, it was the same note , which I was pointing to.I believe Martin writes from the Developer's/software firm's prospective.So when he says "you", it means the "Developer" of the outsourcing firm.The "users" should be the "Domain Experts" of the client as well as the outsourcing firm.The "users"(Domain Experts) are the ones who know the business.So it is Domain Expert and the Development team working in tandem.
It looks a bit confusing - but consider it this way - A bank "ABC Inc."(client) outsourced the work to the software agency (contractor).The client wants the contractor to develop a credit-card business application.The users on the client side would be the "Domain Experts".The contractor will also have someone (Domain Expert) who has experience in developing Credit card solutions.He would work along with the Development team to develop the application.So the Domain Expert on the Contractor side brings in his Domain (credit card business) skills and the Development Team has technical skills to develop this solution.
Hence "Contractor Domain Expert" would interact with the user(client's Domain Expert) to identify and develop use cases.Also, the "Contractor Domain Expert" would keep the "Development Team" in the loop while writing use cases.
Hope this helps,
Sandeep
[This message has been edited by Desai Sandeep (edited May 19, 2001).]
 
Consider Paul's rocket mass heater.
    Bookmark Topic Watch Topic
  • New Topic