🗊Презентация Технология и процесс разработки ПО. Лекция 5

Нажмите для полного просмотра!
Технология и процесс разработки ПО. Лекция 5, слайд №1Технология и процесс разработки ПО. Лекция 5, слайд №2Технология и процесс разработки ПО. Лекция 5, слайд №3Технология и процесс разработки ПО. Лекция 5, слайд №4Технология и процесс разработки ПО. Лекция 5, слайд №5Технология и процесс разработки ПО. Лекция 5, слайд №6Технология и процесс разработки ПО. Лекция 5, слайд №7Технология и процесс разработки ПО. Лекция 5, слайд №8Технология и процесс разработки ПО. Лекция 5, слайд №9Технология и процесс разработки ПО. Лекция 5, слайд №10Технология и процесс разработки ПО. Лекция 5, слайд №11Технология и процесс разработки ПО. Лекция 5, слайд №12Технология и процесс разработки ПО. Лекция 5, слайд №13Технология и процесс разработки ПО. Лекция 5, слайд №14Технология и процесс разработки ПО. Лекция 5, слайд №15Технология и процесс разработки ПО. Лекция 5, слайд №16Технология и процесс разработки ПО. Лекция 5, слайд №17Технология и процесс разработки ПО. Лекция 5, слайд №18Технология и процесс разработки ПО. Лекция 5, слайд №19Технология и процесс разработки ПО. Лекция 5, слайд №20Технология и процесс разработки ПО. Лекция 5, слайд №21Технология и процесс разработки ПО. Лекция 5, слайд №22Технология и процесс разработки ПО. Лекция 5, слайд №23Технология и процесс разработки ПО. Лекция 5, слайд №24Технология и процесс разработки ПО. Лекция 5, слайд №25Технология и процесс разработки ПО. Лекция 5, слайд №26Технология и процесс разработки ПО. Лекция 5, слайд №27Технология и процесс разработки ПО. Лекция 5, слайд №28Технология и процесс разработки ПО. Лекция 5, слайд №29Технология и процесс разработки ПО. Лекция 5, слайд №30Технология и процесс разработки ПО. Лекция 5, слайд №31Технология и процесс разработки ПО. Лекция 5, слайд №32Технология и процесс разработки ПО. Лекция 5, слайд №33Технология и процесс разработки ПО. Лекция 5, слайд №34Технология и процесс разработки ПО. Лекция 5, слайд №35Технология и процесс разработки ПО. Лекция 5, слайд №36Технология и процесс разработки ПО. Лекция 5, слайд №37Технология и процесс разработки ПО. Лекция 5, слайд №38Технология и процесс разработки ПО. Лекция 5, слайд №39Технология и процесс разработки ПО. Лекция 5, слайд №40Технология и процесс разработки ПО. Лекция 5, слайд №41Технология и процесс разработки ПО. Лекция 5, слайд №42

Содержание

Вы можете ознакомиться и скачать презентацию на тему Технология и процесс разработки ПО. Лекция 5. Доклад-сообщение содержит 42 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Технология и процесс разработки ПО. Лекция 5, слайд №1
Описание слайда:

Слайд 2





Ежедневная сборка (build) и непрерывная интеграция
Интеграция программного проекта означает: взять все созданные компоненты проекта, скомпилировать их совместно и выполнить тесты (регрессионный набор).
Наиболее заметным продвижением в этом направлении стала "ежедневная сборка", введенная в Майкрософт в восьмидесятые годы. Идея была проста. В конце каждого дня собираются все изменения, "введенные" (официально подписанные) разработчиками; система компилируется, прогоняются все тесты. Как отмечает менеджер Майкрософт [Cusumano 1995]:
Создание ежедневных сборок – одно из самых болезненных дел в мире, но это и самая величайшая вещь в мире, по-скольку вы получаете мгновенную обратную связь.
Правила agile, в частности XP, идут дальше и вместо "ежедневной сборки" рекомендуют "непрерывную интеграцию". Правило Бека [Beck 2005]: Интегрируйте и тестируйте изменения не реже, чем через несколько часов.
Описание слайда:
Ежедневная сборка (build) и непрерывная интеграция Интеграция программного проекта означает: взять все созданные компоненты проекта, скомпилировать их совместно и выполнить тесты (регрессионный набор). Наиболее заметным продвижением в этом направлении стала "ежедневная сборка", введенная в Майкрософт в восьмидесятые годы. Идея была проста. В конце каждого дня собираются все изменения, "введенные" (официально подписанные) разработчиками; система компилируется, прогоняются все тесты. Как отмечает менеджер Майкрософт [Cusumano 1995]: Создание ежедневных сборок – одно из самых болезненных дел в мире, но это и самая величайшая вещь в мире, по-скольку вы получаете мгновенную обратную связь. Правила agile, в частности XP, идут дальше и вместо "ежедневной сборки" рекомендуют "непрерывную интеграцию". Правило Бека [Beck 2005]: Интегрируйте и тестируйте изменения не реже, чем через несколько часов.

