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

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 28.05.2017
Размер файла 15,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Данная работа посвящена проблеме снижения трудоемкости поддержания жизненного цикла программного обеспечения информационных систем (ПО ИС). Решая эту проблему, мы исходили из необходимости создания инструмента, позволяющего сократить затраты на всех этапах жизненного цикла, вне зависимости от принятой модели. Подобные инструменты, поддерживающие общий подход, уже хорошо известны. Наиболее серьезный набор инструментов на данный момент представлен в линейке продуктов IBM Rational. Среди них IBM Rational Software Architect и IBM Webshere Application Server, которые позволяют из результатов проектирования автоматически генерировать программный код.

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

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

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

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

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

Объекты. ссылка информационный программный кодирование

Важнейшим понятием в N-модели является объект. Будем считать объектом то, что может быть обособлено в нашем сознании от прочего внешнего мира. Это может быть какой-либо конкретный предмет, или процесс, или состояние чего-либо, или абстрактное понятие. Каждому объекту соответствует некое представление о нем. Представления об одних и тех же объектах у нас могут отличаться, но, в принципе, мы почти всегда можем договориться об одном и том же объекте идет речь, или о разных. То есть, большинство объектов мы идентифицируем одинаково, хотя можем представлять их по-разному.

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

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

Итак, имеется счетное множество образов E={e1,e2,…,en}. Объектное пространство X={x1,x2,…,xm} состоит из объектов, каждый из которых представляет собой некоторое множество образов: X * B(E).

Отношение нестрогого включения * образует на множестве объектов решетку, верхняя грань которой - абстрактный объект x0=Е, трактуемый как все, что угодно, а нижняя - пустое множество x (ничего). Можно сказать, что отношение * образует понятийную иерархию объектов. На самом ее верху находятся концептуальные объекты, далее - абстрактные объекты, соответствующие множествам конкретных предметов или процессов, ниже находятся конкретные объекты, и в самом низу - объекты, описывающие состояния предметов или процессов.

Экстенсионалом объекта будем называть множество объектов, каждый из которых является неким его подмножеством. Иначе говоря, экстенсионал объекта состоит из него самого и объектов, которые его конкретизируют. Через Exti будем обозначать экстенсионал произвольного объекта xi (с тем же индексом):

Exti = {x / x*xi} (1).

Интенсионалом объекта будем называть множество объектов, для которых он является подмножеством:

Inti = {x / xi*x} (2).

Свойства объектов.

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

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

f(x) = ,

где {e0,e1,…,en}=x, (3).

Множество P - это в общем случае некоторое пространство значений. Для простоты P можно ограничить счетным множеством натуральных чисел, которые затем могут интерпретироваться в любой доступной форме: как вещественные числа, литералы, изображения и т.д. При этом выделим число, которое будем интерпретировать как неопределенность (null). Поскольку множество образов счетно и, следовательно, счетно множество объектов Х, последнее из этих множеств можно проиндексировать натуральными числами. Это означает, что элементы P могут интерпретироваться еще и как идентификаторы объектов.

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

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

И множественные и ординарные атрибуты могут интерпретироваться как ссылки на другие объекты.

Таким образом, можно предложить следующую интерпретацию значений атрибутов: если атрибут определен на терминальном объекте значением s* B(P), то все объекты в его экстенсионале имеют значение этого атрибута равное s. Если же атрибут на нетерминальном объекте имеет значение s, то можно лишь говорить, что каждый объект в его экстенсионале имеет значение этого атрибута равное некоторому подмножеству s. Плюс к тому можно сказать, что объединение этих значений дает s.

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

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

Еще одной важной функцией является ID: X?N, которая индексирует множество объектов натуральными числами, или, иначе говоря, идентифицирует объекты. Обратную ей функцию, определяющую объект по его идентификатору, обозначим Obj: N?X. Причем, Obj(ID(x))=x, ID(Obj(n))=n.

Исходные атрибуты.

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

Задание значения исходного атрибута на объекте означает, что для всех объектов в его экстенсионале значение этого атрибута будет таким же. Например, если мы говорим, что у какой-то модели монитора диагональ составляет 19 дюймов, то у всех конкретных мониторов данной модели диагональ так же будет 19 дюймов. Таким образом, объекты, на которых задаются значения исходных атрибутов, терминальны относительно этих атрибутов.

Также можно задавать атрибуты аналитическими выражениями (формулами). Такие атрибуты будем называть расчетными.

Экземпляры и классы

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

Правила определения атрибутов.

Для удобства будем считать константы исходными атрибутами, терминальными на абстрактном объекте x0. Тогда правильное задание атрибута определим рекурсивно:

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

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

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

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

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

Агрегатные операции характеризуются тем, что производятся над всеми элементами значения атрибута и, в независимости от их числа, результат будет ординарным. К числу таких операций относятся: подсчет количества (Count) или суммы (Sum) значений, а также определение среднего (Avg), максимального (Max) или минимального (Min) значения:

h(x)=Count( f(x)) =| f(x)|,

h(x)=Sum( f(x)) =, где {q1,q2,…,qn}= f(x),

h(x)=Avg( f(x)) = Sum( f(x)) / Count( f(x)),

h(x)=Max( f(x)) = sup f(x),

h(x)=Min( f(x)) = inf f(x).

Композиция - это специальная операция, которая позволяет получить значения атрибута по ссылке. Обозначим ее символом «.». Аргументы композиции - атрибут, который содержит идентификаторы объектов, (ссылка) и имя атрибута, информативного на этих объектах:

h(x)=f(x).g, h(x) = ,

где xi=Obj(qi), qi f(x).

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

Другая специальная операция - инволюция. Она позволяет определить для терминального объекта, какие объекты из заданного множества ссылаются на него через определенный атрибут-ссылку. В инволюции два аргумента: первый аргумент - некоторое множество объектов, а второй - атрибут-ссылка.

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

Категории.

Под категорией понимается концепт-объект, представляющий собой объединение экземпляров класса, на которых истинно некоторое логическое условие L. Простое условие будем обозначать символом H, возможно, с индексом. Оно имеет вид f1 comp-op f2, где f1 и f2 - атрибуты (в т.ч. f2 может быть константой), а comp-op - операция сравнения (=, !=, >, <, <=, >=). Простые условия могут быть соединены связками AND, OR и NOT, образуя произвольное условие L.

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

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

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.