Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование программного обеспечения экономических информационных систем

.pdf
Скачиваний:
161
Добавлен:
01.05.2014
Размер:
4.73 Mб
Скачать

А.М.Вендров

ПРОЕКТИРОВАНИЕ

ПРОГРАММНОГО

ОБЕСПЕЧЕНИЯ

ЭКОНОМИЧЕСКИХ

ИНФОРМАЦИОННЫХ

СИСТЕМ

Допущено Министерством образования Российской Федерации

в качестве учебника

для студентов

экономических высших учебных заведений,

обучающихся по специальностям "Прикладная информатика (пообластям)"и "Прикладная математикаи информатика"

Москва "Финансы и статистика"

2002

УДК 004,415.2:33(075.8) ББК 65ф.я73

В29

РЕЦЕНЗЕНТЫ:

кафедра проектирования экономических информационных систем

Московского государственного университета экономики, статистики и информатики (МЭСИ);

СВ. Черемных,

доктор технических наук, профессор

ISBN 5-279-02144-Х

©А М Вендров,2000

ПРЕДИСЛОВИЕ

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

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

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

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

Предисловие

современные промышленные технологии, в том числе описанные в учебнике: Datarun, Oracle CDM и самая последняя по времени выхода на рынок Rational Unified Process, основой которой служит стандартный язык объектно-ориентированного моделирования UML;

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

Этот материал в настоящее время апробируется в рамках спецкурса по методам и средствам проектирования ПО, который автор ведет на факультете вычислительной математики и кибернетики МГУ.

Учебник подготовлен в соответствии с Государственным образовательным стандартом по специальности 351400 "Прикладная информатика по областям", но может быть использован также студентами и преподавателями других специальностей, связанных с проектированием информационных систем и программного обеспечения, в частности 351500 "Математическое обеспечение и администрирование информационных систем" и 010200 "Прикладная математика и информатика".

Книга состоит из шести глав.

В главе 1 дано описание процессов жизненного цикла ПО ЭИС, соответствующее принятым международным стандартам, приведены основные модели и стадии жизненного цикла ПО,дано определение метода и технологии проектирования ПО и приведены требования, предъявляемые к ним.

Глава 2 посвящена структурному подходу к проектированию ПО. Здесь рассматриваются наиболее распространенные методы структурного анализа и проектирования: функциональное моделирование (метод SADT), моделирование потоков данных, моделирование данных (подход "сущность-связь").

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

Предисловие

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

Глава 4 посвящена CASE-средствам. Даны общая характеристика и классификация CASE-средств, рассматриваются вопросы их выбора и внедрения. Приведено описание ряда CASE-средств, поддерживающих как структурный (Silverrun, Oracle Designer, ERwin, BPwin), так и объектно-ориентированный подходы (Rational Rose).

Вглаве 5рассмотрены промышленные технологии проектирования ПО,созданные крупнейшими фирмами-разработчиками.

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

Изложение материала в главах 2 и 3 иллюстрируется примерами моделей, для большинства из которых в качестве предметной области выбрана налоговая система Российской Федерации. Это никоим образом не влияет на общность описываемых подходов и методов, а объясняется исключительно одним обстоятельством: в настоящее время курс, соответствующий данному учебнику, готовится набазе Всероссийской государственной налоговой академии. В перспективе, помимо учебника, предполагается подготовка практикума по проектированию ПО ЭИС.

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

Благодарности

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

Предисловие

подвиг меня на перевод книги Мартина Фаулера "UML в кратком изложении", материал которой был положен в основу главы 3 и существенно улучшил мое понимание языка UML.

Автор выражает глубокую благодарность рецензентам профессору, доктору технических наук Станиславу Владимировичу Черемных, заведующему кафедрой проектирования экономических информационных систем МЭСИ Юрию Филипповичу Тельнову и доктору технических наук заместителю председателя Московской секции ACM SIGMOD Сергею Дмитриевичу Кузнецову, взявшим на себя труд прочесть рукопись и сделавшим ряд конструктивных замечаний, которые позволили сделать более четкими как методику изложения, так и содержание учебника.

Я благодарен своей семье - жене Марине и дочери Александре за поддержку и терпение, которое они проявили в период написания книги.

ВВЕДЕНИЕ

Проектирование экономических информационныхсистем(ЭИС)

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

Основная доля трудозатрат при создании ЭИС приходится на прикладное программное обеспечение (ПО)ибазыданных (БД).Производство ПОсегодня — крупнейшая отрасль мировой экономики,в которой занято около трех миллионов специалистов (программистов, разработчиков ПОит. п.). Еще несколько миллионов человек напрямую зависят от благополучия корпоративных информационныхподразделений либо от производителей ПО,таких, как корпорации Microsoft иIBM.

В начале 70-х гг. в США был отмечен кризис программирования (software crisis). Это выражалось в том, что большие проекты стали выполняться с отставанием от графика или с превышением сметы расходов, разработанный продукт не обладал требуемыми функциональными возможностями, производительность его была низка, качество получаемого программного обеспечения не устраивало потребителей.

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

8

Введение

компания Standish Group проанализировала работу 364 американских корпораций и итоги выполнения более 23 тыс. проектов, связанных с разработкой ПО, и сделала следующие выводы.

Только 16,2% проектов завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности; 52,7% проектов завершились с опозданием, расходы превысили запланированный бюджет,требуемые функции не были реализованы в полном объеме; 31,1% проектов были аннулированы до завершения. Для проектов, которые завершились с опозданием или были аннулированы до завершения, бюджет среднего проекта оказался превышенным на 89%, а срок выполнения - на 122%.

В1998 г. процентное соотношение проектов лишь немного изменилось в лучшую сторону (26%, 46% и 28% соответственно).

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

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

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

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

Введение

9

компании в результате кризиса, реорганизации, реинжиниринга

ит. д.;

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

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

Потребность контролировать процесс разработки ПО,прогнози-

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

Впервые этот термин был использован как тема конференции,проводившейся под эгидой NATO в 1968 г. Спустя семь лет, в 1975 г., в Вашингтоне была проведена первая международная конференция, посвященная программной инженерии. Тогда же появилось первое издание, посвященное программной инженерии, —IEEE Transactions on Software Engineering.

Впроцессестановления иразвития программной инженерииможно выделить два этапа: 70-е и 80-е гг. —систематизация и стандартизация процессов создания ПО (на основе структурного подхода) и 90-е гг.— начало перехода к сборочному, индустриальному способу создания ПО (на основе объектно-ориентированного подхода).

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

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

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

10

Введение

ними), требующая тщательного моделирования и анализа данных

и процессов;

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

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

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

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

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

значительная временная протяженность проекта, обусловленная,

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

Как отмечает Фредерик Брукс, руководитель проекта разработки операционной системы OS/360, самым существенным и неотъемлемым свойством программных систем является их сложность. Благодаря уникальности и несхожести своих составных частей программные системы принципиально отличаются от технических систем (например, компьютеров), в которых преобладают посторяющиеся элементы.

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

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