Слайд 3





Парное программирование
Споры, главным образом, были следствием настаивания XP, что парное программирование является единственным и универсальным способом разработки программ. Бек писал:
«Разрабатывайте все производственные программы двумя людьми, сидящими за одной машиной.»
Описание слайда:
Парное программирование Споры, главным образом, были следствием настаивания XP, что парное программирование является единственным и универсальным способом разработки программ. Бек писал: «Разрабатывайте все производственные программы двумя людьми, сидящими за одной машиной.»

Слайд 4






Повышение дисциплины

Программисты в паре чаще «делают то, что нужно» и реже устраивают длинные перерывы.
Лучший код
Партнёры в паре менее склонны к неудачным решениям и производят более качественный код.
Высокий боевой дух
Коллективное владение кодом
(пары меняются)
Описание слайда:
Повышение дисциплины Программисты в паре чаще «делают то, что нужно» и реже устраивают длинные перерывы. Лучший код Партнёры в паре менее склонны к неудачным решениям и производят более качественный код. Высокий боевой дух Коллективное владение кодом (пары меняются)

Слайд 5





Недостатки
Описание слайда:
Недостатки

Слайд 6





РАБОТАТЬ
В ПАРЕ
Описание слайда:
РАБОТАТЬ В ПАРЕ

Слайд 7





Создаем эффективную пару
Описание слайда:
Создаем эффективную пару

Слайд 8


Технология и процесс разработки ПО. Лекция 5, слайд №8
Описание слайда:

Слайд 9


Технология и процесс разработки ПО. Лекция 5, слайд №9
Описание слайда:

Слайд 10


Технология и процесс разработки ПО. Лекция 5, слайд №10
Описание слайда:

Слайд 11


Технология и процесс разработки ПО. Лекция 5, слайд №11
Описание слайда:

Слайд 12


Технология и процесс разработки ПО. Лекция 5, слайд №12
Описание слайда:

Слайд 13


Технология и процесс разработки ПО. Лекция 5, слайд №13
Описание слайда:

Слайд 14


Технология и процесс разработки ПО. Лекция 5, слайд №14
Описание слайда:

Слайд 15


Технология и процесс разработки ПО. Лекция 5, слайд №15
Описание слайда:

Слайд 16


Технология и процесс разработки ПО. Лекция 5, слайд №16
Описание слайда:

Слайд 17





ЦИФРЫ
Описание слайда:
ЦИФРЫ

Слайд 18


Технология и процесс разработки ПО. Лекция 5, слайд №18
Описание слайда:

Слайд 19


Технология и процесс разработки ПО. Лекция 5, слайд №19
Описание слайда:

Слайд 20


Технология и процесс разработки ПО. Лекция 5, слайд №20
Описание слайда:

Слайд 21





Пинг-понг программирование
Описание слайда:
Пинг-понг программирование

Слайд 22





Стандарты кодирования


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

Слайд 23





Концепция рефакторинга

Не каждому образцу программных изменений соответствует паттерн рефакторинга. Необходимо выполнение двух условий:
рефакторинг не должен изменять семантику программы;
рефакторинг должен улучшать качество кода или архитектуры.
Описание слайда:
Концепция рефакторинга Не каждому образцу программных изменений соответствует паттерн рефакторинга. Необходимо выполнение двух условий: рефакторинг не должен изменять семантику программы; рефакторинг должен улучшать качество кода или архитектуры.

Слайд 24





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

Слайд 25





Признаки плохого кода

дублирование кода
длинный метод;
большой класс;
длинный список параметров;
«жадные» функции — это метод, который чрезмерно обращается к данным другого объекта;
классы данных;
комментарии
Описание слайда:
Признаки плохого кода дублирование кода длинный метод; большой класс; длинный список параметров; «жадные» функции — это метод, который чрезмерно обращается к данным другого объекта; классы данных; комментарии

Слайд 26





Разработка "Вначале Тест" и разработка, управляемая тестами

TDD (Test Driven Development). Разработка TDD является следствием 
TFD (Test First Development) – "Вначале Тест" разработки.
Описание слайда:
Разработка "Вначале Тест" и разработка, управляемая тестами TDD (Test Driven Development). Разработка TDD является следствием TFD (Test First Development) – "Вначале Тест" разработки.

Слайд 27





Цикл TDD
Описание слайда:
Цикл TDD

Слайд 28


