Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Міністерство освіти і науки України

Національний університет “Львівська політехніка”


Кафедра САПР
Алгоритмізація та програмування,
частина 1:

Вступ
ЛЕКТОР:
асистент каф. САПР, к.т.н.
Яворський Назарій Борисович
E-Mail: nazarii.b.yavorskyi@lpnu.ua

Львів - 2020
Вступ

Мета та завдання дисципліни


• здобуття знань, умінь і практичних навиків з алгоритмізації типових задач
комп’ютерних інформаційних технологій, а також розробки, налагодження
та реалізації програм на основі ресурсів інструментальних середовищ
програмування.
Вивчаються:
• сучасні технічні та програмні засоби взаємодії з комп'ютером;
• технологія розробки алгоритмів і програм;
• програмування на алгоритмічній мові високого рівня;
• методи відлагодження і розв'язку задач на комп'ютерах в різних режимах;
• стандарти оформлення програмної документації.
Основні результати навчання:
• вміння формулювати задачу і розробляти алгоритми її розв'язку;
• вміння написати програму на алгоритмічній мові високого рівня,
відлагоджувати і виконувати програму з використанням одного з
інтегрованих середовищ;
• вміння розробляти основні програмні документи згідно вимог стандартів.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 2:22
Вступ

Програмування
• Довгий час людство хвилює питання про те, до якого роду діяльності
відноситься програмування. У 60-х – 70-х роках минулого століття
дане питання активно обговорювалося на наукових конференціях.
Існувало дві популярні точки зору: "програмування це мистецтво" і
"програмування це наука". До єдиної думки прийти так і не вдалося.
• Програмування поєднує в собі елементи мистецтва, науки,
математики та інженерії. А для людей необізнаних — ще й трохи
магії. Як інакше пояснити те, що набори символів перетворюються в
зображення, ігри, сайти та усілякі програми.
• Зараз можна додати до цих популярних
трактувань ще одну: "програмування це
бізнес". Щоб це зрозуміти, достатньо
подивитися якими числами виражаються
доходи сучасних IT-компаній.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 3:22
Вступ

Які бувають програмісти?

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 4:22
Вступ

Які бувають програмісти?


• У створенні програмного продукту бере участь безліч різних фахівців.
Крім програмістів, що займаються безпосередньо розробленням ПЗ,
у проекті учасниками є й інші ІТ-фахівці. Загалом існує близько 200
різнопланових професій в галузі ІТ.
• Розробник, програміст (Developer, англ.) конструює безпосередньо
систему, вже маючи готові проектні рішення. Він володіє певною
технологією програмування і відповідно спеціалізується у конкретних
задачах . Наприклад, С++ Developer, C# Developer, Ruby Developer,
Python Developer, Java Developer, PHP Developer, веб-розробник,
Front-end- розробник, Back-end- розробник і т.д.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 5:22
Вступ

Які бувають програмісти?


• Архітектор програмної системи (Software Architect) – це IT- фахівець,
який приймає рішення щодо внутрішнього устрою і зовнішніх
інтерфейсів програмної системи з урахуванням проектних вимог і
наявних ресурсів. Він розробляє високорівневу архітектуру системи,
визначає технічні стандарти, в тому числі стосовно кодування,
інструментів і платформ. Завданням є розроблення «креслень»
(ескізів) системи, які представляють складові системи і алгоритми
роботи. У невеликих командах функція архітектора розподіляється
між менеджером і розробниками. У великих проектах це може бути
цілий відділ.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 6:22
Вступ

Які бувають програмісти?


• Проектувальник інтерфейсів (UI/UX-Designer) займається
розробленням інтерфейсів користувача з точки зору зовнішнього
вигляду (User Interface) та розробленням зручності користування з
точки зору експлуатаційних характеристик системи (User Experience –
досвід користування). Ці діяльності можуть бути розділено, і тоді
говорять окремо про фахівців UI-Designer і UX-Designer. Тобто UI-
Designer забезпечує гарний дизайн системи (кнопки, іконки, меню,
вікна…). За аналогією до будівництва, це відповідає задачі «Чи має
гарний вигляд будинок?». А UX-Designer забезпечує продуманість і
зручність роботи в системі. За аналогією до будівництва, це
відповідає задачі «Чи зручно користуватися усім у будинку?».
Наприклад, чи є зручними виходи на балкони?

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 7:22
Вступ

