29
Заняття #0 Вступ

#0 Вступна лекція

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: #0 Вступна лекція

Заняття #0Вступ

Page 2: #0 Вступна лекція

ОРГАНІЗАЦІЙНІ ПИТАННЯ

Page 6: #0 Вступна лекція

Коротко

• Про мови• Про програмне забезпечення• Про мету ПЗ• Про засоби

Page 7: #0 Вступна лекція

ПРО МОВИ

Page 8: #0 Вступна лекція

Яку мову вивчати

Page 9: #0 Вступна лекція
Page 10: #0 Вступна лекція

Яку мову вивчати

• English– Код– Документація– Спілкування– Література, блоги, відео, конференції– Прийом на роботу

Page 11: #0 Вступна лекція

ПРО ПЗ

Page 12: #0 Вступна лекція

Інженерна дисципліна

• Розробка і побудова– Структур (дороги, мости,

аеропорти, ...)–Машин (станки, автомобілі, ...)– Пристроїв (телефони, камери, ...)– Систем (електричних,

комп’ютерних, ...)–Матеріалів (металургійних,

полімерних, ...)– Процесів (хімічних, фізичних, ...)

Page 13: #0 Вступна лекція

Вхід

• Ідея розробки• Очікування замовника• Технічні характеристики• Обмеження

Page 14: #0 Вступна лекція

Вихід

• Конструкторська документація (design)

• Технологічний контроль–Формальний аналіз

• Передача дизайну робітникам• Контроль виконання• Контроль якості готового продукту

(тестування)

Page 15: #0 Вступна лекція

Роль робітника

Skills + Time + Money

Page 16: #0 Вступна лекція

Програмна інженерія

• Конструкторська документація = код

• Технологічний контроль = рев’ю, аналіз–Формальний аналіз – дуже дорого

• Передача дизайну робітникам = компіляція

• Контроль виконання = контроль компіляції

• Контроль якості готового продукту (тестування)

Page 17: #0 Вступна лекція

Роль робітника

Very cheap and fast

Lots of complexity hereoften even too

much :)

Page 18: #0 Вступна лекція

Software Assurance

• Перевага надається тестуванню та відладці

• ВТЧ тому що це дешево і легко• Формальні доведення

правильності – ще недостатньо розвинені

• Тестування стає частиною проектування

Page 19: #0 Вступна лекція

Software is soft

• Будинок (міст, літак, станок, ...)– Неможливо передати по мережі– Неможливо клонувати– Неможливо перевикористати його

частини

• ПЗ можна постійно змінювати

Page 20: #0 Вступна лекція

ПРО МЕТУ

Page 21: #0 Вступна лекція

Програмне забезпечення

• Успішне– Legacy (унаслідуване, застаріле)–Maintainable (легко підтримуване)

• Неуспішне

Page 22: #0 Вступна лекція

Legacy software

• Довго експлуатується• Продовжує експлуатуватись• Задовільняє потреби замовника• Але разом з тим–Містить дефекти, не містить нових

функцій

• Важко покращується

Page 23: #0 Вступна лекція

Maintainable software

• Довго експлуатується• Продовжує експлуатуватись• Задовільняє потреби замовника• Але разом з тим–Містить дефекти, не містить нових

функцій

• Легко покращується

Page 24: #0 Вступна лекція

Неуспішне ПЗ

• Непередбачувано короткий цикл життя

• Не задовільняє потреб замовника• Якість не має значення

Page 25: #0 Вступна лекція

ПРО ЗАСОБИ

Page 26: #0 Вступна лекція

Складність

• Розробка ПЗ – управління складністю

Tony Hoare:There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

Page 27: #0 Вступна лекція

Складність

• Способи зменшення складності:– Підвищення IQ - ?– Декомпозиція– Абстрагування – Перевикористання–…

Page 28: #0 Вступна лекція

Magic?

• There is no magic • It may be complex, but it is NOT

sorcery• Learn how things work• Reinvent the wheel• (in your spare time)

Page 29: #0 Вступна лекція

Запитання