Referat.me

Название: CASE-мышление: вы готовы программировать иначе?

Вид работы: доклад

Рубрика: Информатика и программирование

Размер файла: 15.74 Kb

Скачать файл: referat.me-137453.docx

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

CASE-мышление: вы готовы программировать иначе?

С.Трофимов

Фраза, вынесенная в заголовок, создана по аналогии с “объектно-ориентированным мышлением”. Для того чтобы создавать объектно-ориентированные программы, необходимо отказаться от традиционного процедурного мышления и начать мыслить при помощи объектов [1]. То же справедливо и для CASE-средств. Для того чтобы начать создавать программные системы при помощи современных технологий, необходимо иначе взглянуть не только на процесс проектирования, но и на программирование.

Трудности внедрения CASE-технологий при создании проектов общеизвестны [2], и проектировщики систем должны быть готовы к их преодолению. Но я хочу представить эти проблемы с точки зрения программиста, который прочно обосновался в своем мире программного кода и не мыслит других возможностей для написания программ, как “строчка к строчке”, когда классы создаются последовательным наполнением методов и атрибутов.

Необходимость использования CASE-технологий непосредственно разработчиками программ менее очевидна чем для проектировщика системы [3], причем в [2] мы читаем, что “моделирование сложных программных систем с помощью CASE-средств является самостоятельным и самодостаточным видом деятельности в процессе создания ПО”, что может изначально получить негативную оценку у программистов. Мол, я пишу программы, а создавать модели – это ваши трудности.

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

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

Для того чтобы перейти к создании и сопровождению кода при помощи CASE-средства, поддерживающего язык UML, такого, например, как Rational Rose, программист должен перестроить свое представление о создании программ. Необходимо мыслить уже в терминах языка UML, мыслить диаграммами, а переход к такому типу мышления требует примерно такого же усилия, как переход от процедурного программирования к объектно-ориентированному.

Будет заблуждением считать, что изучив возможности редактора UML (если абстрагироваться от дополнительных функций, то таковым можно представить Rational Rose), вы начнете сразу создавать программные системы. Как утверждается в [1], диаграммы не появляются сами по себе, они – результат объектно-ориентированного проектирования, т.е. именно мышления, причем в терминах CASE-средства.

Здесь переплетаются две совершенно разные задачи:

1.Изучение языка UML и развитие CASE-мышления.

2.Изучение возможностей конкретного CASE-средства, для того чтобы легко воплотить свои мысли в программном проекте. Для первого я бы рекомендовал книги [1,4], а для второго можно воспользоваться, например [5].

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

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

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

Применяя CASE-мышление, программист уже сделает свои программы лучше, ведь многие программисты не знают ни способа создания хорошей, ни признаков неудачной программной архитектуры [6], а представление программных объектов в диаграммах UML позволяет наглядно увидеть ошибки и недоработки в полученной иерархии, обсудить их с коллегами и, что самое приятное, легко этой иерархией манипулировать, что при ручном кодировании программист вряд ли может себе позволить.

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

Список литературы

Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Пер с англ.–М.: “Издательство Бином”, СПб.: “Невский диалект”, 1999 г. –560 с., ил.

Вендров А. Ниша и внедрение CASE-средств. “Директору ИС”, ноябрь 2000. (http://www.interface.ru/CASE/botcase.htm)

Новичков А. Rational Rose для разработчиков и ради разработчиков. (http://www.interface.ru/rational/rose/develop.htm)

Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. – М.:Мир, 1999. – 191 с., ил.

Трофимов С. CASE-технологии: практическая работа в Rational Rose – М.: ЗАО “Издательство БИНОМ”, 2001 г. – 272 с.: ил. (http://progcpp.narod.ru/rational/)

Бюрер К. От ремесла к науке: поиск основных принципов разработки ПО (http://www.interface.ru/rational/science.htm)

Похожие работы

  • Статистический анализ текста

    Программа, читающая текстовый файл и подсчитывающая количество слов, пробелов, спецзнаков. Язык программирования "Си". Постановка и алгоритм решения задачи. Описание функций программной реализации. Конструирование алгоритма и системные требования.

  • Обзор С++

    Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.

  • Сложение и вычитание целых неотрицательных чисел в двоичном коде

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

  • Подготовка и решение на ПК задач с разветвлением

    Рациональные корни полинома n-й степени с целыми коэффициентами. Значение функции Y(x) при различных значениях исходных данных. Алгоритм: по номеру года вывести его название с использованием оператора switch/case. Исходные коды программ, тестирование.

  • Изучение возможностей создания MDI-приложений (multiple document interface)

    Возможности создания MDI-приложений, их преимущества. Основные приемы работы с записью информации в файл, экспорт данных в приложения Microsoft Office с помощью использование технологии OLE, на примере MS Excel интегрированного пакета MS Office.

  • Введение в программирование

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

  • Перевод целых неотрицательных чисел в различных системах счисления

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

  • Умножение и деление целых неотрицательных чисел в двоичном коде

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

  • Использование элементов управления: Label, TextBox, Image, OptionButton, ListBox, SpinButton, ComboBox, CommandButton

    Программа "Labs", выбор шрифта с помощью элемента ComboBox. Очистка содержимого и добавление значений в элемент ListBox. Загрузка картинки в элементе Image. Совместная работа SpinButton и TextBox. Изменение масштаба надписи и текста элемента Label.

  • Creating graphic editor

    Creation of the graphic program with Visual Basic and its common interface. The text of program code in programming of Visual Basic language creating in graphics editor. Creation of pictures in Visual Basic, some graphic actions with graphic editor.