Предисловие
Краткое содержание книги
Разработка информационной системы (ИС) - от становления идеи до первой версии, передаваемой заказчикам, - состоит из трех этапов: анализа, проектирования и реализации, в результате итеративного выполнения которых происходит пошаговое "наращивание" системы. В этой книге представлены методы и средства, используемые на первых двух этапах. Вопросы реализации затрагиваются только в той мере, в которой они необходимы при рассмотрении этапа проектирования. Тестированию и управлению изменениями посвящена последняя глава.
Центральной темой книги являются вопросы объектно-ориентированной разработки программного обеспечения (ПО). Для описания артефактов при моделировании используется язык UML (Unified Modeling Language - унифицированный язык моделирования). Основное внимание уделяется разработке ИС с помощью метода последовательного уточнения, при этом упомянутый язык моделирования (UML) используется на протяжении всего жизненного цикла разработки. Аналитики, разработчики и программисты "говорят" на одном языке, хотя иногда в своих профессиональных интересах и могут пользоваться диалектами (профилями) языка.
Поначалу объектная технология применялась для разработки графических интерфейсов пользователя (GUI - graphical user interface) и была в основном направлена на ускорение разработки новых систем и ускорение выполнения программ. В этой книге основной упор сделан на применение объектной технологии к разработке ИС. На этом пути необходимо преодолеть такие трудности, как большие объемы и сложные структуры данных, совместный доступ к информации со стороны многих пользователей, обработка транзакций, изменяющиеся требования и т.д. Основным преимуществом применения объектной технологии в среде ИС является то, что она облегчает решение проблем, связанных с сопровождением и масштабируемостью.
Разработка информационной системы может служить синонимом анализа и проектирования "в большом". Проект ИС не может быть успешным при несоблюдении строго определенного процесса разработки, а также в отсутствии понимания лежащей в основе системы архитектуры ПО. Подобную разработку можно охарактеризовать как крупномасштабную, объектно-ориентированную, итеративную и наращиваемую. Архитектура ПО основана на решениях клиент/сервер, где клиент представляет собой рабочую станцию с GUI, а на сервере хранится база данных. Программы клиента и сервера выполняются в рамках отдельных процессов и взаимодействуют через обмен сообщениями между объектами. База данных сервера может быть реляционной, объектно-реляционной или чисто объектно-ориентированной.
В книге предложен детализированный подход к анализу и проектированию информационных систем с использованием UML, и определены способы решения следующих задач.
1. Преодоление сложности моделей больших систем.
2. Усовершенствование архитектуры ПО.
3. Повышение уровня понятности, удобства сопровождения и масштабируемости.
4. Обеспечение многоуровневой структуризации объектов.
5. Управление интеграцией компонент.
6. Усовершенствование модели взаимодействия между GUI и перманентными объектами базы данных и т.д.
Отличительные особенности книги
Книге присущи некоторые отличительные черты, сочетание которых делает ее просто уникальной. Изложение ведется с позиций подхода, который можно назвать "обучением на примерах". В основу рассмотрения положены примеры, а также наставление по анализу и проектированию. Примеры независимы друг от друга и относятся к пяти проблемным областям: Запись на университетские курсы (University Enrollment), Магазин видеопроката (Video Store), Управление контактами с клиентами (Contact Management), Телемаркетинг (Telemarketing) и Internet-магазин (OnLine Shopping). Примеры построены в виде разбора конкретных ситуаций, которые можно расширить или модифицировать с помощью вопросов, приведенных в конце большей части глав в разделе "Упражнения". В некоторых из упражнений используется шестая проблемная область - Оценка расходов на рекламу (Advertising Expenditure Measurement).
Чтобы облегчить самостоятельное изучение материала, наставление (Internet-магазин) и анализ примеров излагаются в форме вопросов и ответов. В начале книги помещен специальный раздел, "Диаграммы видов деятельности для книги", содержащий диаграммы, которые связывают шаги "вопрос/ответ", используемые в наставлении и при разборе ситуаций. Диаграммы видов деятельности могут служить в качестве альтернативного "оглавления" для примеров, разбросанных по книге.
В данном пособии рассматриваются принципы, методы и приемы, способные обеспечить надлежащий анализ и надлежащее проектирование. Особое внимание уделяется этапу проектирования, трактовка которого далека от его понимания как простого преобразования результатов анализа. При этом в книге находит подтверждение факт существования трудностей и сложностей на пути разработки крупномасштабных объектно-ориентированных систем клиент/сервер. Во многих отношениях книга содержит свежий взгляд на проектирование "в большом", итеративную пошаговую разработку больших систем, а также на возможности и ограничения, присущие средствам и методам, которые применяются при создании крупных программных изделий.
Своим уникальным характером книга обязана в первую очередь гармоничному сочетанию практического акцента в объяснении материала с проникновением в его теоретическую суть. В качестве основной предпосылки является стремление избежать ненужной сложности, не утратив необходимой строгости. Книга написана с позиций опыта. Вопросы, не имеющие прямого отношения к индустрии ПО либо представляющие сегодня чисто научный интерес, не вошли в книгу.
Книга отражает последние достижения в сфере информационной технологии; использует самый последний стандарт в области моделирования систем - язык UML и обращается к новейшим разработкам в технологии баз данных, включая объектно-реляционные базы данных. В этом контексте в книге не могло не найти отражения такое явление, как возврат от "толстого клиента" (т.е. мощного настольного компьютера) к серверным вычислениям, происходящий под влиянием развития Internet. Рассматриваемые в книге принципы анализа и проектирования в равной мере применимы как в случае решений, основанных на архитектуре клиент/сервер, так и современных распределенных приложений, построенных с использованием компонентного подхода.
Разработка ПО не сводится к однозначным решениям типа "черное-белое", "истина-ложь", "нуль-один". Источником эффективных программных решений служат идеи толковых бизнес-аналитиков, системных проектировщиков и программистов, а не безоглядное применение алгоритмов. Здесь проводится линия, направленная на то, чтобы предупреждать читателя о потенциальных трудностях, которые не могут быть полностью разрешены в рамках предлагаемого подхода. Благодаря этому можно надеяться, что читатели станут применять приобретенные знания обдуманно и не будут рассчитывать на то, что использование предлагаемого подхода не потребует от них усилий, в противном случае они рискуют обмануться в своих ожиданиях.
Подводя итог, можно отметить следующие отличительные черты, свойственные книге.
1. Книга устанавливает связь теории с действительностью - в виде практических проблем и ограничений, на которые следует обращать внимание, применяя предлагаемый подход на деле.
2. Особое внимание в книге уделяется этапу проектирования. Проектирование не рассматривается как простое преобразование результатов анализа, при этом внимание читателей обращается на трудности и сложности, присущие разработке крупномасштабных систем клиент/сервер.
3. Книга изобилует нетривиальными примерами и упражнениями, которые приводятся вместе со всеми необходимыми решениями и пояснениями.
Для кого предназначена эта книга
Это пособие предназначено как для студентов, так и для практиков, что полностью отвечает растущей потребности в университетских курсах, более приближенных к отраслевой практике. Его подготовка была непростой задачей, но есть основания надеяться, что ее удалось успешно решить. Чтобы полученные знания оставались актуальными в течение более продолжительного времени, относящиеся к разработке ПО аспекты реализации рассматриваются безотносительно к специфике тех или иных конкретных программных продуктов, представленных сегодня на рынке (хотя коммерческие CASE-средства используются в иллюстративных целях и в качестве примеров решений).
Книга призвана служить в качестве учебного курса по теории вычислительных систем и информационным системам. Поскольку она содержит как "высокоуровневые" темы, относящиеся к системному моделированию, так и "низкоуровневые" вопросы проектирования пользовательского интерфейса и баз данных, книга может оказаться полезной для курсов по системному анализу, проектированию систем, программной инженерии, базам данных, объектной технологии, а также курсов по программным проектам, которые требуют от студентов разработки системы в соответствии с жизненным циклом разработки: начиная с определения требований и заканчивая реализацией GUI и баз данных. Настоящее пособие задумано как односеместровый курс, однако потенциально может быть использовано при чтении двух односеместровых курсов - одного по анализу требований, а другого по проектированию систем.
Для той части читателей, которые относятся к специалистам-практикам, представленные теории увязываются с реальными проблемами. Источником большинства постановок задач, примеров и упражнений послужил опыт работы автора в качестве консультанта. Мы предупреждаем читателя о потенциальных трудностях и ограничениях, связанных с предлагаемым подходом. По нашему мнению, наибольшую пользу от книги могут получить следующие категории специалистов-практиков: бизнес-аналитики и системные аналитики, проектировщики, программисты, системные архитекторы, руководители и менеджеры проектов, специалисты по анализу решений, тестированию и подготовке технической документации, инструкторы производственного обучения.
Структура книги
Книга полностью охватывает вопросы объектно-ориентированного анализа и проектирования информационных систем. Материал представлен в порядке, соответствующем современным процессам разработки. Пособие состоит из десяти глав. Охват материала равномерно распределен между анализом и проектированием. Первые пять глав касаются вопросов анализа, а вторые пять - проектирования и связанных с ним сведений.
Читатели с различным базовым уровнем подготовки должны иметь возможность по-разному работать с книгой применительно к своим потребностям. Две главы книги посвящены объяснению оснований анализа и проектирования. Оставшиеся главы предполагают понимание этих оснований. Читателям предоставляется выбор: изучать главы, посвященные "основаниям" досконально, или же использовать их только в качестве обзора.
Чтобы сделать изложение более ясным и нарушить его однообразие, в книге используется несколько приемов, перечисленных ниже.
- Разделы сделаны небольшими по объему.
- Примеры и постановки задач помещены в рамки, чтобы выделить их из остального текста. Графические пиктограммы (см. ниже) на полях страниц также отмечают начало каждого примера.
- Поля страниц используются для размещения:
- номеров и заголовков рисунков и таблиц;
- пиктограмм, которые служат указателями примеров в тексте, а также вопросов и упражнений, заключающих главы.
Вспомогательные материалы
На Web-узлах, дополняющих книгу, в распоряжение читателей предоставляется обширный комплект вспомогательных материалов. К большей части Web-документов читатели имеют свободный доступ, но некоторые материалы защищены паролем в интересах преподавателей, которые станут применять пособие в учебном процессе. Информационные страницы по книге одновременно поддерживаются на следующих Web-узлахhttp://www.booksites.net/maciaszek
http://www.comp.mq.edu.au/books/maciaszek
Комплект вспомогательных материалов включает следующие Web-документы.
1. Instructor's Manual (Руководство преподавателя), содержащее нижеприведенные материалы.
- Lecture Slides (Лекционные слайды) в форматах Power Point и Acrobat Read (.pdf).
- Answers and Solutions (Ответы и решения). Руководство, содержащее аннотированные ответы и решения для всех вопросов и упражнений, помещенных в конце каждой главы. Организация руководства соответствует структуре учебника. Вопросы из учебника повторяются в руководстве. Ответы и решения следуют за вопросами.
2. Student's Resources (Материалы для студентов), пригодные для печатания лекционных слайдов в формате Acrobat Read.
3. Self-education Resources (Материалы для самообразования) - файлы моделей, представленных средствами Rational Rose (.mdl) и PowerDesigner (.pdm), содержащие решения задач из наставления, анализ ситуаций и все прочие примеры моделирования из учебника.
4. Errata (Список опечаток) - страница, предназначенная для исправления ошибок и описок, встретившихся в книге.
5. For More Information (Дальнейшие сведения) - страница, указывающая читателям на последние идеи и тенденции, относящиеся к предмету книги. Также служит указателем на курсы, построенные на основе книги, которые подготовлены для совместного использования другими читателями с помощью WWW.
Ваши комментарии, исправления, предложения по улучшению и приглашения к сотрудничеству будут приняты с большой благодарностью. Пожалуйста, направляйте вашу корреспонденцию автору
Leszek A. Maciaszek
Department of Computing
Macquarie University
Sydney
NSW 2109
Australia[email protected]http://www.comp.mq.edu.au/~leszek/
телефон: +61 2 9850-9519
факс: +61 2 9850-9551
обычная почта: North Ryde, Herring Road, Bld. E6A, Room 319
Благодарности
Написание этой книги было бы невозможно без общения с моими друзьями, коллегами, студентами, ведущими специалистами отрасли и многими другими людьми, которые сознательно или нет оказали влияние на формирование моих знаний о проблемной области. Я действительно в большом долгу перед ними. Попытка перечислить всех могла бы показаться неблагоразумной и невыполнимой, поэтому - большое спасибо всем. Однако, даже при отсутствии достаточного места для благодарностей некоторых "товарищей" следует упомянуть особо.
- Кейт Менсфилд (Keith Mansfield), Mary Lince (Мери Линс) и сотрудников Pearson Education - за признание перспектив за этой книгой и выведение ее на международный рынок.
- Стефена Биллз (Stephen Bills) и его сотрудников из компании ACNielsen AdEx, Сидней, Австралия, в частности, Стивена Гротте (Steven Grotte), Кевина Мати (Kevin Mathie), Кемерон Мюррей (Cameron Murray), Джеймса Риз (James Rees), Джован Споа (Jovan Spoa) и Эрика Цуркера (Eric Zurcher) - за предоставление в мое распоряжение испытательной модели разработки производственных ИС для работы над этой книгой.
- Моих друзей и коллег по факультету вычислительной техники (Department of Computing) Маккуарийского университета (Macquarie University) в Сиднее, Австралия - за их поддержку в создании этой книги.
- Официальных (неизвестных мне) и неофициальных рецензентов - за их отзывы, значение которых для улучшения книги трудно переоценить
- Сотрудников компаний Rational, Oracle и Sybase - за предоставленные в мое распоряжение CASE-средства и ПО баз данных, незаменимые при разработке наставлений, анализе конкретных случаев и составлении примеров.
Издатели благодарят за предоставление разрешений на воспроизведение следующих охраняемых авторским правом материалов.
Рис. 2.34 воспроизводится с разрешения Gateway, Inc. c Gateway, Inc.; рис. 7.1, 7.4, 7.6, 7.7, 7.8, 7.9, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16, 7.17, 7.19, 7.20, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11 и 10.12 воспроизводятся с разрешения ACNielsen; рис. 7.10 воспроизводится с разрешения Маккуарийского университета.
Web-узел, дополняющий книгу Лешека А. Мацяшека Анализ требований и разработка систем.
Посетите Web-узел, дополняющий книгу Анализ требований и разработка систем, расположенный по адресуhttp://www.booksites.net/maciaszek
Здесь вы найдете ценные материалы, необходимые для преподавания, обучения
Для преподавателей:
- лекционные слайды в формате PowerPoint или Acrobat;
- руководство, содержащее аннотированные ответы и решения для всех вопросов и упражнений, помещенных в конце каждой главы.
Для студентов и преподавателей:
- файлы моделей, представленных средствами Rational Rose и PowerDesigner, содержащие решения задач из наставления, анализ ситуаций и все прочие примеры моделирования из учебника;
- обновленную страницу, содержащую ссылки на последние тенденции и работы других специалистов, работающих в этой проблемной области.