Техническо задание за разработване на софтуер: стандарти и шаблони

Технологиите за разработка на софтуер (софтуер) се появиха заедно с програмирането. Стана традиция да се комбинират две процедури: как да се напише алгоритъм как да се напише програма, за да се разработи този проект, като се уточни в хода на първия алгоритъм. Ако програмата "изпълни" компютъра, технологията на писане на програми "изпълнява" човек. За компютър грешка в цикъла на изпълнение има фатални последици. За човек процесът на писане на технология не е цикъл, а не алгоритъм, а спирала на развитието на знанието и способността да се формализира обхватът на приложението, да се формулират задачи и да се разреши.

Обхват и цел в него

Програмирането във всеки контекст е формализирането на знанията и уменията на разработчика (екипа) по сравнително точен алгоритъм, написан във формата на техническата спецификация (TOR) за разработване на софтуер (софтуер) на един много програми.


Обхватът на приложение е винаги първичен. Задачата, която трябва да се реши, не е толкова второстепенна, колко трудно може да бъде поставена и сама по себе си е задача. Разбирането какво трябва да се направи, за да се направи бързо и точно винаги е трудно. Всички опити за формализиране на процеса и създаване на универсален пример за техническа задача за разработка на софтуер винаги се превръщаха в спирала на целта.
Формулировката на задачата винаги е била изяснена, целта е уточнена и необходимата функционалност понякога се определя от години.Да се ​​изгради космически кораб, да се проектира жилищна къща или да се напише TK на ядрена подводница - години на работа, дори като се вземе предвид опитът на много специалисти. Това е ясно за всички. Общественото съзнание едва ли е разбрало, че писането на програма (софтуерна система) не е по-малко, но често е много по-труден и сложен процес.

Определете пространството на решенията

Обхватът на приложение винаги "знае" какво точно трябва да се направи, за да се промени ситуацията към по-добро, но специалистът не разбира веднага как правилно да го формулира и приложи.


Съвременното програмиране премина от локален вариант към мрежов "разпределен" контекст. Същността на това не се е променила. Какво да вземем като основа за C #, C /C ++, или набор от интернет технологии HTML /CSS + javascript /PHP няма значение. Можете да създадете уникален асемблер за всяка област на приложение, но това е много трудоемък процес на висококвалифицирани специалисти на ниво машинен код. Софтуерът е въплъщение на умствената дейност на специалист в статична, осезаема версия. Необходимата функционалност е формализирана в логиката на диалога, алгоритмите за вземане на решения и интерфейса. Пространството на решението е необходима функция, която описва идеята или изпълнението на редица изисквания, които подобряват потребителското (потребителското, потребителското) приложение.
Задачата на разработването на софтуер в крайна сметка е логиката на формализиране на домейна за изявлението на задачата, както и процедурите за описване, разработване, прилагане,съпровожда, актуализира и прекратява използването на информационни системи за натрупване, съхранение и обработка на данни чрез компютърно оборудване.
Информационна система - обобщено обозначаване на отделна програма, програмен комплекс, база данни или уникален алгоритъм. Винаги има нещо на входа, на изхода и е необходимо да се конструира това, което е между входа и изхода - софтуера: формализира и реализира процедурата за обработка на информацията.

Участници в процеса и съществени условия

Клиентът е физическо или юридическо лице, което се интересува от разработването на информационна система. Изпълнител е физическо или юридическо лице, което е в състояние да организира процеса и да създаде информационна система. Разработчик (екип) - експерт или група професионалисти, наети да изпълняват цялата или част от работата.
Отношенията в развитието на информационната система са изградени на ниво Клиент - Изпълнител: само писмена форма в съответствие с действащото законодателство и договора. Разработчик - разработчик: само писмена форма в съответствие с нейното общо ръководство или ГОСТ за техническа задача за разработване на софтуер. Не е разрешено устна връзка (не е забранено, но не се препоръчва), нито един участник в процеса не може да се позове на споразумението, което не е потвърдено писмено. Клиентът и Изпълнителят действат в рамките на действащото законодателство и сключеното споразумение до пълното изпълнение на задълженията. Разработчикът се наема от Изпълнителя при необходимост за изпълнение на специфични функции,задачи, етапи. Определяне на компетентността и състава на екипа за развитие - обхватът на интересите и отговорностите на Изпълнителя.

Характеристики на ТЗ за развитие ЗА

