Методы проектирования алгоритмов и программ

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

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

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

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

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

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

Python #13 Проектирование программ

Важнейшими классификационными признаками методов проектирования алгорит­мов и программ являются:

• степень автоматизации выполнения проектных работ;

• методология процесса разработки.

По степени автоматизации процесса проектирования алгоритмов и программ можно выделить методы неавтоматизированного проектирования и методы авто­матизированного проектирования (CASE- технологии).

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

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

Проектирование алгоритмов и программ может основываться на различных под­ходах, среди которых наиболее распространены:

• структурное проектирование и программирование;

• информационное моделирование предметной области и связанных с ней при­ложений;

Начало развития структурного проектирования алгоритмов и программ прихо­дится на 60-е годы. В его основу положена последовательная декомпозиция и структурирование целого, от общего к частному. Различают следующие методы структурного проектирования, в зависимости от объекта структурирования:

• функционально-ориентированные методы — последовательное раз­ложение целостной проблемы на отдельные, достаточно простые составляю­щие, обладающие функциональной определенностью (уровень детализации выбирается проектировщиком системы);

• методы, основанные на последовательном структурировании данных.

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

Методы проектирования ПО Лекция 04 03 2022

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

• информационный анализ предметных областей;

• построение взаимосвязанных моделей данных;

• системное проектирование функции обработки данных;

• детальное конструирование процедур обработки данных.

Строятся информационные модели различных уровней представления:

• интегрированная информационно-логическая модель предметной области, не зависящая от средств программной реализации хранения и обработки данных, содержащая интегрированные структуры данных предметной области;

• даталогические модели, ориентированные на среду хранения и обработки дан­ных, — модель СУБД.

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

Традиционные подходы к разработке программных продуктов всегда подчеркивали различие между данными и процессами их обработки (программные модули обеспечивают обработку входных данных, но не содержат этих данных). В отличие от традиционного структурного подхода, объектно-ориентированный подход к проектированию программных продуктов основан на:

• установлении характерных свойств классов и методов их обработки;

• создании иерархии классов;

• наследовании свойств классов и методов их обработки.

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

Читайте также:
Диаграмма исикавы в какой программе

Источник: studopedia.su

9.3. Методы проектирования программных продуктов

Методы проектирования алгоритмов и программ очень разнообразны, их можно классифицировать по различным признакам, важнейшими из которых являются:

  1. степень автоматизации проектных работ;
  2. принятая методология процесса разработки.
  • методы традиционного (неавтоматизированного) проектирования;
  • методы автоматизированного проектирования (CASE — технология и ее элементы)
  • структурное проектирование программных продуктов;
  • информационное моделирование предметной области и связанных с ней приложений;
  • объектно-ориентированное проектирование программных продуктов.
  • нисходящее проектирование, кодирование и тестирование программ — последовательное разложение общей функции обработки данных на простые функциональные элементы;
  • модульное программирование — разбиение программы на последовательность модулей, каждый из которых выполняет одну или несколько законченных функций;
  • структурное программирование — использование при создании программного продукта типовых управляющих структур алгоритмов обработки данных.
  • информационный анализ предметных областей;
  • информационное моделирование — построение комплекса взаимосвязанных моделей данных;
  • системное проектирование функций обработки данных;
  • детальное конструирование процедур обработки данных.
  • информационно-логическая модель, не зависящая от средств программной реализации хранения и обработки данных, отражающая интегрированные структуры данных предметной области;
  • даталогическая модель, ориентированная на среду хранения и обработки данных.
  • выделение классов объектов;
  • установление характерных свойств объектов и методов их обработки;
  • создание иерархии классов, наследовании свойств объектов и методов их обработки.

Ограничение

Для продолжения скачивания необходимо пройти капчу:

Источник: studfile.net

Методы проектирования структуры ПО

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

Работа состоит из 1 файл

Тема №3. Методы проектирования структуры ПО

3.1. Подходы к организации процесса создания и использования ПО. Классификация методов проектирования алгоритмов и программ.
3.2. Структурное программирование. Использование декомпозиции и абстракции при проектировании ПО.
3.3. Реализация процедур и функций. Специфики процедур и данных; декомпозиция системы.

