Manba kodi

Ҳисоблаш техникаси (cомпутинг) соҳасида манба коди (соурcе cоде) ёки шунчаки код ёки манба деб, якуний натижада компютер хатти-ҳаракатларини бошқаришга имкон берадиган, инсон о'қий оладиган оддий матнга (плаин техт) айтилади. Компютерни бошқариш учун манба коди дастур (cомпутер програм) томонидан қайта ишланиши керак у ёки интерпретатор (интерпретер) орқали бевосита бажарилади, ёки компилятор (cомпилер) ёрдамида компютер исте'моли учун қулайроқ шаклга таржима қилинади (транслатед). Ба'зан код бевосита машина кодига (мачине cоде) компиляция қилинади ва қо'шимча ишловсиз компютернинг она тилида ишга туширилади. Бироқ, ко'плаб замонавий муҳитлар кодни байт-код (бйтеcоде) каби оралиқ ко'ринишга (интермедиате репресентатион) о'тказишни назарда тутади; бу ко'риниш интерпретатор орқали ишлаши ёки жуст-ин-тиме компиляцияси (жуст-ин-тиме cомпилатион) орқали талабга ко'ра машина кодига о'тказилиши мумкин.
Тарихи ва асослари
1940-йилларнинг охирида пайдо бо'лган биринчи дастурланадиган компютерлар[2] машина тилида (мачине лангуаге) (процессор томонидан бевосита бажарилиши мумкин бо'лган оддий ко'рсатмалар) дастурлаштирилган эди. Машина тилидаги хатоларни тузатиш қийин бо'либ, у турли компютер тизимлари о'ртасида портатив (портабле) эмас эди.[3] Дастлаб аппарат ресурслари тақчил ва қиммат бо'лса, инсон ресурслари (ҳуман ресоурcес) нисбатан арзон эди.[4] Дастурлар мураккаблашгани сайин, дастурчи маҳсулдорлиги асосий то'сиққа айланди. Бу 1950-йилларнинг о'рталарида Фортран каби юқори даражали дастурлаш тиллари (ҳигҳ-левел программинг лангуагес) пайдо бо'лишига олиб келди. Ушбу тиллар аппарат та'миноти деталларидан абстраксия (абстраcтион) қилинди ва инсонлар томонидан осонроқ тушуниладиган алгоритмларни ифодалаш учун лойиҳаланди.[5][6] Асосий компютер аппаратурасидан фарқли о'лароқ, дастурий та'минот нисбатан янги соҳа бо'либ, унинг тарихи юқорида тилга олинган Фортран, Лисп ва Cобол каби дастурлаш тилларига бориб тақалади.[6] Юқори даражали дастурлаш тилларининг кашф этилиши манба кодини компютер аппаратурасида бевосита бажариладиган машина кодига автоматик равишда о'тказувчи компиляторларнинг яратилиши билан бир вақтда юз берди.[7]
Манба коди бу инсонлар томонидан бевосита о'згартириладиган код шакли бо'либ, одатда юқори даражали дастурлаш тилида ёзилади. Обект коди (обжеcт cоде) эса машина томонидан бевосита бажарилиши мумкин ва у манба кодидан, ко'пинча ассемблер тили (ассемблй лангуаге) каби оралиқ босқич орқали автоматик равишда ҳосил қилинади. Обект коди фақат ма'лум бир платформада ишласа-да, манба коди бошқа машинага ко'чирилиши ва у ерда қайта компиляция қилиниши мумкин. Бир хил манба коди учун обект коди сезиларли даражада фарқ қилиши мумкин бу нафақат у компиляция қилинаётган машинага, балки компиляторнинг унумдорликни оптималлаштириш хусусиятларига ҳам бог'лиқдир.[8][9]
Ташкил этилиши
Аксарият дастурлар ишлаш учун зарур бо'лган барча ресурсларни о'з ичига олмайди ва ташқи кутубхоналарга (либрариэс) таянади. Компиляторнинг вазифаларидан бири ушбу файлларни дастур аппарат томонидан бажарилиши мумкин бо'лган тарзда бог'лашдан иборатдир.[10]

