Слайды и текст доклада
Pic.1
Компьютерное моделирование Жизненный цикл модели качество тестирование Сосновский Ю. В.
Pic.2
Технологические основы языков программирования высокого уровня Сложность задач Технологии программирования Структурное программирование Модульное программирование Объектный подход ОО и …
Pic.3
Сложность задач Сложные задачи порождают сложные программные системы
Pic.4
Как бороться со сложностью? Разработка ПО по сути проблем похожа на производство Процесс создания ПО имеет много аналогий с производственным процессом В любом производстве есть способы преодоления …
Pic.5
Технологии программирования Технология программирования – совокупность методов, приемов и средств для сокращения стоимости и повышения качества разработки программных систем
Pic.6
определения Программный продукт (ПП) - это программное обеспечение, предназначенное для удовлетворения потребностей пользователей широкого распространения и продажи (записанное на носителях данных и …
Pic.7
Модель жизненного цикла ПП – описание набора фаз (этапов, стадий) проекта по созданию ПО, в которых выполняются отдельные процессы, разбитые на операции и задачи Проект – это уникальный процесс, в …
Pic.8
Отладка (Debugging) – деятельность, направленная на установление точной природы известной ошибки, а затем - на исправление этой ошибки. Результаты тестирования являются исходными данными для отладки …
Pic.9
Процесс разработки ПО Основные этапы процесса разработки ПО: Сбор и анализ требований Разработка архитектуры Кодирование Тестирование Документирование Сопровождение
Pic.10
Жизненный цикл ПО Постановка задачи Постановка задачи (спецификация программы) означает точное, полное и понятное описание того, что происходит при выполнении конкретной программы Точность, т. е. …
Pic.11
жизненный цикл проекта PLCM Модель жизненного цикла - структура, состоящая из процессов, работ и задач, включающих в себя разработку, эксплуатацию и сопровождение программного продукта, охватывающая …
Pic.12
Уровни жизненного цикла Скотт Амблер (Scott W. Ambler): ЖЦ разработки программного обеспечения – проектная деятельность по разработке и развертыванию программных систем ЖЦ программной системы – …
Pic.13
PDCA-цикл «Подходящая» модель ЖЦ: направляет проект улучшает скорость разработки улучшает отслеживание и контроль над проектом минимизирует издержки и влияние рисков улучшает отношение с клиентом
Pic.14
Модели жизненного цикла ПО Каскадная (водопадная, нисходящая) Макетирование (прототипирование) Инкрементная Эволюционная
Pic.15
Стратегии создания ПО
Pic.16
каскадная модель жизненного цикла ПО
Pic.19
Каскадная модель актуальна … научно-вычислительного характера операционные системы и компиляторы системы реального времени и управления конкретными объектами повторная разработка типового продукта …
Pic.20
Модель с промежуточным контролем:
Pic.21
Макетирование (прототипирование)
Pic.22
Инкрементная модель жц разработки по
Pic.25
«+» не требуется заранее тратить средства, необходимые для разработки всего проекта в результате выполнения каждого инкремента получается функциональный продукт заказчик располагает возможностью …
Pic.26
снижается риск неудачи и изменения требований заказчики могут распознавать важные возможности продукта на ранних этапах разработки риск распределяется на несколько меньшие по размеру инкременты …
Pic.27
«--» в модели не предусмотрены итерации в рамках каждого инкремента определение полной функциональной системы должно осуществляться в начале жизненного цикла, чтобы обеспечить определение инкрементов …
Pic.28
Итерационная модель
Pic.29
Спиральная модель Спиральная модель была предложена как альтернатива каскадной модели, учитывающая повторяющийся характер разработки ПО Основные принципы спиральной модели можно сформулировать …
Pic.30
Спиральная (эволюционная) модель разработки ПО Программное обеспечение создается итерационно с использованием метода прототипирования. Требования изначально не могут быть осознаны и установлены …
Pic.31
Особенности спиральной модели Достоинством спиральной схемы - начиная с некоторой итерации, продукт можно предоставлять пользователю. сократить время до появления первых версий программного продукта; …
Pic.32
V-модель жизненного цикла V-образная модель была разработана как разновидность каскадной модели V-образная модель ЖЦ создана с целью помочь работающей над проектом команде в планировании с …
Pic.34
Преимущества V-модели в модели особое значение придается планированию, направленному на верификацию и аттестацию разрабатываемого продукта в модели предусмотрены аттестация и верификация всех внешних …
Pic.38
Актуальные методологии разработки ПО Agile-программирование Rational Unified Process (RUP) Ранняя идентификация и непрерывное устранение основных рисков. Концентрация на выполнении требований …
Pic.40
Гибкая разработка (Agile) Короткие циклы – итерации (программный проект в миниатюре) Личности и их взаимодействия важнее, чем процессы и инструменты (один офис) Работающее программное обеспечение …
Pic.41
Agile Manifesto удовлетворение клиента за счѐт ранней и бесперебойной поставки ценного ПО; приветствие изменения требований, даже в конце разработки ( это может повысить конкурентоспособность …
Pic.42
Agile Manifesto работающее ПО — лучший измеритель прогресса; спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок; постоянное внимание на …
Pic.43
Технология RAD Rapid Application Development — быстрая разработка приложений. Она предусматривает: ведение разработки небольшими группами (3-7 человек), каждая из которых проектирует и реализует …
Pic.44
Этапы RAD Бизнес-моделирование (моделируются информационные потоки между бизнес-функциями) Моделирование данных (набор объектов, которые требуются для поддержки бизнес-процессов) Моделирование …
Pic.45
Экстремальное программирование Цель экстремального программирования (ХР) — устранить высокую стоимость изменений, вносимых в ПО в процессе как разработки, так и эксплуатации. Цикл разработки в ХР …
Pic.46
Основные принципы ХР Планирование Частая смена версий Метафора Простой проект Тесты Переработка системы Программирование в паре Непрерывная интеграция
Pic.47
Короткий цикл обратной связи (Fine scale feedback) Короткий цикл обратной связи (Fine scale feedback) Разработка через тестирование (Test driven development) Игра в планирование (Planning game) …
Pic.48
рефакторинг Рефакторинг — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы В основе рефакторинга лежит …
Pic.49
Необходимость рефакторинга Дублирование кода Длинный метод Большой класс Длинный список параметров «Завистливые» функции — метод, который чрезмерно обращается к данным другого объекта Избыточные …
Pic.50
Scrum Технология (набор принципов), на которых строится процесс разработки, позволяющий в жѐстко фиксированные небольшие промежутки времени (спринты от 2 до 4 недель) предоставлять конечному …
Pic.51
С чего все начиналось Курица говорит свинье: «Давай откроем ресторан!» Свинья смотрит на курицу и отвечает: «Хорошая идея, и как мы его назовем?» Курица подумала и говорит: «Почему бы не назвать …
Pic.52
Роли «Свиньи» ScrumMaster — тот, кто ведѐт Scrum митинги. Является интерфейсом между менеджментом и командой (менеджер проекта или teamlead). Важно подчеркнуть, что Скрам Мастер не раздает задачи …
Pic.53
Product Backlog — приоритезированный список имеющихся на данный момент бизнес-требований и технических требований к системе. Включает в себя use cases, defects, enhancements, technologies, stories, …
Pic.54
Планирование спринта
Pic.55
Процесс. Встречи Планирование спринта (Planning Meeting) Митинг (Daily Scrum) Что сделано с момента предыдущего митинга до текущего? Что будет сделано с момента текущего митинга до следующего? Какие …
Pic.56
SCRUM Scrum - принципы разработки для предоставления пользователю работающего ПО с новыми возможностями в жёстко фиксированные сроки (спринты от 2 до 4 недель) Возможности ПО к реализации в очередном …
Pic.60
Соотношение SCRUM vs RUP
Pic.61
Общее соотношение подходов
Pic.63
Основные критерии качества ПО
Pic.64
Представление качества в стандарте ISO 9126
Pic.65
Критерии качества ПО Внешние характеристики: Корректность (наличие/отсутствие дефектов в спецификации, проекте и реализации) Практичность (легкость изучения и использования) Эффективность (степень …
Pic.66
ISO 9000 ISO 9001:2000 Quality management systems — Requirements. Models for quality assurance in design, development, production, installation, and servicing Системы управления качеством — …
Pic.67
ISO 9004:2000 Quality management systems — Guidelines for performance improvements Системы управления качеством. Руководство по улучшению деятельности. (Аналог — ГОСТ Р-2001) ISO/IEC 90003:2004 …
Pic.68
Характеристики и атрибуты качества программного обеспечения по ISO 9126
Pic.82
Стоимость качества Preventive costs (стоимость предотвращения низкого качества продукта\сервиса): Планирование качества Разработка/оценка процессов Планирование улучшения качества Обучение Стоимость …
Pic.84
Управление требованиями ГОСТ Р и ISO/IEC 12207 V&V Спецификация — (Specification) набор требований и параметров, которым удовлетворяет некоторая сущность. Согласно определению, приведенному в …
Pic.85
Требования к ПО Требования к ПО — совокупность утверждений относительно свойств программной системы, подлежащая реализации при создании программного обеспечения. Создаются в процессе анализа …
Pic.86
Тестирование ПО Тестирование – проверка соответствия ПО требованиям, осуществляемая с помощью наблюдения за его работой в специальных, искусственно построенных ситуациях (тесты) Набор тестов конечен …
Pic.87
Стандарты тестирования IEEE 829-1998 Standard for Software Test Documentation - описывает виды документов, служащих для подготовки тестов IEEE 1008-1987 (R1993, R2002) Standard for Software Unit …
Pic.88
организационные принципы управления тестированием Программирующая организация не должна сама тестировать разработанные ею программы Необходимо досконально изучать результаты применения каждого теста …
Pic.89
Тестовые метрики Покрытие функциональных требований Покрытие кода продукта. Наиболее применимо для модульного уровня тестирования Покрытие множества сценариев Количество или плотность найденных …
Pic.90
5. 2. 4. Автоматизация тестирования 5. 2. 5. Примеры. Модульное тестирование. Разработка через тестирование. Приложения модульного тестирования Экстремальное программирование предполагает как один из …
Pic.91
Типичный жизненный цикл дефекта Новый — дефект зарегистрирован тестировщиком Назначен — назначен ответственный за исправление дефекта Разрешён — дефект переходит обратно в сферу ответственности …
Pic.92
Итак, по времени появления ошибки можно разделить на три вида: структурные ошибки набора; ошибки компиляции; ошибки периода выполнения. В теоретической информатике программные ошибки классифицируют …
Pic.93
Тестирование ПО метод белого ящика (white-box testing, прозрачного ящика, структурное тестирование) – разработчик теста имеет доступ к исходному коду и может тесты, связанные с библиотеками …
Pic.94
Уровни тестирования Модульное тестирование (Unit-testing) – тестируется минимально возможный для компонент (отдельный класс или функция) Интеграционное тестирование (Integration testing) – отдельные …
Pic.95
тестирование Статическое тестирование (Static testing) –тестируемая программа (код) не выполняется. Анализ происходит на основе исходного кода (Обзоры (Reviews), Инспекции (Inspections), Сквозные …
Pic.96
Виды тестирования Функциональное тестирование (functional testing) Тестирование производительности (perfomance testing) Стрессовое тестирование (stress testing) Нагрузочное тестирование (load …
Pic.97
Типы дефектов и статические методы тестирования по времени появления: структурные ошибки набора ошибки компиляции ошибки периода выполнения В теоретической информатике программные ошибки …
Pic.98
Выявление ошибок Инспекции исходного текста 1. Программиста просят рассказать о логике работы программы. Во время беседы возникают вопросы, преследующие цель обнаружения ошибки. 2. Программа …
Pic.99
Техники создания тест-кейсов
Pic.100
Известные технологии программирования Структурное программирование Теорема о базисных конструкциях. Алгоритм: один вход и один выход. Нет безусловным переходам (goto). Поддержка: операторы ЯПВУ. …
Pic.101
Технологические основы языков программирования высокого уровня Сложность задач Технологии программирования Структурное программирование Модульное программирование Объектный подход ОО и …
Pic.102
Объектный подход. . . Перечисленных технологий стало недостаточно вследствие роста сложности задач. Объектно-ориентированная технология. Объектный подход: объектная декомпозиция (отличия от …
Pic.103
Объектный подход OOA + OOD + OOP OOA – object-oriented analysis – объектно-ориентированный анализ. OOD – object-oriented design – объектно-ориентированное проектирование. OOP – object-oriented …
Pic.104
Принципы объектного подхода Абстрагирование. выделяем главное, выявляем виды абстракций Инкапсуляция. скрываем детали реализации Иерархия. иерархия помогает разбить задачу на уровни и постепенно ее …
Pic.105
Тенденция последнего десятилетия Постепенно унифицируются подходы к разработке ПО Создаются языки описания и моделирования сложных систем Agile IBM: MSF: Есть русский перевод: Agile: Различные языки …
Pic.106
История подходов в программировании
Pic.107
UML Unified Modeling Language Де-факто и де-юре стандартный язык моделирования в современной ИТ-индустрии Пока еще преподается не во всех технических вузах СНГ, но ситуация улучшается
Pic.108
Структура стандарта UML Графическая нотация Метамодель OCL (Object Constraint Language или язык ограничений) Примеры расширения языка
Pic.109
Легенда о Вавилонской башне В Библии предание о том, как Бог, разгневанный дерзостью людей, вознамеривавшихся соорудить башню до небес (Вавилонская башня) «смешал их языки» (они перестали понимать …
Pic.110
UML Для визуального моделирования нужна специальная нотация или язык. UML (unified modeling language) – это язык для визуализации, специфицирования, конструирования, документирования элементов …
Pic.111
Модели UML UML позволяет описывать систему следующими моделями: Модель функционирования Как описывается функциональность системы с точки зрения пользователя. Объектная модель Как выглядит проект …
Pic.112
Диаграммы UML Диаграммы UML предназначены для визуального отображения моделей и их компонентов. UML 2. 0 – 13 типов диаграмм Структурные диаграммы (6) Диаграммы поведения (3) Диаграммы взаимодействия …
Pic.113
Понятия UML Для описания структуры: Актер, Атрибут, Класс, Компонент, Интерфейс, Объект, Пакет. Для описания поведения: Действие, Событие, Сообщение, Метод, Операция, Состояние, Вариант …
Pic.114
Актеры и Варианты использования в UML Актер в UML – человек, машина или программа, воздействует на систему, является внешним по отношению к ней.
Pic.115
Связь актеров и вариантов использования Актеры и варианты использования общаются посредством посылки сообщений. Сообщения могут идти в обе стороны. Стрелка показывает инициатора общения (актер на …
Pic.116
Диаграмма вариантов использования
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!