Проектирование алгоритмов и программ — наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей. Затраты на создание, сопровождение и эксплуатацию программных продуктов, научно-технический уровень разработки, время морального устаревания и многое другое — все это также зависит от проектных решений.
В настоящее время можно выделить 5 основных подходов к организации процесса создания и использования ПС.
• Водопадный подход. При таком подходе разработка ПС состоит из цепочки этапов. На каждом этапе создаются документы, используемые на последующем этапе. В исходном документе фиксируются требования к ПС. В конце этой цепочки создаются программы, включаемые в ПС.
• Исследовательское программирование. Этот подход предполагает быструю реализацию рабочих версий программ ПС, выполняющих лишь в первом приближении требуемые функции. После экспериментального применения реализованных программ производится их модификация с целью сделать их более полезными для пользователей. В настоящее время этот подход применяется для разработки таких ПС, для которых пользователи не могут точно сформулировать требования (например, для разработки систем искусственного интеллекта).
• Прототипирование. Этот подход моделирует начальную фазу исследовательского программирования вплоть до создания рабочих версий программ, предназначенных для проведения экспериментов с целью установить требования к ПС. В дальнейшем должна последовать разработка ПС по установленным требованиям в рамках какого-либо другого подхода (например, водопадного).
• Формальные преобразования. Этот подход включает разработку формальных спецификаций ПС и превращение их в программы путем корректных преобразований. На этом подходе базируется компьютерная технология (CASE-технология) разработки ПС.
• Сборочное программирование. Этот подход предполагает, что ПС конструируется, главным образом, из компонент, которые уже существуют. Должно быть некоторое хранилище (библиотека) таких компонент, каждая из которых может многократно использоваться в разных ПС. Такие компоненты называются повторно используемыми. Процесс разработки ПС при данном подходе состоит скорее из сборки программ из компонент, чем из их программирования.
В основном чаще встречается водопадный подход с некоторыми модификациями. Во-первых, потому, что в этом подходе приходится иметь дело с большинством процессов программной инженерии, а, во-вторых, потому, что в рамках этого подхода создается большинство больших программных систем. Именно этот подход рассматривается в качестве индустриального подхода разработки программного обеспечения.

