Информационные модели. Моделирование информационных процессов. Модели разработки программного обеспечения. Методы проектирования программного обеспечения.
Информационные модели часто опираются на математические модели, так как при решении задач математическая модель объекта, процесса или явления преобразуется в информационную для ее реализации на ПК.
Информационные модели подразделяются на:
Специализированные модели – предназначены для описания конкретных систем. Являются уникальными по своим возможностям, дорогостоящими.
Универсальные модели – предназначены для использования в различных предметных областях.
Универсальные модели:
1.Базы данных – связанная совокупность структурированных данных, относящихся к определённому процессу или явлению, в конкретной предметной области
2.Система управления базами данных (СУБД) – программный комплекс для создания, обработки, хранения и передачи баз данных
3. Искусственный интеллект – система, предназначенная для решения логических задач методами машинного моделирования человеческих интеллектуальных функций
4.Автоматизированные системы управления (АСУ) – совокупность взаимосвязанных структурных моделей подсистемы, осуществляющих функции управления (планирование, учёт, контроль, анализ)
5.Базы знаний – интеллектуальные системы, оперирующие большими объёмами информации. Модели представления знаний: логические, продукционные, семантические, фреймовые.
Логические модели – предметная область описывается в виде набора аксиом. Вся информация рассматривается как совокупность правил и утверждений. Логическая модель применяется в «идеальных « системах, так как предъявляет высокие требования и ограничения к предметной области
Продукционная модель, основанная на правилах, позволяет представить знания в виде предложений: если (условие), то (действие)
Условие – это предложение, по которому происходит поиск в базе данных
Действие – это операция, выполняемая при успешно осуществлённом поиске
Семантическая модель (семантическая сеть) – ориентированный граф, вершины которого – понятия, а дуги – отношения между ними
Достоинства: большие выразительные возможности;
Наглядность; близость к фразам на естественном языке;
Недостатки: не содержит ясного представления о структуре предметной области
Фреймовые модели – обозначают структуру единицы знаний, которую можно описать некоторой совокупностью понятий для её пространственного восприятия
Во фреймах фиксируется жёсткая структура
Моделирование информационных процессов:
Любое ПО имеет свой жизненный цикл – период от начала проектирования до его модернизации или замены более современной версией
В конце 60-х гг. появился термин software engineering (инженерное проектирование программ)
Software engineering – совокупность административных и технических методов, процедур и инструментальных средств, необходимых для эффективной разработки крупных программных систем
Для инженерного подхода к проектированию ПО были предложены модели процесса его разработки. Первым и наиболее популярным можно считать каскадную модель.
Каскадная модель улучшена введением временных прототипов (прототипов интерфейса), анализ которых пользователем может дать дополнительные сведения до разработки основных программных конструкций.
Развитие моделей разработки привело к появлению спиральной модели управления рисками.
В этой модели жизненный цикл ПО не заканчивается, а продолжается его модернизацией, на что и указывает спираль.
Анализ рисков состоит в определении затрат, на исправление возможных ошибок, допущенных на первом этапе.
Для снижения рисков предлагаются дополнительные работы, например создание временных прототипов.
Методы проектирования программ, основанные на модульном принципе, делятся на три группы:
• методы нисходящего проектирования,
•методы расширения ядра
•методы восходящего проектирования.
1. Метод нисходящего проектирования
Метод нисходящего проектирования подобен методу получения детального изображения из более общего вида с помощью телескопического увеличения. На начальном шаге формируется предложение, описывающее функцию всей программы. Затем определяются ее подфункции. Эта процедура является рекурсивной, т. е., следуя ей, каждая из подфункций может расчленяться до тех пор, пока ее составные части не будут окончательно уточнены. Метод нисходящего проектирования, иногда называемый функциональной декомпозицией, основан на двух стратегиях: пошаговом уточнении и анализе сообщений. Эти стратегии отличаются способами определения начальных спецификаций, методами, используемыми при разбиении задачи на части, и правилами записи.
2. Метод расширения ядра
Метод расширения ядра отличается от способа нисходящего проектирования: в нем больше внимания вначале уделяется выявлению множества вспомогательных функций, а не определению функции всей программы в целом. Эти функции можно получить, применяя методы проектирования структур данных, которые используются при иерархическом модульном проектировании, или определяя области хранения данных с последующим анализом связанных с ними функциональных единиц.
3. Метод восходящего проектирования
При использовании метода восходящего проектирования в первую очередь определяются вспомогательные функции, которые могут потребоваться для проектируемой программы. В этом смысле рассматриваемый метод аналогичен методу модульной декомпозиции Парнаса. Модульная декомпозиция, или анализ первичных определяющих областей, заключается в нахождении ключевых модулей промежуточных уровней, которые затем разрабатываются восходящим и нисходящим способами одновременно. Эти модули не являются вспомогательными в том смысле, что потребность в них возникает в нескольких точках программы. Необходимость в использовании этих модулей может возникать в других программах или системах.