घटना विभाजन
घटना विभाजन एक आसान-से-लागू सिस्टम विश्लेषण तकनीक है जो विश्लेषक को छोटे, सरल, न्यूनतम-जुड़े, आसानी से समझने वाले मिनी सिस्टम / उपयोग के मामलों के संग्रह में बड़े सिस्टम के लिए आवश्यकताओं को व्यवस्थित करने में मदद करता है।
सिंहावलोकन
इवेंट-विभाजन दृष्टिकोण को आवश्यक प्रणाली विश्लेषण में स्टीफन एम. मैकमेनामिन और जॉन एफ. पामर द्वारा समझाया गया है।[1] दृष्टिकोण का एक संक्षिप्त संस्करण डेटा प्रवाह आरेख#ईवेंट विभाजन दृष्टिकोण (डीएफडी) पर आलेख में वर्णित है। एडवर्ड योरडन |एडवर्ड योरडन के जस्ट एनफ स्ट्रक्चर्ड एनालिसिस में एक अधिक संपूर्ण चर्चा है।[2] विवरण डेटा प्रवाह आरेख बनाने के लिए तकनीक का उपयोग करने पर केंद्रित है, लेकिन इसका उपयोग उपयोग के मामलों की पहचान करने के लिए भी किया जा सकता है।
घटना विभाजन का आधार यह है कि बाहरी घटनाओं का जवाब देने के लिए सिस्टम मौजूद हैं: पहचानें कि कारोबारी माहौल में क्या होता है जिसके लिए योजनाबद्ध प्रतिक्रियाओं की आवश्यकता होती है, फिर व्यवसाय के नियमों के अनुसार जवाब देने के लिए सिस्टम को परिभाषित और निर्माण करें। विशेष रूप से, ग्राहकों के अनुरोधों को पूरा करने के लिए एक व्यापार प्रणाली मौजूद है। एकीकृत मॉडलिंग भाषा (यूएमएल) के शब्दजाल में एक ग्राहक, एक अभिनेता (यूएमएल) है।
घटना विभाजन विषय
अभिनेता → घटना → पता लगाएँ → प्रतिक्रिया दें
विधि में निम्न चरण होते हैं।
- 1. उन कारकों (बाहरी प्रणालियों) की सूची पर विचार-मंथन करके बाहरी प्रणालियों की पहचान करें, जो बाहरी घटनाओं के स्रोत हैं। यदि आप किसी ग्राफ़िक को मददगार पाते हैं, तो एक सिस्टम संदर्भ आरेख बनाएं जो अध्ययन के तहत सिस्टम के बाहर के अभिनेताओं और उनके बीच प्रवाह/संकेतों को दिखा रहा हो।
- 2. खुद को एक अभिनेता के प्रति सहानुभूति रखते हुए (या अभिनेता के प्रतिनिधियों के साथ काम करते हुए), इवेंट-संचालित आर्किटेक्चर/ट्रिगर की एक सूची पर मंथन करें कि वे चाहते हैं कि सिस्टम को एक नियोजित प्रतिक्रिया मिले। (ध्यान दें कि सिस्टम बाहरी घटनाओं को उत्पन्न नहीं कर सकता; केवल एक अभिनेता ही कर सकता है।)
- 3. पहचानें कि बाहरी घटनाओं का पता लगाने के लिए सिस्टम को क्या सक्षम करेगा:
- डेटा के एक या अधिक टुकड़ों का आगमन (संभवतः संदेश के रूप में)
- समय में एक या एक से अधिक बिंदुओं का आगमन (एम एंड पी द्वारा लौकिक घटनाएँ कहा जाता है, और उनके द्वारा बाहरी घटनाओं से अलग)
- 4. नियोजित प्रतिक्रिया (प्रतिक्रियाओं) की पहचान करें जो कि घटनाओं के होने पर सिस्टम कर सकता है। यह प्रतिक्रिया (ओं)/उपयोग के मामले हैं जो सिस्टम को अपने लक्ष्यों को प्राप्त करने में सक्षम बनाती हैं।
पॉल टी. वार्ड और स्टीफन जे. मेलोर द्वारा स्ट्रक्चर्ड डेवलपमेंट फॉर रियल-टाइम सिस्टम्स: एसेंशियल मॉडलिंग टेक्निक्स में इस तकनीक को गैर-ईवेंट इवेंट्स के साथ विस्तारित किया गया था।[3]
"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?' " [4] [emphasis added]
डेटा डिक्शनरी नोटेशन
डेटा डिक्शनरी नोटेशन की Yourdon/DeMarco शैली का वर्णन करने के लिए उपयोग किया जा सकता है डेटा की संरचना और संरचना।
Symbol | Meaning |
---|---|
= | "contains", "is", or "is composed of" |
+ | "and", "as well as", or "together with" (not arithmetic "plus") |
[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. |
m{x}n or m:n{x} or |
"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 0:1{x} or . |
@ | prefix for an identifier within an iteration. For example, in {@i+@j+x} i and j are identifiers. |
* ... * | 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 :". |
डेटा संरचना तत्व संरचित प्रोग्रामिंग की संरचित प्रोग्रामिंग # नियंत्रण संरचनाओं को मैप कर सकते हैं:
- + बयानों के अनुक्रम को मैप कर सकता है (हालांकि यह जरूरी नहीं है)
- [|] चयन के लिए मैप कर सकते हैं (सशर्त (कंप्यूटर प्रोग्रामिंग), स्विच स्टेटमेंट)
- {} , () पुनरावृत्ति के लिए मैप कर सकते हैं (लूप के लिए, जबकि लूप | प्री-टेस्ट लूप, मिडल-टेस्ट लूप, पोस्ट-टेस्ट लूप और अनंत लूप)
नायब। परिभाषित आइटम सामग्री (जैसे, कमरे की कुंजी) के साथ-साथ डेटा (जैसे, आगमन तिथि-समय) हो सकते हैं।
आवश्यकताओं की पहचान करना और उनके कारण
घटना-प्रतिक्रिया की जानकारी तालिका में दर्ज की जा सकती है। प्रतिक्रिया के लिए यह घटना विक्ट:रायसन डी'आत्रे|रायसन डी'आत्रे है, जो ट्रैसेबिलिटी #सॉफ्टवेयर को प्रतिक्रिया से पर्यावरण में वापस देता है।
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) [5] |
Book Room (may include guaranteed booking, alternate hotel booking, waitlisted booking) |
Guest | Guest asks to cancel room booking. | cancellation request [6] | Cancel Booking |
Guest | Guest arrives at hotel. | arrival message = * * = [guest name ; booking reference] [7] |
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] [8] |
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) [9] |
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 |
आवश्यकताओं को परिभाषित करना
यह दृष्टिकोण विश्लेषक को घटनाओं का उपयोग करके मानसिक रूप से काटने के आकार के मिनी-सिस्टम में सिस्टम को विघटित करने में मदद करता है, जिसके लिए योजनाबद्ध प्रतिक्रिया की आवश्यकता होती है। प्रत्येक प्रतिक्रिया के विवरण का स्तर प्राथमिक उपयोग के मामलों के स्तर पर है। प्रत्येक नियोजित प्रतिक्रिया को DFD संकेतन का उपयोग करके या उपयोग केस आरेख संकेतन का उपयोग करके एकल उपयोग मामले के रूप में तैयार किया जा सकता है।
एक प्रक्रिया या उपयोग के मामले के भीतर मूल प्रवाह को आमतौर पर अपेक्षाकृत कम संख्या में चरणों में वर्णित किया जा सकता है, अक्सर बीस या तीस से कम, संभवतः संरचित अंग्रेजी जैसी किसी चीज़ का उपयोग करके। आदर्श रूप से, सभी चरण एक साथ दिखाई देंगे (अक्सर एक पृष्ठ या उससे कम)। इसका इरादा मेमोरी # शॉर्ट-टर्म | शॉर्ट-टर्म मेमोरी से जुड़े जोखिमों में से एक को कम करना है, अर्थात्, जो तुरंत दिखाई नहीं दे रहा है उसे भूल जाना (दृष्टि से बाहर, दिमाग से बाहर)।
वैकल्पिक रूप से, संरचित तकनीकों के अंकन का उपयोग करके, एक विश्लेषक नासी-श्नीडरमैन आरेख बना सकता है। यूएमएल में, उपयोग के मामले को गतिविधि आरेख, अनुक्रम आरेख या संचार आरेख का उपयोग करके प्रतिरूपित किया जा सकता है। यदि उपयोग के मामले में कई जटिल परिदृश्य (कंप्यूटिंग) हैं तो यह समस्याग्रस्त हो सकता है; विश्लेषक सभी या अधिकांश परिदृश्यों को मॉडल करना चाह सकते हैं।
जटिलता बनाम विखंडन
यदि प्रतिक्रिया लंबी या जटिल है (अर्थात, पाठ के एक पृष्ठ से अधिक), तो एक विश्लेषक मूल प्राथमिक उपयोग के मामले को छोटा और सरल रखने के लिए अपघटन प्रतिमान (फैक्टर आउट या विक्ट:विशेष:खोज/डुप्लीकेशन) छोटे माध्यमिक उपयोग मामलों में कर सकता है। . ये द्वितीयक उपयोग के मामले पुन: प्रयोज्य भी साबित हो सकते हैं। (यूएमएल यूज केस डायग्राम में, उन्हें यूज केस डायग्राम#एक्सटेंड या यूज केस डायग्राम#शामिल यूज केस के रूप में खींचा जाएगा, जो एक या अधिक प्राथमिक उपयोग के मामलों से संबंधित हैं।)
उपयोग के मामले का वर्णन करते समय, एक विश्लेषक व्यावसायिक नियमों को भी प्रकट कर सकता है। कुछ विश्लेषक वस्तु बाधा भाषा या कुछ अन्य व्यावसायिक नियम # औपचारिक विनिर्देश का उपयोग करके एक अलग दस्तावेज़ में व्यावसायिक नियमों को कैप्चर करने का सुझाव देते हैं। फिर जब उपयोग के मामले में व्यापार नियम का पालन किया जाना चाहिए, तो विश्लेषक इसका संदर्भ देता है। यह पुनरावृत्ति को कम करता है [10] एक विनिर्देश के भीतर, लेकिन एक विनिर्देश के विखंडन का जोखिम। एक तकनीक जो इस तनाव को कम कर सकती है, वह है विनिर्देश दस्तावेज़ में हाइपरलिंक्स का उपयोग करना।
यह न्यूनीकरणवाद दृष्टिकोण प्रणालियों की सोच दृष्टिकोण के विपरीत कुछ हद तक निहित है जैसा कि पीटर चेकलैंड की सॉफ्ट सिस्टम पद्धति द्वारा दर्शाया गया है।
उपयोग के मामले के विवरण में कैप्चर की गई कार्यात्मक आवश्यकताओं के अलावा, एक विश्लेषक प्रतिक्रिया समय, सीखने की क्षमता आदि जैसी गैर-कार्यात्मक आवश्यकताओं को शामिल कर सकता है।
यह भी देखें
- व्यापारिक मामला
- एसआईपीओसी
- उदाहरण
- स्थिति चित्र का उपयोग
- प्रयोक्ता कहानी
संदर्भ
- ↑ MCME-84: McMenamin, Stephen M.; John F. Palmer (1984). Essential Systems Analysis. Prentice-Hall (Yourdon Press). ISBN 0-13-287905-0. (ISBN 978-0-13-287905-7)
- ↑ YOUR-89: "yourdon.com - Just Enough Structured Analysis, Chapters 18, 19". 1989. Archived from the original on 2007-02-14. Retrieved 2008-04-24.
- ↑ WARD-85: Ward, Paul T.; Stephen J. Mellor (1985). Structured Development for Real-Time Systems: Volume 2, Essential Modeling Techniques. Prentice-Hall (Yourdon Press). ISBN 0-13-854787-4. (ISBN 978-0-13-854787-5)
- ↑ WARD-85, pp. 38-39.
- ↑ 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 > - ↑ cancellation dialogue = * *
= *input* cancellation request + *output* cancellation confirmation - ↑ arrival dialogue = * *
= *input* arrival message + *output* arrival packet
arrival packet = * *
= room key + room card + complimentary drink coupon - ↑ check-out dialogue = * *
= *input* check-out request + *output* guest bill - ↑ payment dialogue = * *
= *input* payment vehicle + *output* guest receipt
guest receipt = * *
= guest name + guest address + {charge detail} + charge total + (taxes) + amount due + amount paid - ↑ see also Don't repeat yourself, also known as "DRY"
बाहरी संबंध
- Event partitioning Structured Analysis Wiki