Информационные технологии
Лекция 3
Схемы взаимодействия между заказчиком и разработчиком ПО
Схемы взаимодействия между заказчиком и разработчиком ПО
Схемы взаимодействия между заказчиком и разработчиком ПО
Схемы взаимодействия между заказчиком и разработчиком ПО
Качество программного обеспечения
Качество программного обеспечения
Характеристики качества программного обеспечения
Характеристики качества программного обеспечения
Характеристики качества программного обеспечения
Характеристики качества программного обеспечения
Характеристики качества программного обеспечения
Характеристики качества программного обеспечения
Управление качеством ПО на стадиях жизненного цикла
Значимость характеристик качества для участников программного проекта
Как определить достаточный уровень качества ПО?
Пять уровней зрелости в модели CMM
Основные элементы стандарта ISO/IEC 15504 (SPICE)
ISO/IEC 15504 (SPICE)
Базовые принципы административного управления жизненным циклом и качеством программных средств
Базовые принципы административного управления жизненным циклом и качеством программных средств
411.50K

Информационные технологии. Лекция 3. Качественное программное обеспечение и пути его достижения

1. Информационные технологии

2. Лекция 3

Качественное программное обеспечение и
пути его достижения. Стандарты качества
программного обеспечения. Современные
модели качества программного
обеспечения

3.

Успешная организация,
занимающаяся разработкой
ПО, создает и выполняет
задачи поставки качественных
программ, отвечающих
требованиям потребителей и
укладывающихся в
определенные временные и
финансовые рамки

4.

Проект
Программный
проект
Успех проекта определяют
как изначально планируемую
возможность его реализации
в пределах определенного
графика и сметы
Успех заключается в
своевременной поставке
системы, созданной в
соответствии с
запланированной сметой,
отвечающей требованиям
потребителя и работающей
в заданных условиях

5.

Программный проект может
подразумевать разработку одного из
видов ПО:
потребительского ПО под которым понимаются
программы, разработанные для реализации в розницу
(например, компьютерные игры, обучающие программы)
производственного ПО, т.е. больших систем, которые
разработаны для приобретения компаниями и
организациями без каких-либо модификаций (САПР,
издательские системы)
заказного ПО - систем, разработанных в соответствии с
определенным контрактом
компонентов, выполненных по специальному заказу,
позволяющих строить патентованные системы, состоящие
из многократно используемых компонентов, которые
устанавливаются по конкретным техническим условиям
заказчика
встроенного ПО

6. Схемы взаимодействия между заказчиком и разработчиком ПО

«Свой» заказчик
доступность заказчика в любое время
устойчивое представление о нуждах и
потребностях заказчика, сформировавшееся за
годы сотрудничества
достаточно низкие требования к качеству
программного обеспечения
постоянное сопровождение своих продуктов, их
доработка и совершенствование
устойчивые финансовые взаимоотношения
между заказчиком и разработчиками
долгосрочные планы по сотрудничеству

7. Схемы взаимодействия между заказчиком и разработчиком ПО

Продукт под заказ
доступность заказчика можно охарактеризовать как
«периодическую»
представление о нуждах и потребностях заказчика
формируется на базе произведенного обследования
заранее оговариваются требования к программному
обеспечению, согласно которым производится приемка
готового продукта
разработчик в течение заранее оговоренного периода
времени поддерживает поставленный продукт
финансовые отношения оформляются в виде разового
контракта
планы по дальнейшему сотрудничеству в значительной
мере зависят от качества и устойчивости продукта,
который разработчик поставил заказчику

8. Схемы взаимодействия между заказчиком и разработчиком ПО

Тиражируемый продукт
конкретного заказчика, формирующего требования к
продукту, не существует
представление о нуждах и потребностях настоящих и
потенциальных пользователей формируются на основе
анализа рынка и контактов с типичными
представителями пользователей
обратная связь с пользователями продукта
осуществляется в основном посредством электронной
почты или «горячей линии»
качество программного обеспечения контролируется
только внутренним отделом качества, широко
используется бета-тестирование
разработчик в течение заранее оговоренного периода
времени поддерживает поставленный продукт
финансовые отношения существуют в виде
фиксированной цены на продукт

9. Схемы взаимодействия между заказчиком и разработчиком ПО

Аутсорсинг
разработчик не контактирует с конечным потребителем своей
продукции. Вся информация предоставляется в виде
технического задания крупной компанией-подрядчиком
представление о нуждах и потребностях заказчика
формируются только на основе информации, представленной
фирмой-подрядчиком
подрядчик предоставляет свои требования к процессу
производства ПО и его качеству
поддержку продукта, как правило, осуществляет подрядчик
финансовые отношения существуют в виде индивидуальных
контрактов между членами команды разработчика и
подрядчиком. Вариантом является заключение договора между
подрядчиком и юридическим лицом, действующим от имени
команды разработчиков

