Методы, технология и инструментальные средства при структурном подходе

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

Спецификации программного обеспечения при структурном подходе

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

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

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

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

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

Проектирование программного обеспечения при структурном подходе

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

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

В любом случае проектирование программного обеспечения начинают с определения его структуры.

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Рис. 6. 1. Пример структурной схемы программного комплекса

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

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

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

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

18. Особенности объектно-ориентированного подхода

программирования.

Принципы объектно-ориентированного подхода: "разделяй и властвуй" (разбиение сложных проблем на множество лёгких для понимания задач) и иерархическое упорядочение (организация составных частей системы в древовидные структуры с добавлением новых деталей на каждом уровне) – сохраняются так же и при структурном подходе. Однако при этом подходе анализируются не объекты и их взаимодействие, а алгоритмы выполняемых системой функций и отношения между данными при выполнении этих функций.

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

Методы, технология и инструментальные средства при структурном подходе - student2.ru

ООП: подход к организации программы. Объектно-ориентированное программирование никак не связано с процессом выполнения программы, а является лишь способом ее организации. Большая часть операторов C++ идентична операторам процедурных языков, в частности языка С. Внешне метод класса в C++ очень похож на обычную функцию языка C, и только по контексту программы можно определить, является ли функция частью процедурной С-программы или объектно-ориентированной программы на C++.

При объектно-ориентированном подходе программа представляет собой описание объектов, их свойств (или атрибутов ), совокупностей (или классов ), отношений между ними, способов их взаимодействия и операций над объектами (или методов ).

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

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

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

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

Зачастую в практических и учебных курсах по программированию слушатели не имеют четкого математического основания для формирования достаточно полного и ясного представления об основах ООП. Преимущество предлагаемого курса заключается в том, что уже изученные в первой части курса разделы computer science (например, ламбда-исчисление и комбинаторная логика) позволяют сформировать глубокое и точное понимание фундаментальных понятий объектно-ориентированного программирования. В частности, понятие абстракции – основной операции ламбда-исчисления – для нас является уже хорошо знакомым.

Поясним качественно фундаментальные принципы ООП. Наследование конкретных атрибутов объектов и функций оперированияобъектами основано на иерархии. Инкапсуляция означает "сокрытие" свойств и методов внутри объекта . Полиморфизм, как и в функциональном программировании, понимается как наличие функций с возможностью обработки данных переменного типа.

19. Реляционные базы данных и средства работы с ними. (лекции Москаленко)

Распределенная база данных (РБД) – это набор логически связанных между собой разделяемых данных, которые физически распределены по разных узлам компьютерной сети.

СУРБД – это программный комплекс (СУБД), предназначенный для управления РБД и позволяющий сделать распределенность прозрачной для конечного пользователя. Прозрачность РБД заключается в том, что с точки зрения конечного пользователя она должна вести себя точно также, как централизованная.

Логически единая БД разделяется на фрагменты, каждый из которых хранится на одном компьютере, а все компьютеры соединены линиями связи. Каждый из этих фрагментов работает под управлением своей СУБД.

v В основе распределенных баз данных лежат две основные идеи:

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

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

ü Впервые задача об исследовании принципов построения и функционирования распределенных баз данных была поставлена К.Дейтом в рамках системы System R. Большую роль в исследовании принципов создания и функционирования распределенных баз данных внесли также и разработчики системы Ingres.

Крис Дейт сформулировал основные принципы создания и функционирования распределенных баз данных.

Ø Локальная автономность. Локальные данные принадлежат локальным узлам и управляются администраторами локальных БД.

Локальные процессы в РБД остаются локальными.

Все процессы на локальном узле контролируются только этим узлом.

Ø Отсутствие опоры на центральный узел.

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

Ø Непрерывное функционирование.

Удаление или добавление узла не должно требовать остановки системы в целом.

Ø Независимость от местоположения.