Технология и процесс разработки ПО. Лекция 5, слайд №28
Описание слайда:

Слайд 29





TDD метод программной разработки

определяет TDD как повторение следующего основного цикла:
TDD цикл:
 Быстро добавить тест.
Выполнить все тесты и увидеть, что новый тест "падает".
Выполнить небольшое изменение системы.
Убедиться, что все тесты проходят.
Выполнить рефакторинг, удаляя дублирование.
Описание слайда:
TDD метод программной разработки определяет TDD как повторение следующего основного цикла: TDD цикл: Быстро добавить тест. Выполнить все тесты и увидеть, что новый тест "падает". Выполнить небольшое изменение системы. Убедиться, что все тесты проходят. Выполнить рефакторинг, удаляя дублирование.

Слайд 30





Оценка TFD и TDD

TDD — это процесс итеративного, непрерывного, параллельного написания тестов и рабочего кода, с обязательными фазами рефакторинга.
каждый новый код должен сопровождаться новыми тестами". Не так уж критично, что раньше – код или тест, никогда не создавайте одно без другого.
Описание слайда:
Оценка TFD и TDD TDD — это процесс итеративного, непрерывного, параллельного написания тестов и рабочего кода, с обязательными фазами рефакторинга. каждый новый код должен сопровождаться новыми тестами". Не так уж критично, что раньше – код или тест, никогда не создавайте одно без другого.

Слайд 31





TDD за и против
Зависимоть от ТЗ
Описание слайда:
TDD за и против Зависимоть от ТЗ

Слайд 32





КНИГИ
Вот список книг, которые любой TDD-практик просто обязан прочитать (must read) и иметь в любой момент на своем столе:
Э. Гамма и др. «Design patterns» 
М. Фаулер «Refactoring: Improving the Design of Existing Code» 
М. Фаулер «Patterns of Enterprise Applications Architecture» 
Р. Мартин «Agile software development»
Описание слайда:
КНИГИ Вот список книг, которые любой TDD-практик просто обязан прочитать (must read) и иметь в любой момент на своем столе: Э. Гамма и др. «Design patterns» М. Фаулер «Refactoring: Improving the Design of Existing Code» М. Фаулер «Patterns of Enterprise Applications Architecture» Р. Мартин «Agile software development»

Слайд 33





BEHAVIOR-DRIVEN 
DEVELOPMENT

BDD (Behavior-driven development, Разработка через поведение) - техника разработки, при котором рассматривается не результат выполнения какого-либо модуля, а та работка, которую он выполняет. Этот принцип можно рассматривать как продолжение TDD.
Создателем техники считается ДенНорт
Описание слайда:
BEHAVIOR-DRIVEN DEVELOPMENT BDD (Behavior-driven development, Разработка через поведение) - техника разработки, при котором рассматривается не результат выполнения какого-либо модуля, а та работка, которую он выполняет. Этот принцип можно рассматривать как продолжение TDD. Создателем техники считается ДенНорт

Слайд 34





Принципы BDD
Тестируемая разработка - это методология разработки программного обеспечения, которая по существу утверждает, что для каждой единицы программного обеспечения разработчик программного обеспечения должен: 
Сначала определить тестовый набор для устройства; 
Сделать тесты неудачными; 
Затем реализовать устройство; 
Наконец, убедитесь, что реализация блока делает тесты успешными.
Описание слайда:
Принципы BDD Тестируемая разработка - это методология разработки программного обеспечения, которая по существу утверждает, что для каждой единицы программного обеспечения разработчик программного обеспечения должен: Сначала определить тестовый набор для устройства; Сделать тесты неудачными; Затем реализовать устройство; Наконец, убедитесь, что реализация блока делает тесты успешными.

Слайд 35





Отличие TDD от BDD

This class should do something
Используйте слово «поведение», а не 
«тест»
BDD дает «доступный всем язык» для анализа
Описание слайда:
Отличие TDD от BDD This class should do something Используйте слово «поведение», а не «тест» BDD дает «доступный всем язык» для анализа

Слайд 36





Общеупотребительный язык

Для того, заказчик и разработчик могли составлять сценарии вместе, используется концепция общеупотребительных языков
(ubiquitous language)
Общеупотребительный язык – Набор базовых терминов предметной области. Является общим для заказчика и разработчика.
Описание слайда:
Общеупотребительный язык Для того, заказчик и разработчик могли составлять сценарии вместе, используется концепция общеупотребительных языков (ubiquitous language) Общеупотребительный язык – Набор базовых терминов предметной области. Является общим для заказчика и разработчика.

Слайд 37





Системы для программной поддержки TDD и BDD