10. Качество программного обеспечения

Определение ISO: Качество - это полнота свойств и
характеристик продукта, процесса или услуги, которые
обеспечивают способность удовлетворять заявленным или
подразумеваемым потребностям
Определение IEEE: Качество программного обеспечения - это
степень, в которой оно обладает требуемой комбинацией
свойств
Стандарты качества ПО:
ISO/IEC 9126:1-4:2002 (ГОСТ Р ИСО/МЭК 9126-93)
ISO/IEC 14598 – набор стандартов, регламентирующий
способы оценки характеристик качества
В совокупности они образуют модель качества - SQuaRE
(Software Quality Requirements and Evaluation)

11. Качество программного обеспечения

внешнее качество, заданное требованиями
заказчика в спецификациях и отражающееся
характеристиками конечного продукта;
внутреннее качество, проявляющееся в
процессе разработки и других промежуточных
этапах жизненного цикла ПС;
качество при использовании в процессе
нормальной эксплуатации и результативность
достижения потребностей пользователей с
учетом затрат ресурсов (эксплуатационное
качество)

12.

Система измерения качества

13. Характеристики качества программного обеспечения

Функциональные возможности
(Functionality)
Способность программного обеспечения
реализовать установленные или
предполагаемые потребности
пользователей
Пригодность для применения по
назначению (Suitability)
Наличие и соответствие набора функций
конкретным задачам
Правильность/корректность
реализации требований (Accuracy)
Способность ПО взаимодействовать с
конкретными системами
Согласованность (Compliance)
Способность программного обеспечения
придерживаться соответствующих
стандартов или соглашений, или
подробных рекомендаций
Защищенность/безопасность
функционирования (Security)
Способность ПО предотвращать
несанкционированный доступ
(случайный или преднамеренный) к
программам и данным

14. Характеристики качества программного обеспечения

Надежность (Reliability)
Способность программного обеспечения
сохранять свой уровень качества
функционирования при установленных
условиях за установленный период
времени
Стабильность/уровень завершенности Характеризуется частотой отказов,
(Maturity)
вызванных наличием ошибок в
программном обеспечении
Устойчивость к ошибке (Fault
tolerance)
Способность программного обеспечения
поддерживать определенный уровень
качества функционирования в случаях
программных ошибок или нарушения
определенного интерфейса
Восстанавливаемость после
проявления дефектов (Recoverability)
Способность программного обеспечения
восстанавливать уровень качества
функционирования и данные,
непосредственно поврежденные в случае
отказа. Характеризуется необходимыми
для этого затратами усилий и времени

15. Характеристики качества программного обеспечения

Практичность (Usability)
Характеризуется объемом работ,
требуемых для использования
программного обеспечения
определенным или предполагаемым
кругом пользователей
Понятность функций и
документации (Understandability)
Характеризует усилия пользователя
по пониманию общей логической
концепции ПО и его применимости
Изучаемость процессов
функционирования и применения
(Learnability)
Характеризует усилия пользователя
по обучению применению
программного обеспечения
(например, оперативному
управлению, вводу, выводу)
Простота использования
(Operability)
Характеризует усилия пользователя
по эксплуатации и оперативному
управлению ПО

16. Характеристики качества программного обеспечения

Эффективность (Efficiences)
Определяется соотношением между
уровнем качества функционирования
программного обеспечения и
объемом используемых ресурсов при
установленных условиях
Временная эффективность
реализации комплекса программ
(Time behavior)
Характеризуется временем отклика и
скоростью выполнения функций
Используемость вычислительных
ресурсов (Resource behavior)
Характеризуется объемом
используемых ресурсов и
продолжительностью использования
ПО при выполнении функции

17. Характеристики качества программного обеспечения

Сопровождаемость
(Maintainability)
Характеризует объем работ,
требуемых для проведения
конкретных изменений
(модификаций)
Анализируемость (Analysability)
Характеризует усилия, необходимые
для диагностики недостатков или
случаев отказов или определения
составных частей для модернизации
Изменяемость компонентов и
комплекса программ (Changeability)
Характеризует усилия, необходимые
для модификации, устранения отказа
или для изменения условий
эксплуатации
Устойчивость (Stability)
Тестируемость изменений при
сопровождении (Testability)
Характеризует риск от
непредвиденных эффектов
модификации
Характеризует усилия, необходимые
для проверки модифицированного
программного обеспечения

18. Характеристики качества программного обеспечения

