SlideShare a Scribd company logo
1 of 27
Эволюция разработки
программного обеспечения
Дзюба Дмитрий Владимирович
• Говорим об эволюции средств и способов
  разработки. Какие перспективы есть сейчас и
  что актуально в данный момент.
Цикл разработки программного
обеспечения
4




Обычный процесс разработки
"На заказ"
• Что делаем
  ▫ Анализ требований заказчика
     Опрос экспертов
     Чтение документов
     Наблюдение за выполнением
      операций
     Анкетирование
     Использование собственных
      знаний
     Составление описания системы
      и обсуждение его с экспертом
  ▫ Выделение бизнес целей
  ▫ Реализация требований заказчика
Обычный процесс
"продуктовой разработки"
• Что делаем
  ▫ Анализ тенденций на рынке
  ▫ Анализ требований ключевых заказчиков
  ▫ Анализ конкурентной среды
  ▫ Анализ изменений в технологиях
  ▫ Формирование продуктовой стратегии (RoadMap)
• Хороший продукт вначале разрабатывается «на
  заказ» потом преобразуется в «коробочное
  решение»
Что не так в бизнес анализе?
• Как понять какое требование более важное?
• Удовлетворенность заказчика равна «то что он
  получил» деленное на «то что он ожидал». Т.е. если
  от Вас много ждут, то даже отличный продукт не
  приносит удовлетворения!
7




Какие есть решения?
Методология!
• Agile Manifest 2001
  ▫ Люди и взаимодействие важнее процессов
    и инструментов
  ▫ Работающий продукт важнее
    исчерпывающей документации
  ▫ Сотрудничество с заказчиком важнее
    согласования условий контракта
  ▫ Готовность к изменениям важнее
    следования первоначальному плану
• Учит основным принципам
  ▫   Общение
  ▫   Простота
  ▫   Обратная связь
  ▫   Смелость
  ▫   Уважение
Что тут не так?
• Похоже на религию?
• Ни кто не читает инструкцию по
  вождению, когда ведет автомобиль!
• Ну а кто научит заказчиков быть
  «Agile»?
ALM
team foundation server
10




Development
опять вопросы!
 ▫ Организация данных
    Схема данных
    Доступ к данным
 ▫ Организация управления
    Что запускает задачу на выполнение?
    Что останавливает выполнение задачи?
    Как определяется последовательность действий в
     задаче?
    Как будут определяться приоритеты между
     задачами?
    Как управлять доступом к общим для разных задач
     данным?
 ▫ Организация программных структур
    Как организовывать программный код?
    Как осуществить размещение кода на компьютере?
 ▫ Организация работы со временем
    Будет использоваться абсолютное время?
    Будет использоваться относительное время?
11




Development
Как делаем программы?
• Иерархические программы
 ▫ Характерно
    Однопоточное (single thread) управление
    Данные могут быть локальными, глобальными
     или на где-то вовне
    Статически прописывается вызов процедур
    Работает как набор независимых программ
    Данные синхронизуются по запуску программы
 ▫ Когда применять?
    Хорошо для небольших
     высокопроизводительных программ.
Структурное программирование
• Структурное программирование
  предполагает точно обозначенные
  управляющие
  структуры, программные
  блоки, отсутствие инструкций
  безусловного
  перехода, автономные
  подпрограммы, поддержка
  рекурсии и локальных переменных
• Алгол(1958)
• Паскаль(1970)
• Си(1972).
13




Что если программа стала слишком
большой?
• Объектно-ориентированные программы
 ▫ Характерно
    Однопоточное (single thread) управление;
    Данные инкапсулированны или внешнии;
    Иерархические вызовы динамически
     связываемых процедур;
    Наследование;
Объектно-ориентированное
программирование
В итоге в конце 1970-х и
начале 1980-х были
разработаны
принципы объектно-
ориентированного
программирования. ООП
сочетает лучшие принципы
структурного
программирования с новыми
мощными
концепциями, базовые из
которых
называются инкапсуляцией,
полиморфизмом и
наследованием.
Разработчики на объектно-
ориентированных языках всегда
востребованы на рынке




                       По данным исследования IT-Доминанта
