एकाइ 2 / 12

आवश्यकता विश्लेषण र सफ्टवेयर डिजाइन

लाभ:

  • अस्पष्ट व्यापार अनुरोधहरूलाई स्पष्ट, परीक्षण योग्य सफ्टवेयर आवश्यकताहरू र एआई समर्थनको साथ प्रयोगकर्ता कथाहरूमा रूपान्तरण गर्ने क्षमता
  • एआईसँग संरचित तरिकामा प्रणाली डिजाइन, डाटा मोडेल र वास्तु निर्णयहरूको फाइदा र विपक्ष तुलना गर्ने क्षमता।
  • आवश्यकताहरू, स्केलेबिलिटी, र अवरोधहरू विरुद्ध AI को प्रस्तावित डिजाइनलाई आलोचनात्मक रूपमा प्रमाणित गर्ने क्षमता

अधिकांश सफ्टवेयर परियोजनाहरू खराब कोडको कारणले असफल हुन्छन्, तर गलत बुझाइका आवश्यकताहरूको कारणले गर्दा। "प्रयोगकर्ताहरूलाई रिपोर्टहरू डाउनलोड गर्न दिनुहोस्" जस्ता एक-वाक्य अनुरोधले दर्जनौं अनुत्तरित प्रश्नहरू छोड्छ: कुन ढाँचामा? कसको जिम्मा ? कति रेकर्ड? ढिलो भयो भने के हुन्छ? आवश्यकताहरूको विश्लेषण (व्यवसाय अनुरोधलाई स्पष्ट, परीक्षण योग्य प्राविधिक आवश्यकताहरूमा अनुवाद गर्ने) र सफ्टवेयर डिजाइन (यी आवश्यकताहरू पूरा गर्न कागजमा संरचना निर्माण गर्ने) त्यो चरण हो जहाँ कोड लेख्नु अघि सबैभन्दा महँगो गल्तीहरू रोकिन्छ। यस एकाइमा, हामी यस चरणमा AI लाई "सोच साझेदार" को रूपमा प्रयोग गर्न सिक्नेछौं: एक साझेदार जसले अनिश्चिततालाई लुकाउँछ, विकल्पहरू क्रमबद्ध गर्छ, तर अन्तिम निर्णय तपाईंमा छाड्छ।

एआईले यहाँ दुई ठूला मानहरू उत्पादन गर्दछ। पहिलो, यसले तपाईंले छोड्नुभएका प्रश्नहरू सोध्छ; यो एक अनुरोध मा लुकेका अनुमान र किनारा मामिला सतह मा ल्याउँछ। दोस्रो, यसले तुरुन्तै डिजाइन निर्णयको फाइदा र विपक्षलाई तालिका बनाउँछ। तर यो खतरा हो: AI ले तपाईंको सन्दर्भ (बजेट, टोली, विद्यमान प्रणाली, कानुनी अवरोध) लाई पूर्ण रूपमा थाहा नपाई "उत्तम अभ्यास" को रूपमा जेनेरिक सिफारिसहरू दिनेछ। यो सल्लाह तपाईंको आफ्नै सत्यको विरुद्ध फिल्टर गर्ने तपाईंको काम हो।

अवधारणाहरू: प्रयोगकर्ता कथा: "... जस्तै, म सक्षम हुन चाहन्छु ... किनभने ..." को रूपमा आवश्यकता व्यक्त गर्ने छोटो वाक्य। स्वीकृति मापदण्ड: परीक्षण योग्य सर्तहरू जुन कामको लागि "सम्पन्न" मानिनुपर्छ। गैर-कार्यात्मक आवश्यकताहरू: गति, सुरक्षा, स्केलेबिलिटी जस्ता "यसले के गर्नेछ" भन्दा सट्टा "यसले कसरी व्यवहार गर्नेछ" सँग सम्बन्धित आवश्यकताहरू।

अस्पष्ट अनुरोध देखि परीक्षण योग्य आवश्यकता सम्म

