275 
Приложение В.  Проектирование и разработка программы 
Одним  из  основных  компонентов  отчета  в  лабораторных  работах  №№5-6 
является модель написанной программы. Что под этим понимается? 
Сложность  задачи,  которую  необходимо  решить  в  этих  лабораторных 
работах,  требует  ознакомления  с  понятием  процесса  проектирования 
программного  обеспечения.  В  упрощенном  виде  к  основным  этапам 
традиционного потока проектирования ПО можно отнести: 
1.  Разработку технического задания и
 спецификаций (в данном случае они 
уже представлены и предложены в виде варианта задания). 
2.  Архитектурное  проектирование (по-другому,  системное  или 
концептуальное проектирование). 
3.  Разработку  программного  обеспечения (непосредственная  реализация, 
т.е. кодирование). 
4.  Отладку и тестирование. 
5.  Создание рабочей документации (в данном случае это отчет). 
6.  Ввод  в  эксплуатацию,  сопровождение (в 
данном  случае  это 
демонстрация преподавателю выполненной работы и ее защита). 
Вопросам  технологий  проектирования  программного  обеспечения  в 
частности и вычислительных систем в целом, проблемам в различных подходах 
к проектированию и разработке систем, так называемому «кризису сложности» 
в вычислительной технике посвящено множество статей и книг [28, 30, 40, 41, 
42, 43, 49, 64, 69, 14, 15, 20, 25]. Однако недостаточное качество, многократно 
заваленные  сроки  выполнения, 
высокая  стоимость  до  сих  пор  являются 
характерными чертами систем такого рода. 
В  данной  работе  Вам  настоятельно  рекомендуется  не  пропускать  этап 
архитектурного  проектирования,  т.е.  продумать,  как  Вы  будете  решать 
поставленную задачу, а потом уж приступать к кодированию придуманного. Что 
это Вам даст? Грамотное системное проектирование 
•  Существенно  сократит  время  реализации  ПО
  в  частности  и  срок 
выполнения  работы  в  целом (примерное  временное  соотношение  этапа 
№2 и этапа №3 – «80% к 20%»). 
•  Сделает  Вашу  программу  прозрачной,  простой  для  понимания, 
предсказуемой, значит, легко отлаживаемой. 
•  Повысит качество. 
•  Сократит ресурсоемкость. 
•  Добавит  в  Вашу  программу  возможность  наращивания 
функциональности,  модифицируемости  и  дальнейшего  развития (если, 
конечно,  критерий 
повторного  использования  учитывался  на  этапе 
проектирования). 
•  Сделает более доступным анализ разработанного ПО.