Java используется в более
                             чем 4,5 миллиардов
                             устройств.




Почему популярен язык Java
                             Среди них:
                             более 800 млн.
                             персональных
                             компьютеров;
                             2,1 миллиарда
                             мобильных телефонов
                             и других портативных
                             устройств (источник;
                             3,5 миллиарда смарт-
                             карт;
                             телеприставки, принтеры,
                             веб-
                             камеры, игры, автомобиль
                             ные системы
                             навигации, игровые
                             автоматы, медицинское
                             оборудование, парковочн
                             ые автоматы и т. д.
Рост Windows Phone (и .NET)
по данным gartner
OS                    2010      2011      2012       2015
Android             67,225   179,873   310,088    539,318

Market Share (%)      22.7      38.5      49.2       48.8
iOS                 46,598    90,560   118,848    189,924

Market Share (%)      15.7      19.4      18.9        17.2
Microsoft           12,378    26,346    68,156    215,998


Market Share (%)       4.2       5.6      10.8        19.5

Total Market       296,647   467,701   630,476   1,104,898
Что дальше?
• Языки и платформы, решающие задачи в
  специальной предметной области.
Microsoft LightSwitch
Начни с данных!
Adobe Muse
Нарисуй Web-сайт
А как же архитектура?
• Качество программ
 ▫   Производительность
 ▫   Надежность
 ▫   Модифицируемость
 ▫   Наблюдаемость/Тестируемость
 ▫   Безопасность
 ▫   Удобство использования

• Сложно определить приоритеты и быть
  лучшим во всем!
Платформы и модели разработки
• Инфраструктурные платформы
  ▫ Сервера с поддержкой
    Java 2 Enterprise Edition
  ▫ Microsoft BizTalk

• Созданы для решения проблем
  производительности, надежности, безопаснос
  ти и модифицируемости.
Oracle Fusion Middleware
Windows Azure AppFabric
windows server 2008
• Решена проблема кеширования данных
• Простая коммуникация приложений на
  основе WCF
• Управление сервисами с помощью Windows
  Workflow Foundation
Что дальше?
Программирование для бизнес-аналитиков
• Простота - MDA
  ▫ xUML
  ▫ Попытка сделать UML выполняемым.
  ▫ Программа соответствует спецификации!
• Но есть проблемы
  ▫ Отсутствие единых стандартов.
  ▫ Зависимость от текстовых языков (Object
    Action Languages, Action Specification
    Languages)
Что дальше?
Доказательство правильности программ
• 21 июня 2008 г премия Тьюринга была
  вручена трем создателям
• техники MODEL CHECKING, внесшим
  наиболее существенный вклад
  ▫ Edmund M. Clarke (CMU),
  ▫ E. Allen Emerson (U Texas, Austin),
  ▫ Joseph Sifakis (Verimag, France)
• Автоматическая проверка на то что система
  удовлетворяет спецификации.
Спасибо

More Related Content

Similar to Эволюция разработки программного обеспечения

Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложенийAnatoly Sharifulin
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)e-Legion
 
Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Michael Kozloff
 
Презентация на тему программирование Карпляк Виктор Владимирович .pptx
Презентация на тему программирование Карпляк Виктор Владимирович .pptxПрезентация на тему программирование Карпляк Виктор Владимирович .pptx
Презентация на тему программирование Карпляк Виктор Владимирович .pptx5bfnz5j9hl5bfnz5j9hl
 
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...Meetup.by
 
Май-Tech. Мобильные решения
Май-Tech. Мобильные решенияМай-Tech. Мобильные решения
Май-Tech. Мобильные решенияMay-Tech
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Ценность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийЦенность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийMichael Kozloff
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesIlya Gershanov
 
METRO. Дизайн для Windows Phone
METRO. Дизайн для Windows PhoneMETRO. Дизайн для Windows Phone
METRO. Дизайн для Windows PhoneNikita Lukianets
 
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Elena Kotina
 
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услугCisco Russia
 
Технический задел
Технический заделТехнический задел
Технический заделVladimir Petrov
 