Мобильность (Portability)
Способность программного обеспечения
быть перенесенным из одного окружения
в другое
Адаптируемость к изменениям среды
(Adaptability)
Характеризует удобство адаптации ПО к
различным конкретным условиям
эксплуатации, без применения других
действий или способов, кроме тех, что
предназначены для этого в
рассматриваемом программном
обеспечении
Простота
установки/внедрения/инсталляции после
переноса (Installability)
Характеризует усилия, необходимые для
внедрения программного обеспечения в
конкретное окружение
Соответствие (Confortncnce)
Взаимозаменяемость компонентов при
корректировке комплекса программ
(Replaceability)
Способность программного обеспечения
подчиняться стандартам или
соглашениям, относящимся к
мобильности
Характеризует простоту и трудоемкость
применения данного ПО вместо другого
конкретного программного средства в
среде этого средства

19. Управление качеством ПО на стадиях жизненного цикла

целевое качество – необходимое и достаточное качество,
которое отражает реальные потребности пользователя
затребованное (установленное) качество продукта – тот
уровень значений характеристик внешнего качества, который
фактически заявлен в спецификации требований к качеству и
должен использоваться как цель для его проверки
качество программного проекта – внутреннее качество ПС,
представленное в описании основных частей или всего
проекта, например, архитектуры программного обеспечения,
структуры программ, стратегии проектирования интерфейса
пользователя и т.п.
оцененное (или прогнозируемое) качество продукта – качество,
которое оценивается или предсказывается как качество
конечного программного продукта на каждой стадии разработки
на основании характеристик качества программного проекта
качество поставляемого продукта – это качество готового к
поставке продукта, как правило, протестированного в
моделируемой среде на моделируемых данных
эксплуатационное качество – качество программной системы,
измеряемое в терминах результатов ее использования, а не
свойств

20.

Время простоя ПО при различных
значениях работоспособности

21. Значимость характеристик качества для участников программного проекта

Характеристика
качества
Пользователь Покупатель Инвестор
Функциональность
+
+
Надежность
+
Практичность
+
+
Эффективность
+
+
+
Сопровождаемость
+
Мобильность
+
+

22. Как определить достаточный уровень качества ПО?

Чтобы принять решение о том,
достаточно ли качественным является
разработанное ПО, надо сравнить
стоимость непоставки программного
продукта с эксплуатационной
стоимостью в случае его поставки

23. Пять уровней зрелости в модели CMM

24. Основные элементы стандарта ISO/IEC 15504 (SPICE)

25. ISO/IEC 15504 (SPICE)

Оценка процесса происходит путем сравнения процесса
разработки ПО, существующего в данной организации, с
описанной в стандарте моделью. Это помогает оценить
эффективность процессов, определить причины
ухудшения качества и связанные с этим издержки во
времени или стоимости
Определение возможностей процесса позволяет
оценить возможности улучшения данного процесса
В результате предыдущих шагов, в организации может
появиться понимание необходимости улучшения того или
иного процесса. К этому моменту цели
совершенствования процесса уже четко сформулированы
и остается только техническая реализация поставленных
задач. После этого весь цикл работ начинается сначала

26. Базовые принципы административного управления жизненным циклом и качеством программных средств

Принцип 1: ориентация предприятия-разработчика на
потребителя-заказчика. «Предприятия зависят от своих
потребителей и, таким образом, должны понимать текущие и
будущие потребности потребителей-заказчиков, удовлетворять
их требования и стремиться превзойти их ожидания»
Принцип 2: лидерство-руководство. «Лидеры обеспечивают
единство назначения и направления деятельности предприятия.
Они должны создавать и поддерживать внутреннюю
окружающую среду, в которой специалисты могут в полной мере
участвовать в достижении стратегических целей предприятия»
Принцип 3: вовлечение персонала. «Люди составляют
сущность предприятия на всех уровнях, и их полноценное
участие в деятельности способствует применению их
способностей на благо целей предприятия»
Принцип 4: процессный подход. «Желаемый результат
достигается более эффективно, когда требуемые ресурсы и
деятельность специалистов предприятия управляются как
единый связанный процесс»

27. Базовые принципы административного управления жизненным циклом и качеством программных средств

Принцип 5: системный подход к административному
управлению. «Выявление и понимание задач и
административное управление системой взаимосвязанных
процессов для заданной стратегической цели, повышает
эффективность и результативность предприятия»
Принцип 6: постоянное усовершенствование.
«Непрерывное усовершенствование процессов и повышение
качества продукции должно быть постоянной стратегической
целью предприятия и его специалистов»
Принцип 7: подход к принятию решений основанный на
фактах. «Эффективные решения должны базироваться на
анализе только реальных данных и достоверной
информации»
Принцип 8: взаимовыгодные отношения с
поставщиками. «Предприятие-пользователь и его
поставщики-разработчики взаимозависимы, и
взаимовыгодные отношения между ними повышают
способность обоих производить качественную продукцию»
English     Русский Правила