Які бувають програмісти?


• Архітектор бази даних (DB-Architect) проектує бази даних, що є
складовою програмної системи. Для цього використовує відомі
системи управління базами даних (СУБД).
• Перспективними спеціальностями є інженер даних (Big Data
Engineer), інженер з машинного навчання (Machine Learning
Engineer), дослідник даних (Data Scientist) , які розробляють методи,
алгоритми, пов'язані з аналізом даних, необхідні для інтелектуальних
систем.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 8:22
Вступ

Які бувають програмісти?


• Інженер із забезпечення якості (QA-Engineer, Quality Assurance) – це
фахівець із забезпечення якості, діяльність якого спрямована на
поліпшення процесу розроблення ПЗ, запобігання дефектам і
виявлення помилок в роботі продукту. Вузька спеціальність у рамках
QA – тестувальник ПЗ, який перевіряє готовий продукт на наявність
помилок (багів) і невідповідність вимогам, і потім документує
знайдені дефекти й шляхи їх усунення. Є багато різних спеціалізацій
фахівців в сфері забезпечення якості ПЗ. Наприклад, QA-Automation
Engineer, QA-Manual Engineer, Test Analyst, UI/UX-Tester, Security-Tester,
Test Executor, Verifier, Validator.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 9:22
Вступ

Які бувають програмісти?


• Керівник команди (Team Lead) робить керівництво командою окремих
фахівців в процесі виконання проекту. Наприклад, QA Team Lead керує
командою фахівців з якості. Для великих проектів можливе залучення
декількох керівників підкоманд, що відповідають за вирішення окремих
завдань. За аналогією до будівництва, це як прораб будівельників.
• Керівник проекту (Project Manager) відповідальний за «все», в першу
чергу, за оперативне вирішення проблем. Менеджери проектів
створюють план розроблення, організовують команду, налаштовують
процес роботи над проектом, забезпечують зворотній зв’язок між
командами та замовником, усувають перешкоди для команд,
контролюють якість, витрати та виконання термінів.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 10:22
Вступ

Які бувають програмісти?


• Devops-інженер (Devops Engineer, Devops = Development + Operations)
автоматизує процес розроблення, узгоджує результати проектування,
конструювання, тестування; бере участь в розгортанні системи, моніторить
процес експлуатації. Це за аналогією на будівництві технолог, який
допомагає будівельникам використовувати техніку, щоб пришвидшити
процес розроблення і покращити якість кінцевого продукту.
• Системний аналітик (System Analyst/Business-Analyst) аналізує потреби
замовника у застосуванні ІТ. Розробляє вимоги до системи. Аналізує бізнес
(діяльність) з точки зору автоматизації процесів.
• Експерт предметної області (Domain Expert) консультує розробників як
знавець предметної області, для якої створюється програмна система,
допомагає розробникам зрозуміти, що має робити система.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 11:22
Вступ

Які бувають програмісти?


• Технічний письменник/редактор (Technical Writer) створює технічну
документацію до системи у зрозумілому вигляді, не тільки ІТ-
фахівцям. У першу чергу, це посібники/керівництва з користування
системою.
• Серед відповідальних за успішність ІТ-компанії є такі фахівці:
• Business Development Executive (відповідальний за розвиток
бізнесу шукає клієнтів, партнерів…);
• Researcher (дослідник ринку ресурсів, ринку ІТ-продуктів…);
• Chief Technology Officer (головний технічний директор).

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 12:22
Вступ

Статистика зарплат, Львів 2018

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 13:22
Вступ

День Програміста
• відзначають у 256-й день року (у високосний рік це 12 вересня,
а у невисокосний — 13 вересня).
• 256 — число символічне, відповідає кількості чисел, які можна
представити за допомогою одного 8-бітного байта.
• Усе, з чим ми стикаємося за
комп’ютером — результат роботи
програмістів. Крім того, практично
кожен електронний пристрій — від
пульта дистанційного керування до
складних промислових верстатів з
програмним керуванням —
проходить через руки цих фахівців.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 14:22
Вступ

Життєвий цикл програмного забезпечення


• Виділяють чотири основні стадії:
• Специфікація – формулювання основних вимог до ПЗ.
• Розробка – створення ПЗ відповідно до специфікацій.
• Атестація (Валідація) – перевірка ПЗ на відповідність потребам
замовника.
• Модернізація – розвиток ПЗ відповідно до потреб замовника, що
змінилися.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 15:22
Вступ

