- •Понятие по: программа, программный комплекс, программный продукт, системный программный продукт.
- •Философия развития по. Тенденция развития по.
- •Инженерия по. Тенденции затрат на по.
- •Профессиональные и этические требования к специалистам по по. Основные проблемы, стоящие перед специалистами по по.
- •Управление качеством по и работа менеджеров по качеству.
- •Стандарт iso 9000 и управление качеством.
- •Вероятностные методы в оценке качества по.
- •Стандарты на продукцию и процесс разработки по.
- •Стандарты на техническую документацию.
- •Измерение показателей по. Характеристики качественного по.
- •Показатели программного продукта.
- •Объектно-ориентированные показатели.
- •Обзор моделей создания по.
- •Каскадная модель. Достоинства и недостатки каскадной модели.
- •Эволюционная модель. Два подхода к реализации эволюционного метода.
- •Формальная разработка систем.
- •Разработка по на основе ранее созданных компонентов.
- •Модель Миллса. Экстремальное программирование.
- •Спиральная модель разработки. Спиральная модель жизненного цикла разработки по
- •Спецификация по. Основные этапы.
- •Этапы процесса проектирования.
- •Управление проектами. Отличие программных проектов от технических.
- •Планирование проекта. График работ.
- •Анализ рисков.
- •Современный подход к проектированию по. V-цикл проектирования и разработки по.
- •Организация групп программистов.
- •Планирование проекта. План проекта. Контрольные метки этапов работ. График работ. Временные и сетевые диаграммы.
- •Методы проектирования.
- •Программирование и отладка.
- •Объектно-ориентированный анализ и проектирование (ооа/ооп). Методология объектно-ориентированного моделирования. Понятие объекта.
- •Сложные объекты. Использование объектной технологии. Объекты м классы объектов в uml. Взаимодействие между объектами.
- •Моделирование классов и отношений.
- •Пятиэтапный процесс тестирования. Альфа-тестирование, бетта-тестирование.
- •Эволюция программных систем.
- •Разработка по на основе визуального моделирования. Case – средства для разработки по. Ibm Rational & Rational Rhapsody.
- •Стандарты, регламентирующие Жизненный цикл по и процессы разработки.
- •Rup. Фазы и дисциплины унифицированного процесса.
- •Анализ требований на фазе начало up. Артефакты начальной фазы.
- •Стандарт uml 2.2.
- •Этапы проектирования ис с применением uml.
- •Диаграммы прецендентов.
- •Диаграммы классов.
- •Диаграмма объектов.
- •Диаграммы взаимодействия.
- •Метод ecm (Enterprise Component Modeling) в uml. Опишите игру в кости с помощью uml-diagram.
- •Методы верификации объектно-ориентированных программ.
- •Метод тестирования программ.
- •Организация проведения тестирования. Классификация ошибок.
- •Требования к покрытию критичных приложений тестами.
Модель Миллса. Экстремальное программирование.
Статистическая модель - это математическая модель надежности программного обеспечения, которая строится на статистическом анализе количества ошибок в программе. Модель строится на твердом статистическом фундаменте.
Сначала программа "засоряется" некоторым количеством известных ошибок.
Предположим, что в программу было внесено s ошибок, после чего разрешено начать тестирование. Пусть при тестировании обнаружено п + v ошибок, причем, п - число найденных собственных ошибок, a v — число найденных внесенных ошибок. Тогда оценка для N(общее число ошибок) по методу максимального правдоподобия будет такой: N = s n / v.
Вторая часть модели связана с выдвижением и проверкой гипотез об N. Примем, что в программе имеется не более к собственных ошибок, и внесем в нее еще s ошибок. Теперь программа тестируется, пока не будут обнаружены все внесенные ошибки, причем в этот момент подсчитывается число обнаруженных собственных ошибок (обозначим его п). Уровень значимости С вычисляется по следующей формуле:
С = 1 , при п > к,
С = s / (s + к + 1) , при п <= к.
Величина С является мерой доверия к модели. Это вероятность того, что модель будет правильно отклонять ложное предположение.
Можно модифицировать формулу для С так, чтобы С можно было оценить после того, как найдено j внесенных ошибок (j <= s):
С = 1 , при п > к,
С = (s / (j -1) ) / ( (s + к + 1) / (к + j) ) , при п <= к.
Экстрема́льное программи́рование (англ. Extreme Programming, XP) — одна из гибких методологий разработки программного обеспечения. Авторы методологии — Кент Бек, Уорд Каннингем, Мартин Фаулер и другие.
Основные приёмы XP
Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:
Короткий цикл обратной связи (Fine scale feedback)
Разработка через тестирование (Test driven development)
Игра в планирование (Planning game)
Заказчик всегда рядом (Whole team, Onsite customer)
Парное программирование (Pair programming)
Непрерывный, а не пакетный процесс
Непрерывная интеграция (Continuous Integration)
Рефакторинг (Design Improvement, Refactor)
Частые небольшие релизы (Small Releases)
Понимание, разделяемое всеми
Простота (Simple design)
Метафора системы (System metaphor)
Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
Стандарт кодирования (Coding standard or Coding conventions)
Социальная защищенность программиста (Programmer welfare):
40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Спиральная модель разработки. Спиральная модель жизненного цикла разработки по
Спиральная модель воплощает в себе преимущества каскадной модели. При этом в нее также включены анализ рисков, управление ими, а также процессы поддержки и менеджмента. Здесь также предусмотрена разработка программного продукта при использовании метода прототипирования или быстрой разработки приложений посредством применения языков программирования и средств разработки четвертого поколения (и выше).
Модель отображает базовую концепцию, которая заключается в том, что каждый цикл представляет собой набор операций, которому соответствует такое же количество стадий, как и в модели каскадного процесса. Причем принимается во внимание каждая составляющая часть продукта, и каждый уровень сложности, начиная с общей формулировки потребностей и заканчивая кодированием каждой отдельной программы.
Преимущества спиральной модели
При использовании спиральной модели при выполнении проекта, для которого она в достаточной мере подходит, проявляются следующие преимущества:
• спиральная модель разрешает пользователям "увидеть" систему на ранних этапах, что обеспечивается посредством использования ускоренного прототипирования в жизненном цикле разработки ПО;
• обеспечивается определение непреодолимых рисков без особых дополнительных затрат;
• эта модель разрешает пользователям активно принимать участие при планирова-нии, анализе рисков, разработке, а также при выполнении оценочных действий;
• она обеспечивает разбиение большого потенциального объема работы по разра-ботке продукта на небольшие части, в которых сначала реализуются решающие функции с высокой степенью риска, позволяющие устранить необходимость продолжения работы над проектом (таким образом, в случае необходимости становится возможным прекратить работу над проектом, и уменьшаются расходы);
• в модели предусмотрена возможность гибкого проектирования, поскольку в ней воплощены преимущества каскадной модели, и в тоже время, разрешены итерации по всем фазам этой же модели;
• реализованы преимущества инкрементной модели, а именно выпуск инкрементов, сокращение графика посредством перекрывания инкрементов, рассортированных по версиям, и неизменяемость ресурсов при постепенном росте системы;
• здесь не ставится цель выполнить невозможное — довести конструкцию до совершенства;
• обратная связь по направлению от пользователей к разработчикам выполняется с высокой частотой и на ранних этапах модели, что обеспечивает создание нужного продукта высокого качества;
• происходит усовершенствование административного управления над процессом обеспечения качества, правильностью выполнения процесса разработки, затратами, соблюдением графика и кадровым обеспечением, что достигается путем выполнения обзора в конце каждой итерации;
• повышается продуктивность благодаря использованию пригодных для повторного использования свойств;
• повышается вероятность предсказуемого поведения системы с помощью уточнения поставленных целей;
• при использовании спиральной модели не нужно распределять заранее все необходимые для выполнения проекта финансовые ресурсы;
• можно выполнять частую оценку совокупных затрат, а уменьшение рисков связано с затратами.
Недостатки спиральной модели
При использовании спиральной модели относительно проекта, для которого она не подходит в достаточной мере, проявляются следующие недостатки:
• если проект имеет низкую степень риска или небольшие размеры, модель может оказаться дорогостоящей. Оценка рисков после прохождения каждой спирали связана с большими затратами;
• модель имеет усложненную структуру, поэтому может быть затруднено ее применение разработчиками, менеджерами и заказчиками;
• серьезная нужда в высокопрофессиональных знаниях для оценки рисков;
• спираль может продолжаться до бесконечности, поскольку каждая ответная реак-ция заказчика на созданную версию может порождать новый цикл, что отдаляет окончание работы над проектом (принятие общего решения о прекращении про-цесса разработки);
• большое количество промежуточных стадий может привести к необходимости в обработке внутренней дополнительной и внешней документации;
• использование модели может оказаться дорогостоящим и даже недопустимым по средствам, так как время, затраченное на планирование, повторное определение целей, выполнение анализа рисков и прототипирование, может быть чрезмерным;
• при выполнении действий на этапе вне процесса разработки возникает необходи-мость в переназначении разработчиков;
• могут возникнуть затруднения при определении целей и стадий, указывающих на готовность продолжать процесс разработки на следующей итерации;
• отсутствие хорошего средства или метода прототипирования может сделать ис-пользование модели неудобным;
• в производстве использование спиральной модели еще не получило такого широ-кого масштаба, как применение других моделей.