एक राम्रो आवश्यकता मापन योग्य र प्रमाणित छ। "प्रणाली छिटो हुन दिनुहोस्" होइन, तर "खोज नतिजाहरू 500 ms भित्र फर्कन दिनुहोस्"। अनिश्चिततालाई कम गर्न AI प्रयोग गर्ने चरण-दर-चरण तरिका यहाँ छ:

  1. अनुरोधलाई जस्तै दिनुहोस् र प्रश्न उत्पन्न गर्नुहोस्। AI लाई सोध्नुहोस् समाधानको लागि होइन, तर पहिले "यस अनुरोधमा अस्पष्ट कुरालाई प्रश्नको रूपमा सूचीबद्ध गर्नुहोस्।"
  2. तिमीले जवाफ दिनुस। केवल तपाईलाई सन्दर्भ थाहा छ; तपाईंको वास्तविक व्यापार अवरोधहरूको साथ AI का प्रश्नहरूको जवाफ दिनुहोस्।
  3. यसलाई प्रयोगकर्ता कथाहरू र स्वीकृति मापदण्डमा अनुवाद गर्नुहोस्। स्पष्ट आवश्यकतालाई परीक्षण योग्य वस्तुहरूमा अनुवाद गर्नुहोस्।
  4. किनारा केसहरू र नकारात्मक परिदृश्यहरू थप्नुहोस्। "खाली परिणाम", "अनधिकृत प्रयोगकर्ता", "धेरै ठूलो फाइल" आदि।

अस्पष्टता निकासी प्रम्प्ट: "हामी निम्न व्यवसाय अनुरोधलाई सफ्टवेयर आवश्यकतामा अनुवाद गर्नेछौं। अझै समाधानको प्रस्ताव नगर्नुहोस्। पहिले, प्रश्नहरूको सूचीको रूपमा यस अनुरोधमा जवाफ नदिइएका सबै अस्पष्टता र लुकेका अनुमानहरू निकाल्नुहोस्। निम्न शीर्षकहरू अन्तर्गत प्रश्नहरूलाई समूहबद्ध गर्नुहोस्: दायरा, प्रयोगकर्ता/अधिकार, डेटा भोल्युम, कार्यसम्पादन, त्रुटि आदेश सर्तहरू, सुरक्षाको रूपमा प्रयोगकर्ताहरूको अनुरोध इतिहास ' डाउनलोड गर्नुहोस्।

प्रयोगकर्ता कथा + स्वीकृति मापदण्ड प्रम्प्ट: "निम्न स्पष्ट आवश्यकताहरूलाई INVEST सिद्धान्तहरूको पालना गर्ने प्रयोगकर्ता कथाहरूमा विभाजन गर्नुहोस्। प्रत्येक कथाको लागि 3-5 परीक्षण योग्य स्वीकृति मापदण्डहरू लेख्नुहोस् (दिईएको-जब-त्यस ढाँचामा)। कम्तिमा 2 नकारात्मक परिदृश्यहरू थप्नुहोस् (अनधिकृत पहुँच, खाली डाटा)। आवश्यक छ: [यहाँ लेख्नुहोस्]।

एआई संग डिजाइन निर्णय तुलना

डिजाइन एक स्थिर ट्रेड-अफ हो: गति बनाम लचिलोपन, सरलता बनाम स्केलेबिलिटी? AI ले यी ट्रेड-अफहरूलाई द्रुत स्प्रेडसिटमा राख्छ। उदाहरणका लागि, "सूचना पठाउनुहोस्" सुविधाको लागि, तपाइँ सिंक्रोनस (अनुरोधमा पठाउनुहोस्) वा एसिन्क्रोनस (लाइन, पृष्ठभूमिमा पठाउनुहोस्) दृष्टिकोण प्रयोग गर्ने कि नगर्ने भनेर बहस गर्न सक्नुहुन्छ।

डिजाइन तुलना प्रम्प्ट: "म एक 'प्रयोगकर्तालाई इमेल सूचना पठाउनुहोस्' सुविधा डिजाइन गर्दैछु। दुई दृष्टिकोणहरू तुलना गर्नुहोस्: (A) HTTP अनुरोधको समयमा सिंक्रोनस डेलिभरी, (B) सन्देश लाममा राखेर पृष्ठभूमिमा एसिन्क्रोनस डेलिभरी। निम्न अक्षहरूमा तालिका बनाउनुहोस्: प्रयोगकर्ता प्रतीक्षा समय, त्रुटि सहिष्णुता, जटिलता, जटिलता, इन्फ्रास्ट्रक्चर deggbu मा। कुन अवस्थामा मैले छनौट गर्नेछु, मेरो लागि निर्णय नगर्नुहोस्।

अक्ष

सिंक्रोनस प्रसारण

एसिन्क्रोनस (लाम)

प्रयोगकर्ता प्रतीक्षा समय

लामो (शिपमेन्टको लागि पर्खँदै)

छोटो (तुरुन्तै फर्किन्छ)

गल्ती सहिष्णुता

न्यून (पठाउने विस्फोट भएमा अनुरोध विस्फोट हुन्छ)

उच्च (पुन: प्रयास सम्भव छ)

