
- •1.Предметная область. Прикладные программные системы (пс). Условия создания прикладных программных систем.
- •2.Автоматизированные системы управления и современные прикладные программные системы. Классификация, особенности.
- •3.Информационные системы и системы реального времени.
- •4.Требования к прикладным системам. Характеристика требований.
- •5.Требования к пс: адекватность предметной области; дружественность; возможность модификации.
- •6.Требования к пс: живучесть; защищенность. Проблемы переносимости. Универсальность и специализация.
- •7.Тиражирование прикладных систем. Тиражируемые, индивидуальные, слабо тиражируемые пс.
- •8.Модели жизненного цикла. Их характеристики.
- •9.Модели проектирования – каскадная, поэтапная, спиральная. Их особенности и области применения.
- •10.Планирование работы. Сетевой график.
- •11.Организация коллективной работы. Типы коллективов программистов.
- •12.Условия работы коллектива программистов.
- •13.Роли участников проекта: заказчик, пользователь, разработчик, руководитель, администратор.
- •14.Руководитель проекта, его действия по созданию работоспособного коллектива.
- •15.Профессиональная зрелость коллектива программистов.
- •16.Начальный этап проектирования. Анализ требований. Извлечение информации о предметной области.
- •17.Структурный системный анализ. Методология структурного системного анализа sadt (стандарт idef0).
- •18.Этап проектирования. Проектирование данных, функций, интерфейса, событий, выходных документов.
- •19.Потоки данных и процессы их обработки Диаграммы потоков данных в методологии Гейна-Сарсона.
- •20.Обсуждения: сквозной структурный контроль.
- •21.Принципы и виды отладки программ. Стратегии тестирования. Автономная и комплексная отладка.
- •22.Правила («Заповеди») тестирования.
- •23. Автономная отладка. Восходящее и нисходящее тестирование. Шаги автономного тестирования.
- •24. Комплексная отладка. Тестирование архитектуры, внешних функций, качества, документации, требований.
- •25. Особенности структурного тестирования (белый ящик). Его достоинства и недостатки.
- •26. Функциональное тестирование (черный ящик). Категории выявляемых ошибок.
- •27. Документирование прикладных программных систем. Этапы создания документации для тиражируемых систем.
- •28. Сдача прикладных систем в эксплуатацию.
- •29. Смена систем. Особенности проектирования «второй системы». Тактические приемы смены систем.
- •30. Особенности разработки заказных программных систем.
- •31. Подходы к перепроектированию технологических процессов: реинжиниринг бизнес-процессов (рбп) и асу.
- •32. Перепроектирование технологических процессов: модель управления по функциям и модель горизонтального потока. Цель и средства рбп.
- •33. Перепроектирование технологических процессов: риски. Критика подхода.
- •34. Перепроектирование технологических процессов и информационные технологии.
- •35. Классические и легкие методологии проектирования. Области применения.
- •36. Особенности подхода в методологии экстремального программирования.
- •37. Участники команды разработчиков в экстремальном программировании.
- •38. Экстремальное программирование: ценности, базовые принципы, виды деятельности.
- •39.Двенадцать правил экстремального программирования.
- •40. Риски легких методологий (на примере экстремального программирования).
- •41. Определение безнадежного проекта (бп). Категории бп.
- •42. Причины, порождающие безнадежные проекты.
- •43. Участники безнадежного проекта.
- •44. Отношение руководителя проекта и разработчиков к бп различных типов.
- •45. Оценка сложности проекта. Переговоры. Допустимые компромиссы.
- •46. Стратегии проведения переговоров в бп.
- •47. Человеческий фактор в бп: формирование команды.
- •48. Человеческий фактор в бп: условия работы.
- •49. Человеческий фактор в бп: мотивация, вознаграждение.
- •50. Роли участников команды бп.
39.Двенадцать правил экстремального программирования.
разумное планирование (краткосрочное планирование, в ходе которого определяется, что будет включено в следующую версию)
небольшие версии (выгоднее часто устанавливать новые версии с небольшими изменениями.)
метафора (простая история, аналог, которая в доступной форме описывает работу системы.)
простой дизайн (максимальную простоту реализации версии.)
тестирование (используется на протяжении всей разработки тесты заказчиков, программистов)
переработка (система на протяжении жизненного цикла постоянно перерабатывается с целью улучшения и упрощения кода)
программирование парами ( разработка ведется парами программистов, сидящих за одним компьютером)
коллективное владение (каждый участник проекта является владельцем не только им написанного кода, но всего кода системы.)
постоянно продолжающаяся интеграция (система приводится в рабочее состояние несколько раз в день в процессе разработки)
40-часовая рабочая неделя (спорно, что программист не должен работать сверхурочно)
заказчик на месте разработки
стандарты кодирования
40. Риски легких методологий (на примере экстремального программирования).
Последние несколько лет все чаще говорят о так называемых "легких методологиях", появившихся как альтернатива традиционным методам. Легкие методологии содержат гораздо меньше детальных предписаний относительно того, как именно должен быть реализован процесс разработки. Взаимодействие участвующих сторон основывается в основном не на формально создаваемой документации, а на непосредственном общении. Внедрить и поддерживать такие методологии можно относительно небольшими ресурсами.
Легкие методологии не являются полярной противоположностью традиционным. Напротив – они состоят из одних и тех же компонентов и решают одни и те же задачи. Традиционные методы обеспечивают снижение риска за счет дополнительной работы, "легкие" стремятся использовать в качестве ресурсов квалификацию и личные качества сотрудников.
Легкие методологии проявляют себя с лучшей стороны, если критичность задачи невысока, количество вовлеченных людей не превышает нескольких десятков, а целью проекта является получение продукта, который удовлетворял бы требованиям, подверженным частым изменениям. Если требуется формальная гарантия того, что продукт обладает теми или иными качествами, распределение ответственности при создании критичной системы, а также в случае большого количества людей, когда непосредственное общение затруднительно, неизбежно применение традиционных методов.
Очевидно, что она хорошо подойдет для варианта разработки небольшого проекта в мало известной или быстро меняющейся области. Крупные системы для устоявшегося производственного процесса лучше проектировать традиционными методами. Для ХР, видимо, будут мало пригодны формальные коллективы разработчиков, характерные для больших организаций. Скорее всего, особенно на начальных стадиях внедрения методологии, не все правила удастся реализовать, возможно, часть из них так и не будет реализована. Несмотря на то, что авторы методики утверждают, что эффект получается лишь при использовании всех правил, не всегда это возможно. В настоящее время известны коллективы, успешно использующие идеи ХР, применяя правила частично. В целом эта методология, хоть и не идеальная, но все же интересная альтернатива «тяжелым» подходам.