Главная страница
Навигация по странице:

  • 14.1. Методологии и инструменты проектирования

  • 14.2. Методы и средства структурного анализа и проектирования

  • С. В. Ченцова. В. Чубарьинформатикакрасноярск 2002 введение


    Скачать 0.92 Mb.
    НазваниеС. В. Ченцова. В. Чубарьинформатикакрасноярск 2002 введение
    Дата07.06.2019
    Размер0.92 Mb.
    Формат файлаpdf
    Имя файлаinfoposobie2003.pdf
    ТипДокументы
    #80810
    страница12 из 17
    1   ...   9   10   11   12   13   14   15   16   17
    14. МЕТОДОЛОГИЯ И ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО
    ОБЕСПЕЧЕНИЯ
    Тенденции развития современных информационных технологий приводят к постоянному возрастанию сложности информационных систем, создаваемых в различных областях. Современные крупные проекты ИС характеризуются, как правило, следующими особенностями:

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

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

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

    необходимость интеграции существующих и вновь разрабатываемых приложений;

    функционирование в неоднородной среде на нескольких аппаратных платформах;

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

    существенная временная протяженность проекта, обусловленная, с одной стороны, ограниченными возможностями коллектива разработчиков, и, с другой стороны, масштабами организации-заказчика и различной степенью готовности отдельных ее подразделений к внедрению ИС.
    Для успешного создания современных ИС требуется тщательная проработка проекта системы, которая осуществляется на этапе проектирования.
    Этап проектирования является одним из основных этапов жизненного цикла
    ПО и дает ответ на вопрос: «Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?». Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем здесь не рассматриваются вопросы, связанные с реализацией на конкретной платформе. Проектирование определяется как «(итерационный) процесс получения логической модели системы вместе со строго сформулированными целями, поставленными перед нею, а также написания спецификаций физической системы, удовлетворяющей этим требованиям», или другими словами проектирование можно определить как процесс выработки технических решений, достаточных для создания или модификации ИС.
    Обычно этот этап разделяют на два подэтапа:

    96

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

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

    технология проектирования определяется как совокупность трех составляющих:

    пошаговой процедуры, определяющей последовательность технологических операций проектирования (рис. 14.1);

    критериев и правил, используемых для оценки результатов выполнения технологических операций;

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

    технология должна поддерживать полный ЖЦ ПО;

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

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

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

    технология должна обеспечивать возможность ведения работ по проектированию отдельных подсистем небольшими группами (3-7 человек).
    Это обусловлено принципами управляемости коллектива и повышения производительности за счет минимизации числа внешних связей;

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

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

    технология должна обеспечивать независимость выполняемых проектных решений от средств реализации ИС (систем управления базами данных (СУБД), операционных систем, языков и систем программирования);

    технология должна быть поддержана комплексом согласованных
    CASE-средств, обеспечивающих автоматизацию процессов, выполняемых на всех стадиях ЖЦ.
    Реальное применение любой технологии проектирования, разработки и сопровождения ИС в конкретной организации и конкретном проекте невозможно без выработки ряда стандартов (правил, соглашений), которые должны соблюдаться всеми участниками проекта. К таким стандартам относятся следующие
    :

    стандарт проектирования;

    стандарт оформления проектной документации;

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

    Стандарт проектирования должен устанавливать:

    набор необходимых моделей (диаграмм) на каждой стадии проектирования и степень их детализации;

    правила фиксации проектных решений на диаграммах, в том числе: правила именования объектов (включая соглашения по терминологии), набор

    98
    атрибутов для всех объектов и правила их заполнения на каждой стадии, правила оформления диаграмм, включая требования к форме и размерам объектов, и т. д.;

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

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

    Стандарт оформления проектной документации должен устанавливать:

    комплектность, состав и структуру документации на каждой стадии проектирования;

    требования к ее оформлению (включая требования к содержанию разделов, подразделов, пунктов, таблиц и т.д.);

    правила подготовки, рассмотрения, согласования и утверждения документации с указанием предельных сроков для каждой стадии;

    требования к настройке издательской системы, используемой в качестве встроенного средства подготовки документации;

    требования к настройке CASE-средств для обеспечения подготовки документации в соответствии с установленными требованиями.

    Стандарт интерфейса пользователя должен устанавливать:

    правила оформления экранов (шрифты и цветовая палитра), состав и расположение окон и элементов управления;

    правила использования клавиатуры и мыши;

    правила оформления текстов помощи;

    перечень стандартных сообщений;

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

    99
    изменяться или уточняться, что еще более усложняет разработку и сопровождение таких систем.
    В 70-х и 80-х годах при разработке ИС достаточно широко применялась структурная методология, предоставляющая в распоряжение разработчиков строгие формализованные методы описания ИС и принимаемых технических решений. Она основана на наглядной графической технике: для описания различного рода моделей ИС используются схемы и диаграммы. Наглядность и строгость средств структурного анализа позволяла разработчикам и будущим пользователям системы с самого начала неформально участвовать в ее создании, обсуждать и закреплять понимание основных технических решений.
    Однако, широкое применение этой методологии и следование ее рекомендациям при разработке конкретных ИС встречалось достаточно редко, поскольку при неавтоматизированной (ручной) разработке это практически невозможно. Ручная разработка обычно порождала следующие проблемы:

    неадекватная спецификация требований;

    неспособность обнаруживать ошибки в проектных решениях;

    низкое качество документации, снижающее эксплуатационные качества;

    затяжной цикл и неудовлетворительные результаты тестирования.
    Перечисленные факторы способствовали появлению программно- технологических средств специального класса - CASE-средств, реализующих
    CASE-технологию создания и сопровождения ИС. Термин CASE (Computer
    Aided Software Engineering) используется в настоящее время в весьма широком смысле. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения (ПО), в настоящее время приобрело новый смысл, охватывающий процесс разработки сложных ИС в целом. Теперь под термином CASE-средства понимаются программные средства, поддерживающие процессы создания и сопровождения
    ИС, включая анализ и формулировку требований, проектирование прикладного
    ПО (приложений) и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы. CASE-средства, вместе с системным ПО и техническими средствами, образуют полную среду разработки ИС.
    CASE-технология представляет собой методологию проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех этапах разработки и сопровождения ИС и разрабатывать приложения в соответствии с информационными потребностями пользователей. Большинство CASE-средств основано на парадигме методология/метод/нотация/ средство. Методология определяет руководящие указания для оценки и выбора проекта разрабатываемого ПО, шаги работы и их последовательность, а также правила распределения и назначения методов. Метод - это систематическая процедура или техника генерации описаний компонент ПО (например, проектирование потоков и структур данных). Нотации предназначены для описания структуры

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

    CASE-средства не обязательно дают немедленный эффект; он может быть получен только спустя какое-то время;

    реальные затраты на внедрение CASE-средств обычно намного превышают затраты на их приобретение;

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

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

    широкое разнообразие качества и возможностей CASE-средств;

    относительно небольшое время использования CASE-средств в различных организациях и недостаток опыта их применения;

    широкое разнообразие в практике внедрения различных организаций;

    отсутствие детальных метрик и данных для уже выполненных и текущих проектов;

    широкий диапазон предметных областей проектов;

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

    Технология. Понимание ограниченности существующих возможностей и способность принять новую технологию;

    Культура. Готовность к внедрению новых процессов и взаимоотношений между разработчиками и пользователями;

    101

    Управление. Четкое руководство и организованность по отношению к наиболее важным этапам и процессам внедрения.
    Если организация не обладает хотя бы одним из перечисленных качеств, то внедрение CASE-средств может закончиться неудачей независимо от степени тщательности следования различным рекомендациям по внедрению.
    Для того, чтобы принять взвешенное решение относительно инвестиций в
    CASE-технологию, пользователи вынуждены производить оценку отдельных
    CASE-средств, опираясь на неполные и противоречивые данные. Эта проблема зачастую усугубляется недостаточным знанием всех возможных «подводных камней» использования CASE-средств. Среди наиболее важных проблем выделяются следующие:

    достоверная оценка отдачи от инвестиций в CASE-средства затруднительна ввиду отсутствия приемлемых метрик и данных по проектам и процессам разработки ПО;

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

    отсутствие полного соответствия между теми процессами и методами, которые поддерживаются CASE-средствами, и теми, которые используются в данной организации, может привести к дополнительным трудностям;

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

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

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

    высокий уровень технологической поддержки процессов разработки и сопровождения ПО;

    102

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

    приемлемый уровень отдачи от инвестиций в CASE-средства.
    Большинство существующих CASE-средств основано на методологиях структурного (в основном) или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств.
    14.2. Методы и средства структурного анализа и проектирования
    Структурным анализом принято называть метод исследования системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7); ограниченный контекст, включающий лишь существенные на каждом уровне детали; использование строгих формальных правил записи; последовательное приближение к конечному результату.
    Методы структурного анализа и проектирования стремятся преодолеть сложность больших систем путем расчленения их на части («черные ящики») и иерархической организации этих черных ящиков. Выгода в использовании черных ящиков заключается в том, что их пользователю не требуется знать, как они работают, необходимо знать лишь его входы и выходы, а также его назначение (т.е. функцию, которую он выполняет). При этом должны удовлетворяться следующие условия:

    каждый черный ящик должен реализовывать единственную функцию системы;

    функция каждого черного ящика должна быть легко понимаема независимо от сложности ее реализации (например, в системе управления ракетой может быть черный ящик для расчета места ее приземления: несмотря на сложность алгоритма, функция черного ящика очевидна - «расчет точки приземления»);

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

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

    103
    заместителей по направлениям, иерархию руководителей подразделений, рядовых служащих.
    Наконец, третий момент: структурные методы широко используют графические нотации, также служащие для облегчения понимания сложных систем.
    Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы «снизу-вверх» от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
    Все методологии структурного анализа базируются на ряде общих принципов, часть из которых регламентирует организацию работ на начальных этапах ЖЦ, а часть используется при выработке рекомендаций по организации работ.

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

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

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

    принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы;

    принцип непротиворечивости - заключается в обоснованности и согласованности элементов;

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

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

    104

    функции, которые система должна выполнять;

    отношения между данными;

    зависящее от времени поведение системы (аспекты реального времени).
    Среди всего многообразия средств решения данных задач в методологиях структурного анализа наиболее часто и эффективно применяемыми являются следующие:
    1   ...   9   10   11   12   13   14   15   16   17


    написать администратору сайта