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