Життєвий цикл програмного забезпечення

7. Супровід та модифікація програми

6. Тестування та відлагодження програми


В ідеалі
5. Запуск програми на виконання

4. Компіляція

3. Написання коду

2. Проектування програми

1. Визначення цілей програми

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 16:22
Вступ

Життєвий цикл програмного забезпечення


СПЕЦИФІКАЦІЯ Зазвичай
ВИМОГ 3%

ПЛАНУВАННЯ
3%

ПРОЕКТУВАННЯ
5%

РЕАЛІЗАЦІЯ
7%

ТЕСТУВАННЯ І
ВЕРИФІКАЦІЯ 15%

ЕКСПЛУАТАЦІЯ І
СУПРОВОДЖЕННЯ
67%

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 17:22
Вступ

Життєвий цикл програмного забезпечення

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 18:22
Вступ

Життєвий цикл ПЗ (детатьніше)


1. Системний аналіз. У рамках цього етапу здійснюється аналіз вимог,
що пред'являються до програмної системи. Він проводиться на основі
первинного дослідження всіх потоків інформації при традиційному
проведенні робіт і здійснюється в наступній послідовності:
• уточнення видів і послідовності всіх робіт;
• визначення цілей, які повинні бути досягнуті програмою, що
розробляється;
• виявлення аналогів, що забезпечують досягнення подібних цілей, їх
переваг та недоліків.
2. Зовнішнє специфікування. Полягає у визначенні зовнішніх
специфікацій, тобто описів вхідної та вихідної інформації, форм її
подання і способів обробки інформації. Реалізується у такій
послідовності:
• постановка завдання на розробку нової програми;
• оцінка цілей розроблюваного програмного продукту.
Далі, при необхідності, етапи 1-2 можуть бути повторені до досягнення
задовільного вигляду програмної системи з описом виконуваних нею
функцій і деякої ясністю реалізації її функціонування.
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 19:22
Вступ

Життєвий цикл ПЗ (детатьніше)


3. Проектування програми. На цьому етапі проводиться комплекс робіт із
формування опису програми. Вихідними даними для цієї фази є вимоги,
викладені у специфікації, розробленої на попередньому етапі.
Приймаються рішення, що стосуються способів задоволення вимогам
специфікації. Цю фазу розробки програми поділяють на два етапи:
• архітектурне проектування. Являє собою розробку опису програми у
найзагальнішому вигляді. Цей опис містить відомості про можливі варіанти
структурної побудови програмного продукту (або у вигляді кількох програм,
або у вигляді кількох частин однієї програми), а також про основні алгоритми,
і структури даних. Результатом цієї роботи є остаточний варіант архітектури
програмної системи, вимоги до структури окремих програмних компонентів і
організації файлів для міжпрограмного обміну даними;
• робоче проектування. На цьому етапі архітектурний опис програми
деталізується до такого рівня, який робить можливими роботи з її реалізації
(кодування і збірці). Для цього здійснюється складання і перевірка
специфікацій модулів, складання описів логіки модулів, складання
остаточного плану реалізації програми.
4. Кодування і тестування. Ці види діяльності здійснюються для окремих
модулів і сукупності готових модулів до отримання готової програми.
5. Комплексне тестування.
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 20:22
Вступ

Життєвий цикл ПЗ (детатьніше)


6. Розробка експлуатаційної документації.
7. Прийомо-здавальні та інші види випробувань.
8. Коригування програм. Проводиться за результатами попередніх
випробувань.
9. Здавання замовнику. Здійснюється остаточна здача програмного
продукту замовнику.
10. Тиражування.
11. Супровід програми. До поняття "супровід" входять усі технічні
операції, необхідні для використання даної програми у робочому
режимі. Сюди входить не тільки виправлення помилок. На цьому етапі
також здійснюється модифікація програми, внесення виправлень у
робочу документацію, вдосконалення програми та інше. Внаслідок
широких масштабів подібних операцій супровід є ітеративним
процесом, який бажано здійснювати не стільки після, скільки до
випуску програмного продукту для широкого використання. Роботи із
супроводу часто поглинають більше половини витрат, що припадають
на весь життєвий цикл програмної системи у вартісному вираженні.

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 21:22
Вступ

Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 22:22

You might also like