Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

Планирование программирования

В рамках нисходящей разработки существуют три способа планирования программирования модулей: иерархический, опе­рационный и их комбина­ция.

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

При операционном способе модули программируются и тести­руются в соответствии с порядком их выполнения при запуске готовой программы.

Оба способа, иерархический и операционный, обладают своими преимуществами и недостатками.

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

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

Все три способа планирования и реализации программ в рамках нисходящего подхода предполагают использование «заглу­шек», заменяющих нереализованные модули нижних уровней, при отладке и тестировании модулей более высоких уровней.

В самом простом случае «заглушка» может быть пустой, но она также может дополняться операторами печати. Такое дополнение позволяет «заглушке» печатать сообщения, отмечающие ее акти­вацию, что обеспечивает трассировку программы.

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

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

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

Планировать также необходимо основные данные.

Чрезвычайно трудно формировать глобальные данные «на лету» во время кодирования и одновременно сообщать о них остальным программистам, участвующим в программировании, и принуждая их подстраиваться под вас, а вас — подстраиваться под них. Необходимо, насколько это возможно, как можно раньше описать все структуры данных, задействуемте несколь­кими членами команды одновременно.

Если программа разрабатывается для работы с базами данных, то послед­нее необходимо тщательно спланировать. В первую очередь необходимо спро­ек­тировать основные таблицы (нап­ример, для отдела кадров фирмы — анкетные данные ее сот­рудников). Затем — сопутствующие, справочные и установочные таблицы (например, постоянные сведения о фирме, номенкла­тура должностей, тарифные разряды и т.д.). И, конечно, связи между этими таблицами (например, должность сотрудника запол­няется по коду, а кон­кретное наименование согласно коду берется из справочника должностей).

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

Временной успех создания программного обеспечения зависит от удач­но­го распределения (по способностям и умению) фронта работы между чле­на­ми команды программистов. В зависимости от сложности и размера отдель­ной ветви проекта, ее разработку поручают одному или небольшой группе программистов. Распре­деление (планирование) и координирование всей работы по созданию программного обеспечения осуществляет один человек.

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

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


Назад


Главная Теоретический материал Лабораторные работы Тесты Контакты