Технология программирования

Post on 16-Jun-2015

699 views 0 download

description

Вводная лекция курса "Технология программирования", МИЭМ, 2011

Transcript of Технология программирования

Технология программированияВводная лекция

Технология программированияВводная лекция

Технология программирования

это когда результат слабо зависит от исполнителей

Программисты неодинаковыПроизводительность программистов может отличаться в 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

Расширенный жизненный цикл● Замысел● Выявление требований● Анализ● Проектирование● Реализация● Тестирование● Внедрение● Эксплуатация