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

Preview:

DESCRIPTION

 

Citation preview

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

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

Коротко

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

ПРО МОВИ

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

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

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

ПРО ПЗ

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

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

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

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

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

Вхід

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

Вихід

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

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

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

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

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

Skills + Time + Money

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

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

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

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

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

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

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

Very cheap and fast

Lots of complexity hereoften even too

much :)

Software Assurance

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

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

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

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

Software is soft

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

частини

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

ПРО МЕТУ

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

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

• Неуспішне

Legacy software

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

функцій

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

Maintainable software

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

функцій

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

Неуспішне ПЗ

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

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

ПРО ЗАСОБИ

Складність

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

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.

Складність

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

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)

Запитання

Recommended