Технология программирования
DESCRIPTION
Вводная лекция курса "Технология программирования", МИЭМ, 2011TRANSCRIPT
Технология программированияВводная лекция
Технология программированияВводная лекция
Технология программирования
это когда результат слабо зависит от исполнителей
Программисты неодинаковыПроизводительность программистов может отличаться в 10 раз
Программирование больше похоже на спорт или исполнение
музыки, чем на работу на конвейере
scrum
2:0
Программирование - низкая технология
сапожник
Высокая технология
Закон Мура
Закон Вирта
Производительность софта уменьшается быстрее, чем
увеличивается производительность железа
или...
Что Мур дает, то Билл съедает.
или...
Что Мур дает, то Билл съедает.
...а в последнее время – еще и Ларри
Изготовление микропроцессоров – это определенно высокая технология
Технология тем выше, чем больше граничных условий она признает совместными
Высокая технология
Проектный треугольник
Срок
Стоимость
Результат
Проектный треугольник
Срок
Стоимость
Результат
Проектный треугольник
Срок
Стоимость
Результат
Программирование - низкая технология
сапожник
Программирование очень сильно зависит от людей:
Peopleware
Почему?
Технология программирования
А что такое вообще программирование?
Программирование: 5 миров
● Заказная и внутренняя разработка● Коробочные программные продукты● Игры● Встроенное ПО● Скрипты
Технология программирования
Технология программирования
Программирование „в малом“кодирование
Computer science
Технология программированияПрограммирование „в большом“
Программная инжененрия
software engineering
программный продукт
прог
рам
мн а
я си
стем
а
программа
системный программный продукт
программный продукт = программа + тестирование + документация и поддержка
прог
рам
мн а
я си
стем
а =
прог
рам
ма,
раз
д еле
нная
на
ко м
п оне
нты
программа
системный программный продукт = программная система + программный
продукт
Но сам по себе программный продукт никого не интересует.
Всех интересует...
Автоматизированная система
Система, состоящая из персонала и комплекса средств автоматизации
его деятельности, реализующая информационную технологию
выполнения установленных функций
автоматизированная система
пользователи
автоматизированная система
эксплуатационный персонал
пользователи
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
техническое обеспечение (железо)
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
техническое обеспечение (железо)
программное обеспечение
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
техническое обеспечение (железо)
программное обеспечение
информационное обеспечение
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
техническое обеспечение (железо)
программное обеспечение
лингвистическое обеспечение
информационное обеспечение
автоматизированная система
эксплуатационный персонал
пользователи
организационное обеспечение
методическое обеспечение
техническое обеспечение (железо)
программное обеспечение
лингвистическое обеспечение
информационное обеспечение
юридическое обеспечение
Сложно?
Программирование:
● Сложность● Непредставимость● Согласованность● Изменчивость
Серебряной пули нет
Серебряной пули нет
Нет ни одного открытия ни в технологии, ни в методах управления, одно только
использование которого обещало бы в течение ближайшего десятилетия на порядок повысить производительность, надежность,
простоту разработки программного обеспечения.
Формула Уолкера Ройса
E = Env * Pers * Q * SizeProcess
гдеE – трудозатраты,Env – показатель качества окружающей среды,Pers – показатель квалификации персонала,Q – целевое значение качества продукта,Size – размер проекта,Process – показатель зрелости процесса разработки, всегда >1.
Технологический подход
- разделение процесса на элементарные операции
В случае программирования говорят о
жизненном циклепрограммной системы
Жизненный цикл ПОПроектирование
Реализация
Тестирование и исправление ошибок
1/3 1/6 1/2
Расширенный жизненный цикл● Замысел● Выявление требований● Анализ● Проектирование● Реализация● Тестирование● Внедрение● Эксплуатация