JUnit – фреймворк, применяющийся для разработки на Java. В нем тестовые методы начинаются со слова test и наследуются от тест-класса TestCase.
Nunit – открытая среда юнит-тестирования приложений для .NET. Она была портирована с языка Java (библиотека JUnit). Первые версии NUnit были написаны на J#, но затем весь код был переписан на C# с использованием таких новшеств .NET, как атрибуты.
Описание слайда:
Системы для программной поддержки TDD и BDD JUnit – фреймворк, применяющийся для разработки на Java. В нем тестовые методы начинаются со слова test и наследуются от тест-класса TestCase. Nunit – открытая среда юнит-тестирования приложений для .NET. Она была портирована с языка Java (библиотека JUnit). Первые версии NUnit были написаны на J#, но затем весь код был переписан на C# с использованием таких новшеств .NET, как атрибуты.

Слайд 38





Системы для программной поддержки TDD и BDD

Cucumber - среда разработки наязыке  программирования Ruby. Разработчик описывает необходимое поведение в обычном тексте. 
Specflow
BDD-синтаксис Given, When, Then интуитивно понятен. Рассмотрим элементы синтаксиса:
Given предоставляет контекст выполнения сценария тестирования, например, точки вызова сценария в приложении, а также любые необходимые данные.
When определяет набор операций, инициирующих тестирование, таких как действия пользователей или подсистем.
Then описывает ожидаемый результат тестирования.
Описание слайда:
Системы для программной поддержки TDD и BDD Cucumber - среда разработки наязыке программирования Ruby. Разработчик описывает необходимое поведение в обычном тексте. Specflow BDD-синтаксис Given, When, Then интуитивно понятен. Рассмотрим элементы синтаксиса: Given предоставляет контекст выполнения сценария тестирования, например, точки вызова сценария в приложении, а также любые необходимые данные. When определяет набор операций, инициирующих тестирование, таких как действия пользователей или подсистем. Then описывает ожидаемый результат тестирования.

Слайд 39





Пример разработки системы с использованием BDD

Начнем с того, что определим нашу функциональность. 
Feature: Show logged in user name
In order to logged in as a user called “Username"
I want to see page header displays the caption 
"Здравствуйте, Username!"
Здесь мы задаем на понятном нам языке, что мы хотим увидеть от нашей функциональности.
Описание слайда:
Пример разработки системы с использованием BDD Начнем с того, что определим нашу функциональность. Feature: Show logged in user name In order to logged in as a user called “Username" I want to see page header displays the caption "Здравствуйте, Username!" Здесь мы задаем на понятном нам языке, что мы хотим увидеть от нашей функциональности.

Слайд 40





Особенности BDD

BDD интересно тем, что тесты к нему пишутся с помощью сценариев. 
Сценарии – описание функциональности метода, написанное на естественном языке по определенному шаблону.
Описание слайда:
Особенности BDD BDD интересно тем, что тесты к нему пишутся с помощью сценариев. Сценарии – описание функциональности метода, написанное на естественном языке по определенному шаблону.

Слайд 41





Написание сценария

Напишем сценарий, который будет основой для работы cucumber’а
Scenario: Show logged in user name
Given I am logged in as a user called “Username"
When I visit the homepage
Then the page header displays the caption "Здравствуйте, Username!“
Scenario – имя сценария. 
Given… - Начальное условие (две категории и их описание) 
When.. – Если я на странице с категориями… 
Then – Я должен увидеть…
Описание слайда:
Написание сценария Напишем сценарий, который будет основой для работы cucumber’а Scenario: Show logged in user name Given I am logged in as a user called “Username" When I visit the homepage Then the page header displays the caption "Здравствуйте, Username!“ Scenario – имя сценария. Given… - Начальное условие (две категории и их описание) When.. – Если я на странице с категориями… Then – Я должен увидеть…

Слайд 42





Написание сценария

Для каждого действия также пишем соответствующие функции:
Given /I am logged in as a user called "(.*)"/ do |name| create_user(name) sign_in_as(name) end
Then /the page header displays the caption "(.*)"/ do |caption|page_header.should_contain(caption) end
Таким образом Cucumber или SpecFlow сможет интерпретировать каждый шаг, вычленить с помощью регулярных выражений параметры и запустить соответствующие тесты.
Описание слайда:
Написание сценария Для каждого действия также пишем соответствующие функции: Given /I am logged in as a user called "(.*)"/ do |name| create_user(name) sign_in_as(name) end Then /the page header displays the caption "(.*)"/ do |caption|page_header.should_contain(caption) end Таким образом Cucumber или SpecFlow сможет интерпретировать каждый шаг, вычленить с помощью регулярных выражений параметры и запустить соответствующие тесты.



Похожие презентации
Mypresentation.ru
Загрузить презентацию