ТЗ

ТЗ


И так вот мой вариант того что хотелось бы видеть в тех. задании :

1. Назначение и область применения программы:

  1. Прикладная (Сервер TCP)
  2. Для компании

2. Описание задачи.

Цитата:

Сообщение от Kastaneda 


Задача (подзадача и т.д.) должна иметь настолько полное описание, насколько это необходимо для понимания сути задачи. Формулировка задачи не должна иметь двоякого чтения во избежания разного представления конечного продукта у заказчика и исполнителя.

Любой функционал должен быть описан явно, а не подразумеваться в расплывчатых формулировках.

Как пример не должно быть субъективных формулировок типа: хорошо","качественно","красиво","эстетично" итп

Если вы что-то не указали или указали расплывчато, то скорее всего исполнитель сделает по своему усмотрению и как ему легче, и тут как повезет ведь его понимание того как должна выглядеть программа может сильно отличаться от вашего и когда вы это поймете может быть уже поздно.

Порой некоторые упущенные детали, которые возможно покажутся заказчику пустяковыми приводят к тому что программу фактически придется переписывать чуть ли не с нуля. И не каждый программист согласится проделывать одну и ту же работу дважды без дополнительной оплаты.

Но и пихать в задание все что в голову взбредет тоже не стоит, описывайте четко то что вам действительно нужно и в чем уверены, так как все это может сказаться на конечной цене, а так же на том возьмется ли вообще программист за ваше задание.

То в чем не уверены лучше обсудить с программистом потом в личной переписке, а затем добавить в ТЗ.

В большинстве случаев представить программу легче описав весь цикл её работы с момента её запуска до завершения.

Если программа принимает в процессе работы какие-то решения, то стоит описать так же на какие данные она должна опираться, и какой логике следовать при их принятии.

Стоит описать сразу весть функционал программы и при этом сразу обозначить что из функционала является обязательным (критичным), а что является желаемым (и к примеру может быть доработано позже)

Если вы хотите что бы программа имела нестандартный вид или интерфейс, то это тоже сразу стоит указать.

При описании для наглядности можно использовать скриншоты, рисунки, схемы, и даже видео.

Если программа взаимодействует с каким-нибудь сайтом (например, парсер или бот) то следует привести ссылки на конкретные (или возможные) страницы сайта с которым программа должна работать, а также данные, которые должна брать с этих страниц, указать необходимо ли прохождение авторизации на сайте (при необходимости предоставить тестовый логин пароль)

Если программа должна будет работать сайтом (например через FTP, или удаленно с его БД) то желательно сразу предоставить, параметры для подключения (логин, пароль, хост, порт итп.)

3. Технические требование к программе: 

  1. Требование к задаче как в общем, так и каждой ее части.
  2. (например, если задание подразумевает использование комплекса программ, БД, скриптов итп.)
  3. Требования к необходимой функциональности программы (как, в общем, так конкретно, тут же возможно стоит указать связь функциональности с интерфейсом, например, какой пункт меню будет реализовывать/вызывать те или иные действия).
  4. Требования интерфейсу и внешнему виду программы.(тут особо пригодятся примеры, скриншоты, рисунки, схемы).
  5. Системные требования программы (к компьютеру на котором она будет работать).
  6. Другие дополнительные требования (например, к размеру исполняемого файла программы, наличие инсталятора или наоборот портабельность итд).


Пункты 2 и 3 влияют на выбор технических средств для решение поставленной задачи.

4. Средства, которые может/должен использовать программист при разработке:

  1. Язык программирования (Delphi, C++, C#, Java итд)
  2. Платформа (или платформы в случае кроссплатформенного приложения) под которую будет писаться программа.
  3. (Windows, Linux, Mac OS а также разрядность x32/x64 )
  4. Среда разработки (например, для языка С++: MSVC++/С++Builder/QtCreator).
  5. Стандартные, а также сторонние библиотеки и компоненты, которые может (или которые нельзя) использовать программист (например, в среде MSVC++ можно использовать WinApi/MFC/CLR ну и сторонний Qt).
  6. Необходимость применение конкретных методов (подходов, технологий и способов) решения вашей задачи (применение ООП, паттернов проектирования, алгоритмов итп)


5. Дополнительная информация, которая будет необходима программисту для выполнения задачи.

Для учебных задач это может быть требования к выполнению курсовой работы, методическое указание, готовый пример выполненной работы.

Для прикладной программы информация может быть самой различной, например ссылки на документацию, описание API-сервера.


Report Page