ЛЕКЦИЯ 1. Обзор Курса

1.1 Содержание Курса

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

Сегодня программное обеспечение разрабатывается с помощью типовых технологий. Они называются методологиями программирования или просто методами программирования. С точки зрения задач, решаемых в нашем Курсе, наибольший интерес представляет метод объектно-ориентированного программирования (ООП), по английски object-oriented programming (ООР). С его помощью создаются программы, написанные на объектно-ориентированных языках программирования, таких как С++, Java и др.

Программное обеспечение - это важная, но не единственная часть проектируемой компьютерной информационной системы. Другой ее частью является предметная область. Поэтому для разработки информационных систем, наряду с методом ООП, используются также метод объектно-ориентированного проектирования (object-oriented design, OOD) и метод объектно-ориентированного анализа (object-oriented analysis, OOA). С помощью методов ООА и ООD моделируются предметные области информационных систем, которые у нас в России , иногда, называют объектами автоматизации. Примером объекта автоматизации может служить, например, Система регистрации учебных курсов, которая будет рассмотрена в Лекции 4.

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

По определению одного из создателей языка UML (Unified Modelling Language) Гради Буча:

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

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

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

Как соотносятся ООА, ООD и ООП? На результатах ООА формируются модели, на которых основывается ООD. В свою очередь OOD создает фундамент для окончательной реализации компьютерной системы с использованием методологии ООП.

Следует сказать, что в нашей стране иногда применяется интегральное понятие - метод объектно-ориентированного анализа и проектирования (ООАП), объединяющий методы ООА и ООD. Например, термин ООАП используется в книге А. Леоненкова "Самоучитель UML".

Методы ООП и ООАП базируются на стандартном языке визуального моделирования UML. Он будет кратко рассмотрен в Лекции 3. Применение методов ООП/ООАП и языка UML иллюстрируется в Лекции 5 на примере автоматизированной системы регистрации учебных курсов.

Традиционные информационные системы, сегодня, опираются на архитектуру клиент-сервер. В нашем Курсе мы будем иметь дело не только с традиционными информационными системами, но также с веб-информационными системами. Кратко они называются веб-системами. Понятие веб-система появилось в конце 90-х годов. Веб-системы - это информационные системы, работающие на основе Интернет и Всемирной паутины (WWW). Интернет и Всемирную паутину мы будем обозначать Интернет/Веб. Примерами веб-систем являются открытые электронные правительства (е-правительства), торговые веб-системы, банковские веб-системы и многие другие системы, работающие на основе Интернет/Веб. Сегодня во всем мире происходит бурное развитие веб-систем, в том числе е-правительств.

Наряду с веб-системами мы будем изучать веб-документы и веб-книги. Веб-документы проще, чем веб-системы. Примерами веб-документов являются веб-страницы и другие документы, размеченные HTML и XML тегами и распространяемые по Интернет/Веб. Веб-документы бывают автономными или они входят в веб-системы как составные части. Примерами веб-книг являются учебные веб-курсы. Веб-системы, веб-документы и веб-книги появились после того как возникла Всемирная паутина.

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

В нашем курсе лекций мы построим наглядные и математические модели веб-систем и веб-курсов. Модели веб-курсов будут применены к моделированию и разработке веб-курса наших лекций. Во втором семестре этого учебного года вы разработаете в Курсовом проекте веб-курс с названием - "Создание веб-курса: Модели методов разработки mпрограммного обеспечения информационных систем". Этот веб-курс будет представлять собой 12 лекции первого семестра, размеченные тегами HTML, которые можно читать на экранах ваших домашних компьютеров с помощью браузера Мicrosoft Explorer . Очевидно, что наш веб-курс может быть помещен на сайте кафедры МОВС.

Курс состоит из 12 лекций. Первая лекция обзорная, остальные 11 лекций разделены на три части.

Первая часть Курса (лекции 2,3,4,5) посвящена технологиям программирования, методам ООП, ООАП и языку UML. Следует отметить, что в течение последнего десятилетия в области технологий программирования произошли существенные изменения. Они обусловлены появлением:

  1. Объектно-ориентированных языков программирования (С++, Java и др.).
  2. Метода объектно-ориентированного программирования.
  3. Метода объектно-ориентированного анализа и проектирования
  4. Языка UML, позволяющего моделировать и документировать предметные области информационных систем и коды объектно-ориентированных программ.
  5. Инструментальных компьютерных программ, помогающих создавать UML диаграммы. Одной из таких инструментальных программ является пакет Rational Rose 2000 фирмы Rational Software Corporation.

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

