Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Лекція: Про предмет вивчення

Зміст:

  • Програмна інженерія.
  • Програмне забезпечення.

Питання:

  1. Що таке програмна інженерія? Що вона включає в себе?
  2. Назвіть дату зародження програмної інженерії як окремої науки.
  3. Чим відрізняється програмна інженерія від інформатики?
  4. Чим відрізняється програмна інженерія від системотехніки?
  5. Наведіть приклади дисциплін інформатики та програмної інженерії (дисципліни не плутати с навчальними предметами).
  6. Що таке ПЗ?
  7. Перерахуйте характеристики ПЗ за Бруксом та коротко характеризуйте кожну.
  8. C якими іншими видами людської діяльності співвідноситься Створення ПЗ в даному розділі?

Чим програмування відрізняється от програмної інженерії? Тим, що перше являється деякою абстрактною діяльністю та може відбуватися в багатьох різноманітних контекстах. Можна програмувати для задоволення, для того, щоб навчитися (наприклад, на уроках, на семінарах в університеті), можна програмувати в рамках наукових розробок. А можна займатися промисловим програмуванням. Як правило, це відбуватися в команді, та абсолютно точно – для замовника, котрий платить за роботу гроші. При цьому необхідно точно розуміти, що потрібно замовнику, виконати роботу у певні строки і результат повинен бути потрібної якості – тої, котра задовольнить замовника та за яку він заплатить. Щоб задовольнити цим додатковим вимогам, програмування "обростає" різноманітними додатковими видами діяльності: розробкою вимог, плануванням, тестуванням, конфігураційним управлінням, проектним менеджментом, створенням різноманітної документації (проектної, користувальницької та ін.).

Розробка програмного коду передує аналізом та проектуванням (перше означає створення функціональної моделі майбутньої системи без урахування реалізації, для усвідомлення програмістами вимог та очікувань замовника; друге означає попередній макет, ескіз, план системи на папері). Трудовитрати на аналіз та проектування, а також форма представлення їх результатів сильно варіюються від видів проектів та переваг розробників та замовників.

Потребуються також спеціальні зусилля по організації процесу розробки. У загальному вигляді ітератівно-інкрементальна модель, коли потрібна функціональність створюється порціями, які менеджери та замовник можуть оцінити, і тим самим є можливість управління ходом розробки. Однак ця загальна модель має множину модифікацій та варіантів.

Розробку системи також необхідно виконувати з урахуванням зручності її подальшого супроводу, повторного використання та інтеграції з іншими системами. Це означає, що система розбивається на компоненти, які зручні в розробці, придатні для повторного використання та інтеграції. А також що вони мають необхідні характеристики по швидкодії. Для цих компонентів ретельно опрацьовуються інтерфейси. Сама ж система документується на багатьох рівнях, створюються правила оформлення програмного коду – тобто залишаються багаточисельні семантичні сліди, що допомагають створити та зберегти, підтримати єдину, струнку архітектуру, одноманітний стиль, порядок…

Програмна інженерія (Software Engіneerіng) – це дисципліна, яка вивчає питання Побудови комп'ютерних програм та систем, відбиває закономірності розвитку програмування, узагальнює досвід програмування у вигляді комплексу знань і правил регламентації інженерної діяльності розробників ПЗ.

Програмну інженерію можна розглядати як інженерну дисципліну, у якій інженери застосовують теоретичні ідеї, методи і засоби при розробці ПЗ, створюють продукти у відповідності зі стандартами, що регламентують процеси їхнього проектування і розробки.

Програмна інженерія описує методи управління програмним проектом, якістю і ризиками. Застосування таких методів дозволяє досягти високої якості програмних продуктів. Ця інженерна дисципліна надає всю необхідну інформацію і стандарти для вибору найбільш підходящого методу і процесів життєвого циклу ПЗ для реалізації конкретного проекту.

Необхідність у програмній інженерії як у спеціальній області знань була усвідомлена світовою спільною в кінці 60-х років минулого століття, більш ніж на 20 років пізніше народження самого програмування, якщо вважати таким знаменитий звіт фон Неймана "First Draft of a Report on the EDVAC", оприлюднений ним у 1945 році. Народженням програмної інженерії являється 1968 рік – конференція NATO Software Engineering, м. Гармиш (ФРН), котра повністю була присвячена розгляду цих питань. У сферу програмної інженерії попадають усі питання та теми, що пов’язані з організацією та покращенням процесу розробки ПЗ, управлінням колективом розробників, розробкою та впровадженням програмних засобів підтримки життєвого циклу розробки ПЗ. Програмна інженерія використовує досягнення інформатики, тісно пов’язана зі системотехнікою, часто передує бізнес-реінжинірінгом. Трохи детальніше про цей контекст програмної інженерії.

Інформатика (computer science) – це зведення теоретичних наук, заснованих на математиці і присвячених формальним основам обчислення. Сюди відносять математичну логіку, теорію граматик, методи побудови компіляторів, математичні формальні методи, що використані у верифікації і модельному тестуванні і т.д. Важко строго відокремити програмну інженерію від інформатики, але в цілому спрямованість цих дисциплін різна. Програмна інженерія націлена на вирішення проблем виробництва, інформатика – на розробку формальних, математизованих підходів до програмування.

Системотехніка (system engineering) об'єднує різні інженерні дисципліни по розробці всіляких штучних систем – енергоустановок, телекомунікаційних систем, вбудованих систем реального часу і т.д. Дуже часто ПЗ виявляється частиною таких систем, виконуючи завдання управління відповідного обладнання. Такі системи називаються програмно-апаратними, і беручи участь в їх створенні, програмісти вимушені глибоко знатися на особливостях відповідної апаратури.

Бізнес-реінжинірінг (business reengineering) – у широкому сенсі позначає модернізацію бізнесу у певній компанії, впровадження нових практик, що підтримуються відповідними новими інформаційними системами. При цьому акцент може бути як на внутрішньому перевлаштуванні компанії так і на розробці нового клієнтського сервісу (як правило, ці питання взаємопов'язані). Бізнес-реінжинірінг часто передує розробці і впровадженню інформаційних систем на підприємстві, оскільки необхідно спочатку навести певний лад в діловодстві, а лише потім закріпити його інформаційною системою.

Зв’язок програмної інженерії (як області практичної діяльності) з інформатикою, системотехнікою и Бізнес-реінжинірінгом показана на рис. 1.1.

Рис. 1.1.

<== предыдущая лекция | следующая лекция ==>
Посередники депозитарно-клірингової системи | Програмне забезпечення
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 3340; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.