जटिलता

कम

मध्यम-उच्च (लाम पूर्वाधार)

पूर्वाधार लागत

कम

अतिरिक्त घटक आवश्यक छ

जहाँ मिल्छ

कम मात्रा, सरल आवेदन

उच्च मात्रा, महत्वपूर्ण वितरण

सुझाव: AI लाई "मेरो लागि निर्णय नगर्नुहोस्, केवल मलाई विकल्प र सर्तहरू देखाउनुहोस्" भन्नाले तपाईंलाई सोच्न बाध्य बनाउँछ र सुझावलाई अन्धाधुन्ध रूपमा स्वीकार गर्ने जोखिम कम गर्छ। सबै भन्दा राम्रो डिजाइन निर्णय एक व्यक्ति द्वारा बनाईएको हो जसले तपाइँको सन्दर्भ (तपाई) लाई थाहा छ।

कमजोर प्रम्प्ट / बलियो प्रम्प्ट

कमजोर: "अर्डर प्रणालीको लागि डाटाबेस डिजाइन गर्नुहोस्।" (नतिजा: कुन मापन, कुन सम्बन्धहरू, कुन अवरोधहरू स्पष्ट छैनन्; एक सामान्य, अवास्तविक योजना।) STRONG: "सानो ई-वाणिज्यको लागि ड्राफ्ट डेटा मोडेलको सुझाव दिनुहोस्। संस्थाहरू: ग्राहक, अर्डर, उत्पादन, अर्डर वस्तु। बाधाहरू: त्यहाँ एक अर्डरमा धेरै उत्पादनहरू हुन सक्छन्; उत्पादन मूल्य समय अनुसार परिवर्तन हुन सक्छ, तर हालको अर्डरमा ~0 पूर्व अर्डर दिनको मूल्य ~0 मा हुनुपर्दछ। अपेक्षित सम्बन्ध र किन "तपाईंले निर्णय गर्नुभयो भनेर व्याख्या गर्नुहोस्। तपाईंले मूल्य इतिहास समस्या कसरी हल गर्नुभयो निर्दिष्ट गर्नुहोस्। यसलाई संस्था र क्षेत्रहरूको सूचीको रूपमा दिनुहोस्, कोड होइन।"

एक शक्तिशाली प्रम्प्ट को भिन्नता; स्केल (प्रति दिन 500 अर्डर), व्यापार नियम (विगतको मूल्य कायम हुनुपर्छ) र इच्छित आउटपुट ढाँचा। "विगतको मूल्य कायम राख्नु पर्छ" जस्ता एकल वाक्यले डिजाइनलाई पूर्ण रूपमा परिवर्तन गर्दछ; यदि तपाईंले यो निर्दिष्ट गर्नुभएन भने, AI ले एक गलत तर प्रशंसनीय देखिने रेखाचित्र उत्पादन गर्नेछ।

मिनी केसहरू

केस १ - लुकेको धारणा। एउटा टोलीले "प्रयोगकर्ताले प्रोफाइल फोटो अपलोड गर्न सक्छ" अनुरोधलाई सीधै कोड दिन्छ। अर्को टोलीले AI लाई अनिश्चितताको बारेमा सोध्यो: "अधिकतम आकार? अनुमति ढाँचाहरू? अनुपयुक्त सामग्री नियन्त्रण? पुरानो फोटो मेटाउनुहोस्?" यसले 8 प्रश्नहरू जस्तै उत्पादन गर्दछ। पहिलो टोलीले उत्पादनमा समस्याको बारेमा थाहा पाउँछ जब 20 MB फाइलहरूले सर्भर भर्छ; दोस्रो टोलीले यसलाई डिजाइनमा समाधान गर्छ।

केस २ - गलत मापन अनुमान। AI ले रिपोर्टिङ सुविधाको लागि जटिल क्यासिङ तह प्रस्ताव गर्दछ। जब ईन्जिनियरले औंल्याए कि वास्तविक डाटा प्रति दिन 30 रिपोर्ट मात्र हो, AI ले सुझावलाई सरल बनाउँछ। मापन निर्दिष्ट नगर्दा अनावश्यक जटिलताको लागत हुन्छ; निर्दिष्ट गर्नाले अनावश्यक कामको २ हप्ता बचत हुन्छ।