В Лекции 2 рассказана история развития технологий программирования, методов ООА и ООD, а также языка UML. Исторический экскурс позволит нам увидеть современное состояние технологий программирования на фоне прошлого и задуматься о перспективах их дальнейшего развития.

Лекция 3 посвящена языку UML. К сожалению, в рамках одного семестра невозможно рассказать о всех деталях языка UML. Поэтому в нашем Курсе он рассмотрен очень кратко.

Практическое использование языка UML рассматривается в Курсе на примере его применения к системе регистрации учебных курсов. В этой связи в Лекции 4 изложена сущность американской автоматизированной системы регистрации учебных курсов для университетов. При этом американская система регистрации платных учебных курсов сопоставляется с системой регистрации бесплатных курсов, действующей в МИРЭА.

В Лекции 5 приведен пример конкретного применения языка UML к описанию и проектированию американской системы регистрации учебных курсов университета Истерн.

Вторая часть Курса (лекции 6,7,8,9,10) посвящена теории графов, семантическим графовым сетям и новому виду семантических сетей, которые называются паттерновыми (модульными) сетями.

Теория графов рассматривается в нашем Курсе в связи с тем, что графовые сети служат основой построения визуальных моделей языка UML и методов ООП и ООАП. Графовые сети хорошо подходят для моделирования и разработки традиционных информационных систем и их программного обеспечения, но они оказываются мало эффективными, когда надо решать задачи моделирования и разработки веб-систем, веб-документов и веб-курсов. В этой связи в наших лекциях построены паттерновые (модульные) сети, которые позволяют моделировать и проектировать веб-системы и веб-курсы.

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

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

Лекции 7,8,9 дают представление о паттерновых сетях, позволяющих формально и в виде наглядных схем описывать открытые информационные mсистемы, состоящие из модулей с попарно соединенными выходами и входами. Паттерновые сети это новый вид семантических сетей, которые обладают модульными свойствами. В Курсе лекций они использованы для моделирования и проектирования веб-курсов.

В Лекции 10 рассматриваются области применения паттерновых сетей и приводятся примеры их использования для моделирования и проектирования веб-курсов и большой территориальной веб-системы, называемой Консолидированный бюджет Российской Федерации.

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

Третья часть нашего Курса (лекции 11,12) посвящена моделированию и проектированию веб-курса "Модели методов разработки программного обеспечения информационных систем". В Лекциях 11,12 будут затронуты также проблемы классификации и стандартизации веб-курсов. Материалы двух последних лекций понадобятся вам для выполнения курсового проекта.

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

1.2 Оглавление Курса
   ЛЕКЦИЯ 1. Обзор Курса лекций
ЧАСТЬ 1. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ, МЕТОДЫ ООА/ООD, ЯЗЫК UML
   ЛЕКЦИЯ 2. История технологий программирования, методов ООА/ООD и языка UML
   ЛЕКЦИЯ 3. Язык UML
   ЛЕКЦИЯ 4. Системы регистрации учебных курсов
   ЛЕКЦИЯ 5. Пример применения языка UML
ЧАСТЬ 2. ГРАФОВЫЕ И ПАТТЕРНОВЫЕ СЕТИ
   ЛЕКЦИЯ 6. Теория графов и графовые сети
   ЛЕКЦИЯ 7. Теория паттернов и паттерновые сети
   ЛЕКЦИЯ 8. Образующие
   ЛЕКЦИЯ 9. Паттерновые сети
   ЛЕКЦИЯ 10. Применение паттерновых сетей
ЧАСТЬ 3. ВЕБ-КУРСЫ
   ЛЕКЦИЯ 11. Наш веб-курс
   ЛЕКЦИЯ 12. Классификация и стандартизация веб-курсов
ВОПРОСЫ К ЭКЗАМЕНУ

Во втором семестре учебного года вы выполните курсовой проект с названием "Создание Веб-курса: Модели методов разработки программного обеспечения информационных систем". Приведенное выше Оглавление Курса лекций станет первым кадром веб-курса, который вы создадите в курсовом проекте.
Hosted by uCoz