Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 113
Текст из файла (страница 113)
Члены прикладных групп должны тесно взаимодействовать с коллегами из той же области деятельности. Разработчики должны хорошо владеть средствами моделирования (хотя лучшие из них находятся в технологической группе). На рис. 22.1 показано решение по организации персонала, оптимальное для круп- ной организации. Несколько экспертов объединяются в технологическую группу, которая обслуживает разработчиков, организованных по областям деятельности. В табл.
22.2 описываются роли технологической группы и прикладных групп. 22.6. Методики изучения 473 Таблица 22.2. Технологические и прикладные группы Технологическая группа Прикладная группа Область деятельности Организация в целом Перспектива Задачи Создание приложений, оцсика пролуктов лля приобретещгя Распростраисиис стаидартов и методик вычислений, обслуживание моделей прелприятия, иолдержка прикладных групп Своболиос владение Требуемый опыт моделирования Эксперт Несколько Олпа Количество групп Размер группы Небольшой (в целях ограпичепия расходов) Определяс ге я потребностям и области леятельиости В некоторых фирмах используются иные организационные структуры; все разработчики моделей помещаются в технологическую группу и по необходимости выделяются в помощь разработчикам приложений.
Мы не рекомендуем использовать такую схему. Моделирование настолько сильно стимулирует понимание сути и диалог между сотрудниками, что его нужно распространять по всему предприятию. (По этой причине оказывается полезно обучить моделированию бизнесменов и маркетологов.) Моделирование — это лингва-франка разработчиков программного обеспечения. Разработчики приложений должны сами создавать модели для своих нужд. 22.6. Методики изучения Для изучения моделирования существует несколько методик.
Некоторые подходят для самостоятельного использования. Другие требуют поддержки со стороны организации. Этот раздел ориентирован как на студентов, так и на практиков. ° Обучение и воспитание. Университеты и коммерческие учебные учреждения предлагают курсы обучения концепциям моделирования и их применению. Обучение лучше проходить незадолго до начала реального проекта (в идеале — за несколько недель). Постарайтесь не увеличивать промежуток до начала работы, иначе вы успеете забыть слишком много.
Обучение следует укреплять воспитанием. Разработчикам нужна помощь в применении изученного материала. Неопытным разработчикам моделей может не хватать уверенности в правильности их действий. Недостаточно привлечь внешние ресурсы к обслуживанию проекта. Необходимо обеспечить передачу знаний от сторонних разработчиков к своим собственным. ° Командная работа.
Модели приложений должны создаваться небольшими командами, которые изначально должны состоять из разработчиков, экспертов по бизнесу и внешних консультантов. После создания нескольких приложений внешние консультанты уже не потребуются. Командная 474 Глава 22 ° Управление моделированием работа позволяет распространять знания о компьютерных технологиях и о бизнесе внутри фирмы. Семинары.
Периодическое проведение семинаров эффективно для образования сотрудников. Фирма должна способствовать проведению технических семинаров разработчиками. На семинарах разработчики беседуют и обмениваются идеями. Они узнают о различных проектах и обретают знания для продвижения своих собственных проектов. Семинары обеспечивают разработчикам взаимную поддержку в борьбе с трудностями моделирования. Непрерывное образование. Разработчики должны стремиться к поиску новых идей и применению лучших методов, выработанных программистским сообществом. Периодическое посещение технических конференций и профессиональных собраний очень полезно в этом отношении. Ценные идеи можно черпать из книг и журналов. Техническое рецензирование. Формат технического рецензирования способствует общению и обогащает опыт как разработчика, так и рецензентов (см.
раздел 22.3). 22.7. Методики обучения Существует несколько методов обучения моделированию, обладающих опреде- ленными преимуществами и недостатками. Ознакомление. Моделировать можно научиться только в процессе моделирования. В течение нескольких лет мы испытывали различные методики и пришли к выводу, что быстрее всего начать моделирование можно с ознакомления. Во время сеансов моделирования (см. раздел 22А) мы пропускаем введение в моделирование (несмотря нато, что многие присутствующие никогда раньше не слышали о нем) и сразу приступаем к моделированию задачи. Через несколько сеансов присутствующие уже продвигаются довольно далеко в работе над своим приложением и одновременно узнают довольно много о самом моделировании. Практика.
Студентам необходим большой объем практических занятий и упражнений. Они должны решать задачи из самых разных областей, с различными входными данными, на разных уровнях абстрагирования и разной сложности. ° Исправление ошибок. Студенты часто допускают ошибки в процессе моделирования, и предусмотреть их все бывает довольно сложно. Исправле- ние ошибок представляет собой значительную часть процесса обучения. Студенты могут учиться на своих ошибках и на ошибках своих сокурсников в процессе совместной работы с ними и на презентациях. В учебном учреждении можно сделать презентации обязательными. На наших учебных курсах мы обычно делаем их добровольными. 22.8.
Средства 475 ° Реализация. Очень важно, чтобы студенты понимали простоту реализации моделей. Они должны понимать, что любую модель, которую онн могут придумать, можно реализовать в устойчивой, предсказуемой и эффективной системе. Как только онн поймут это, они должны перестать заботиться о реализации и мыслить непосредственно в терминах моделей. ° Ученичество.
Преподавать можно не только группе, но и индивидуально. Новичок может обучиться моделированию, работая над каким-либо проектом совместно с опытным разработчиком. Это обучение лучше всего подходит для того, кто уже начал изучать моделирование самостоятельно. ° Образцы. Когда мы создаем модели, мы всегда мыслим в терминах образцов (глава 14). Мы сталкиваемся с различными ситуациями, анализируем лежащую в основе математику, а затем переходим к образцу. Образец — это испыташюе верное решение стандартной задачи, которое было проанализировано экспертами и признано эффективным.
Существует множество видов образцов. Есть образцы анализа, архитектуры, проектирования и реализации. Самая большая проблема — понять, когда нужно применить образец. Кроме того, образец никогда не может охватить всю модель целиком. 22.8. Средства Для решения любой серьезной задачи по моделированию необходимы специальные средства — редакторы моделей, средства для управления конфигурацией, генерирования кода, симуляции, компиляции, отладки, профилирования и т. д.
Мы не пытаемся перечислить здесь все доступные средства, потому что их слишком много. Мы рассмотрим только те средства, которые непосредственно относятся к моделированию, и упомянем некоторых доминирующих производителей. 22.8.1. Средства моделирования Для больших приложений (50 классов и более) требуются тяжеловесные средства моделирования. Повышение производительности — отнюдь не главное преимуц~ество средства моделирования. Главное состоит в том, что оно может сделать проникновение в суть задачи более глубоким. Средства моделирования помогают экспертам работать быстрее, они упорядочивают информацию о классах в удобном для поиска формате.
Новичкам они помогают следить за синтаксисом и избегать наиболее распространенных ошибок. В качестве примеров таких средств можно привести 1ВМ Каг1опа! Кохе ХНЕ, Ю1арвгл)у, Маус Пгаш, Тойет)1егу) и ЕпсегргЬе Агс)1Кеск Неболыпие приложения менее требовательны к средствам.
Однако и здесь средство моделирования может оказаться полезным, потому что люделирование обеспечивает ясность мышления, а использование средства упрощает конструирование модели. Учитывая доступность недорогих средств моделирования, а также наличие лицензирования на предприятие, разумную причину для отказа от средства моделирования придумать довольно сложно.
476 Глава 22 ° Управление моделированием 22.8.2. Средства управления конфигурациями Крупные приложения состоят из множества файлов: файлов программ (исходный код, компилированный код, исполняемый кол), документации (для пользователей, администраторов, обслуживающих) и данных (конфигурации, металанных, тестовых данных). На практике бывает сложно координировать все эти файлы.
Для решения этой задачи и служат средства управления конфигурациями. Они повышают эффективность работы разработчиков и сокращают вероятность потери полезных файлов. В книге (Ргеззщап-97! перечисляются пять главных задач, составляющих управление конфигурациями. ° Идентификация.
Средство управления конфигурациями должно обеспечивать идентификацию каждого файла конфигурации и его связь со всеми прочими файлами. ° Управление версиями. Организация должна иметь возможность отслеживать копии файла в процессе его изменения с течением времени. Иногда бывает необходимо вернуться к старым файлам (например, для определения причин ошибки).
° Управление изменениями. Организация должна определить ответственного за принятие изменений, а также за синхронизацию деятельности сотрудничающих разработчиков. Наиболее распространен контроль файлов в момент открытия лля изменений и сохранения обновленной версии (с)зес)г-)и апг! спес)г-оп! сопгго!). ° Аудит. Средство управления конфигурациями хранит журнал доступа.