Siebel open ui overview rus
Siebel open ui overview rusSiebel open ui overview rus
Siebel open ui overview ruscrm2life
 
Informatica Пронет (v.0.3)
Informatica   Пронет (v.0.3)Informatica   Пронет (v.0.3)
Informatica Пронет (v.0.3)Natasha Zaverukha
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...Ievgenii Katsan
 
Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Nadezhda Avramenko
 
Wargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковWargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковDevGAMM Conference
 

Similar to Эволюция разработки программного обеспечения (20)

Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)
 
Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?
 
Презентация на тему программирование Карпляк Виктор Владимирович .pptx
Презентация на тему программирование Карпляк Виктор Владимирович .pptxПрезентация на тему программирование Карпляк Виктор Владимирович .pptx
Презентация на тему программирование Карпляк Виктор Владимирович .pptx
 
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...
Особенности работы в Андроид-системе при промышленных разработках - Вячеслав ...
 
Май-Tech. Мобильные решения
Май-Tech. Мобильные решенияМай-Tech. Мобильные решения
Май-Tech. Мобильные решения
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Novitsky presentation
Novitsky presentationNovitsky presentation
Novitsky presentation
 
Ценность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийЦенность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложений
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
 
METRO. Дизайн для Windows Phone
METRO. Дизайн для Windows PhoneMETRO. Дизайн для Windows Phone
METRO. Дизайн для Windows Phone
 
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
 
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услуг
 
Технический задел
Технический заделТехнический задел
Технический задел
 
Siebel open ui overview rus
Siebel open ui overview rusSiebel open ui overview rus
Siebel open ui overview rus
 
голубушин
голубушинголубушин
голубушин
 
Informatica Пронет (v.0.3)
Informatica   Пронет (v.0.3)Informatica   Пронет (v.0.3)
Informatica Пронет (v.0.3)
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса
 
Wargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковWargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движков
 

More from Dima Dzuba

Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Dima Dzuba
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Dima Dzuba
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Dima Dzuba
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных системDima Dzuba
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Dima Dzuba
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7Dima Dzuba
 
Решение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системРешение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системDima Dzuba
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4 Dima Dzuba
 

More from Dima Dzuba (20)

Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16
 
Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных систем
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1
 
МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7
 
Решение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системРешение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных систем
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
 