Классификация методов проектирования алгоритмов и программ
В рамках указанного подхода можно использовать различные методы проектирования алгоритмов и программ. Методы проектирования алгоритмов и программ очень разнообразны, их можно классифицировать по различным признакам, важнейшими из которых являются:
• степень автоматизации проектных работ;
• принятая методология процесса разработки.
Классификация по степени автоматизации проектирования
По степени автоматизации проектирования алгоритмов и программ можно выделить:
• методы традиционного (неавтоматизированного) проектирования;
• методы автоматизированного проектирования (CASE-технология и ее элементы).
Неавтоматизированное проектирование алгоритмов и программ преимущественно используется при разработке небольших по трудоемкости и структурной сложности программных продуктов, не требующих участия большого числа разработчиков. Трудоемкость разрабатываемых программных продуктов, как правило, небольшая, а сами программные продукты имеют преимущественно прикладной характер.
Автоматизированное проектирование алгоритмов и программ возникло с необходимостью уменьшить затраты на проектные работы, сократить сроки их выполнения, создать типовые \»заготовки\» алгоритмов и программ, многократно тиражируемых для различных разработок, координации работ большого коллектива разработчиков, стандартизации алгоритмов и программ.
Автоматизация проектирования может охватывать все или отдельные этапы жизненного цикла программного продукта, при этом работы этапов могут быть изолированы друг от друга либо составлять единый комплекс, выполняемый последовательно во времени. Автоматизированное проектирование алгоритмов и программ под силу лишь крупным фирмам, специализирующимся на разработке определенного класса программных продуктов, занимающих устойчивое положение на рынке программных средств.
Классификация по методологии разработки ПС
Проектирование алгоритмов и программ может основываться на различных методологиях процесса разработки:
• структурное проектирование программных продуктов;
• информационное моделирование предметной области и связанных с ней приложений;
• объектно-ориентированное проектирование программных продуктов.
Структурное проектирование.
В основе структурного проектирования лежит последовательная декомпозиция, целенаправленное структурирование на отдельные составляющие. Начало развития структурного проектирования алгоритмов и программ падает на 60-е гг. Методы структурного проектирования представляют собой комплекс технических и организационных принципов системного проектирования.
Типичными методами структурного проектирования являются:
• нисходящее проектирование, кодирование и тестирование программ;
• модульное программирование;
• структурное проектирование (программирование) и др.
В зависимости от объекта структурирования различают:
• функционально-ориентированные методы — последовательное разложение задачи или целостной проблемы на отдельные, достаточно простые составляющие, обладающие функциональной определенностью;
• методы структурирования данных.
Для функционально-ориентированных методов в первую очередь учитываются заданные функции обработки данных, в соответствии с которыми определяется состав и логика работы (алгоритмы) отдельных компонентов программного продукта. С изменением содержания функций обработки, их состава, соответствующего им информационного входа и выхода требуется перепроектирование программного продукта.
Основной упор в структурном подходе делается на моделирование процессов обработки данных. Для методов структурирования данных осуществляется анализ, структурирование и создание моделей данных, применительно к которым устанавливается необходимый состав функций и процедур обработки. Программные продукты тесно связаны со структурой обрабатываемых данных, изменение которой отражается на логике обработки (алгоритмах) и обязательно требует перепроектирования программного продукта.
Структурный подход использует:
• диаграммы потоков данных (информационно-технологические схемы) — показывают процессы и информационные потоки между ними с учетом \»событий\», инициирующих процессы обработки;
• интегрированную структуру данных предметной области (инфологическая модель, ER- диаграммы);
• диаграммы декомпозиции — структура и декомпозиция целей, функций управления, приложений;
• структурные схемы — архитектура программного продукта в виде иерархии взаимосвязанных программных модулей с идентификацией связей между ними, детальная логика обработки данных программных модулей (блок-схемы).
Для полного представления о программном продукте необходима также текстовая информация описательного характера.
Информационное моделирование предметной области
Еще большую значимость информационные модели и структуры данных имеют для информационного моделирования предметной области, в основе которого положение об определяющей роли данных при проектировании алгоритмов и программ. Подход появился в условиях развития программных средств организации хранения и обработки данных — СУБД .
• Один из основоположников информационной инженерии — Дж. Мартин — выделяет следующие составляющие данного подхода:
• информационный анализ предметных областей (бизнес — областей);
• информационное моделирование — построение комплекса взаимосвязанных моделей данных;
• системное проектирование функций обработки данных;
• детальное конструирование процедур обработки данных.
Первоначально строятся информационные модели различных уровней представления:
• информационно-логическая модель, не зависящая от средств программной реализации хранения и обработки данных, отражающая интегрированные структуры данных предметной области;
• даталогические модели, ориентированные на среду хранения и обработки данных.
Даталогические модели имеют логический и физический уровни представления. Физический уровень соответствует организации хранения данных в памяти компьютера. Логический уровень данных применительно к СУБД реализован в виде:
• концептуальной модели базы данных — интегрированные структуры данных под управлением СУБД;
• внешних моделей данных — подмножество структур данных для реализации приложений.
Средствами структур данных моделируются функции предметной области, прослеживается взаимосвязь функций обработки, уточняется состав входной и выходной информации, логика преобразования входных структур данных в выходные. Алгоритм обработки данных можно представить как совокупность процедур преобразований структур данных в соответствии с внешними моделями данных.
Выбор средств реализации базы данных определяет вид даталогические моделей и, следовательно, алгоритмы преобразования данных. В большинстве случаев используется реляционное представление данных базы данных и соответствующие реляционные языки для программирования (манипулирования) обработки данных СУБД и реализации алгоритмов обработки. Данный подход использован во многих CASE-технологиях.
Объектно-ориентированный подход к проектированию программных продуктов
Объектно-ориентированный подход к проектированию программных продуктов основан на:
• выделении классов объектов;
• установлении характерных свойств объектов и методов их обработки;
• создании иерархии классов, наследовании свойств объектов и методов их обработки.
Каждый объект объединяет как данные, так и программу обработки этих данных и относится к определенному классу. С помощью класса один и тот же программный код можно использовать для относящихся к нему различных объектов.
Объектный подход при разработке алгоритмов и программ предполагает:
• объектно-ориентированный анализ предметной области;
• объектно-ориентированное проектирование.
Объектно-ориентированный анализ — анализ предметной области и выделение объектов, определение свойств и методов обработки объектов, установление их взаимосвязей.
Объектно-ориентированное проектирование соединяет процесс объектной декомпозиции и представления с использованием моделей данных проектируемой системы на логическом и физическом уровнях, в статике и динамике.
Для проектирования программных продуктов разработаны объектно-ориентированные технологии, которые включают в себя специализированные языки программирования и инструментальные средства разработки пользовательского интерфейса.
Традиционные подходы к разработке программных продуктов всегда подчеркивали различия между данными и процессами их обработки. Так, технологии, ориентированные на информационное моделирование, сначала специфицируют данные, а затем описывают процессы, использующие эти данные. Технологии структурного подхода ориентированы, в первую очередь, на процессы обработки данных с последующим установлением необходимых для этого данных и организации информационных потоков между связанными процессами.
Объектно-ориентированная технология разработки программных продуктов объединяет данные и процессы в логические сущности — объекты, которые имеют способность наследовать характеристики (методы и данные) одного или более объектов, обеспечивая тем самым повторное использование программного кода. Это приводит к значительному уменьшению затрат на создание программных продуктов, повышает эффективность жизненного цикла программных продуктов (сокращается длительность фазы разработки). При выполнении программы объекту посылается сообщение, которое инициирует обработку данных объекта.

