Jeu de taquin: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Xnn
m The Schützenberger involution: wikilink involution
 
en>Jonesey95
m Fixing "Pages with DOI errors" error
 
Line 1: Line 1:
[[Image:ContextDiagram LastResortHotel.png|360px|thumb|[[System context diagram]] for a fictitious hotel. (By convention, bidirectional flows, with arrows at both ends, are often used when a dialogue is initiated externally.  For example, “booking dialogue” contains the flow “booking request”, which is the initial trigger; “booking confirmation”, the result, is sent back.)]]
'''Event partitioning''' is an easy-to-apply [[systems analysis]] technique that helps the analyst organize [[requirement]]s for large systems into a collection of smaller, simpler, minimally-connected, easier-to-understand ‘mini systems’ / [[use case]]s.


== Overview ==
The Event partitioning approach is explained by Stephen M. McMenamin and John F. Palmer in ''Essential Systems Analysis''.<ref>MCME-84: {{cite book
| first = Stephen M.
| last = McMenamin
| coauthors = John F. Palmer
| year = 1984
| title = Essential Systems Analysis
| publisher = Prentice-Hall (Yourdon Press)
| isbn = 0-13-287905-0
}} (ISBN 978-0-13-287905-7)</ref>  A brief version of the approach is described in the article on [[Data flow diagram#Event partitioning approach|Data Flow Diagrams]].  A more complete discussion is in [[Edward Yourdon|Edward Yourdon's]] ''Just Enough Structured Analysis''.<ref>YOUR-89: {{cite web
|url=http://yourdon.com/strucanalysis/wiki/index.php?title=Chapter_18#CONSTRUCTING_THE_ENVIRONMENTAL_MODEL
|title=yourdon.com - ''Just Enough Structured Analysis'', Chapters 18, 19
|year=1989}}</ref> The description focuses on using the technique to create data flow diagrams, but it can be used to identify [[use case]]s as well.


If you present photography effectively, it helps you look much more properly at the globe around you. Also, you may want to opt for a more professioanl theme if you are planning on showing your site off to a high volume of potential customers each day. * A community forum for debate of the product together with some other customers in the comments spot. They found out all the possible information about bringing up your baby and save money at the same time. You can customize the appearance with PSD to Word - Press conversion ''. <br><br>Always remember that an effective linkwheel strategy strives to answer all the demands of popular  search engines while reacting to the latest marketing number trends. If you cherished this write-up and you would like to receive a lot more information concerning [http://www.bentleygsa.org/cssa/bbs/home/link.php?url=https://wordpress.org/plugins/ready-backup/ backup plugin] kindly take a look at the web site. Wordpress have every reason with it which promote wordpress development. It sorts the results of a search according to category, tags and comments. t need to use the back button or the URL to get to your home page. Aided by the completely foolproof j - Query color selector, you're able to change the colors of factors of your theme a the click on the screen, with very little previous web site design experience. <br><br>You can down load it here at this link:  and utilize your FTP software program to upload it to your Word - Press Plugin folder. Word - Press has ensured the users of this open source blogging platform do not have to troubleshoot on their own, or seek outside help. Those who cannot conceive with donor eggs due to some problems can also opt for surrogacy option using the services of surrogate mother. User friendly features and flexibility that Word - Press has to offer is second to none. For any web design and development assignment, this is definitely one of the key concerns, specifically for online retail outlets as well as e-commerce websites. <br><br>If all else fails, please leave a comment on this post with the issue(s) you're having and help will be on the way. And, that is all the opposition events with nationalistic agenda in favor of the individuals of Pakistan marching collectively in the battle in opposition to radicalism. Exacting subjects in reality must be accumulated in head ahead of planning on your high quality theme. The company gains commission from the customers' payment. Wordpress template is loaded with lots of prototype that unite graphic features and content area. <br><br>Many developers design websites and give them to the clients, but still the client faces problems to handle the website. When you sign up with Wordpress, you gain access to several different templates and plug-in that allow you to customize your blog so that it fits in with your business website design seamlessly. However, there are a few other Wordpress plugins also for its development which requires adding files in your Wordpress setup. Word - Press is an open source content management system which is easy to use and offers many user friendly features. Article Source: Hostgator discount coupons for your Wordpress site here.
The premise of event partitioning is that systems exist to respond to external events: identify what happens in the business environment that requires planned responses, then define and build systems to respond according to the rules of the business. In particular, a business system exists to service the requests of customers.  A customer, in the jargon of the [[Unified Modeling Language]] (UML), is an ‘[[Actor (UML)|actor]].’
 
== Event partitioning topics ==
 
===Actor → Event → Detect → Respond===
The method has the following steps.
* '''1.''' Identify the external systems by [[brainstorming]] a list of the ‘'''actors'''’ (external systems), which are the sources of external events.  If you find a graphic to be helpful, create a [[system context diagram|context diagram]] showing the actors outside of the system under study and the flows/signals between them.  
* '''2.''' Putting oneself [[empathy|in the shoes]] of an ‘actor’ (or working with actor representatives), brainstorm a list of the ‘'''[[Event-driven architecture|external events]]'''’ / ‘triggers’ that they want the system to have a planned response to.  (Note that the system cannot originate ''external'' events; only an actor can.)
* '''3.''' Identify what will enable the system to '''[[Detection theory|detect]]''' the external events:
** the arrival of one or more pieces of '''data''' (possibly in the form of a message)
** the arrival of one or more points in '''time''' (called "temporal" events by M&P, and distinguished by them from external events)
* '''4.''' Identify the '''[[plan]]ned response(s)''' that the system may carry out when the events occur.  It’s the response(s)/use case(s) that will enable the system to achieve its goals.
 
The technique was extended with ‘non-event’ events by Paul T. Ward and [[Stephen J. Mellor]] in ''Structured Development for Real-Time Systems: Essential Modeling Techniques''.<ref>WARD-85: {{cite book
| first = Paul T.
| last = Ward
| coauthors = [[Stephen J. Mellor]]
| year = 1985
| title = Structured Development for Real-Time Systems: Volume 2, Essential Modeling Techniques
| publisher = Prentice-Hall (Yourdon Press)
| isbn = 0-13-854787-4
}} (ISBN 978-0-13-854787-5)</ref>
 
{{cquote|“Since the terminators [actors] are by definition outside the bounds of the system-building effort represented by the model, the implementors cannot modify the terminator [actor] technology at will to improve its reliability. Instead, they must build responses to terminator [actor] problems into the essential model of the system. A useful approach to modeling responses to terminator [actor] problems is to build a list of ‘normal’ events and then to ask, for each event, ‘Does the system need to respond if this event ''fails to'' occur as expected?’ ” <ref>WARD-85, pp. 38-39.</ref> [emphasis added] }}
 
=== Data dictionary notation ===
Yourdon/DeMarco style of [http://yourdon.com/strucanalysis/wiki/index.php?title=Chapter_10#DATA_DICTIONARY_NOTATION data dictionary notation] may be used to describe the composition and structure of data.
 
{| class="wikitable"
|-
! Symbol
! Meaning
|-
| =
| ‘contains’, ‘is’, or ‘is composed of’
|-
| +
| ‘and’, ‘as well as’, or ‘together with’ (''not'' arithmetic ‘plus’)
|-
| ''m''{''x''}''n'' &nbsp; '''or''' <math>{}_m^n \{ x \}</math>
| ‘from ''m'' to ''n'' iterations of ''x''’. If ''m'' or ''n'' is not specified, then the lower or upper limit is simply ‘unknown’ or ‘unspecified’. Multi-dimensional arrays may be specified by nesting, e.g., 10 { 10 { x } 10 } 10 defines a two-dimensional matrix of 10 rows with 10 columns.
|-
| (''x'')
| ‘optionally ''x''’. This is equivalent to 0{''x''}1 or <math>{}_0^1 \{ x \}</math>.
|-
| @
| ''prefix'' for an ''[[identifier]]'' within an iteration. For example, in {@i+@j+x} ''i'' and ''j'' are identifiers.
|-
| [''x'' ; ''y'' ; ''z'']
| ‘select only one of either ''x'' or ''y'' or ''z''’. Either a ''[[semicolon]]'' (;) or a ''[[vertical bar#Backus-Naur_form|vertical bar]]'' (|) may be used to separate items in the list.
|-
| * ... *
| Anything between single ''[[asterisk]]s'' is regarded as a comment. At the [[data element]] level, a comment may contain such type tags as ‘range :’, ‘limits :’, ‘precision :’, ‘unit :’ or ‘values :’.
|}
 
NB. The items defined may be ‘material’ (e.g., room key) as well as ‘data’ (e.g., arrival date-time).
 
===Identifying Requirements and Their Reasons===
The event-response information may be captured in a table. The event is the ''[http://en.wiktionary.org/wiki/raison_d'être raison d’être]'' for the response, which gives ‘[[Traceability#Software|traceability]]’ from the response back to the environment.
{| class="wikitable"
|-
! 1. Actor
! 2. External Event / Trigger
! 3. Detected by  
! 4. Response(s) / Use Case(s)
|-
| Guest
| Guest requests a room of a certain type, for a particular arrival date, departure date, at a certain rate, etc.
| booking request +<br />(payment validation) +<br />(*external reservation system* booking confirmation) <ref>booking dialogue = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = *input* booking request + *output* booking confirmation<br /> booking request = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = guest name + room type + (room facilities) +<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arrival date-time + departure date-time<br /> room type = * type of bedroom *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = * values : [ single ; double ; family ] *<br /> room facilities = * [[Boolean datatype|booleans]] that indicate presence or absence of a facility *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = television + radio + alarm clock + climate control + Internet access +<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; telephone + refrigerator + mini-bar + toilet + sink + bath + shower + bidet<br /> arrival date-time = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = date-time<br /> departure date-time = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = date-time<br /> date-time = * [[ISO 8601]] format *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = year + month + day of month + 'T' + hour + minute ></ref>
| Book Room (may include guaranteed booking, alternate hotel booking, waitlisted booking)
|-
| Guest
| Guest asks to cancel room booking.
| cancellation request <ref>cancellation dialogue = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = *input* cancellation request +  *output* cancellation confirmation</ref>
| Cancel Booking
|-
| Guest
| Guest arrives at hotel.
| arrival message = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = [guest name ; booking reference] <ref>arrival dialogue = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = *input* arrival message + *output* arrival packet<br /> arrival packet = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = room key + room card + complimentary drink coupon</ref>
| Check in Guest
|-
| Time / Scheduler
| Guest ''fails to'' arrive at hotel. [This is a ‘non-event’ event.]
| 11 pm (local time) [A ‘non-event’ event is detected by the arrival of a point in time, a deadline.]
| Create Guest Bill,<br /> Update Booking
|-
| Guest
| Guest asks to check out of hotel.
| check-out request = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = [guest name ; room number] <ref>check-out dialogue = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = *input* check-out request + *output* guest bill</ref>
| Create Guest Bill,<br /> Update Room Occupancy
|-
| Time / Scheduler
| Guest ''fails to'' check out of hotel. [This is a ‘non-event’ event.]
| 11 am (local time) [A ‘non-event’ event is detected by the arrival of a point in time, a deadline.]
| Create Guest Bill
|-
| Guest
| Guest offers payment of bill.
| payment vehicle = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = [cash ; cheque ; credit card ; debit card] + (guest id) <ref>payment dialogue = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = *input* payment vehicle + *output* guest receipt<br /> guest receipt = * *<br /> &nbsp;&nbsp;&nbsp;&nbsp; = guest name + guest address + {charge detail} + charge total + (taxes) + amount due + amount paid</ref>
| Accept Guest Payment
|-
| Time / Scheduler
| Time to prepare Room Occupancy Report for previous night.
| 8 am (local time)
| Report on Room Occupancy
|-
| Hotel Manager
| Hotel Manager requests Room Occupancy Report.
| occupancy report request
| Report on Room Occupancy
|-
| Smoke / CO Alarm
| Alarm detects smoke.
| smoke alarm message
| Report Smoke Alarm
|-
| Smoke / CO Alarm
| Alarm detects CO (carbon monoxide).
| CO alarm message
| Report CO Alarm
|-
|}
 
===Defining requirements===
[[Image:LastResortHotel BookRoom Process.png|240px|thumb|Single process in a fictitious hotel using [[data flow diagram]] notation.]][[Image:LastResortHotel BookRoom UseCase.png|240px|right|thumb|Single use case in a fictitious hotel using [[use case diagram]] notation.]]
This approach helps the analyst to decompose the system into ‘mentally bite-sized’ mini-systems using events that require a planned response.  The level of detail of each response is at the level of ‘primary [[use case]]s’.  Each planned response may be modelled using DFD notation or as a single use case using use case diagram notation.
 
The ''basic flow'' within a process or use case can usually be described in a relatively small number of steps, often fewer than twenty or thirty, possibly using something like ‘[[structured English]]’. Ideally, all of the steps would be visible all at once (often a page or less). The intention is to reduce one of the risks associated with [[Memory#Short-term|short-term memory]], namely, forgetting what is not immediately visible (‘out of sight, out of mind’).
 
Alternatively, using the notations of structured techniques, an analyst could create a ‘[[Nassi–Shneiderman diagram]]’. In the UML, the use case could be modelled using an [[activity diagram]], a [[sequence diagram]], or a [[communication diagram]].  This could be problematic if there are many complex [[Scenario (computing)|scenarios]] of the use case; the analyst may wish to model all or most of the scenarios.
 
===Complexity versus fragmentation===
If the response is lengthy or complex (i.e., more than a page of text), an analyst may [[Decomposition paradigm|decompose]] (‘factor out’ or [[deduplication|deduplicate]]) into smaller ‘secondary use cases’ to keep the ‘parent’ primary use case smaller and simpler. These secondary use cases may prove to be reusable as well. (In a UML [[use case diagram]], they would be drawn as [[Use case diagram#Extend|extended]] or [[Use case diagram#Include|included]] use cases, which are related to one or more primary use cases.)
 
While describing a use case, an analyst may also uncover ‘[[business rule]]s’. Some analysts suggest capturing business rules in a separate document using the [[Object Constraint Language]] or some other [[Business rule#Formal specification|formal notation]]. Then when a business rule must be obeyed in a use case, the analyst makes reference to it. This minimises repetition within a specification, but risks fragmentation of a specification.  One technique that may reduce this tension is to use [[hyperlink]]s in the specification document.
 
In addition to [[functional requirements]] captured in a use case description, an analyst may include such [[non-functional requirements]] as response time, learnability, etc.
 
== See also ==
* [[Business case]]
* [[SIPOC]]
* [[Use case]]
* [[Use case diagram]]
* [[User story]]
 
== References ==
{{reflist}}
 
== External links ==
* [http://yourdon.com/strucanalysis/wiki/index.php?title=Chapter_19 Event partitioning] Structured Analysis Wiki
 
[[Category:Software requirements]]
[[Category:Systems analysis]]
[[Category:Software]]
[[Category:Events (computing)]]

Latest revision as of 06:38, 4 September 2013

File:ContextDiagram LastResortHotel.png
System context diagram for a fictitious hotel. (By convention, bidirectional flows, with arrows at both ends, are often used when a dialogue is initiated externally. For example, “booking dialogue” contains the flow “booking request”, which is the initial trigger; “booking confirmation”, the result, is sent back.)

Event partitioning is an easy-to-apply systems analysis technique that helps the analyst organize requirements for large systems into a collection of smaller, simpler, minimally-connected, easier-to-understand ‘mini systems’ / use cases.

Overview

The Event partitioning approach is explained by Stephen M. McMenamin and John F. Palmer in Essential Systems Analysis.[1] A brief version of the approach is described in the article on Data Flow Diagrams. A more complete discussion is in Edward Yourdon's Just Enough Structured Analysis.[2] The description focuses on using the technique to create data flow diagrams, but it can be used to identify use cases as well.

The premise of event partitioning is that systems exist to respond to external events: identify what happens in the business environment that requires planned responses, then define and build systems to respond according to the rules of the business. In particular, a business system exists to service the requests of customers. A customer, in the jargon of the Unified Modeling Language (UML), is an ‘actor.’

Event partitioning topics

Actor → Event → Detect → Respond

The method has the following steps.

  • 1. Identify the external systems by brainstorming a list of the ‘actors’ (external systems), which are the sources of external events. If you find a graphic to be helpful, create a context diagram showing the actors outside of the system under study and the flows/signals between them.
  • 2. Putting oneself in the shoes of an ‘actor’ (or working with actor representatives), brainstorm a list of the ‘external events’ / ‘triggers’ that they want the system to have a planned response to. (Note that the system cannot originate external events; only an actor can.)
  • 3. Identify what will enable the system to detect the external events:
    • the arrival of one or more pieces of data (possibly in the form of a message)
    • the arrival of one or more points in time (called "temporal" events by M&P, and distinguished by them from external events)
  • 4. Identify the planned response(s) that the system may carry out when the events occur. It’s the response(s)/use case(s) that will enable the system to achieve its goals.

The technique was extended with ‘non-event’ events by Paul T. Ward and Stephen J. Mellor in Structured Development for Real-Time Systems: Essential Modeling Techniques.[3]

Benefits of Living in a Rental or Landed property in Singapore Property New Launches & Undertaking Showcase In Singapore Many residential Singapore property gross sales contain shopping for property in Singapore at new launches. These are often properties below development, being sold new by developers. New Launch Singapore Property, 28 Imperial Residences Coming To Geylang Lorong 26 The property market is slowing down, in accordance with personal property transactions in Could Cellular Apps FREE Signal Up Log in Property Agents Feedback

Banks usually engage skilled valuers to conduct valuations of properties. The valuers are required to abide by industry requirements and guidelines for property valuation prescribed by the Singapore Institute of Surveyors and Valuers. With Singapore conserving its greenery and with town sky view being the attraction to many, it is no wonder that increasingly condos are being developed on the island. Many future traders are placing extra value on units with a view than these with out one. Thus, this may be one of the reasons too as to why your unit of selection is either with a view or with out. How to Spot Abroad Property Scams (at Propwise.sg) New Condominium Eco Sanctuary Launch 01Dec 2012 Coming Quickly !!! New launch rental COCO Palm at Pasir Ris

Association charges has to be paid by each condominium proprietor, weather you are dwelling in it or not, or even in case you have rented the property. So, whether you employ the amenities and amenities at the condominium, you'll any how must pay for them. JOHOR BAHARU, Jan 22 (Bernama) — The property market in Johor Baharu and Iskandar Malaysia has been negatively affected by the cooling measures introduced by the authorities to address rising property prices, says the Actual Property and Housing Developers' Association of Malaysia (Rehda). District 18, 99 years LH Executive Apartment District 25, ninety nine years LH Executive Rental District 19, ninety nine years LH Government Apartment pipelines. Property homeowners haven't any different but to pay up. There's no different sensible Hottest Launch D'Leedon

Dr Victor Lee is a surgeon gazetted to carry out multi-organ transplant surgical procedure. He underwent his fellowship coaching in transplant surgery on the Royal Infirmary of Edinburgh, United Kingdom in 2008 and 2009. He is presently a consultant surgeon at the Singapore Normal Hospital, and visiting guide to the National College Hospital. His scientific interest and skills are in the areas of transplant surgery, hepatobiliary pancreatic surgery and laparoscopic surgical procedure.

Lush Acres Government Condominium goes to launch quickly at Sengkang West Method By Metropolis Developments Limited. Lush Acres reflects the large expense of house, environmentally-inexperienced constructing and plush panorama of this low density development with solely 22% of website protection. There have been students, retirees and property agents napping, snacking and taking part in cards within the queue to kill time. Such a scene made passers-by wonder if the gang really consisted of genuine consumers, or just part-timers being paid to fake how sizzling the new undertaking was. The model was filed in Switzerland in October 2009 with a model r egistration dated March 25, 2010 A deposit was also recorded in France at the INPI (National Institute of Intellectual Property) Coastal commercial spaceports

Individuals all wish to be seen having the identical foresight because the specialists in property investment or the massive names in their own fields. Thus the discharge of these tales works to motivate other patrons to follow go well with. Bartley Ridge is the hottest new launch in district 13. Irresistible pricing from $1,1xx psf. Bartley Ridge is a ninety nine-yr leasehold new condo at Mount Vernon highway, excellent subsequent to Bartley MRT station (CC12). If you wish to get more Rehda Johor chairman Koh Moo Hing stated potential property patrons within the two areas at the moment are adopting a wait-and-see angle. How can I get the ebrochure and flooring plans of the new launch initiatives ? The Current Mortgage to your HDB District thirteen, Freehold condominium District 11, Freehold Cluster landed house Sea Horizon EC @ Pasir Ris

The simplest way is to contact a real estate agent who's a Advertising Workforce Member The agent will doubtless meet to show you details of the undertaking supplied by the developer. Attending a preview doesn't suggest you are obliged to purchase a unit. You can select not to and your cheque will likely be returned to you. No cost concerned. Your cheque will likely be returned to you in the event you decide to not proceed to purchase. Early hen low cost (up to 10%) at the preview earlier than the official launch. The purpose of that is to stimulate demand and to create a buying house in singapore momentum. As soon as this function is achieved, the developer would then take away the low cost so as to maximize his profitability. 2/3/4 bedrooms units obtainable ! GREATEST PURCHASE NOW !!! AVG $1900psf The Key Commercial Cluster in the North Area

Data dictionary notation

Yourdon/DeMarco style of data dictionary notation may be used to describe the composition and structure of data.

Symbol Meaning
= ‘contains’, ‘is’, or ‘is composed of’
+ ‘and’, ‘as well as’, or ‘together with’ (not arithmetic ‘plus’)
m{x}n   or mn{x} ‘from m to n iterations of x’. If m or n is not specified, then the lower or upper limit is simply ‘unknown’ or ‘unspecified’. Multi-dimensional arrays may be specified by nesting, e.g., 10 { 10 { x } 10 } 10 defines a two-dimensional matrix of 10 rows with 10 columns.
(x) ‘optionally x’. This is equivalent to 0{x}1 or 01{x}.
@ prefix for an identifier within an iteration. For example, in {@i+@j+x} i and j are identifiers.
[x ; y ; z] ‘select only one of either x or y or z’. Either a semicolon (;) or a vertical bar (|) may be used to separate items in the list.
* ... * Anything between single asterisks is regarded as a comment. At the data element level, a comment may contain such type tags as ‘range :’, ‘limits :’, ‘precision :’, ‘unit :’ or ‘values :’.

NB. The items defined may be ‘material’ (e.g., room key) as well as ‘data’ (e.g., arrival date-time).

Identifying Requirements and Their Reasons

The event-response information may be captured in a table. The event is the raison d’être for the response, which gives ‘traceability’ from the response back to the environment.

1. Actor 2. External Event / Trigger 3. Detected by 4. Response(s) / Use Case(s)
Guest Guest requests a room of a certain type, for a particular arrival date, departure date, at a certain rate, etc. booking request +
(payment validation) +
(*external reservation system* booking confirmation) [4]
Book Room (may include guaranteed booking, alternate hotel booking, waitlisted booking)
Guest Guest asks to cancel room booking. cancellation request [5] Cancel Booking
Guest Guest arrives at hotel. arrival message = * *
     = [guest name ; booking reference] [6]
Check in Guest
Time / Scheduler Guest fails to arrive at hotel. [This is a ‘non-event’ event.] 11 pm (local time) [A ‘non-event’ event is detected by the arrival of a point in time, a deadline.] Create Guest Bill,
Update Booking
Guest Guest asks to check out of hotel. check-out request = * *
     = [guest name ; room number] [7]
Create Guest Bill,
Update Room Occupancy
Time / Scheduler Guest fails to check out of hotel. [This is a ‘non-event’ event.] 11 am (local time) [A ‘non-event’ event is detected by the arrival of a point in time, a deadline.] Create Guest Bill
Guest Guest offers payment of bill. payment vehicle = * *
     = [cash ; cheque ; credit card ; debit card] + (guest id) [8]
Accept Guest Payment
Time / Scheduler Time to prepare Room Occupancy Report for previous night. 8 am (local time) Report on Room Occupancy
Hotel Manager Hotel Manager requests Room Occupancy Report. occupancy report request Report on Room Occupancy
Smoke / CO Alarm Alarm detects smoke. smoke alarm message Report Smoke Alarm
Smoke / CO Alarm Alarm detects CO (carbon monoxide). CO alarm message Report CO Alarm

Defining requirements

File:LastResortHotel BookRoom Process.png
Single process in a fictitious hotel using data flow diagram notation.
File:LastResortHotel BookRoom UseCase.png
Single use case in a fictitious hotel using use case diagram notation.

This approach helps the analyst to decompose the system into ‘mentally bite-sized’ mini-systems using events that require a planned response. The level of detail of each response is at the level of ‘primary use cases’. Each planned response may be modelled using DFD notation or as a single use case using use case diagram notation.

The basic flow within a process or use case can usually be described in a relatively small number of steps, often fewer than twenty or thirty, possibly using something like ‘structured English’. Ideally, all of the steps would be visible all at once (often a page or less). The intention is to reduce one of the risks associated with short-term memory, namely, forgetting what is not immediately visible (‘out of sight, out of mind’).

Alternatively, using the notations of structured techniques, an analyst could create a ‘Nassi–Shneiderman diagram’. In the UML, the use case could be modelled using an activity diagram, a sequence diagram, or a communication diagram. This could be problematic if there are many complex scenarios of the use case; the analyst may wish to model all or most of the scenarios.

Complexity versus fragmentation

If the response is lengthy or complex (i.e., more than a page of text), an analyst may decompose (‘factor out’ or deduplicate) into smaller ‘secondary use cases’ to keep the ‘parent’ primary use case smaller and simpler. These secondary use cases may prove to be reusable as well. (In a UML use case diagram, they would be drawn as extended or included use cases, which are related to one or more primary use cases.)

While describing a use case, an analyst may also uncover ‘business rules’. Some analysts suggest capturing business rules in a separate document using the Object Constraint Language or some other formal notation. Then when a business rule must be obeyed in a use case, the analyst makes reference to it. This minimises repetition within a specification, but risks fragmentation of a specification. One technique that may reduce this tension is to use hyperlinks in the specification document.

In addition to functional requirements captured in a use case description, an analyst may include such non-functional requirements as response time, learnability, etc.

See also

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

External links

  1. MCME-84: 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.

    My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 (ISBN 978-0-13-287905-7)
  2. YOUR-89: Template:Cite web
  3. WARD-85: 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.

    My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 (ISBN 978-0-13-854787-5)
  4. booking dialogue = * *
         = *input* booking request + *output* booking confirmation
    booking request = * *
         = guest name + room type + (room facilities) +
           arrival date-time + departure date-time
    room type = * type of bedroom *
         = * values : [ single ; double ; family ] *
    room facilities = * booleans that indicate presence or absence of a facility *
         = television + radio + alarm clock + climate control + Internet access +
           telephone + refrigerator + mini-bar + toilet + sink + bath + shower + bidet
    arrival date-time = * *
         = date-time
    departure date-time = * *
         = date-time
    date-time = * ISO 8601 format *
         = year + month + day of month + 'T' + hour + minute >
  5. cancellation dialogue = * *
         = *input* cancellation request + *output* cancellation confirmation
  6. arrival dialogue = * *
         = *input* arrival message + *output* arrival packet
    arrival packet = * *
         = room key + room card + complimentary drink coupon
  7. check-out dialogue = * *
         = *input* check-out request + *output* guest bill
  8. payment dialogue = * *
         = *input* payment vehicle + *output* guest receipt
    guest receipt = * *
         = guest name + guest address + {charge detail} + charge total + (taxes) + amount due + amount paid