Дастурий та'минот ишлаб чиқувчилар ко'пинча манба коди файлларидаги о'згаришларни кузатиб бориш учун конфигурацияни бошқариш (версияларни бошқариш) тизимларидан фойдаланадилар. Конфигурацияни бошқариш тизими, шунингдек, қайси обект коди файли манба кодининг қайси версиясига мос келишини ҳам ҳисобга олиб боради.[11]
Мақсадлари
Баҳолаш
Коднинг манба сатрлари (соурcе линес оф cоде ,СЛОC) сони ко'пинча дастурчилар маҳсулдорлигини, код базасининг иқтисодий қийматини, ишлаб чиқилаётган лойиҳалар учун ҳаракатларни баҳолашни ва маҳсулот чиқарилгандан кейинги дастурий та'минотга хизмат ко'рсатиш харажатларини о'лчашда метрика сифатида қо'лланилади.[12]
Коммуникация
Манба коди томонлар о'ртасида алгоритмларни алмашиш учун ҳам хизмат қилади, масалан, интернетдаги ёки китоблардаги код парчалари (cоде сниппец).[13]
Дастурчилар дастурлаш услубларини о'рганиш учун мавжуд манба кодларини таҳлил қилишни фойдали деб ҳисоблайдилар.[13] Ишлаб чиқувчилар о'ртасида манба коди алмашинуви уларнинг дастурлаш маҳоратини оширишга ёрдам берувчи омил сифатида тез-тез тилга олинади.[13] Ба'зилар манба кодини о'зига хос бадиий восита (артистиc медиум) деб ҳисоблашади.[14]
Манба коди ко'пинча изоҳларни (cомменц) - компилятор э'тиборсиз қолдириши учун белгиланган матн блокларини о'з ичига олади. Ушбу таркиб дастур мантиқининг бир қисми бо'лмасдан, балки о'қувчиларга дастурни тушунишга ёрдам бериш учун мо'лжалланган.[15]
Компаниялар ко'пинча тижорат сири (траде сеcрет) ҳисобланган алгоритмларни яшириш мақсадида манба кодини махфий сақлайдилар. Хусусий ва махфий манба кодлари ҳамда алгоритмлар жиноий одил судлов каби муҳим давлат соҳаларида кенг қо'лланилади, бу эса алгоритм методологиясининг шаффоф эмаслигига ва «қора қути» (блаcк бох) эффектига олиб келади. Натижада, нохолислик каби масалаларнинг жамоатчилик назоратидан четда қолиши кузатилади.[16]
О'згартириш
Манба кодига (нафақат обект кодига) эга бо'лиш уни о'згартириш учун зарурдир.[17] Мавжуд кодни о'згартиришдан олдин унинг қандай ишлашини тушуниш талаб этилади.[18] Тушуниш тезлиги код базасига ҳамда дастурчининг маҳоратига бог'лиқ.[19] Тажрибали дастурчилар коднинг юқори даражада нима вазифани бажаришини осонроқ англайдилар.[20] Ушбу жараённи тезлаштириш учун ба'зан дастурий та'минотни визуаллаштиришдан фойдаланилади.[21]
Ко'пгина дастурчилар о'з маҳсулдорлигини ошириш учун интеграциялашган ишланмалар муҳити (интегратед девелопмент энвиронмент, ИДЕ) дастурларидан фойдаланадилар. ИДЕлар одатда бир нечта о'рнатилган функсияларга эга, жумладан, дастурчини кенг тарқалган хатолардан огоҳлантирувчи манба коди таҳрирчиси ҳам мавжуд.[22] О'згартиришлар ко'пинча код рефакторингини (cоде рефаcторинг) (функсияни о'згартирмасдан тузилмани яхшилаш) ва қайта қуришни (тузилмани ва функсияни бир вақтда яхшилаш) о'з ичига олади.[23] Деярли ҳар бир код о'згариши янги хатоларни ёки кутилмаган то'лқин эффектларини (риппле эффеcц) келтириб чиқаради, бу эса кейинги босқичда тузатишларни талаб қилади.[18]
Лойиҳага қо'шилган янги кодни текшириш учун ко'пинча бошқа ишлаб чиқувчилар томонидан код тақризи (cоде ревиэw) о'тказилади.[24] Ушбу босқичнинг мақсади коднинг услуб ва хизмат ко'рсатиш (маинтаинабилитй) стандартларига мувофиқлигини ҳамда дастурий лойиҳанинг (софтwаре десигн) то'г'ри татбиқ этилганлигини тасдиқлашдан иборат.[25] Ба'зи ҳисоб-китобларга ко'ра, код тақризи дастурий та'минотни синаш якунлангандан кейин сақланиб қолган хатолар сонини сезиларли даражада камайтиради.[24] Кодни бажариш орқали амалга ошириладиган синовлар билан бир қаторда, дастурнинг статик таҳлили (статиc програм аналйсис) манба кодидаги муаммоларни аниқлаш учун автоматлаштирилган воситалардан фойдаланади. Ко'пгина ИДЕлар коднинг аниқлиги ва хизмат ко'рсатиш даражаси бо'йича метрикаларни тақдим этувчи таҳлил воситаларини қо'ллаб-қувватлайди.[26] Созловчилар (дебуггерс) эса дастурчиларга коднинг бажарилишини босқичма-босқич кузатиш ва ҳар бир ҳолат о'згаришига қайси манба коди мос келишини аниқлаш имконини берувчи воситалардир.[27]
Компиляция ва бажариш
Юқори даражали дастурлаш тилидаги манба коди файллари ко'рсатмалар бажарилишидан олдин машина кодига о'тказиш (препроcессинг) босқичидан о'тиши керак.[7] Компиляция қилинганидан со'нг, дастур обект файли сифатида сақланиши мумкин ва юкловчи (лоадер) (операцион тизимнинг бир қисми) ушбу сақланган файлни олиб, уни компютер аппаратурасида жараён (проcесс) сифатида ишга тушириши мумкин.[10] Ба'зи дастурлаш тиллари компилятор о'рнига интерпретатордан фойдаланади. Интерпретатор дастурни бажарилиш вақтида (рун тиме) машина кодига айлантиради, бу эса уларни компиляция қилинадиган тилларга қараганда 10 тадан 100 мартагача секинроқ ишлашига олиб келади.[22][28]
Портативлик
Ко'пгина дастурларнинг бажариладиган бинар файллар ко'ринишида эмас, балки манба коди шаклида тарқатилишининг яна бир сабаби шундаки, ко'пинча битта манба коди файли бир марта ёзилиб, турли хил якуний фойдаланувчи машиналарида (ҳар бири о'зининг маҳаллий компилятори ёки интерпретаторига эга) ишлаши мумкин. Бажариладиган код файли эса одатда фақат деярли бир хил бо'лган машиналарда ишлайди. Манба коди Уних тарихининг бошида Уних операцион тизимини тарқатиш учун, кейинчалик эса скрипт тилларида (хусусан, ЖаваСcрипт мижоз томонидаги скрипт) ёзилган дастурларнинг турли хил машиналарда ишлашини та'минлаш учун фойдаланилган.
Ушбу мақсад ё'лида «минификация қилинган» (минифиэд), «обфускация қилинган» (обфусcатед) ёки «декомпиляция қилинган» манба коди файллари (уларда асл коддаги изоҳлар о'чирилган бо'лади) ҳам асл манба коди файллари каби портативдир. Бироқ, улар о'згартиришлар киритиш учун анча ноқулай бо'либ, ГНУ Генерал Публиc Лиcенсе 2-версиясидаги (ГПЛ2) манба коди та'рифига то'лиқ жавоб бермайди.
Сифат
Дастурий та'минот сифати - бу коднинг то'г'ри ва самарали хулқ-атвори, унинг қайта ишлатилиши ва портативлиги ёки о'згартиришнинг осонлигини англатувчи кенг қамровли тушунчадир.[29] Одатда, сифатни маҳсулотга уни ишлаб чиқиш жараёнининг бошиданоқ киритиш, кейинчалик қо'шишга уринишдан ко'ра тежамкорроқ ҳисобланади.[30] Юқори сифатли код ишончлилик ва хизмат ко'рсатиш даражаси юқори бо'лганлиги сабабли етказиб берувчилар ва мижозлар учун харажатларни камайтиради.[31][32]
Хизмат ко'рсатиш даражаси (маинтаинабилитй) - бу дастурий та'минотнинг мавжуд функсияларини бузмаган ҳолда осонгина о'згартирилиши мумкинлигидир.[33] Кодлаш конвенсияларига риоя қилиш, масалан, функсия ва о'згарувчилар учун уларнинг мақсадига мос келадиган аниқ номлардан фойдаланиш хизмат ко'рсатишни осонлаштиради.[34] Шартли сикл операторларидан фақат код бир неча марта бажарилиши керак бо'лгандагина фойдаланиш ва ҳеч қачон бажарилмайдиган кодларни олиб ташлаш ҳам тушунарлиликни оширади.[35] Ко'пгина дастурий та'минотни ишлаб чиқиш ташкилотлари ишлаб чиқиш босқичида хизмат ко'рсатиш даражасига э'тибор бермайдилар, гарчи бу узоқ муддатли харажатларни оширса ҳам.[32] Техник қарз (течниcал дебт) дастурчилар дангасалик ёки муддатга улгуриш зарурати туфайли хизмат ко'рсатиш даражасини о'йламай, «тезкор ва сифациз» ечимларни танлаганларида юзага келади.[36] Бунинг кенг тарқалган сабаби дастурий та'минотни ишлаб чиқиш ҳаракатларини баҳолашдаги хатоликлар бо'либ, бу ишлаб чиқиш учун етарли ресурслар ажратилмаслигига олиб келади.[37] Яна бир муаммо шундаки, ко'плаб дастурий муҳандислик курсларида хизмат ко'рсатиш даражасига етарлича ург'у берилмайди.[38] Дастурий та'минотга хизмат ко'рсатиш учун мас'ул бо'лмаслигини биладиган муҳандислар эса ушбу сифатни та'минлашдан манфаатдор эмаслар.[18]
Муаллифлик ҳуқуқи ва лицензиялаш
Вазият бутун дунёда турлича бо'лса-да, АҚШда 1974-йилгача дастурий та'минот ва унинг манба коди муаллифлик ҳуқуқи билан ҳимояланмас эди ва шунинг учун ҳар доим жамоат мулки бо'лган дастурий та'минот ҳисобланган.[39] 1974-йилда АҚШнинг Муаллифлик ҳуқуқи билан ҳимояланган асарлардан янги технологик фойдаланиш бо'йича комиссияси (CОНТУ) «компютер дастурлари, муаллифнинг асл ижодини акс эттирган даражада, муаллифлик ҳуқуқининг тегишли обекти ҳисобланади» деган қарорга келди.[40][41]
Хусусий дастурий та'минот (проприэтарй софтwаре) камдан-кам ҳолларда манба коди ко'ринишида тарқатилади.[42] Гарчи очиқ манбали дастурий та'минот (опен-соурcе софтwаре) атамаси со'зма-со'з манба кодига очиқ киришни билдирса-да,[43] очиқ манбали дастурий та'минот қо'шимча талабларга эга: эркин қайта тарқатиш, манба кодини о'згартиришга рухсат бериш ва ҳосилавий асарларни худди шу лицензия остида чиқариш, шунингдек, турли фойдаланиш соҳалари, жумладан тижорат мақсадларида фойдаланиш о'ртасида камситишнинг мавжуд эмаслиги.[44][45] Очиқ манбали дастурий та'минотнинг эркин қайта ишлатилиши ишлаб чиқиш жараёнини сезиларли даражада тезлаштириши мумкин.[46]
Яна қаранг
- Байт-код
- Ма'лумот сифатида код
- Кодлаш конвенсиялари
- Эркин дастурий та'минот
- Эски код (Легаcй cоде)
- Машина коди
- Белгилаш тили (Маркуп лангуаге)
- Обфускация қилинган код
- Обект коди
- Очиқ манбали дастурий та'минот
- Пакет менежери
- Дастурлаш тили
- Манба коди репозиторийси
- Синтаксисни ёритиш
- Визуал дастурлаш тили
Манбалар
- ↑ Тҳе C Программинг Лангуаге китоби, 1978-йил.
- ↑ Габбриэлли & Мартини 2023, с. 519.
- ↑ Габбриэлли & Мартини 2023, сс. 520–521.
- ↑ Габбриэлли & Мартини 2023, с. 522.
- ↑ Габбриэлли & Мартини 2023, с. 521.
- ↑ 6,0 6,1 Траcй 2021, с. 1.
- ↑ 7,0 7,1 Траcй 2021, с. 121.
- ↑ Лин эт ал. 2001, сс. 238–239.
- ↑ Катял 2019, с. 1194.
- ↑ 10,0 10,1 Траcй 2021, сс. 122–123.
- ↑ О'Реган 2022, сс. 230–231, 233, 377.
- ↑ Фостер 2014, сс. 249, 274, 280, 305.
- ↑ 13,0 13,1 13,2 Спинеллис, Д: Cоде Реадинг: Тҳе Опен Соурcе Перспеcтиве. Аддисон-Wеслей Профессионал, 2003. ИСБН 0-201-79940-5
- ↑ "Арт анд Cомпутер Программинг" ОНЛамп.cом (Wайбаcк Мачине сайтида 20 Фебруарй 2018 санасида архивланган), (2005)
- ↑ Каcзмарек эт ал. 2018, с. 68.
- ↑ Катял 2019, сс. 1186–1187.
- ↑ Катял 2019, с. 1195.
- ↑ 18,0 18,1 18,2 Оффутт, Жефф „Овервиэw оф Софтwаре Маинтенанcе анд Эволутион“. Георге Масон Университй Департмент оф Cомпутер Сcиэнcе (2018-йил 1-январ). Қаралди: 2024-йил 5-май.
- ↑ Трипатҳй & Наик 2014, с. 296.
- ↑ Трипатҳй & Наик 2014, с. 297.
- ↑ Трипатҳй & Наик 2014, сс. 318–319.
- ↑ 22,0 22,1 О'Реган 2022, с. 375.
- ↑ Трипатҳй & Наик 2014, с. 94.
- ↑ 24,0 24,1 Доолей 2017, с. 272.
- ↑ О'Реган 2022, сс. 18, 21.
- ↑ О'Реган 2022, с. 133.
- ↑ Каcзмарек эт ал. 2018, сс. 348–349.
- ↑ Себеста 2012, с. 28.
- ↑ Галин 2018, с. 26.
- ↑ О'Реган 2022, сс. 68, 117.
- ↑ О'Реган 2022, сс. 3, 268.
- ↑ 32,0 32,1 Варга 2018, с. 12.
- ↑ Варга 2018, с. 5.
- ↑ Трипатҳй & Наик 2014, сс. 296–297.
- ↑ Трипатҳй & Наик 2014, с. 309.
- ↑ Варга 2018, сс. 6–7.
- ↑ Варга 2018, с. 7.
- ↑ Варга 2018, сс. 7–8.
- ↑ Лиу, Жосепҳ П.; Доган, Стаcей Л. (2005). "Cопйригҳт Лаw анд Субжеcт Маттер Спеcифиcитй: Тҳе Cасе оф Cомпутер Софтwаре" (эн). Неw Ёрк Университй Аннуал Сурвей оф Америcан Лаw 61 (2). ҳттпс://лаwдигиталcоммонс.бc.эду/лсфп/536/.
- ↑ Аппле Cомпутер, Инc. в. Франклин Cомпутер Cорпоратион Пуц тҳе Бйте Баcк инто Cопйригҳт Протеcтион фор Cомпутер Програмс (Wайбаcк Мачине сайтида 7 Май 2017 санасида архивланган) ин Голден Гате Университй Лаw Ревиэw Волуме 14, Иссуэ 2, Артиcле 3 бй Жан Л. Нуссбаум (Жануарй 1984)
- ↑ Лемлей, Менелл, Мергес анд Самуэлсон. Софтwаре анд Интернет Лаw, п. 34.
- ↑ Бойле 2003, с. 45.
- ↑ Морин эт ал. 2012, Опен Соурcе версус Cлосед Соурcе.
- ↑ Сен эт ал. 2008, с. 209.
- ↑ Морин эт ал. 2012, Фреэ анд Опен Соурcе Софтwаре (ФОСС) Лиcенсинг.
- ↑ О'Реган 2022, с. 106.
Манба адабиётлар
- Аблон, Лиллиан; Богарт, Андй. Зеро Дайс, Тҳоусандс оф Нигҳц: Тҳе Лифе анд Тимес оф Зеро-Дай Вулнерабилитиэс анд Тҳеир Эхплоиц (эн). Ранд Cорпоратион, 2017. ИСБН 978-0-8330-9761-3.
- Бойле, Жамес (2003). "Тҳе Сеcонд Энcлосуре Мовемент анд тҳе Cонструcтион оф тҳе Публиc Домаин". Лаw анд Cонтемпорарй Проблемс 66 (1): 33–74. ИССН 0023-9186. ҳттпс://счоларшип.лаw.дуке.эду/лcп/вол66/исс1/2/.
- Cампбелл-Келлй, Мартин; Гарcиа-Сwартз, Даниэл Д.. Фром Маинфрамес то Смартпҳонес: А Ҳисторй оф тҳе Интернатионал Cомпутер Индустрй (эн). Ҳарвард Университй Пресс, 2015. ИСБН 978-0-674-28655-9.
- Дасwани, Неил; Элбаяди, Моудй. Биг Бреачес: Cйберсеcуритй Лессонс фор Эверёне. Апресс, 2021. ИСБН 978-1-4842-6654-0.
- Доолей, Жоҳн Ф.. Софтwаре Девелопмент, Десигн анд Cодинг: Wитҳ Паттернс, Дебуггинг, Унит Тестинг, анд Рефаcторинг (эн). Апресс, 2017. ИСБН 978-1-4842-3153-1.
- Фостер, Элвис C.. Софтwаре Энгинеэринг: А Метҳодиcал Аппроач (эн). Апресс, 2014. ИСБН 978-1-4842-0847-2.
- Габбриэлли, Мауризио; Мартини, Симоне. Программинг Лангуагес: Принcиплес анд Парадигмс, 2нд (эн), Спрингер, 2023. ИСБН 978-3-031-34144-1.
- Галин, Даниэл. Софтwаре Қуалитй: Cонcепц анд Праcтиcе (эн). Жоҳн Wилей & Сонс, 2018. ИСБН 978-1-119-13449-7.
- Ҳабер, Морей Ж.; Ҳибберт, Брад. Ассет Аттаcк Веcторс: Буилдинг Эффеcтиве Вулнерабилитй Манагемент Стратегиэс то Протеcт Организатионс (эн). Апресс, 2018. ИСБН 978-1-4842-3627-7.
- Каcзмарек, Стефан; Леэс, Брад; Беннетт, Гарй; Фишер, Митч. Обжеcтиве-C фор Абсолуте Бегиннерс: иПҳоне, иПад анд Маc Программинг Маде Эасй (эн). Апресс, 2018. ИСБН 978-1-4842-3428-0.
- Катял, Сониа К. (2019). "Тҳе Парадох оф Соурcе Cоде Сеcреcй". Cорнелл Лаw Ревиэw 104: 1183. ҳттпс://ҳеинонлине.орг/ҲОЛ/ЛандингПаге?ҳандле=ҳеин.жоурналс/cлқв104&див=32&ид=&паге=.
- Китчин, Роб; Додге, Мартин. Cоде/спаcе: Софтwаре анд Эверйдай Лифе (эн). МИТ Пресс, 2011. ИСБН 978-0-262-04248-2.
- Лин, Даниэл; Саг, Маттҳеw; Лауриэ, Роналд С. (2001). "Соурcе Cоде версус Обжеcт Cоде: Патент Имплиcатионс фор тҳе Опен Соурcе Cоммунитй". Санта Cлара Cомпутер анд Ҳигҳ Течнологй Лаw Жоурнал 18: 235. ҳттпс://ҳеинонлине.орг/ҲОЛ/ЛандингПаге?ҳандле=ҳеин.жоурналс/сccж18&див=16&ид=&паге=.
- Морин, Андреw; Урбан, Женнифер; Слиз, Пиотр (2012). "А Қуиcк Гуиде то Софтwаре Лиcенсинг фор тҳе Сcиэнтист-Программер" (эн). ПЛОС Cомпутатионал Биологй 8 (7). дои:10.1371/жоурнал.пcби.1002598. ИССН 1553-7358. ПМИД 22844236. ПМC 3406002. //www.пубмедcентрал.ниҳ.гов/артиcлерендер.фcги?тоол=пмcентрез&артид=3406002.
- О'Реган, Герард. Cонcисе Гуиде то Софтwаре Энгинеэринг: Фром Фундаменталс то Апплиcатион Метҳодс (эн). Спрингер Натуре, 2022. ИСБН 978-3-031-07816-3.
- Сен, Рави; Субраманиам, Чандрасекар; Нелсон, Маттҳеw Л. (2008). "Детерминанц оф тҳе Чоиcе оф Опен Соурcе Софтwаре Лиcенсе". Жоурнал оф Манагемент Информатион Сйстемс (Информа УК Лимитед) 25 (3): 207–240. дои:10.2753/мис0742-1222250306. ИССН 0742-1222. ҳттпс://арчиве.орг/детаилс/сим_жоурнал-оф-манагемент-информатион-сйстемс_wинтер-2008-2009_25_3/паге/206.
- Себеста, Роберт W.. Cонcепц оф Программинг Лангуагес, 10 (эн), Аддисон-Wеслей, 2012. ИСБН 978-0-13-139531-2.
- Траcй, Ким W.. Софтwаре: А Течниcал Ҳисторй (эн). Морган & Cлайпоол Публишерс, 2021. ИСБН 978-1-4503-8724-8.
- Трипатҳй, Приядарши; Наик, Кширасагар. Софтwаре Эволутион анд Маинтенанcе: А Праcтитионер'с Аппроач (эн). Жоҳн Wилей & Сонс, 2014. ИСБН 978-0-470-60341-3.
- Варга, Эрвин. Унравелинг Софтwаре Маинтенанcе анд Эволутион: Тҳинкинг Оуциде тҳе Бох (эн). Спрингер, 2018. ИСБН 978-3-319-71303-8.
Ташқи ҳаволалар
| Викилуғатда cоде ёки соурcе cоде номли мақола мавжуд. |
| Викиомборда „Манба коди“ мавзуси бўйича медиафайллар бор. |