केस ३ — स्वीकृति मापदण्डको अन्तर। "भुक्तानी असफल भयो भने के हुन्छ?" प्रश्न कहिल्यै सोधिएको थिएन, एक अर्डर प्रणालीले अझै पनि असफल भुक्तानीको अवस्थामा अर्डरलाई "पुष्टि" भनी चिन्ह लगाउनेछ। एआई द्वारा उत्पन्न नकारात्मक परिदृश्यहरूको सूचीले यो अन्तरलाई कब्जा गर्दछ; 1 रेखा स्वीकृति मापदण्डले वास्तविक पैसा हानि रोक्छ।

सामान्य गल्तीहरू

  • सिधै कोडमा अनुरोध पास गर्दै। अस्पष्टता समाधान हुनु अघि लेखिएको कोडले छिटो गलत समस्या समाधान गर्दछ।
  • AI को सामान्य "उत्तम अभ्यास" लाई आँखा बन्द गर्दै। यदि तपाईंले आफ्नो सन्दर्भ (स्केल, बजेट, टोली) निर्दिष्ट गर्नुभएन भने सिफारिसले तपाईंको लागि काम गर्दैन।
  • गैर-कार्यात्मक आवश्यकताहरू छोड्दै। यदि गति, सुरक्षा र मापन निर्दिष्ट गरिएन भने, डिजाइन अपूर्ण हुनेछ।
  • केवल सुखद परिदृश्य बारे सोच्दै। नकारात्मक परिदृश्यहरू जस्तै खाली डाटा, अनाधिकृत प्रयोगकर्ता, त्रुटि स्थिति डिजाइनमा समावेश गर्नुपर्छ।
  • AI लाई निर्णय सुम्पदै। एआई विकल्पहरू उत्पन्न गर्दछ; तपाइँ निर्णय गर्नुहुन्छ कि कुन ट्रेड-अफ तपाइँको व्यवसाय को लागी उपयुक्त छ।

संक्षेपमा

आवश्यकताहरू विश्लेषण र डिजाइन एक चरण हो जहाँ सस्तो त्रुटिहरू समातिन्छ। यहाँ, AI ले अनिश्चितता प्रकट गर्ने प्रश्नहरू उत्पन्न गर्दछ, प्रयोगकर्ता कथाहरू र स्वीकृति मापदण्डहरू ड्राफ्ट गर्दछ, र चार्ट डिजाइन ट्रेड-अफहरू। तर तपाईलाई मात्र सन्दर्भ थाहा छ; तपाईंको स्केल, बजेट, टोली, र कानुनी बाधाहरूको आधारमा AI को सिफारिसहरू फिल्टर गर्ने र अन्तिम निर्णय गर्ने तपाईंको काम हो। "मेरो लागि निर्णय नगर्नुहोस्, मलाई विकल्पहरू देखाउनुहोस्" को अनुशासनले राम्रो डिजाइन र गहिरो सिकाइ दुवैतर्फ लैजान्छ।

आवेदन कार्य

तपाईंको सन्दर्भबाट एक-वाक्य कार्य अनुरोध छान्नुहोस्। पहिले, AI मा अस्पष्टता प्रम्प्ट लागू गर्नुहोस् र तपाईंको वास्तविक बाधाहरूसँग प्रश्नहरूको जवाफ दिनुहोस्। त्यसपछि स्पष्ट आवश्यकतालाई कम्तिमा 2 प्रयोगकर्ता कथाहरूमा अनुवाद गर्नुहोस् र प्रत्येकको लागि 3 स्वीकृति मापदण्डहरू; कम्तिमा १ नकारात्मक परिदृश्य समावेश गर्नुहोस्। अन्तमा, डिजाइन निर्णय (सिंक्रोनस/एसिन्क्रोनस, तालिका संरचना, आदि) को लागि तुलना तालिका सिर्जना गर्नुहोस् र 2 वाक्यहरूमा आफ्नै निर्णय लेख्नुहोस्।

चेकलिस्ट

  • [ ] मैले कोडमा अनुरोध पास गर्नु अघि प्रश्नहरूको रूपमा अस्पष्टताहरू हटाएँ।
  • [ ] मैले AI लाई सन्दर्भ (स्केल, अधिकार, कार्यसम्पादन, कानूनी बाधा) दिएँ।
  • [ ] मैले प्रयोगकर्ता कथाहरूलाई परीक्षणयोग्य स्वीकृति मापदण्डमा तोडेको छु।
  • [ ] मैले कम्तिमा एउटा डाउनसाइड/एज परिदृश्य थपेको छु।
  • [] मैले ट्रेड-अफ तालिकाको साथ डिजाइन निर्णयको मूल्याङ्कन गरें।
  • [ ] मैले मेरो सन्दर्भको आधारमा अन्तिम निर्णय गरें, मैले AI मा छोडिनँ।