- •4. Особенности кп в срмв.
- •6. Понятие резидентных и кросс систем автоматизации.
- •7. Задачи стандартизации средств разработки кп.
- •8. Документация на сложные кп.
- •9. Еспд. Общие положения.
- •10. Еспд. Виды программ и программных документов. Гост 19.107-77
- •11. Еспд. Пояснительная записка. Гост 19.404-79
- •12. Еспд. Техническое задание. Гост 19.106-78
- •13. Еспд. Стадии разработки. Гост 19.102-77
- •14. Еспд. Общие требования к программным документам. Гост 19.105-78
- •15. Еспд. Спецификация. Гост 19.202-78
- •16. Еспд. Формуляр. Гост 19.501-78
- •17. Еспд. Текст программы. Гост 19.401-78 (текст программы)
- •17. Еспд. Программа и методика испытаний. Гост 19.301-79
- •18. Еспд. Руководство системного программиста. Гост 19.503-79
- •19. Еспд. Руководство оператора. Гост 19.505-79
- •20. Типовая структура программы и программного модуля
- •21. Понятие резидентных и кросс–систем автоматизации
- •22. Проблемы стандартизации при разработки пс.
- •23. Принципы планирования больших кп.
- •24. Основная опасность при разработке программных средств.
- •25. Укрупненный сетевой график создания сложных кп.
- •Отладка
- •26.Эталоны при проектировании кп
- •27.Типичные ошибки при проектировании кп
- •Технологические ошибки
- •Определение рациональной длительности отладки
- •29.Основные принципы отладки
- •30.Методы отладки
- •31.Принципы отладки:
- •32.Принципы комплексной отладки и испытаний кп
- •Комплексна отладка:
22. Проблемы стандартизации при разработки пс.
Под стандартизацией понимается как стандартизация средств разработки, так и стандартизация методов разработки.
Цели стандартизации:
Повышение производительности труда разработчиков
Улучшение качества ПС
Примеры:
Создание и принятие стандартов на языке программирования.. Создание стандартов на системы баз данных (СБД). Создание стандартов на документацию. Принятие стандартов на технологический цикл разработки, в частности на организацию количества разработчиков.
23. Принципы планирования больших кп.
Планирование должно базироваться на долгосрочном прогнозировании, состояния системы в целом и на состоянии ее основных частей, на прогнозирование изменения характеристик (связь с Заказчиком), на оценках развития процесса обнаружения и устранения ошибок в программах.
Достигается это путем изучения и обобщения опыта разработки различных как малых, так и больших КП.
Каждый долгосрочный план проектирования должен содержать:
Формулирование общих целей разработки КП и частных целей разработки его подсистемы.
Стратегию проектирования и в частности экспериментов по отладке (что отражается в жизненном цикле).
Потребности в ресурсах различных видов.
Проектирование организационной структуры – коллектива разработчиков.
Проектирование технологии управления процессами и проведение работ, и координация их взаимодействия.
1. → Формулировка общих целей должна проводиться конкретно, с указанием количественных характеристик программ, которые должны быть созданы. Необходимо намечать достигаемые пределы по количественным и качественным параметрам программы, и сроки достижения цели.
2. → Стратегия проектирования должна обеспечивать выполнение поставленных задач с минимальными выполнение затрат и потерями:
Принципы и этапы проведения проектирования
Последовательность и длительность разработки и отладки и проектирования программ
Перечень и объем вспомогательных работ, направленных на ускорение разработки
1) «Кодирование»
2) Проектирование
5% функциональной проработки
45% кодирование
50% отладка
35% функциональная проработка (исследование предметной области)
10% кодирование
35% отладка
В реальных ситуациях этот подход к проектированию выигрывает.
На практике разрыв между двумя подходами еще больше. В особенности, с учетом внедрения и эксплуатации.
Для больших и сверхбольших КП обязательно необходимо использовать средства автоматизации, которые приводят к возникновению дополнительных вспомогательных работ, например создание программ автоматической генерации тестов. Сюда можно отнести сервисные программы и инструментальные средства.
3. → Ресурсы:
Состав и уровень квалификации специалистов.
Уровень технологических ПС
Характеристики и доступность технологических ВС (ТВС)
Финансовые средства и сроки
→ Принципы организации коллективов разработчиков КП.
Основной подход: большая группа даже очень квалифицированных специалистов не выполнит разработку КП на десятки и сотни тысяч операторов.
Оценка производительности труда:
1970 – 0.1 оператор/человек в день
1980 – 1
1990 – 5
Сейчас примерно 10
Это суммарная оценка после завершения проекта с учетом возможных технологических разработок, таких как написание средств отладки, разработка вспомогательных структур и .т.д.
Отсюда следует, что разработка больших и сверхбольших КП требует достаточно большого привлечения специалистов, различных как по специализации, так и по квалификации. Опыт показывает, что один и тот же коллектив должен отвечать за все этапы разработки, начиная от постановки задачи, далее проектирование разработки, отладки, внедрение, возможное обучение пользователей и тп. Иначе невозможно определить ответственность за те или иные этапы работы, за наличие ошибок и их исправление. Следовательно, необходима организация коллектива.
Выход из положения – организация бригад программистов. Как правило, бригада создает законченную подсистему, выполняющую достаточно автономные задачи. Прежде всего необходимо решать связную задачу: разбиение всего коллектива на бригады и декомпозиция всего КП на подсистему, реализуемую отдельными бригадами.
Существует 2 основных варианта построение бригады: хирургическая и производственная бригада.
хирургическая бригада.
- Главный хирург. Во главе бригады стоит программист исключительно высокой квалификации (главный хирург), который разрабатывает алгоритм программы, пишет их и отлаживает, готовит основную документацию.
- Ассистент (заместитель, второй хирург) – возможная замена главного программиста. Его задача – обсуждение, критика, советы, возможная связь с другими бригадами. Личная ответственность, при наличии руководителя, ни за какую часть программы не несется. В любой момент готов, имеет возможность и квалификацию, чтобы заместить главного программиста, т.е. это оппонент.
Квалификация этих 2 людей исключительно высокая.
- Администратор (технический руководитель) – его задача: согласование и руководство всеми административными вопросами, как внутри, так и вне бригады, связь с заказчиком.
- Редактор –критикует документацию главного программиста, перерабатывает ее, и доводит до промышленного вида.
- Инструментальщик – опытный системный программист, который разрабатывает и поддерживает системные и технологические ПС, макробиблиотеки, библиотеки готовых модулей, тесты, инструментальные средства разработки, и тп.
-Наладчик – готовит тесты, имитаторы или генераторы теста, определяет ход тестирования, регистрирует процесс проведения отладки.
Дополнительно имеется 2-3 технических работника: секретарь, библиотекарь, уборщица.
При этом собственную функциональную программу создает 1-2 человека.
Использование такого подхода характерно для создания стабильных состоявшихся проектов, как правило, системного назначения, где не требуется постоянное изучение и построение предметной области.
производственная бригада - это более распространенная организация коллектива, как правило, это разработка реальных систем, характер которых может меняться. Здесь нет выдающегося программиста, т.к. в меняющихся условиях разработки его и быть не может – невозможно объять необъятное.
- Руководитель проекта, как правило, бывший квалифицированный программист (но не обязательно). Задачи: разработка ТЗ, основной программы, контроль и коррекция исходных ТЗ, определение состава тестов и порядка тестирования, а также отладки.
- Заместитель руководителя проекта. Решает те же задачи, что и руководитель, но с меньшей ответственностью.
- Главный инженер . Опытнейший действующий программист или организатор (бывший программист). Его задача – создание структуры проектов, организация разработки, возможно подбор кадров и их расстановка.
- Группа системного анализа – может динамически меняться в зависимости от задачи.
- Группа программистов функциональных программ тесно связана с группой системного анализа. У руководства группы стоят программисты высокой квалификации, возможно, имеющие свою специализацию. В этой группе могут находиться программисты любой квалификации.
- Группа программистов – инструментальщиков. Часто состоит из 1 человека.
- Группа отладчиков. Они должны знать предметную область, структуру и особенности КП и подсистем, выделять основные задачи, решаемые системой, которые в основном, проверяются. Группа отладчиков не должна писать программу.
- Группа технических писателей. Возможно 1 человек, который создает документацию.
- Технический персонал – аппаратчики, администраторы БД, уборщицы, секретари, сетевики.