48. Методы оценки размера программного обеспечения при управлении программными проектами.
Методы оценки размера проектов
Методы оценки размера проектов разделяются на две основные группы: микрооценка и макрооценка.
Методы микрооценки основаны на точном знании процесса. Такова, например, Oracle AIM и оценки трудоемкости для него. В любом случае, когда для построения оценки необходимо построение разбивки работ и оценка каждой индивидуальнрой работы (разделяй и властвуй), метод является методом микрооценки
Методы макрооценки, основанные на функциональных требованиях и/или продукте. Таковы методы функциональных точек и методы тпа СОСОМО.
В данном докладе мы не будем рассматривать методы микрооценки. Мы рассмотрим с позиций, приведенных выше. Следующие методы макрооценки:
IFPUG FPA
COCOMO II
модели оценки трудоемкости разработки программных систем, утвержденные Госкомтруда в 1986 году
FPA mkII
Основные модели для определения объемов работ при разработке информационных систем
Вероятно, одним из наиболее известных моделей данного рода является конструктивная модель стоимости (Constructive Cost Model – COCOMO), разработанная в конце 70х годов Барри Боэмом (Barry Boehm). Построенная на основе анализа ряда проектов, выполненных в основном в интересах Министерства Обороны США, она устанавливает соответствие между размером системы в тысячах условных строк кода и «классом» проекта, с одной стороны, и трудоемкостью разработки системы, с другой стороны.
Базовый тип модели COCOMO учитывает только класс проекта – естественный, полуинтегрированный, «встроенных систем». Естественные проекты – относительно маленькие и разрабатываются командами, знакомыми с прикладной областью. Полуинтегрированные проекты – системы среднего размера и сложности, разрабатываемые группами разработчиков с различным опытом. Проекты «встроенных систем» выполняются при значтельных аппаратных, программных и организационных ограничениях.
Существенным недостатком данной модели является ее основанность на тысячах условных строк кода, как метрике размера программного комплекса. Видимо, одной из первых попыток отойти от данной метрики размера ПО была разработка Аланом Альбрехтом (Alan Albrecht) в середине 70-х годов метода функциональных точек с целью разработки механизма предсказания усилий, сопряженных с разработкой программных систем.
Со временем модель СОСОМО оказалась устаревшей в значительной своей части. Поэтому на ее основе была разработана модель СОСОМО II, опубликованная в 1999 году. Она усовершенствует оригинальную модель в следующих основных направлениях:
использование входных данных, доступных на ранних этапах жизненного цикла системы для оценки ее сложности (в частности, использование функциональных точек);
подходы, основанные на повторном использовании, включая интеграцию коммерческих продуктов, реинжиниринг, генерацию приложений;
объектно-ориентированные подходы, поддерживаемые распеделенным ПО промежуточного слоя;
влияние зрелости процессов разработки.
новые – циклические и обобщенные – модели процессов разработки;
Групповая оценка
В 1940 году был разработан процесс Wide Band Delphi. Он зависит от групповой оценки: руководитель проекта выбирает секретаря и группу оценки. Беспристрастный секретарь организует совещания. Он также обеспечивает всеобщее участие. Руководитель проекта должен быть членом группы оценки, чтобы группа знала приоритетность требований.
Процесс начинается со стартового совещания, на котором группа знакомится с целью проекта. Выходным документом совещания является общий список задач и набор предположений, составленный секретарем и распространяемый среди членов группы. Готовясь к следующему совещанию, каждый член группы оценки индивидуально создает набор предполагаемых результатов. Для дальнейшего обсуждения всегда можно добавить дополнительные задачи или предположения. На совещании секретарь выдает каждому оценщику пустую форму. Каждый оценщик заполняет эту форму, исходя из своих подготовленных результатов.
Параметрическая оценка
Параметрические методы оценки используют связь между историческими данными и другими параметрами, чтобы получить оценку посредством математической формулы. Вот простой пример: если оценка для написания одного метода составляет 2 часа, то для написания 50 методов потребуется 100 часов. В этом разделе представлены различные виды параметрических оценок.
Use Case Point (UCP)
Этот метод разработан в 1993 году. Он основан на использовании для оценки размера программного обеспечения примеров из унифицированного языка моделирования (Unified Modeling Language - UML). UCP оценивает многие элементы, такие как исполнители, техническая сложность и сложность среды. Затем все они вставляются в формулу для расчета общего размера.
UCP = (UUCW + UAW) × TCF × ECF
Где:
UUCW: нескорректированный вес прецедента;
UAW: нескорректированный вес исполнителя;
TCF: коэффициент технической сложности;
ECF: коэффициент сложности среды.
Function Point Analysis (FPA)
Концептуально этот метод очень похож на метод Use Case Point. Функциональные требования подразделяются на пять категорий: выходы, запросы, входы, внутренние файлы и внешние интерфейсы. Затем функции присваивается число функциональных баллов в зависимости от ее сложности. Оценки рассчитывается по следующей формуле:
FP = UAF × VAF
Где:
FP: функциональный балл;
UAF: нескорректированный функциональный балл;
VAF: поправочный коэффициент.
Трехточечные оценки
Этот метод снимает неопределенности оценки с использованием метода оценки и анализа программы (Program Evaluation and Review Technique - PERT). Метод PERT вычисляет общую оценку по трем оценкам и анализирует результат с помощью математической формулы.
E = (O + 4M + P) /6
Где:
E: оценка;
O: оптимистический сценарий для наилучшего случая;
P: пессимистический сценарий для наихудшего случая;
M: наиболее вероятный сценарий.
Гибкие методы оценки
Одно из основных различий между оценками на основе традиционных методов и гибких методов заключается в использовании концепции относительной оценки. При гибкой оценке не существует абсолютной оценки в днях или часах. Вместо этого используются сюжетные баллы (story points). Многие исследования показали, что при использовании сравнений оценки становятся точнее. Например, взяв в руки две сумки, вы сможете оценить, что одна из них тяжелее другой, но не сможете с уверенностью сказать, сколько весит каждая сумка. В следующих разделах мы расскажем о некоторых наиболее популярных методах гибкой оценки.
Покер планирования
Покер планирования – один из самых популярных методов гибкой оценки. Он гарантирует активное участие всех членов через игру. Игра начинается с раздачи каждому члену группы набора карт. Каждый набор карт содержит собственный номер, в значительной степени соответствующий последовательности чисел Фибоначчи: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 и т.д. Как видно из рисунка 4, эти числа представляют собой относительную оценку описания функциональности (сюжета). Ноль означает, что сюжет слишком тривиальный; 20 означает, что сюжет нужно разбить на более мелкие. Числа Фибоначчи используются для того, чтобы создать неопределенность, которая ведет к обсуждению, особенно при больших числах. Но вернемся к игре. Каждый член команды начинает оценивать некоторый сюжет и показывает карту с оценкой этого сюжета. Члены группы, давшие наибольшую и наименьшую оценки, излагают свои аргументы. Эти объяснения заставляют команду переосмыслить рассуждения, после чего участники обмениваются опытом и предположениями. Вся команда переоценивает сюжет снова и снова, пока не придет к консенсусу.
- 1. Процессы жизненного цикла систем (на основе гост р исо/мэк 15288).
- 2. Структура и функциональное назначение процессов жизненного цикла программных средств (на основе iso/iec 12207).
- 3. Модель качества и критерии качества программных средств (на основе iso/iec 9126 и iso/iec 25010).
- 4. Оценка зрелости процессов создания и сопровождения программных средств на основе методологии смм и cmmi (на основе iso/1ec 15504).
- 5. Система менеджмента информационной безопасности (на основе серии iso/iec 27000).
- 6. Модели жизненного цикла программного обеспечения. Классические и гибкие модели разработки программного обеспечения.
- 7. Требования к системе менеджмента качества (на основе гост р исо 9001-2015).
- 8. Требования к качеству готового к использованию программного продукта и инструкции по тестированию (на основе гост исо/мэк 25051).
- 9. Процесс оценки качества программного продукта (на основе гост р исо/мэк 25040 и гост р исо/мэк 25041).
- 10. Верификация и валидация программного обеспечения. Процессы менеджмента тестирования. Статическое и динамическое тестирование (на основе гост р 56920 и гост р 56921).
- 11. Программный продукт. Жизненный цикл программного продукта. Модели жизненного цикла программного обеспечения.
- V модель (разработка через тестирование)
- 12. Принципы и процессы сертификации программной продукции.
- 13. Классификация систем управления базами данных.
- 14. Основные этапы проектирования реляционных баз данных.
- 15. Поиск научно-технического информации. Цель, методы и формы представления результатов.
- 16. Научные документы. Виды, назначение и области применения.
- 17. Системный анализ. Цели, задачи, методы.
- 18. Системный анализ. Задачи и область применения вычислительного эксперимента в системном анализе.
- 19. Архитектура вычислительной системы. Определение, виды, условия выбора.
- 20. Архитектура «клиент – сервер». Определение, области применения, требования к программным средствам, рассчитанным на функционирование в архитектуре «клиент – сервер».
- 21. Открытая вычислительная система. Определение, области применения, модель взаимодействия открытых систем.
- 22.Стандартизация сетевых технологий. Сетевая модель osi.
- 23.Понятие протокола и стека протоколов. Сетевая модель и стек протоколов tcp/ip.
- 24.Понятие инкапсуляции и декапсуляции. Протокольные блоки данных (pdu).
- 25.Физические среды передачи данных.
- 26.Концепции беспроводных сетей.
- 27.Сетевой коммутатор. Сети на основе коммутаторов.
- 28.Виртуальные локальные сети. Протоколы ieee 802.1q и vtp.
- 30.Преобразование и трансляция сетевых адресов (arp и nat).
- 31. Понятие маршрутизации. Назначение, виды и принципы маршрутизации.
- 32. Статическая и адаптивная маршрутизация. Протоколы маршрутизации.
- 33. Протоколы транспортного уровня (tcp и udp).
- 34. Система доменных имен (dns). Назначение и принцип работы.
- 35. Прикладные службы tcp/ip. Протоколы http и https.
- 36. Понятие защиты информации. Основные характеристики защищаемой информации.
- 37. Понятие угрозы безопасности информации. Основные виды угроз.
- 38. Каналы утечки конфиденциальной информации.
- 39. Сущность системно-концептуального подхода к защите информации в компьютерных системах.
- 40. Сущность организационной защиты информации.
- 41. Правовое обеспечение информационной безопасности.
- 42. Средства информационно-технической защиты информации.
- 43. Программные средства защиты информации. Их достоинства и недостатки.
- 44. Требования к комплексным системам защиты информации.
- 45. Способы несанкционированного доступа к информации в компьютерных системах.
- 46. Способы аутентификации пользователей в компьютерных системах. Их достоинства и недостатки.
- 47. Искусственный интеллект. Определение, назначение, области применения.
- 48. Методы оценки размера программного обеспечения при управлении программными проектами.
- 49. Методы оценки трудозатрат, длительности и стоимости выполнения программного проекта.
- 50. Методы кодирования текстовой, графической и звуковой информации в эвм. Аналоговые, дискретные и цифровые сигналы.
- Разделы цос
- 51. История создания, принципы работы и основные сервисы сети Интернет.
- 52. Представление данных в эвм. Единицы измерения информации. Двоичные приставки по гост 8.417-2002 и iec 80000-13.
- 53. Принципы и архитектура фон Неймана.
- 54. Порядок обработки команд микропроцессором. Прерывания. Типы прерываний.
- 55. Поколения эвм, основные особенности.
- 56. Классификация запоминающих устройств в эвм. Современные реализации запоминающих устройств.
- 57. Алгебра логики. Основные законы алгебры логики. Применение алгебры логики в информатике.
- 58. Понятие алгоритма. Методы оценки алгоритмической сложности.
- 59. Понятие системы. Системный анализ. Применение системного анализа в информатике.
- 60. Теория формальных грамматик. Основные понятия и положения. Применение в информатике.
- 61. Теория вероятностей. Основные понятия и положения. Применение в информатике.
- 62. Математические методы оптимизации и их применение в информатике.
- 63. Понятие компьютерного моделирования. Вычислительный эксперимент.
- 64. Структурное программирование. Понятия и принципы.
- 65. Объектно-ориентированное программирование. Понятия и принципы.
- 66. Декларативные языки программирования и их сфера применения.
- 67. Событийно-ориентированное программирование.
- 68. Многопоточное программирование. Процесс и поток выполнения. Средства синхронизации потоков.
- 69. Основные алгоритмы и структуры данных применяемые в вычислительных системах.
- 70. Приёмы (шаблоны) объектно-ориентированного проектирования.
- 71. Теория графов. Основные понятия. Решаемые задачи.
- 72. Средства моделирования при разработке программного обеспечения.
- 73. Инструментальные средства разработки программного обеспечения.
- 74. Методологии разработки программного обеспечения. Классификация. Особенности применения.
- 75. Программные средства для организации совместной разработки программного обеспечения.
- 76. Программный продукт. Жизненный цикл программного продукта.
- 77. Отличие объектно-ориентированного программирования от процедурного.
- 78. Инкапсуляция как парадигма объектно-ориентированного программирования. Примеры использования.
- 79. Наследование как парадигма объектно-ориентированного программирования. Примеры использования.
- 80. Полиморфизм как парадигма объектно-ориентированного программирования. Примеры использования.
- 81. Принципы и архитектура эвм фон Неймана.
- 82. Архитектура вычислительных систем. Таксономия Флинна.
- 83. Методы повышения производительности микропроцессоров. Конвейеризация и суперскалярность. Hyper-threading.
- 84. Oltp и olap системы. Отличия Data Mining от других методов анализа данных.
- 85. Однородные линейные динамические системы, их решение с помощью характеристического уравнения.
- 86. Однородные линейные динамические системы, их решение с помощью операционным методом.
- 87. Точки покоя линейных динамических систем. Типы точек покоя для линейной динамической системы второго порядка.
- 88. Устойчивость решений линейных динамических систем. Условие устойчивости решений.
- 89. Равномерное распределение случайной величины.
- 90. Показательное распределение случайной величины.
- 91. Нормальное распределение случайной величины.
- 92. Понятие вариации. Необходимое условие существования экстремума функционала.
- 93. Уравнение Эйлера – Лагранжа для исследования функционала на экстремум.
- 94. Постановка задачи линейного программирования и основные методы решения.
- 95. Постановка задачи целочисленного линейного программирования и основные методы решения.
- 96. Бизнес-процесс. Средства анализа и моделирования. Автоматизация бизнес- процессов.
- 97. Архитектура вычислительной системы, разновидности.
- 98. Аппаратное обеспечение вычислительных систем.
- 99. Архитектура вычислительной сети
- 100. Виртуализация вычислительных ресурсов. "Облачные" вычисления
- 101. Способы реализации человеко-машинного взаимодействия.
- 102. Принципы защиты информации в информационных системах и телекоммуникационных сетях.
- 1.Правовые принципы защиты данных
- 2. Организационные принципы защиты данных
- 3. Принципы защиты информации от тср (технические средства разведки)
- 103. Операционная система. Понятие и основные задачи. Классификация операционных систем.
- 1) По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
- 3) По разделяемому процессорному времени (Только для многозадачных ос).
- 5) По поддержке многонитевости систем:
- 104. Файловая система, принципы построения и основные функции.
- 105. Понятие машинного обучения и искусственного интеллекта. Решаемые задачи.
- 106. Центр обработки данных. Ключевые характеристики цод. Управление цод.
- 110. Виртуализация. Виртуальные ресурсы. Характеристики облачных вычислений.
- 2. Кластеризация компьютеров и распределенные вычисления.
- 3. Разделение ресурсов.
- 4. Инкапсуляция.
- 111. Облачные услуги и модели развертывания. Инфраструктура облачных вычислений.
- 112. Сетевые операционные системы. Сетевые службы и сетевые сервисы. Одноранговые и серверные сетевые ос. Домен.
- 113. Генетические алгоритмы. Основные понятия, принципы и предпосылки генетических алгоритмов. Достоинства и недостатки генетических алгоритмов.
- 114. Методы сжатия графической информации. Области применения различных методов.
- 115. Методы сжатия звуковой информации. Области применения различных методов.
- 116. Понятие виртуальной и дополненной реальности. Средства реализации.
- 117. Компьютерная графика. Различные методы и технологии реализации.
- 118. Системы управления базами данных, разновидности.
- 1) Файл-серверные:
- 2) Клиент-серверные:
- 3) Встраиваемые:
- 119. Принципы построения реляционных баз данных. Нормализация данных.
- 120. Распределенные базы данных. Принципы построения и решаемые задачи.
- 121. Понятие открытой вычислительной системы. Классификация. Принципы построения.
- 122. Методы анализа информационных систем.
- 123. Средства мониторинга сетевого трафика.
- 124. Метод Монте-Карло. Принципы построения моделей для анализа эффективности информационных систем (основа построения, достоинства и недостатки).
- 125. Методы управления сетью: коммутация каналов, коммутация пакетов.
- 126. Методы балансировки трафика
- 127. Локальные вычислительные сети (топология, методы доступа)
- 128. Методы повышения достоверности при передаче информации
- 129. Понятие качества обслуживания в компьютерных сетях. Средства обеспечения качества обслуживания.
- 130. Назначение и принцип работы интернет сети
- 131. Основные протоколы сети Интернет, их назначение.
- 132. Автоматизированные информационные системы.
- 133. «Облачные вычисления». Определение, назначение, особенности, области применения.
- 134. Встроенная (встраиваемая) вычислительная система. Определение, назначение, виды, области применения.
- 135. Техническое задание на программное средство. Назначение, роль в жизненном цикле, общая структура.
- 136. Системы автоматизированного проектирования (сапр).
- 137. Экспертные системы. Задачи и область применения.
- 138. Автоматизированные системы обработки информации и управления. Понятие, сферы применения.
- 139. Теория массового обслуживания. Основные принципы. Применение в информатике (основные модели и критерии оценки эффективности).
- 140. Информационные технологии в науке и образовании.
- 141. Прикладное программное обеспечение сетевых технологий (Сетевые операционные системы. Сетевые пакеты прикладных программ).
- 142. Принципы построения распределенных информационных систем. Промежуточное программное обеспечение для обработки сообщений.
- 143. Сервисно-ориентированная архитектура распределенных приложений. Основные протоколы.
- 144. Корпоративные информационные системы (класс erp). Разновидности. Решаемые задачи.
- 145. Новые информационно коммуникационных технологий как база становления информационного общества.
- 146. Модели жизненного цикла программного обеспечения.
- V модель (разработка через тестирование)
- 147. Основные принципы структурного анализа систем.
- 148. Консалтинг в области информационных технологий.
- 149. Методика проведения обследования объектов автоматизации.
- 150. Методы построения и анализа моделей деятельности предприятия.
- 151. Структурно-функциональные модели (sadt).
- 152. Модели потоков данных (dfd).
- 153. Модели «сущность-связь» (erd).
- 154. Нормализация модели данных.
- 155. Объектно-ориентированный язык визуального моделирования uml.
- 156. Методология rup: назначение и основные характеристики.
- 157. Диаграммы вариантов использования (use-cases diagram).
- 158. Диаграммы классов (class diagram). Основные объекты диаграммы.
- 159. Диаграммы деятельности (activity diagram). Основные объекты диаграммы.
- 160. Диаграммы последовательности (sequence diagram).
- Линия жизни (Life Line)
- Активация, фрагмент выполнения (Activation Bar, Execution Occurances)
- Сообщение, Стимул (Message, Stimulus)