SlideShare a Scribd company logo
Заняття #0
  Вступ
ОРГАНІЗАЦІЙНІ ПИТАННЯ
Steve McConnell, Code Complete




              Link
Andrew Troelsen, Pro C#




         Link
Herbert Schildt,
C# 4.0: The Complete Reference




            Link
Коротко
•   Про мови
•   Про програмне забезпечення
•   Про мету ПЗ
•   Про засоби
ПРО МОВИ
Яку мову вивчати
Яку мову вивчати
• English
  – Код
  – Документація
  – Спілкування
  – Література, блоги, відео, конференції
  – Прийом на роботу
ПРО ПЗ
Інженерна дисципліна
• Розробка і побудова
  – Структур (дороги, мости, аеропорти, ...)
  – Машин (станки, автомобілі, ...)
  – Пристроїв (телефони, камери, ...)
  – Систем (електричних, комп’ютерних, ...)
  – Матеріалів (металургійних, полімерних, ...)
  – Процесів (хімічних, фізичних, ...)
Вхід
•   Ідея розробки
•   Очікування замовника
•   Технічні характеристики
•   Обмеження
Вихід
• Конструкторська документація (design)
• Технологічний контроль
  – Формальний аналіз
• Передача дизайну робітникам
• Контроль виконання
• Контроль якості готового продукту
  (тестування)
Роль робітника




Skills + Time + Money
Програмна інженерія
• Конструкторська документація = код
• Технологічний контроль = рев’ю, аналіз
  – Формальний аналіз – дуже дорого
• Передача дизайну робітникам = компіляція
• Контроль виконання = контроль компіляції
• Контроль якості готового продукту
  (тестування)
Роль робітника
        Lots of complexity here
          often even too much :)




          Very cheap and fast
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)
Запитання

More Related Content

Viewers also liked

Frontend basics
Frontend basicsFrontend basics
Frontend basics
eleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
Version control
Version controlVersion control
Version control
eleksdev
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
tsql
tsqltsql
tsql
eleksdev
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
eleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
 
Rpc
RpcRpc
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Windows service
Windows serviceWindows service
Windows service
eleksdev
 
sql introduction
sql introductionsql introduction
sql introduction
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
DAL
DALDAL
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 

Viewers also liked (20)

Frontend basics
Frontend basicsFrontend basics
Frontend basics
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
 
Version control
Version controlVersion control
Version control
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
 
tsql
tsqltsql
tsql
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
 
Rpc
RpcRpc
Rpc
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
 
Windows service
Windows serviceWindows service
Windows service
 
sql introduction
sql introductionsql introduction
sql introduction
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
DAL
DALDAL
DAL
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 

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

Тема 1 Введення в програмну інженерію
Тема 1 Введення в програмну інженеріюТема 1 Введення в програмну інженерію
Тема 1 Введення в програмну інженерію
Oleg Nazarevych
 
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
QADay
 
Тестування ПЗ
Тестування ПЗТестування ПЗ
Тестування ПЗ
Kyrylo Bezpalyi
 
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
Dakiry
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
Творчий проект з трудового навчання “Трілетствующа Ікона”
Творчий проект з трудового навчання “Трілетствующа Ікона”Творчий проект з трудового навчання “Трілетствующа Ікона”
Творчий проект з трудового навчання “Трілетствующа Ікона”
Школа №7 Миргород
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов Андрій
Oleg Nazarevych
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocess
Lviv Startup Club
 
Документація великих проектів
Документація великих проектівДокументація великих проектів
Документація великих проектів
Web Systems
 
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
Lviv Startup Club
 
Нікіта Загурдаєв - Найдієвіші методології для PMO
Нікіта Загурдаєв - Найдієвіші методології для PMOНікіта Загурдаєв - Найдієвіші методології для PMO
Нікіта Загурдаєв - Найдієвіші методології для PMO
Nikita Zahurdaiev
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)
Anatoliy Okhotnikov
 
Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій Охотніков
Igor Bronovskyy
 
Jenkins CI (ukr)
Jenkins CI (ukr)Jenkins CI (ukr)
Jenkins CI (ukr)
Anatoliy Okhotnikov
 
Як робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історієюЯк робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історією
Aleksandr Brychuk
 
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
HOWWEDOIT
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
Serhiy Kalinets
 
Посада Project manager в it компанії
 Посада Project manager в it компанії Посада Project manager в it компанії
Посада Project manager в it компанії
Sergey Xolin
 
програміст (1)
програміст (1)програміст (1)
програміст (1)
123467890qq
 

Similar to #0 Вступна лекція (20)

cpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basicscpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basics
 
Тема 1 Введення в програмну інженерію
Тема 1 Введення в програмну інженеріюТема 1 Введення в програмну інженерію
Тема 1 Введення в програмну інженерію
 
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
 
Тестування ПЗ
Тестування ПЗТестування ПЗ
Тестування ПЗ
 
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
DaKiRy_PMWeekend2016_Роман Сахаров "Як відсутність бачення продукту псує прое...
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
 
