Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2010.doc
Скачиваний:
26
Добавлен:
10.05.2014
Размер:
2.28 Mб
Скачать

22. Проблемы стандартизации при разработки пс.

Под стандартизацией понимается как стандартизация средств разработки, так и стандартизация методов разработки.

Цели стандартизации:

  1. Повышение производительности труда разработчиков

  2. Улучшение качества ПС

Примеры:

Создание и принятие стандартов на языке программирования.. Создание стандартов на системы баз данных (СБД). Создание стандартов на документацию. Принятие стандартов на технологический цикл разработки, в частности на организацию количества разработчиков.

23. Принципы планирования больших кп.

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

Достигается это путем изучения и обобщения опыта разработки различных как малых, так и больших КП.

Каждый долгосрочный план проектирования должен содержать:

  1. Формулирование общих целей разработки КП и частных целей разработки его подсистемы.

  2. Стратегию проектирования и в частности экспериментов по отладке (что отражается в жизненном цикле).

  3. Потребности в ресурсах различных видов.

  4. Проектирование организационной структуры – коллектива разработчиков.

  5. Проектирование технологии управления процессами и проведение работ, и координация их взаимодействия.

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

2. → Стратегия проектирования должна обеспечивать выполнение поставленных задач с минимальными выполнение затрат и потерями:

  • Принципы и этапы проведения проектирования

  • Последовательность и длительность разработки и отладки и проектирования программ

  • Перечень и объем вспомогательных работ, направленных на ускорение разработки


1) «Кодирование»

2) Проектирование

  1. 5% функциональной проработки

45% кодирование

50% отладка

  1. 35% функциональная проработка (исследование предметной области)

10% кодирование

35% отладка

В реальных ситуациях этот подход к проектированию выигрывает.

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

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

3. → Ресурсы:

  • Состав и уровень квалификации специалистов.

  • Уровень технологических ПС

  • Характеристики и доступность технологических ВС (ТВС)

  • Финансовые средства и сроки

  1. → Принципы организации коллективов разработчиков КП.

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

Оценка производительности труда:

1970 – 0.1 оператор/человек в день

1980 – 1

1990 – 5

Сейчас примерно 10

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

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

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

Существует 2 основных варианта построение бригады: хирургическая и производственная бригада.

    1. хирургическая бригада.

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

- Ассистент (заместитель, второй хирург) – возможная замена главного программиста. Его задача – обсуждение, критика, советы, возможная связь с другими бригадами. Личная ответственность, при наличии руководителя, ни за какую часть программы не несется. В любой момент готов, имеет возможность и квалификацию, чтобы заместить главного программиста, т.е. это оппонент.

Квалификация этих 2 людей исключительно высокая.

- Администратор (технический руководитель) – его задача: согласование и руководство всеми административными вопросами, как внутри, так и вне бригады, связь с заказчиком.

- Редактор –критикует документацию главного программиста, перерабатывает ее, и доводит до промышленного вида.

- Инструментальщик – опытный системный программист, который разрабатывает и поддерживает системные и технологические ПС, макробиблиотеки, библиотеки готовых модулей, тесты, инструментальные средства разработки, и тп.

-Наладчик – готовит тесты, имитаторы или генераторы теста, определяет ход тестирования, регистрирует процесс проведения отладки.

Дополнительно имеется 2-3 технических работника: секретарь, библиотекарь, уборщица.

При этом собственную функциональную программу создает 1-2 человека.

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

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

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

- Заместитель руководителя проекта. Решает те же задачи, что и руководитель, но с меньшей ответственностью.

- Главный инженер . Опытнейший действующий программист или организатор (бывший программист). Его задача – создание структуры проектов, организация разработки, возможно подбор кадров и их расстановка.

- Группа системного анализа – может динамически меняться в зависимости от задачи.

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

- Группа программистов – инструментальщиков. Часто состоит из 1 человека.

- Группа отладчиков. Они должны знать предметную область, структуру и особенности КП и подсистем, выделять основные задачи, решаемые системой, которые в основном, проверяются. Группа отладчиков не должна писать программу.

- Группа технических писателей. Возможно 1 человек, который создает документацию.

- Технический персонал – аппаратчики, администраторы БД, уборщицы, секретари, сетевики.