Яснота на границата! TK е строг документ, който ясно определя какво и на каква основа е формализирано:
  • първоначални данни;
  • изискваните резултати и изходни данни;
  • обосновка и списък на всички алгоритми, които трябва да бъдат приложени.
  • TK е самостоятелен документ: ако правите всичко написано в него, тогава необходимата функционалност ще бъде реализирана и задачата ще бъде решена. Нищо не на място, нищо противоречиво. Всички точки от спецификацията за разработка на софтуер са взаимно свързани, систематизирани и прецизно формулирани.
    Всеки TK за развитието (дори и най-непретенциозната програма) - динамичен документ. Не можете да го поправите като нещо неизменно. В програмирането интелигентността се показва като огледало. TK - е процес на развитие на идеи за сферата на приложение и решаващ се проблем. Инженерната задача за разработка на софтуер не е молив и лист хартия, а химикалка (мастило) и пакет развалена хартия. Искрено тези разработчици, които, когато пишат ТК, се ръководят от запазването на историята на своите идеи за обхвата на приложение и задачата, която се решава.

    Концептуално представяне на информационните системи

    Задание за разработване на софтуер като пример за концептуални представяния за алгоритъм, програма, информационна система, база данни, уеб ресурс илиДруг продукт, работещ на цифров компютър, се фокусира върху езика за програмиране, но спецификацията и изборът на език не са основни.

    Всичко, което се разработва (програмира) за управление на цифрово изчислително устройство, е информационна система (алгоритъм, програма или база данни). Информационната система е:
  • резултата от формализирането на областта на приложение;
  • изложение на проблема за разработване на алгоритъма (система от алгоритми);
  • програмиране (развитие);
  • изпитване (проверка на функционалността и наличие на грешки);
  • прилагане (адаптиране към областта на прилагане и преразглеждане);
  • поддръжка (поддръжка без промяна на кода);
  • актуализация (надграждане, създаване на нова версия);
  • прекратяване на дейността (правни, технически, планиращи). Информационната система е поредица от трансформация на човешката умствена дейност:
  • общо системно представяне;
  • официално описание;
  • специфично развитие;
  • система за проверка на функциите;
  • система за прилагане;
  • система за ескорт;
  • система за актуализиране (модернизиране);
  • Причини и причини за прекратяване на употребата.
  • Разработването на информационна система се извършва от изпълнителя от силите на нейните собствени или участващи експерти. Авторското право и собствеността в процеса на работа върху резултатите от етапите се извършват в съответствие със закона и в съгласие с клиента.

    Разработване на ТЗ с разработване на софтуер

    Използване на екип от специалисти, замянаспециалисти, времето и логиката на изпълнение се определят от Изпълнителя. Функциите на Клиента завършват на етапа на определяне на задачата, преди въвеждането на информационната система и отново започват след изпълнението. Развитието се извършва циклично, но по спирала:
  • след тестване (инициатива на художника);
  • ​​
  • след изпълнението (инициатива на клиента);
  • с обективна необходимост от актуализация.
  • Развитието на информационната система се ръководи от резултата от човешката умствена дейност, която се трансформира от концептуално описание на областта на приложение в даден продукт.
    Всеки етап на трансформация е конструиран по такъв начин, че да се избегне колкото е възможно повече твърдостта на крайните структури, да се осигури динамично усъвършенстване на всеки елемент от него, обекти, функции и други. крайния продукт в процеса на развитие. Разработването на техническа задача за създаване на софтуер и създадената информационна система са статични изображения за резултатите от извършената работа, възприемана като съществуваща, направените неточности, грешки и дефекти на дизайна не могат да бъдат основание за обосновка или представяне на каквато и да е вреда.

    Разработване въз основа на вече установени решения

    Софтуерът се използва в много случаи при различни приложения на приложения за дълго време и натрупан огромен опит. Финанси, фондови борси, счетоводни решения, електронно управление на документи, машини за цифрово управление и други области. Да се ​​напише техническа задача за разработване на софтуер С1 - пример за работа, която се формализира на базатавече съществуващи. Много е характерно, че счетоводната 1С, обявена от разработчиците като първа и единствена реализация на интегрирано счетоводство, е създадена от други екипи на разработчици в абсолютно други софтуерни продукти. Съвсем очевидно е, че съществуващият счетоводен софтуер не е идеален, а съществуващи и нови ще бъдат разработени. Актуалността и реалната необходимост от автоматизация на производството и обработването на информация направиха техническа задача за разработване на софтуерен АИС независим продукт на специалист по умствена дейност.
    За разлика от 1С, работата по проектирането на TOR за AIS и най-автоматизираните информационни системи датира от 80-те години на миналия век, но проблемите не намаляват, но идеите стават много повече.

    Развитие и динамика спрямо класиката и статиката

    Всяка програма обхваща знанията и уменията на разработчиците (авторите). Клиентите и мениджърите на програмни проекти могат да дадат своя принос за ТК и произтичащите от тях НДНТ, но специфични програмисти вече са предали своите мисли (знания и умения) на статичен код. Дори когато програмата може динамично да се адаптира към промените в приложението, съвременните технологии за програмиране не му позволяват да излезе отвъд възприятията на програмистите извън обхвата на изпълнението (решението) на задачата.
    Ако ограничаването на съвременните информационни технологии се определя като основен фактор, тогава процесът на създаване на ТС и произтичащата ОП ще изглежда като постепенно изграждане на функционалната. Програмирането не еедин факт: написан от ТЗ, създаден от СО, и процесът е завършен. Друг вариант: написано, направено и започна всичко първо. Идеален - не толкова за да напишете програмата и да посочите как да го направите, а да сформирате екип от програмисти и да подобрите своите знания и умения.

    Свързани публикации