Творчий проект з трудового навчання “Трілетствующа Ікона”
Творчий проект з трудового навчання “Трілетствующа Ікона”Творчий проект з трудового навчання “Трілетствующа Ікона”
Творчий проект з трудового навчання “Трілетствующа Ікона”
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов Андрій
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocess
 
Документація великих проектів
Документація великих проектівДокументація великих проектів
Документація великих проектів
 
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
Nikita Zahurdaiev: Найдієвіші методології для PMO (UA)
 
Нікіта Загурдаєв - Найдієвіші методології для PMO
Нікіта Загурдаєв - Найдієвіші методології для PMOНікіта Загурдаєв - Найдієвіші методології для PMO
Нікіта Загурдаєв - Найдієвіші методології для PMO
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)
 
Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій Охотніков
 
Jenkins CI (ukr)
Jenkins CI (ukr)Jenkins CI (ukr)
Jenkins CI (ukr)
 
Як робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історієюЯк робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історією
 
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
 
Посада Project manager в it компанії
 Посада Project manager в it компанії Посада Project manager в it компанії
Посада Project manager в it компанії
 
програміст (1)
програміст (1)програміст (1)
програміст (1)
 

More from Victor Matyushevskyy

Основи Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerОснови Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerVictor Matyushevskyy
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)Victor Matyushevskyy
 
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)Victor Matyushevskyy
 

More from Victor Matyushevskyy (20)

Design patterns part 2
Design patterns part 2Design patterns part 2
Design patterns part 2
 
Design patterns part 1
Design patterns part 1Design patterns part 1
Design patterns part 1
 
Multithreading and parallelism
Multithreading and parallelismMultithreading and parallelism
Multithreading and parallelism
 
Mobile applications development
Mobile applications developmentMobile applications development
Mobile applications development
 
Service oriented programming
Service oriented programmingService oriented programming
Service oriented programming
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
ASP.Net part 2
ASP.Net part 2ASP.Net part 2
ASP.Net part 2
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Основи Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerОснови Баз даних та MS SQL Server
Основи Баз даних та MS SQL Server
 
Usability
UsabilityUsability
Usability
 
Windows forms
Windows formsWindows forms
Windows forms
 
Practices
PracticesPractices
Practices
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
 
06 LINQ
06 LINQ06 LINQ
06 LINQ
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
 
04 standard class library c#
04 standard class library c#04 standard class library c#
04 standard class library c#
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)
 
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)
 

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

  • 1. Заняття #0 Вступ
  • 3. Steve McConnell, Code Complete Link
  • 5. Herbert Schildt, C# 4.0: The Complete Reference Link
  • 6. Коротко • Про мови • Про програмне забезпечення • Про мету ПЗ • Про засоби
  • 9.
  • 10. Яку мову вивчати • English – Код – Документація – Спілкування – Література, блоги, відео, конференції – Прийом на роботу
  • 12. Інженерна дисципліна • Розробка і побудова – Структур (дороги, мости, аеропорти, ...) – Машин (станки, автомобілі, ...) – Пристроїв (телефони, камери, ...) – Систем (електричних, комп’ютерних, ...) – Матеріалів (металургійних, полімерних, ...) – Процесів (хімічних, фізичних, ...)
  • 13. Вхід • Ідея розробки • Очікування замовника • Технічні характеристики • Обмеження
  • 14. Вихід • Конструкторська документація (design) • Технологічний контроль – Формальний аналіз • Передача дизайну робітникам • Контроль виконання • Контроль якості готового продукту (тестування)
  • 16. Програмна інженерія • Конструкторська документація = код • Технологічний контроль = рев’ю, аналіз – Формальний аналіз – дуже дорого • Передача дизайну робітникам = компіляція • Контроль виконання = контроль компіляції • Контроль якості готового продукту (тестування)
  • 17. Роль робітника Lots of complexity here often even too much :) Very cheap and fast
  • 18. Software Assurance • Перевага надається тестуванню та відладці • ВТЧ тому що це дешево і легко • Формальні доведення правильності – ще недостатньо розвинені • Тестування стає частиною проектування
  • 19. Software is soft • Будинок (міст, літак, станок, ...) – Неможливо передати по мережі – Неможливо клонувати – Неможливо перевикористати його частини • ПЗ можна постійно змінювати
  • 21. Програмне забезпечення • Успішне – Legacy (унаслідуване, застаріле) – Maintainable (легко підтримуване) • Неуспішне
  • 22. Legacy software • Довго експлуатується • Продовжує експлуатуватись • Задовільняє потреби замовника • Але разом з тим – Містить дефекти, не містить нових функцій  • Важко покращується
  • 23. Maintainable software • Довго експлуатується • Продовжує експлуатуватись • Задовільняє потреби замовника • Але разом з тим – Містить дефекти, не містить нових функцій • Легко покращується
  • 24. Неуспішне ПЗ • Непередбачувано короткий цикл життя • Не задовільняє потреб замовника • Якість не має значення
  • 26. Складність • Розробка ПЗ – управління складністю 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.
  • 27. Складність • Способи зменшення складності: – Підвищення IQ - ? – Декомпозиція – Абстрагування – Перевикористання –…
  • 28. 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)