Эволюция разработки программного обеспечения

  • 2. • Говорим об эволюции средств и способов разработки. Какие перспективы есть сейчас и что актуально в данный момент.
  • 4. 4 Обычный процесс разработки "На заказ" • Что делаем ▫ Анализ требований заказчика  Опрос экспертов  Чтение документов  Наблюдение за выполнением операций  Анкетирование  Использование собственных знаний  Составление описания системы и обсуждение его с экспертом ▫ Выделение бизнес целей ▫ Реализация требований заказчика
  • 5. Обычный процесс "продуктовой разработки" • Что делаем ▫ Анализ тенденций на рынке ▫ Анализ требований ключевых заказчиков ▫ Анализ конкурентной среды ▫ Анализ изменений в технологиях ▫ Формирование продуктовой стратегии (RoadMap) • Хороший продукт вначале разрабатывается «на заказ» потом преобразуется в «коробочное решение»
  • 6. Что не так в бизнес анализе? • Как понять какое требование более важное? • Удовлетворенность заказчика равна «то что он получил» деленное на «то что он ожидал». Т.е. если от Вас много ждут, то даже отличный продукт не приносит удовлетворения!
  • 7. 7 Какие есть решения? Методология! • Agile Manifest 2001 ▫ Люди и взаимодействие важнее процессов и инструментов ▫ Работающий продукт важнее исчерпывающей документации ▫ Сотрудничество с заказчиком важнее согласования условий контракта ▫ Готовность к изменениям важнее следования первоначальному плану • Учит основным принципам ▫ Общение ▫ Простота ▫ Обратная связь ▫ Смелость ▫ Уважение
  • 8. Что тут не так? • Похоже на религию? • Ни кто не читает инструкцию по вождению, когда ведет автомобиль! • Ну а кто научит заказчиков быть «Agile»?
  • 10. 10 Development опять вопросы! ▫ Организация данных  Схема данных  Доступ к данным ▫ Организация управления  Что запускает задачу на выполнение?  Что останавливает выполнение задачи?  Как определяется последовательность действий в задаче?  Как будут определяться приоритеты между задачами?  Как управлять доступом к общим для разных задач данным? ▫ Организация программных структур  Как организовывать программный код?  Как осуществить размещение кода на компьютере? ▫ Организация работы со временем  Будет использоваться абсолютное время?  Будет использоваться относительное время?
  • 11. 11 Development Как делаем программы? • Иерархические программы ▫ Характерно  Однопоточное (single thread) управление  Данные могут быть локальными, глобальными или на где-то вовне  Статически прописывается вызов процедур  Работает как набор независимых программ  Данные синхронизуются по запуску программы ▫ Когда применять?  Хорошо для небольших высокопроизводительных программ.
  • 12. Структурное программирование • Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода, автономные подпрограммы, поддержка рекурсии и локальных переменных • Алгол(1958) • Паскаль(1970) • Си(1972).
  • 13. 13 Что если программа стала слишком большой? • Объектно-ориентированные программы ▫ Характерно  Однопоточное (single thread) управление;  Данные инкапсулированны или внешнии;  Иерархические вызовы динамически связываемых процедур;  Наследование;
  • 14. Объектно-ориентированное программирование В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно- ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.
  • 15. Разработчики на объектно- ориентированных языках всегда востребованы на рынке По данным исследования IT-Доминанта
  • 16. Java используется в более чем 4,5 миллиардов устройств. Почему популярен язык Java Среди них: более 800 млн. персональных компьютеров; 2,1 миллиарда мобильных телефонов и других портативных устройств (источник; 3,5 миллиарда смарт- карт; телеприставки, принтеры, веб- камеры, игры, автомобиль ные системы навигации, игровые автоматы, медицинское оборудование, парковочн ые автоматы и т. д.
  • 17. Рост Windows Phone (и .NET) по данным gartner OS 2010 2011 2012 2015 Android 67,225 179,873 310,088 539,318 Market Share (%) 22.7 38.5 49.2 48.8 iOS 46,598 90,560 118,848 189,924 Market Share (%) 15.7 19.4 18.9 17.2 Microsoft 12,378 26,346 68,156 215,998 Market Share (%) 4.2 5.6 10.8 19.5 Total Market 296,647 467,701 630,476 1,104,898
  • 18. Что дальше? • Языки и платформы, решающие задачи в специальной предметной области.
  • 21. А как же архитектура? • Качество программ ▫ Производительность ▫ Надежность ▫ Модифицируемость ▫ Наблюдаемость/Тестируемость ▫ Безопасность ▫ Удобство использования • Сложно определить приоритеты и быть лучшим во всем!
  • 22. Платформы и модели разработки • Инфраструктурные платформы ▫ Сервера с поддержкой Java 2 Enterprise Edition ▫ Microsoft BizTalk • Созданы для решения проблем производительности, надежности, безопаснос ти и модифицируемости.
  • 24. Windows Azure AppFabric windows server 2008 • Решена проблема кеширования данных • Простая коммуникация приложений на основе WCF • Управление сервисами с помощью Windows Workflow Foundation
  • 25. Что дальше? Программирование для бизнес-аналитиков • Простота - MDA ▫ xUML ▫ Попытка сделать UML выполняемым. ▫ Программа соответствует спецификации! • Но есть проблемы ▫ Отсутствие единых стандартов. ▫ Зависимость от текстовых языков (Object Action Languages, Action Specification Languages)
  • 26. Что дальше? Доказательство правильности программ • 21 июня 2008 г премия Тьюринга была вручена трем создателям • техники MODEL CHECKING, внесшим наиболее существенный вклад ▫ Edmund M. Clarke (CMU), ▫ E. Allen Emerson (U Texas, Austin), ▫ Joseph Sifakis (Verimag, France) • Автоматическая проверка на то что система удовлетворяет спецификации.