Автор работы: Пользователь скрыл имя, 09 Апреля 2012 в 10:10, курсовая работа
Целью настоящей курсовой работы, является рассмотрение функционально-ориентированных и объектно-ориентированных подходов, их основных характеристик, выявление преимуществ и недостатков, а так же основных свойств. Для этого необходимо:
1. Изучить теоретические основы и методы проектирования информационных систем;
2. Проанализировать функционально-ориентированные и объектно-ориентированные подходы.
Введение…………………………………………………………………….....3
Глава 1. Теоретические основы проектирования информационных систем.................................................................................................................................5
1.1 Понятие проектирования информационных систем …………………...5
1.2 Методы проектирования информационных систем……………….……9
Глава 2. Анализ ориентированных подходов к проектированию…...…...14
2.1 Функционально-ориентированный подход……………………………14
2.2 Объектно-ориентированный подход…………………………………...19
Заключение…………………………………………………………………...27
Список литературы…………………………………………………………..29
Инструментальные средства проектирования – это такие средства, которые используются в процессе проектирования для повышения производительности труда проектировщиков на том или ином этапе создания проекта, такие средства ориентированы непосредственно на процесс проектирования систем, а не на получение проектных решений создаваемой системы.
Объектные средства проектирования – программно-алгоритмический аппарат, сокращающий трудоёмкость проектных работ, но главное, результатом их применения должны являться проектные решения создаваемой системы.
Все методы проектирования на первом уровне можно разделить на три класса. В качестве классификационного признака используется степень автоматизации проектных работ (рис. 1).
Рис. 1. Методы проектирования
1. Оригинальное (индивидуальное) проектирование.
2. Типовое проектирование, которое в свою очередь на втором уровне подразделяется на три подкласса в зависимости от декомпозиции системы:
элементное проектирование – использование типовых проектных решений (декомпозиция ЭИС до уровня задачи);
подсистемное проектирование – использование пакетов прикладных программ (декомпозиция ЭИС производится до уровня подсистемы);
объектное проектирование – применение типовых проектов ЭИС (система рассматривается в целом).
3. Автоматизированное проектирование подразделяется на два подкласса:
модельное проектирование;
проектирование с помощью Case технологий.
Оригинальное проектирование является традиционным. В своё время разработки шли только этим методом. Он характеризуется тем, что все виды проектных работ при его использовании ориентированы на создание индивидуальных проектных решений. В состав инструментальных средств могут входить стандартные процедуры, реализующие типовые процессы обработки данных. Основное достоинство этого метода - детализированная проработка задач и отражение всех особенностей соответствующего объекта управления. Этот метод имеет ряд недостатков: сравнительно высокую трудоёмкость и большие сроки проектирования.
Методы типового проектирования предполагают разбиение создаваемой системы на множество составляющих компонентов и создание для каждого из них законченного проектного решения. В зависимости от уровня декомпозиции системы на составляющие компоненты различают элементный, подсистемный и объектный (системный) методы проектирования.
Сущность элементного проектирования заключается в том, что декомпозиция системы осуществляется на уровне задач и отдельных проектных решений по информационному, техническому, программному и математическому видам обеспечений. Для каждого такого элемента создаются типовые проектные решения (ТПР). ТПР – это какая-то определённая задача или решение по созданию комплекса технических средств, которые можно использовать при создании других систем. В своё время ТПР делились на 3 типа:
ТПР – задача. Включает постановку задачи и соответствующие программы её решения;
ТПР – техника. Содержит решения по выбору, комплектации и установке технических средств при создании ЭИС.;
ТПР – персонал. Включает методические материалы по работе персонала при функционировании системы.
Положительные качества применения ТПР:
модульный принцип построения;
упрощение документирования по сравнению с оригинальным проектированием;
наличие и возможность использования готовых программных модулей.
Отрицательным качеством метода элементного проектирования является отсутствие системности в проработке информационного и программного обеспечения комплексов задач или системы в целом. Остается довольно высокая трудоемкость создания системы в целом.
Сущность подсистемного проектирования заключается в том, что декомпозиция системы осуществляется на уровне подсистем, которые и выступают в качестве типизируемого элемента. Наиболее часто используемыми средствами подсистемного метода проектирования являются пакеты прикладных программ (ППП). При создании системы конкретного объекта применяются несколько ППП, объединенных в некоторую систему.
Достоинства подсистемного метода:
уменьшение трудоёмкости;
применение системности для информационной взаимоувязки комплекса задач или подсистемы в целом;
модульное построение средств проектирования;
возможность автоматизации подготовки документов проекта;
более высокая функциональная надежность по сравнению с элементным методом;
более длинный жизненный цикл проекта
Недостатки метода:
отсутствие информационной взаимоувязки между подсистемами и комплексами задач;
реорганизация структурных подразделений при внедрении конкретного ППП.
При использовании метода объектного проектирования в качестве типизируемого элемента выступает объект или система в целом т.е. создается типовой проект системы для обобщенного из некоторого класса объектов управления. При создании системы для любого объекта из рассматриваемого класса используется соответствующий типовой проект.
Достоинства этого метода:
практически не надо разрабатывать систему, а сделать параметрическую настройку системы на конкретный проект;
уменьшение трудоёмкости проектирования;
обеспечение защиты информации;
функциональная надежность системы.
Недостатки метода:
большие затраты;
некоторые объекты управления требуют полной реорганизации для того, чтобы система была внедрена;
требуются специалисты высокой квалификации для работы в этой системе.
В основе модельного автоматизированного проектирования лежит глобальное описание модели объекта управления, которая поддерживается в актуальном состоянии начиная, от технического проекта и заканчивая функционированием системы.
Case технологии – инструментальные средства, в которых хорошо используются графические методы.
Достоинства автоматизированного проектирования:
ускоряется процесс проектирования;
обеспечивается хорошая функциональная надёжность системы;
обеспечивается адаптивная надёжность ЭИС;
обеспечивается автоматизация получения документов проекта;
обеспечивается защита информации.
Недостатки:
затраты на подготовку специалистов для работы в этой системе;
высокая стоимость проекта.
Глава 2. Анализ ориентированных подходов к проектированию
2.1 Функционально-ориентированный подход
Время появления теоретических работ, которые обосновывают функциональный подход, относится к 20-м – 30-м годам XX столетия. Теория часто значительно опережает практику программирования, и важнейшие работы, которые сформировали математическую основу подхода, были созданы задолго до появления компьютеров и языков программирования, которые потенциально могли бы реализовать эту теорию.
Что касается первой реализации, она появилась в 50-х годах XX столетия в форме языка LISP.
Важнейшей характеристикой функционального подхода является то обстоятельство, что всякая программа, разработанная на языке функционального программирования, может рассматриваться как функция, аргументы которой, также являются функциями.
Идеи, апробированные в области функционального программирования (параметрический полиморфизм и вывод типов), оказывают сильное влияние на разработку языков, подобно тому, как объектно-ориентированная модель коренным образом изменила облик программирования, спустя почти пятнадцать лет после своего появления. Овладевать этими идеями нужно уже сегодня. Программное обеспечение постоянно усложняется, повышается и необходимость в улучшении его структуры. Хорошо структурированное программное обеспечение проще пишется и легче отлаживается, оно предоставляет набор многократно используемых модулей, уменьшает затраты на программирование в будущем.
Традиционные языки программирования имеют концептуальные ограничения на организацию модульной структуры. Функциональные языки снимают эти ограничения. Функциональный подход к программированию основывается на той идее, что вся обработка информации и получение искомого результата могут быть представлены в виде вложенных или рекурсивных вызовов функций, выполняющих некоторые действия, так что значения одной функции используется как аргумент другой. Значение этой функции становится аргументом следующей и так далее, пока не будет получен результат - решение задачи. Программы строятся из логически расчлененных определений функций. Определения состоят из управляющих структур, организующих вычисления, и из вложенных вызовов функций.
Функциональные программы не содержат операторов присваивания, а переменные, получив однажды значение, никогда не изменяются. Более того, функциональные программы вообще не имеют побочных эффектов.
Обращение к функции не вызывает иного эффекта кроме вычисления результата. Это устраняет главный источник ошибок и делает порядок выполнения функций несущественным: так как побочные эффекты не могут изменять значение выражения, оно может быть вычислено в любое время. Программист освобождается от бремени описания потока управления. Поскольку выражения могут быть вычислены в любое время, можно свободно заменять переменные их значениями и наоборот. Эта прозрачность ссылок делает функциональные программы более удобными для математической обработки, по сравнению с общепринятыми аналогами.
Функциональное программирование акцентируется на том, что должно быть вычислено, а не как. Все эти характеристики приводят к более быстрой разработке короткого, простого и безошибочного кода, процесс доказательства формальных свойств для функциональных языков и программ много проще, чем для императивных.
Наиболее известными языками функционального программирования являются:
XQuery;
Scala;
Haskell — чистый функциональный. Назван в честь Хаскелла Карри;
LISP;
Miranda (Дэвид Тёрнер, 1985, который впоследствии дал развитие языку Haskell);
Erlang — (Joe Armstrong, 1986) функциональный язык с поддержкой процессов;
Nemerle — гибридный функционально-императивный язык;
F# — функциональный язык для платформы NET.
Математические основания функционального подхода
Истоки математических основ функционального подхода к программированию следует искать в ранних работах М. Шенфинкеля, которые, нужно отметить, малоизвестны, т.к. довольно далеки по времени от работ, непосредственно связанных с функциональным подходом.
Не вызывает сомнений тот факт, что разработанная А. Черчем теория конечных последовательностей в форме исчисления ламбда-конверсий (или, короче, ламбда-исчисления), положила начало математическому исчислению, формализующему понятие функции. Дальнейшее развитие функциональный подход получает в работах, посвященных типизированному ламбда-исчислению, согласно которым аргументам функций и самим функциям можно назначать (или, иначе, приписывать) тот или иной тип. Типизация существенно увеличивает вычислительную стройность и значимость любой математической формализации, и, естественно, без нее немыслимы современные языки программирования.
Теорию и практику программирования существенно обогатило моделирование среды вычислений в форме абстрактной машины, построенной на основе категориальной комбинаторной логики, созданной Х. Карри (Haskell B. Curry), в честь которого, и назван язык Haskell.
Наконец, теория решеток Д. Скотта (Dana S. Scott) стала основой для моделирования вычисления значения функции (или семантики) языка программирования.
Преимущества функционального подхода
Важным преимуществом реализации языков функционального программирования является автоматизированное динамическое распределение памяти компьютера для хранения данных. При этом программист избавляется от необходимости контролировать данные, а при необходимости может запустить функцию очистки памяти от тех данных, которые больше не потребуются программе.
Сложные программы при функциональном подходе строятся посредством агрегирования функций. При этом текст программы представляет собой функцию, некоторые аргументы которой можно также рассматривать как функции. Таким образом, повторное использование кода сводится к вызову ранее описанной функции, структура которой, в отличие от процедуры императивного языка, прозрачна математически.
Информация о работе Функционально-ориентированные и предметно-ориентированные подходы