Кіріспе
Бағдарламалық жасақтаманың жұмыс істеу принципін түсіндіреді. Бағдарламалық жасақтама құжаттамасы – компьютерлік бағдарламалық жасақтамамен бірге келтірілетін немесе бастапқы кодқа енгізілген жазбаша мәтін немесе иллюстрация. Құжаттама бағдарламалық жасақтаманың қалай жұмыс істейтінін немесе оны қалай пайдалануға болатынын түсіндіреді және әртүрлі лауазымдардағы адамдар үшін әртүрлі мағынаға ие болуы мүмкін. Құжаттама – бағдарламалық жасақтама жасаудың маңызды бөлігі. Құжаттама түрлері: Талаптар – Жүйенің қасиеттерін, мүмкіндіктерін, ерекшеліктерін немесе сапаларын анықтайтын мәлімдемелер. Бұл – іске асырылған немесе іске асырылатын нәрселердің негізі. Архитектура/Дизайн – Бағдарламалық жасақтаманың жалпы көрінісі. Бағдарламалық жасақтама компоненттерін жобалау кезінде қолданылатын ортамен және құрылымдық принциптермен байланысты қамтиды. Техникалық – Код, алгоритмдер, интерфейстер және API-лерді құжаттау. Соңғы пайдаланушы – Соңғы пайдаланушыларға, жүйе администраторларына және қолдау қызметкерлеріне арналған нұсқаулықтар. Маркетинг – Өнімді қалай таныстыру және нарық сұранысын талдау.
Software documentation is written text or illustration that accompanies computer software or is embedded in the source code. The documentation either explains how the software operates or how to use it, and may mean different things to people in different roles. Documentation is an important part of software engineering. Types of documentation include:
Requirements – Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what will be or has been implemented. Architecture/Design – Overview of software. Includes relations to an environment and construction principles to be used in design of software components. Technical – Documentation of code, algorithms, interfaces, and APIs. End user – Manuals for the end user, system administrators and support staff. Marketing – How to market the product and analysis of the market demand.
Талаптар құжаттамасы
Талаптар құжаттамасы – нақты бір бағдарламалық жасақтаманың не істейтінін немесе не істеу керектігін сипаттау. Ол бағдарламалық жасақтаманың қалай жұмыс істейтінін немесе қалай жұмыс істеуге тиісті екенін түсіндіру үшін даму процесінде қолданылады. Сондай-ақ, бағдарламалық жасақтаманың не істейтіні туралы келісімге келуге немесе келісімнің негізі ретінде пайдаланылады. Бағдарламалық жасақтаманы жасауға қатысатын барлық адамдар – соңғы пайдаланушылар, клиенттер, жоба менеджерлері, сату, маркетинг, бағдарламалық жасақтама архитекторлары, пайдаланушылық интерфейс инженерлері, өзара әрекеттесу дизайнерлері, әзірлеушілер және тестілеушілер – талаптарды жасайды және қолданады. Талаптар әртүрлі стильдерде, нотацияларда және формальдылық деңгейлерінде келеді. Олар мақсатқа бағытталған (мысалы, таратылған жұмыс ортасы), жобалауға жақын (мысалы, конфигурация файлына оң жақ батырмамен шертіп және 'құру' функциясын таңдау арқылы құрастыруды бастау) немесе олардың арасында болуы мүмкін. Олар табиғи тілдегі мәлімдемелер, схемалық кескіндер, егжей-тегжейлі математикалық формулалар немесе олардың барлық комбинациясы түрінде берілуі мүмкін. Талаптар құжаттамасының әртүрлілігі мен күрделілігі оны үнемі туындайтын қиындыққа айналдырады. Талаптар жасырын болуы және анықтау қиынға түсуі мүмкін. Қандай көлемде және қандай типтегі құжаттама қажет екенін, ал қаншасын архитектура мен жобалау құжаттамасына қалдыруға болатынын анықтау қиын, сондай-ақ, құжаттаманы оқитын және пайдаланатын адамдардың алуан түрлілігін ескере отырып, талаптарды қалай құжаттауға болатынын білу қиын. Сондықтан, талаптар құжаттамасы көбінесе толық емес (немесе мүлдем болмайды). Дұрыс талаптар құжаттамасы болмаса, бағдарламалық жасақтамаға өзгерістер енгізу қиындайды – демек, қателерге бейім (бағдарламалық жасақтама сапасы төмендейді) және уақытты көп алады (құнға түседі). Талаптар құжаттамасының қажеттілігі әдетте өнімнің күрделілігіне, өнімнің маңыздылығына және бағдарламалық жасақтаманың қызмет ету мерзіміне байланысты. Егер бағдарламалық жасақтама өте күрделі болса немесе көптеген адамдармен әзірленсе (мысалы, ұялы телефон бағдарламалық жасақтамасы), талаптар не істеу керектігін жақсырақ түсінуге көмектеседі. Егер бағдарламалық жасақтама қауіпсіздікке маңызды болса және адам өміріне кері әсер ете алса (мысалы, ядролық энергетика жүйелері, медициналық жабдықтар, механикалық жабдықтар), көбінесе талаптардың формальды құжаттамасы қажет. Егер бағдарламалық жасақтаманың қызмет ету мерзімі бір-екі ай ғана болса (мысалы, нақты бір акция үшін арнайы жасалған өте кішкентай ұялы телефон қосымшалары), талаптарды құжаттау өте аз болуы мүмкін. Егер бағдарламалық жасақтама кейіннен кеңейтілетін алғашқы нұсқа болса, талаптар құжаттамасы бағдарламалық жасақтаманың өзгеруін басқаруда және өзгерістер енгізген кезде ештеңе бұзылмағанын тексеруде өте пайдалы. Әдетте, талаптар талаптар құжаттарында (мысалы, мәтін редакторы мен электрондық кестелерді пайдалану арқылы) көрсетіледі. Талаптар құжаттамасының (және жалпы бағдарламалық жасақтама құжаттамасының) күрделілігі мен өзгергіш сипатын басқару үшін деректер базасына негізделген жүйелер мен арнайы талаптарды басқару құралдары қолданылады. Шапшаң бағдарламалық жасақтаманы әзірлеуде талаптар көбінесе пайдаланушы оқиғалары түрінде, қабылдау критерийлерімен бірге беріледі.
Техникалық құжаттама
Кодқа қатысты құжаттар (оларға README файлдары мен API құжаттамасы кіруі мүмкін) толық болуы маңызды, бірақ оларды сақтауға тым көп уақыт кетіп немесе күтіп ұстау қиын болғанша, әртүрлі сөздерге толы болмауы керек. API жазушылары құжаттаған бағдарламалық қолданбаға немесе өнімге қатысты түрлі нұсқаулықтар мен шолу материалдарын жиі кездестіруге болады. Бұл құжаттаманы бағдарламашылар, тестілеушілер және соңғы пайдаланушылар қолдана алады. Бүгінде қуат, энергия, көлік, желілер, ғарыш, қауіпсіздік, өнеркәсіптік автоматтандыру және басқа да көптеген салаларда жоғары деңгейдегі қолданбалар кең таралған. Мұндай ұйымдарда техникалық құжаттама маңызды рөл атқарады, себебі архитектура өзгерген кезде ақпараттың негізгі және кеңейтілген деңгейі уақыт өте келе өзгеріп қалуы мүмкін. Жақсы код құжаттамасы бағдарламалық жасақтаманы күтіп ұстау шығындарын төмендетуге көмектеседі деген дәлелдер бар. Код құжаттары көбінесе анықтамалық нұсқаулық түрінде ұйымдастырылады, бұл бағдарламашыға кез келген функцияны немесе классды жылдам табуға мүмкіндік береді.
Түпнұсқалық кодқа енгізілген техникалық құжаттама
Көбінесе Doxygen, NDoc, Visual Expert, Javadoc, JSDoc, EiffelStudio, Sandcastle, ROBODoc, POD, TwinText немесе Universal Report сияқты құралдар код құжаттарын автоматты түрде жасау үшін қолданылады – яғни, олар бастапқы кодтан түсініктемелер мен бағдарламалық шарттарды (болған жағдайда) шығарып, мәтін немесе HTML файлдары түрінде анықтамалық нұсқаулықтарды құрайды. Автоматты түрде құжаттама жасау идеясы бағдарламашыларға түрлі себептермен қызықты. Мысалы, ол бастапқы кодтан тікелей алынғандықтан (мысалы, түсініктемелер арқылы), бағдарламашы кодқа қарап қана жазып, осы кодты жасау үшін қолданылған құралдардың өзін құжаттама жасауға пайдалана алады. Бұл құжаттаманы дер кезінде жаңартуға мүмкіндік береді. Бір мүмкін кемшілігі – мұндай құжаттаманы тек бағдарламашылар ғана өңдей алады және олардың шығысты жаңартуы қажет (мысалы, түнде құжаттарды жаңарту үшін cron жұмысын іске қосу арқылы). Бірқатар мамандар мұны кемшілік емес, артықшылық деп санайды.
Сауатты бағдарламалау
Құрметті компьютер ғалымы Дональд Кнут құжаттаманы кейіннен жасаудың өте қиын процесс екенін айтқан және бастапқы кодпен бір уақытта және бір жерде жазылып, автоматты түрде ізделіп алынатын сауатты бағдарламалауды қолдаушы болған. Haskell және CoffeeScript бағдарламалау тілдері сауатты бағдарламалаудың қарапайым түрін қолдайды, бірақ бұл мүмкіндік кеңінен пайдаланылмайды.
Аңдатқышты бағдарламалау
Элюцидативті бағдарламалау – нақты бағдарламалау ортасында сауатты бағдарламалауты қолданудың нәтижесі. Элюцидативті парадигма кодты және құжаттаманы бөлек сақтауды ұсынады. Бағдарламашылар көбінесе бастапқы файлдың құрамына кірмейтін ақпаратты жасау және оған қол жеткізу қабілетіне ие болуы керек. Мұндай түсіндірмелер кодты қарау және басқа жүйеге көшіру сияқты бағдарламалық жасақтаманы әзірлеудің көптеген кезеңдерінде қолданылады, онда үшінші тараптың коды функционалдық тұрғыдан талданады. Сондықтан, анотациялар ресми құжаттама жүйесі жұмыстың барысын қиындатса, бағдарламашыға бағдарламалық жасақтаманы әзірлеудің кез келген кезеңінде көмектесе алады.
Пайдаланушы құжаттамасы
Кодтық құжаттардан өзгеше, пайдаланушы құжаттары бағдарламаның қалай қолданылатынын ғана сипаттайды. Бағдарламалық кітапхана жағдайында кодтық және пайдаланушы құжаттары кейбір жағдайларда тиімді түрде бірдей болуы мүмкін және біріктіруге лайық, бірақ жалпы қолданба үшін мұндай жағдай сирек кездеседі. Әдетте, пайдаланушы құжаттамасы бағдарламаның әрбір мүмкіндігін сипаттайды және пайдаланушыға осы мүмкіндіктерді пайдалануға көмектеседі. Пайдаланушы құжаттарының түсініксіз болмауы және уақтылы жаңартылуы өте маңызды. Пайдаланушы құжаттарын арнайы тәртіппен ұйымдастыру міндетті емес, бірақ толыққанды мазмұндамасы болуы аса қажет. Тұрақтылық пен қарапайымдық та жоғары бағаланады. Пайдаланушы құжаттамасы бағдарламалық жасақтаманың қандай міндеттерді орындайтынын көрсететін келісімшарт ретінде қарастырылады. API жазушылары жақсы пайдаланушы құжаттарын жазуға өте қабілетті, себебі олар бағдарламалық жасақтама архитектурасымен және қолданылатын бағдарламалау техникаларымен жақсы таныс. Қосымша, техникалық жазуға да назар аударыңыз. Пайдаланушы құжаттамасын түрлі онлайн және баспа форматында жасауға болады. Дегенмен, пайдаланушы құжаттамасын ұйымдастырудың үш негізгі тәсілі бар. Оқулық: Жаңа пайдаланушы үшін ең тиімдісі – оқулық тәсілі, онда олар нақты тапсырмаларды орындаудың әрбір қадамын орындау бойынша жетекшілік алады. Тақырыптық: Тараулар немесе бөлімдер нақты бір қызығушылық тақырыбына шоғырланған тақырыптық тәсіл орта деңгейдегі пайдаланушылар үшін көбірек пайдалы. Кейбір авторлар өз ойларын білімдік мақалалар арқылы жеткізуді жөн көреді, осылайша пайдаланушының қажеттіліктерін қанағаттандырады. Мұндай тәсіл көбінесе ақпараттық технологиялар сияқты динамикалық салаларда қолданылады. Тізім немесе анықтамалық: Ұйымдастыру принципінің үшінші түрі – командалар немесе тапсырмалардың әліпби бойынша немесе логикалық топтарға бөлініп тізімделуі, көбінесе сілтемелік мазмұндамалар арқылы. Бұл тәсіл ақпаратты қалай іздеу керектігін білетін тәжірибелі пайдаланушылар үшін тиімді. Пайдаланушылардың бағдарламалық қамтамасыз ету құжаттамасына қатысты жиі айтатын шағымы – үш тәсілдің тек біреуі қолданылып, қалған екеуі толығымен ескерілмегендігі. Жеке компьютерлерге арналған бағдарламалық қамтамасыз ету құжаттамасын көбінесе командалар немесе мәзір элементтері туралы анықтамалық ақпаратты ұсынатын онлайн көмекке дейін шектеуге болады. Жаңа пайдаланушыларды оқыту және тәжірибелі пайдаланушыларға бағдарламадан толыққанды пайда алуға көмектесу жұмысы жеке баспагерлерге жүктеледі, оларға бағдарламалық жасақтаманы жасаушылар көбінесе айтарлықтай көмек көрсетеді.
Пайдаланушы құжаттамасын құрастыру
Техникалық құжаттаманың басқа түрлері сияқты, жақсы пайдаланушы құжаттамасы да ұйымдастырылған әзірлеу процесінен үлкен пайда көреді. Пайдаланушы құжаттамасы жағдайында, өнеркәсіпте кең таралған процесс бес қадамнан тұрады:
Пайдаланушыны талдау, процестің негізгі зерттеу кезеңі. Жоспарлау, немесе құжаттаманы жасау кезеңі. Жобаны қарау – бұл бұрынғы қадамда дайындалған жобаға пікір алу кезеңі. Пайдалану ыңғайлылығын тексеру, осы арқылы құжаттың қолдануға ыңғайлылығы тәжірибелік жолмен тексеріледі. Редакциялау – үшінші және төртінші қадамдарда жиналған ақпаратты пайдаланып, соңғы нұсқаны дайындау үшін жасалатын соңғы қадам.
Сату құжаттамасы
Көптеген қолданбалар үшін өнім туралы көбірек білуге кездейсоқ көрермендерді ынталандыру үшін жарнамалық материалдар қажет. Осы құжаттаманың үш мақсаты бар:
* Әлеуетті пайдаланушыны өнімге қызықтырып, оған қатысуға ықыласын ояту.
* Өнімнің қандай қызмет атқаратынын түсіндіріп, олардың күтулері алған өнімдерімен сәйкес болуын қамтамасыз ету.
* Бұл өнімнің басқа баламалармен салыстырғандағы орнын анықтау.
Құжаттамалық және жедел даму даулары
"Бағдарламашылардың құжаттамаға қарсылығы жақсы белгілі және оны арнайы атап көрсетудің қажеті жоқ". Бұл жағдай әсіресе шапшаң бағдарламалық жасақтаманы әзірлеуде жиі кездеседі, себебі бұл әдістемелер тікелей пайда келтірмейтін артық әрекеттерден қашуға тырысады. Атап айтқанда, Agile манифесі "толыққанды құжаттамадан гөрі жұмыс істейтін бағдарламалық жасақтаманы бағалауды" жақтайды, бұл кейде циникалық тұрғыдан "Біздің барлық уақытымыз код жазуға кетсін. Есіңізде болсын, шынайы бағдарламашылар құжаттама жазбайды" деп түсіндіріледі. Дегенмен, бағдарламалық инженерия сарапшылары арасында жүргізілген сауалнама шапшаң дамуда құжаттаманың мүлдем қажетсіз емес екенін көрсетті. Бірақ дамуда мотивациялық мәселелер бар екені және шапшаң дамуға бейімделген құжаттама әдістері қажет болуы мүмкін екені мойындалады (мысалы, бедел жүйелері және геймификация арқылы).