Пользователь должен получать доступ к любым данным в системе, независимо от того, являются эти данные локальными или удалёнными.

Ø Независимость от фрагментации.

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

Ø Независимость от репликации.

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

Ø Обработка распределенных запросов.

Система должна автоматически определять методы выполнения соединения (объединения) данных.

Ø Обработка распределенных транзакций.

Протокол обработки распределённой транзакции должен обеспечивать выполнение четырёх основных свойств транзакции:

ü атомарность;

ü согласованность;

ü изолированность;

ü продолжительность.

Существуют различные методы поддержки распределенности:

  1. Фрагментация – разбиение БД или таблицы на несколько частей и хранение этих частей на разных узлах РБД.
  2. Репликация – создание и хранение копий одних и тех же данных на разных узлах РБД.
  3. Распределенные ограничения целостности – ограничения, для проверки выполнения которых требуется обращение к другому узлу РБД.
  4. Распределенные запросы – это запросы на чтение, обращающиеся более чем к одному узлу РБД.
  5. Распределенные транзакции – команды на изменение данных, обращающиеся более чем к одному узлу РБД.

20. Основные понятия баз данных: архитектура, модели, таблицы,

ключи и индексы.

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

Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путём последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева.

Некоторые СУБД расширяют возможности индексов введением возможности создания индексов по столбцам представлений[1] или индексов по выражениям.[2]Например, индекс может быть создан по выражению upper(last_name) и соответственно будет хранить ссылки, ключом к которым будет значение поля last_name в верхнем регистре. Кроме того, индексы могут быть объявлены как уникальные и как не уникальные. Уникальный индекс реализует ограничение целостности на таблице, исключая возможность вставки повторяющихся значений.

Под архитектурой (структурой) базы данных конкретной СУБД будем понимать основные модели представления данных, используемые в соответствующей СУБД а также взаимосвязи между этими моделями.

В соответствии с рассмотренными в "Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Краткий обзор СУБД" различными уровнями описания данных различают разные уровни абстракции архитектуры базы данных.

Логический уровень (уровень модели данных СУБД) - средство представления концептуальной модели. Здесь каждая СУБД имеет некоторые отличия, но они являются не очень значительными. Отметим, что у разных СУБД существенно отличаются механизмыперехода от логического к физическому уровню представления.

Физический уровень (внутреннее представление данных в памяти ЭВМ - физическая структура базы данных). Данный уровень рассмотрения подразумевает изучение базы данных на уровне файлов, хранящихся на жестком диске. Структура этих файлов – особенность каждой конкретной СУБД, в т.ч. и Microsoft SQL Server.

Методы, технология и инструментальные средства при структурном подходе - student2.ru Рис. 10.1.Архитектура базы данных в Microsoft SQL Server 2008

Таблицы и типы данных

Таблицы содержат данные о всех сущностях концептуальной модели базы данных. При описании каждого столбца (поля) пользователь должен определить тип соответствующих данных. Microsoft SQL Server 2008 поддерживает как уже ставшие традиционными типы данных (символьная строка с разным представлением, число с плавающей точкой длиной 8 или 4 байта, целое число длины 2 или 4 байта, дата и время, поле примечаний, булево значение и т. д.), так и новые типы данных. Кроме этогоMicrosoft SQL Server 2008 предоставляет специальный аппарат для создания пользовательских типов данных.

Ключи

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

Кроме таблиц, в модель данных Microsoft SQL Server 2008 входит еще целый ряд компонентов. Дадим краткую характеристику основным из них.

21. Средства для работы с базами данных, компоненты BDE и

ADO-технологии.

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

22. Процедуры и функции, реализующие диалоговые окна,

стандартные диалоговые окна, шаблоны форм.

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

23. Простые, структурные и процедурные типы данных.

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

24. Создание пользовательского интерфейса и определение

функциональности приложения

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Методы, технология и инструментальные средства при структурном подходе - student2.ru

Наши рекомендации