Читайте также:
Как сгенерировать ключ для программы

3.2. Структурное программирование. Использование декомпозиции и абстракции при проектировании ПО.

Для начального периода развития программотехники, когда программы были штучным продуктом, характерен стиль программирования, который впоследствии получил название “хаотическое” программирование. Суть его в том, чтобы из операторов языка программирования сконструировать программу, выполняющую некоторое (заданное) преобразование данных. Ни набор операторов, ни порядок их применения никак не регламентировался. В общем случае для такого программирования, чем больше операторов в языке программирования, тем лучше.
Главный недостаток разработанного таким образом ПО – большие трудности его сопровождения. Программы, написанные без регламентации применения операторов языка программирования, имеют структуру “итальянского спагетти” из-за частого применения в таких программах оператора перехода goto. Как правило, в таких программах может разобраться только автор, они плохо пригодны для тиражирования и превращения в товар.
В конце 60-х начале 70-х годов в сфере ПО обозначились трудности, порожденные расширением области применения компьютеров. Возросшая мощность вычислительной техники и появление языков высокого уровня позволили приступить к автоматизации процессов, с которыми люди перестали справляться или к которым еще не приступали из-за их высокой вычислительной сложности. Примерами таких задач могут служить автоматизированные системы управления безопасностью полетов или управления движением по железнодорожным магистралям. Такие системы разрабатывались в течение месяцев и лет. Стоимость ПО доходила до 80% всех затрат, однако обеспечить требуемый уровень их надежности не всегда удавалось.
Знаменательной датой в истории программирования стал 1968 год. Тогда создавшееся в программировании положение обсуждалось на международной конференции, получившей название “Кризис программного обеспечения”. В этом году Чарльз Хоар и Николаус Вирт впервые указали на необходимость придания языку программирования свойств, которые превратили бы его в “инструмент надежного создания сложных программ”. Однако настоять на этом им не удалось.
Несколько позже автор структурного программирования голландский ученый Дийкстра (в некоторых источниках Дейкстра) выпустил работу под названием “заметки по структурному программированию”, в которой доказывал, что большинство программ сложны и неуправляемы из-за отсутствия в них четкой математической структуры. Интуитивному и бессознательному (“хаотическому”) программированию он последовательно противопоставлял логически строгую методологию, предполагавшую ко всему прочему личную дисциплинированность и ответственность программиста.

Читайте также:
Win 7 программа проводник перезапускается

Одним из его кардинальных предложений было признание оператора перехода goto недопустимым в программировании. Сначала это предложение смутило и удивило почти всех программистов, но затем они убедились в том, что доводы Дийкстры весьма основательны. Способствовало этому то обстоятельство, что Якопини и Ципнер доказали теорему о том, что теоретически любую программу можно написать без goto. Чтобы изложить эту историю о революции в программировании до конца, следует упомянуть, что в 1974 году на защиту оператора goto выступил американец Кнут и показал, что в некоторых случаях использование этого оператора желательно.
Цель структурного программирования – разработка программы, которой присуща определенная структура, основанная на применении принципов структурного программирования.
Перечислим эти принципы:

  1. Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход.

Это позволяет максимально упростить стыковку модулей в программе.

  1. В программах рекомендуется применять 4 типа конструкций:

а) последовательность (модулей, операторов)

Источник: www.freepapers.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru