Читайте также: |
|
Постановка задачи
Создание любой программы начинается с постановки задачи. Изначально задача формулируется в терминах предметной области, и необходимо перевести ее на язык понятий, более близких к программированию. Поскольку программист редко досконально разбирается в предметной области, а заказчик — в программировании (простой пример: требуется написать бухгалтерскую программу), постановка задачи может стать весьма непростым итерационным процессом. Кроме того, при постановке задачи заказчик зачастую не может четко и полно сформулировать свои требования и критерии.
На этом этапе также определяется среда, в которой будет выполняться программа: требования к аппаратуре, используемая операционная система и другое программное обеспечение.
Постановка задачи завершается созданием технического задания, а затем внешней спецификации программы, включающей в себя:
Таким образом, программа рассматривается как черный ящик, для которого определены функция и входные и выходные данные.
Выбор модели и метода решения задачи
На этом этапе анализируются условия задачи и на этом основании строится модель задачи и определяется общий метод ее решения. При построении модели выделяются характеристики задачи, существенные с точки зрения рассмотрения, то есть выполняется ее абстрагирование. Эти характеристики должны представляться в модели с необходимой полнотой и точностью. Иными словами, на этом этапе постановка задачи формализуется и на этой основе определяется общий метод ее решения. При наличии нескольких методов наилучший выбирается исходя из критериев сложности, эффективности, точности и т. д. в зависимости от конкретных задач, стоящих перед программистом.
Разработка внутренних структур данных
Большинство алгоритмов зависят от того, каким образом организованы данные, поэтому интуитивно ясно, что начинать проектирование программы надо не с алгоритмов, а с разработки структур, необходимых для представления входных, выходных и промежуточных данных. При этом принимаются во внимание многие факторы, например ограничения на размер данных, необходимая точность, требования к быстродействию программы. Структуры данных могут быть статическими или динамическими.
При решении вопроса о том, как будут организованы данные в программе, полезно задать себе следующие вопросы.
Например, если максимальное количество однотипных данных, которые требуется обработать, известно и невелико, проще всего завести для их хранения статический массив. Если таких массивов много, сегментов данных и стека может оказаться недостаточно, и придется отвести под эти массивы место в динамической памяти.
Если максимальное количество данных неизвестно и постоянно изменяется во время работы программы, для их хранения используют динамические структуры. Выбор вида структуры зависит от требуемых операций над данными. Например, для быстрого поиска элементов лучше всего подходит бинарное дерево, а если данные требуется обрабатывать в порядке поступления, применяется очередь.
В некоторых случаях удобно моделировать динамические структуры с помощью массивов.
Дата добавления: 2015-07-08; просмотров: 102 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лекция 6. ПРЕДПРИНИМАТЕЛЬСТВО КАК ЭКОНОМИЧЕСКАЯ ФУНКЦИЯ И ИСТОРИЧЕСКИЙ ФЕНОМЕН | | | Структурное программирование |