Классификация по топологической специфике методологий



Конспект лекций

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

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

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

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

Процедура— взаимосвязанная последовательность действий, например:

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

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

2.  Процедура — это любая подпрограмма, которая не является функцией.

Подпрограммы, входящие в состав классов в объектных языках программирования, обычно называются методами. Этим термином называют любые подпрограммы-члены класса, как функции, так и процедуры; когда требуется уточнение, говорят о методах-процедурах или методах-функциях.

Метод— это прием или способ действия с целью достижения желаемого результата.

 

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

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

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

 

 

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

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

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

· обеспечение создания информационных систем, отвечающих целям и задачам предприятия и соответствующих предъявляемым к ним требованиям;

· гарантия создания системы с заданными параметрами в течение заданного времени в рамках оговоренного заранее бюджета;

· простота сопровождения, модификации и расширения системы с целью обеспечения ее соответствия изменяющимся условиям работы предприятия;

· обеспечение создания информационных систем, отвечающих требованиям открытости, переносимости и масштабируемости;

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

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

Методологии создания информационных систем можно классифицировать по нескольким отличительным признакам. (Рис.1)

I. Классификация по ядрам методологий

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

Ядра методологий определяются способом описания алгоритмов. К основным ядрам методологий относят:

1. методология императивного программирования;

2. методология объектно-ориентированного программирования;

3. методология функционального программирования;

4. методология логического программирования;

5. методология программирования в ограничениях.

Рассмотрим ядра методологий подробнее.

Рисунок 1. Классификация методологий.

Ядра методологий

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

Императивное программирование - это исторически первая поддерживаемая аппаратно методология программирования. Она ориентирована на классическую фон Неймановскую модель, остававшуюся долгое время единственной аппаратной архитектурой, получившей широкой практическое применение.

Методы и концепции.

· Метод изменения состояний заключается в последовательном изменении состояний. Метод поддерживается концепцией алгоритма

· Метод управления потоком исполнения заключается в пошаговом контроле управления. Метод поддерживается концепцией потока исполнения.

2. Методология объектно-ориентированного программирования - это подход, использующий объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. На возникновение объектного мышления оказали влияние моделирование и представление данных, графические пользовательские интерфейсы и системное программирование (с понятием "процесс"). Исследования в области хеширования реальных систем привели к необходимости создания средств описания сущностей, которые в них встречаются: объектов и событий. Позже оказалось, что такие концепции, как инкапсуляция (абстрактные типы данных), наследование и полиморфизм являются достаточно полезным дополнением к традиционному структурному программированию. Возможность их достаточно эффективной реализации привела к созданию широко распространенных в наши дни объектно-ориентированных языков.

Методы и концепции.

Основные понятия

Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик.

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

Классявляется описываемой на языке терминологии (пространства имён)

исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

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

Объект - сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа (например, после запуска результатов компиляции (трансляция программы (кода) или отдельного программного модуля, составленных на языке программирования высокого уровня (исходная программа, исходный модуль) в программу или модуль на машинном языке или языке, близком к машинному (объектная программа, объектный модуль) и связывания (в разработке программного обеспечения компоновщик— программа, которая производит компоновку: принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль. исходного кода на выполнение).

Полиморфизм— это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Прототип— это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.

 

· Метод объектно-ориентированной декомпозиции заключается в выделении объектов и связей между ними. Метод поддерживается концепциями инкапсуляции, наследования и полиморфизма.

· Метод абстрактных типов данных лежит в основе инкапсуляции. Метод поддерживается концепцией абстрагирования.

· Метод пересылки сообщений заключается в описании поведения системы в терминах обмена сообщениями между объектами. Метод поддерживается концепцией сообщения.

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

Методы и концепции.

Основные понятия

Аппликативность - программа есть выражение, составленное из применения функций к аргументам.

Реку́рсия — процесс повторения чего-либо самоподобным способом

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

· Метод рекурсивного поведения заключается в самоповторяющемся поведении, возвращающемся к самому себе. Метод поддерживается концепцией рекурсии.

· Метод настраиваемости заключается в том, что можно легко порождать новые программные объекты по образцу, как значения соответствующих выражений (применение порождающей функции к параметрам образца). Этому способствует то, что не только программа, но и любой программный объект (в идеале) является выражением.

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

Методы и концепции.

· Метод единообразия заключается в одинаковом применении механизма логического доказательства ко всей программе.

· Метод унификации - это механизм сопоставления с образцом для создания и декомпозиции структур данных.

5. Методология программирования в ограничениях - это подход, при котором в программе определяется тип данных решения, предметная область решение и ограничения на значение искомого решения. Решение находится системой. Методология предлагает двухуровневую архитектуру, интегрирующую компонент ограничения и программный компонент. Компонент ограничений обеспечивает основные операции и состоит из системы выводов на фундаментальных свойствах системы ограничений. Операции, окружающие компонент ограничений, реализуются программно-языковым компонентом. Методология возникла в начале 80-х годов XX века как перспективная область исследований на стыке символьных вычислений, искусственного интеллекта, исследования операций и интервальной арифметики.

Методы и концепции.

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

Классификация по топологической специфике методологий

Топологическая специфика (топология) методологий определяется как способ выбора методов для получения уточненного ядра методологии.

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

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

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

Данная методология является важнейшим развитием императивной методологии. Создателем структурного подхода считается Эдсгер Дейкстра. Ему также принадлежит попытка соединить структурное программирование с методами доказательства программ.

Методы и концепции.

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

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

· Метод структурного кодирования заключается в использовании при кодировании трех основных управляющих конструкций. Метод поддерживается концепцией управления.


Дата добавления: 2018-02-15; просмотров: 1365; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!