КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проектирование программ
Современный подход к проектированию программ основан на декомпозиции задачи, которая в свою очередь основана на использовании абстракций. Целью при декомпозиции является создание модулей, которые представляют собой небольшие, относительно самостоятельные программы, взаимодействующие друг с другом по хорошо определенным и простым правилам. Если эта цель достигнута, то разработка отдельных модулей может осуществляться различными людьми независимо друг от друга, при этом объединенная программа будет функционировать правильно. Различают абстракцию через параметризацию (одним алгоритмом можно решать задачи, отличающихся различными исходными данными, задаваемыми как параметры) и через спецификацию (разными алгоритмами можно получить один и тот же искомый результат. При этом описываются результаты работы программы, смысл обращения к программе становится ясным через анализ ее спецификации, а не самого текста программы.) Существуют различные подходы и технологии разработки алгоритмов и программ. По взглядам проектирование и разработку программ целесообразно разбить на ряд последовательных этапов:
o Выработать требования (свойства, качества и возможности), необходимые для решения проблемы или достижения цели (как правило, эта деятельность носит экспертный характер); o Разработать спецификации, включающие § Цель программы; § граничные условия; § описание функций системы; § спецификации входных и выходных данных; § верификационные требования; § тип и количество документов. В ходе этой работы выявляются свойства, которыми должна обладать система в конечном виде(замысел), описывающий функции системы, характеристики интерфейса. 2. Проектирование программы o имя/цель - дается имя модулю и предложение о функции модуля с формальными параметрами; o неформальное описание - обзор действий модуля; o ссылки - какие модули ссылаются на него и на какие модули ссылается данный модуль o вход/выход - формальные и фактические параметры, глобальные, локальные и связанные(общие для ряда модулей) переменные; o примечания - полезные комментарии общего характера по модулю. Следующим шагом является детальное проектирование. На этом этапе происходит процедурное описание программы, выбор и оценка алгоритма для реализации каждого модуля. Входной информацией для проектирования являются требования и спецификации системы. f. Модульное программирование
Исходя из этих принципов каждый модуль тестируется отдельно, затем после кодирования и тестирования происходит их интеграция и тестируется вся система g. Функциональная декомпозиция h. Проектирование с использованием потока данных § Экспертиза потоков данных и отображение графа потока данных, § Анализ входных, центральных и выходных преобразующих поток данных элементов, § формирование иерархической структуры программы, § детализация и оптимизация структуры программы. i. Технология структурного анализа проекта
j. Методология Джексона
k. Методология Уорнера § диаграммы организации данных (описывают входные и выходные данные) § диаграммы логического следования (логический поток этих данных); § список инструкций (команды, используемые в проекте); § псевдокод (описание проекта); § определение входных данных системы; § организация входных данных в иерархическую структуру; § детальное определение формата элементов входного файла; § то же самое для выходных данных; § спецификация программы: чтение, ветвление, вычисление, выходы, вызовы подпрограмм § составление диаграммы (по типу блок-схем) указывающие логическую последовательность инструкций. l. Метод иерархических диаграмм § начать с наивысшего уровня абстракции, определив вход, выход, обработку; § соединить каждый элемент входа и выхода с соответствующей обработкой; § документировать каждый элемент системы, используя диаграммы; § детализировать диаграммы, используя шаги 1-3. m. Объектно-ориентированная методология проектирования
Рис.12. Схема построения модели при индуктивном способе
0. эмпирический этап
4. разработка алгоритма
Алгоритм – это определенная последовательность инструкций (предписаний), доступные для понимания исполнителем и предназначенные для достижения им указанной цели или решения поставленной задачи.
Исполнитель алгоритма – это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. В качестве исполнителя алгоритма могут выступать: человек, животное и автоматическое устройство. В информатике универсальным исполнителем алгоритмов является компьютер. Исполнителя характеризуют: · среда (или обстановка) – "место обитания" исполнителя; · система команд – каждый исполнитель может выполнять команды только из некоторого строго заданного списка. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды; · элементарные действия – то, что исполнитель совершает после вызова соответствующей команды; · отказы – возникают, если команда вызывается при недопустимом для нее состоянии среды. Обычно исполнитель ничего не знает о цели алгоритма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем". Изучение алгоритмов является спецификой науки о вычислениях. В последнее время здесь были достигнуты значительные успехи. К числу основных проблем, изучаемых этой наукой можно отнести следующие: поиск новых и улучшение существующих алгоритмов; математическое исследование эффективности алгоритмов; разработка математических методов доказательства того, что данный алгоритм является "наилучшими из возможных"; согласование положений теории вычислений с практическими соображениями. К числу основных свойств алгоритма относятся следующие: · Понятность (доступность) – алгоритм должен учитывать специфику исполнителя и, при необходимости, ему должны предоставляться дополнительные сведения; · Дискретность (раздельность) – выполнение каждого очередного шага алгоритма должно начинаться только после полного завершения предыдущего шага; · Детерминированность (определенность) – выполнение алгоритма исполнителем носит механический характер, т.е. выбор каждого очередного шага алгоритма зависит не от предпочтений исполнителя, а от результатов, достигнутых им на предыдущем шаге; · Результативность (конечность) – либо решение задачи достигается за конечное, хотя бы и большое, число шагов, либо делается вывод о невозможности продолжения выполнения алгоритма по той или иной причине (есть алгоритмы, не обладающие этим свойством – например, вычисление иррационального числа p); · Массовость – если алгоритм позволяет решить некоторую задачу, то он же должен быть применим для целого класса подобных задач, различающихся лишь наборами исходных данных, образующих область применимости алгоритма (есть алгоритмы, не обладающие этим свойством, т.к. порой невозможно организовать еще один набор исходных данных либо в силу их уникальности, либо в связи со значительными затратами времени, финансов или материальных ресурсов). На практике используются следующие формы представления алгоритмов: · Словесная запись (не формализованная запись алгоритма на естественном языке, например, рецепт приготовления манной каши); · Блок-схема (наиболее наглядная графическая форма представления алгоритмов, используемая профессионалами особенно в тех случаях, когда алгоритм обладает изощренной логикой исполнения); · Псевдокоды (язык программирования для бедных, когда нет возможности преподавать основы алгоритмизации с использованием ЭВМ – полуформализованные описания алгоритмов, включающий в себя как элементы "птичьего" языка программирования); · Компьютерная программа (жестко формализованная запись алгоритма, ориентированная на исполнителя – ЭВМ). Для разработки компьютерных программ используются инструментальные средства, называемые языками программирования. Рассмотрим запись алгоритма Евклида нахождения наибольшего общего делителя (НОД) для двух натуральных чисел во всех четырех перечисленных выше формах.
Словесная запись: 1. Задать два числа. 2. Если числа равны, то взять первое из них в качестве ответа и прекратить выполнение алгоритма, иначе идти к пункту 3. 3. Определить бóльшее из двух чисел. 4. Заменить бóльшее число на разность между бóльшим и меньшим числами. 5. Идти к пункту 2.
Блок-схема:
Псевдокоды: алг НОД нач ввод a; b S: если a < > b тоидти к F если a < b то a:=a-b иначе b:=b-a идти к S F: вывод a
Дата добавления: 2014-01-20; Просмотров: 2662; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |