
- •Архитектуры и модели программ и знаний
- •Проектирование программ
- •Архитектурное проектирование (начальное проектирование, структурная декомпозиция)
- •Системное моделирование
- •Структурирование системы
- •Модели управления в системе
- •Стратегии проектирования
- •Проектирование снизу вверх: уровни абстракции
- •Проектирование интерфейсов: ТИП-технология (В.О. Сафонов; патенты России и США)
- •Проектирование интерфейсов: Парадигма MVC (Model-View-Controller)
- •Реализация (кодирование)
- •Выбор языка реализации
- •Шаблоны кодирования
- •Стиль кодирования
- •ANSI C Coding Style Guide
- •Венгерская нотация
- •Качество кода и его
- •Повторное использование кода и COTS
- •Рекомендации для повторной используемости кода
- •Систематическая модификация кода (refactoring)
- •Open Source и Shared Source код
- •Литература по проектированию программ
- •Вопросы и домашнее задание к лекции 9

Open Source и Shared Source код
Один из практических подходов к совместной удаленной разработке программ и обмену опытом и
результатами между разработчиками
Примеры: FreeBSD UNIX, Linux, GNU-продукты, SSCLI /
Rotor, Mono, OpenSolaris, NetBeans
Один из катализаторов open source / shared source - движения –
Java- технология
Преимущества: свободный доступ для использования и
модификаций; активная совместная работа тысяч разработчиков-энтузиастов всего мира (пример: 20-30 версий Mono – каждый год); хороший способ получения практического опыта инженерии программ
Недостатки и ограничения: не всегда обеспечена надежность и безопасность (никто за нее не отвечает);
не всегда хорошо документированный код;
лицензионные ограничения
Многие open source – продукты теперь проходят этап “коммерциализации”

Литература по проектированию программ
Соммервилл Я. Инженерия программ.
6-е изд. 2002
Фукcман А.Л. Технологические аспекты
создания программных систем. – М.: Статистика, 1979Зиглер К. Методы проектирования
программных систем. – М.: Мир, 1985
(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 9
1.Выполните этапы формулировки требований, спецификации и проектирования для процедуры сортировки массива (используйте метод QuickSort)
2.Изучите руководства по стилю кодирования на C, C++, Java, C#
3.Сформулируйте принципы Вашего собственного стиля кодирования (или стиля кодирования Вашей фирмы) в виде документа
4.Исследуйте, какие виде refactoring, которые могли бы быть полезны, тем не менее пока не реализованы в распространенных интегрированных средах (Visual Studio, Eclipse, NetBeans и др.). Вступите в сообщество разработчиков open source-проекта NetBeans, изучите
исходный код проекта и реализуйте недостающие виды refactoring
(C) Сафонов В.О. 2012