• 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
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Righting Software: Core Use Cases

 
Greenhorn
Posts: 10
  • Number of slices to send:
    Optional 'thank-you' note:
Hi Juval, I understand one central point you propose for reaching a stable architecture of a system is identifying the core business use cases. But I guess it is not always easy to identify such use cases unless you are fully involved with that business.
How do you achieve that correct identification of core use cases in short live projects?
 
Author
Posts: 12
10
  • Number of slices to send:
    Optional 'thank-you' note:
Márcio,

The core use cases are part of having composable design, where the decomposition (the making of the architecture) does not change, while the use cases change all the time (more in Chapter 4).
All businesses always have core use cases, and as the book explains, the core use cases represent the essence of the business. As such the core use cases do not change (unless the nature of the business changes which is both infrequent and unlikely).
Nowhere in the book did I say it is easy to find. Sometimes, people do not understand their own business.
To find the core use cases you must understand the business. Note, I am referring to the business, not to the domain-specific details. For example, life insurance companies likely have the same core use cases, but the details of how they go about it (like calculating the risk) could be very different. As such you do not have to be fully involved in every details. What you must have is a keen nose for business. That is the best way to make it easier.

The duration of the project is immaterial. All commercial software systems address some business need. As such there are always some core use cases to the business.

Juval.  
 
Ranch Hand
Posts: 122
1
  • Number of slices to send:
    Optional 'thank-you' note:
Well explained Juval Lowy.

My understanding on this is ,the central theme of any business domain or business operations would
eventually lead you to the Central Use Cases, and other supporting uses cases get spun out of there
if you want to organically grow the system ,but that is the old mind set that i have seen time and again.

 
Greenhorn
Posts: 7
  • Number of slices to send:
    Optional 'thank-you' note:
Hi Juval Lowy. How can I find code example of The Method. I am reading your book.

a particular use case can change in only two ways: Either the sequence
itself changes or the activities within the use case change.
...
Manager components encapsulate the volatility in the sequence, whereas
Engine components encapsulate the volatility in the activity.
...
Since use cases are often related, Managers tend to encapsulate a
family of logically related use cases, such as those in a particular
subsystem.
...
Managers may use zero or more Engines. Engines may be shared between Managers.
...
Managers can directly call Engines.
...
Engines are really just an expression of the Strategy design pattern used to implement
the activities within the Managers’ workflows.



In the book I did not find any code example so not understanding how to implement it or how the Manager or Engine actually look like in The Method.

I understand that I have to somehow use the strategy pattern. But, I am not understanding how to do it?

Please help.
 
Saloon Keeper
Posts: 15625
366
  • 1
  • Number of slices to send:
    Optional 'thank-you' note:
I haven't read the book, and I'm not sure if the author is still around to answer your question, but I could imagine something that roughly looks like this:

Here, Car is an engine that implements Vehicle, and Shopper is a manager that uses a Vehicle to drive to the store.

Car is an engine because it just implements some functionality. That functionality is not a goal in itself. It is not a real use case.

Driving to the store is a real use case, and Shopper is a manager because it uses engines to implement that use case.

We can see the Strategy Pattern being used here by virtue of the Vehicle interface. The Shopper doesn't really care how the vehicle is implemented, just that it has a vehicle and that that vehicle functions as expected. Here, using a Car is one strategy for driving to the store. Using a Bike could be another strategy.
 
Ahmmad Ismail
Greenhorn
Posts: 7
  • Number of slices to send:
    Optional 'thank-you' note:
Thank you very much.
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |