» » » » М. Сидоров - ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

М. Сидоров - ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

На нашем литературном портале можно бесплатно читать книгу М. Сидоров - ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ, М. Сидоров . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bookplaneta.ru.
М. Сидоров - ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Название: ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Автор: М. Сидоров
ISBN: -
Год: неизвестен
Дата добавления: 3 июль 2019
Количество просмотров: 283
Читать онлайн

ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ читать книгу онлайн

ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ - читать бесплатно онлайн , автор М. Сидоров
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний авіаційний університетМ. О. СидоровВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯКурс лекцій КиївВидавництво Національного авіаційного університету «НАУ-друк» 2010УДК 004.4(042.4) ББК з 973.20-018.2я7 С 347Рецензент: S. А. Резніченко- канд.фіз.-мат.наук (Інститут програмних систем HAH України); В, А. Дерецький - канд.фіз.-мат.наук (Інститут програмних систем HAH України); В. А. Хоменко - канд.техн. наук, доц. (Національний авіаційний університет)Затверджено методично-редакційною радою Національного авіаційного університету (протокол № 14 від 03.07.2008p.).Сидоров М. О.С 347 Вступ до інженерії програмного забезпечення : курс лекцій / М.О.Сидоров. - К.: Вид-во Нац. авіац. ун-ту «НАУ-друк», 2010. -112 с.ISBN 978-966-598-626-3У курсі лекцій викладено основні положення інженерії програмного забезпечення.Для студентів напряму 6.050103 "Програмна інженерія".УДК 004.4(042.4) ББК з 973.20-018.2я7ISBN 978-966-598-266-3 © Сидоров М.О.. 2010
Перейти на страницу:

ВСТУП

Видання містить матеріал лекцій з дисципліни «Вступ до програмної інженерії», яка викладаеться в бакалавраті «Програмна інженерія».

Матеріал книги є базовим під час вивчення інших дисциплін бакалаврату «Програмна інженерія».

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

У першому розділі розглянуто умови виникнення інженерії програмного забезпечення та її місце в контексті інших інженерій.

У другому розділі висвітлено культуру інженерії програмного забезпечення і моделі зрілості як засоби реалізації культури.

У третьому розділі викладено результати інженерної діяльності - програми, програмні продукти і системи.

У четвертому розділі наведено складові життєвого циклу програмного забезпечення.

У п'ятому розділі розглянуто складові інженерії програмного забезпечення; їх застосування і зв'язок.

У шостому розділі подано моделі життєвого циклу програмного забезпечення.

У сьомому розділі викладено окремі матеріали з менеджменту проектів, а саме - оцінка вартості програмного забезпечення.

Курс лекцій може застосовуватися під чаc вивчення дисципліни «Методологія розробки великих програмних комплексів і систем», яка викладаєтеся в бакалавраті «Комп'ютерні науки». 

Модуль І

ІНЖЕНЕРІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ. ОСНОВНІ ПОНЯТТЯ


Розділ 1. ІСТОРИЧНИЙ АСПЕКТ ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Незважаючи на відносно недовгий період, що пройшов з моменту появи інженерії програмного забезпечення (1968), вона має свою історію.

У розділі 1 розглянуто процеси, діячі і події, які призвели до по­ яви інженерії програмного забезпечення. Показано, що інженерія програмного забезпечення — це одна з Інженерних дисциплін. Наведено визначення інженерії програмного забезпечення. Розглянуто професійні властивості інженера з програмного забезпечення,

1.1. Умови виникнення інженерії програмного забезпечення

Як відомо, перші комп'ютери, що працювали під управлінням Програм, які зберігаються в пам'яті, з'явилися у 40 - 50-х рр. XX ст. Разом з ними постало нове завдання, суть якого полягає у створенні програм, і процес, спрямований на її вирішення - програмування. Тому подальший розвиток обчислювальної техніки пов'язаний не тільки з удосконаленням комп'ютерів і їх розповсюдженням, але й з розвитком програмування.

Майже одночасно з появою комп'ютерів відбулося розділення розробників програм на два типи - прикладних і системних програмістів.

До першого типу (прикладні програмісти) увійшли фахівці з прикладних галузей (доменів) - математики, фізики, економіки, освіти; технологій. Вони писали програми мовами високого рівня (Cobol, Fortran) для вирішення тих завдань, що виникають у галузях. Їх діяльність називалася прикладним програмуванням.

До другого типу (системні програмісти) увійшли фахівці, від яких не вимагалося знань доменів, оскільки вони займалися автоматизацією процесів розробки програм. Системні програмісти за­ звичай писали програми в машинному коді або мовою АСЕМБЛЕР. Їх діяльність називалася системним програмуванням. Сукупність прикладних і системних програм називається програмним забезпеченням.

У 60 - 70-х рр. XX ст. були створені високопродуктивні обчислювальні машини (швидкістю близько 1 млн., опер./с БЕСМ-6 в CPCP i UNIVAC в США). З їх появою виникла можливість вирішення великих і складних завдань. Це, своєю чергою, потребувало розробки великих програм (від 100 тис. до 1 мли. рядків). Великі програми спричинили проблеми, пов'язані з їх створенням і вико­ рисканням.

Із збільшенням продуктивності, кількості обчислювальних машин і розширенням сфери їх застосування, з'явилися програми двох типів. Програми першого типу створювалися і продавалися разом з машинами (транслятори, операційні системи, бібліотеки підпрограм). Програми другого типу створювалися на замовлення і призначалися для вирішення завдань з різних предметних галузей. Таким чином, з'явився замовник - організація, яка ставила завдання, призначала терміни, виділяла бюджет і оплачувала роботу. У зв'язку з цим дуже швидко з'явилось завдання - супровід Про­ грами і проблема - непорозуміння між розробником і замовником.

У 60-х рр. XX ст. унаслідок розповсюдження застосування комп'ютерів, зросла роль і утвердилась важливість програмного забезпечення. Цьому сприяла поява значної кількості проектів програмного забезпечення, що характеризувалися такими аспектами:

- наявністю замовника або ринкової ніші;

- великими розмірами і витратами;

- жорсткими вимогами до процесів реалізації і результатів;

- мілітаризацією.

Контекст, у якому розроблялося і використовувалося програмне забезпечення, сприяв особливому стану програмного забезпечення в обчислювальній техніці і характеризувався такими чинниками:

- розроблялося дуже велике за обсягом програмне забезпечення, характерним представником якою була тоді операційна система OS360 для ЕОМ серії IBM. Це програмне забезпечення містило більше 500 тис. операторів і розроблялося значним, для того часу, колективом розробників (близько 1000). Досвід цього проекту був узагальнений і став відомий;

- програмне забезпечення вирішувало настільки серйозні зав­ дання, що виникла проблема з його супроводом, суть якого зводилася не тільки до виправлення помилок, допущених при розробці, але й до модифікації програмного забезпечення у зв'язку із зміною вимог замовника або середовища, у якому експлуатувалося програмне забезпечення, або бажанням розробника продовжити експлуатацію, шляхом випуску вдосконалених версій;

- часті зриви термінів розробки і перевищення бюджету потре­ бували не тільки нового підходу до організації процесу розробки, але і нових методів і засобів, що забезпечують обґрунтований розрахунок параметрів проекту, які характеризували фінансування, терміни, об'єми програмного забезпечення, кількісний і якісний склад колективу розробників. Існуюча і широко використовувана одиниця вимірювання - «людино-місяць» не працювала на таких масштабних проектах;

- досвід розробки програмного забезпечення, який нагромаджений за цей період, показав, що все рідше розроблялися принципово нові проекти. Лише 15% усіх проектів потребували розробки «з нуля». Нині 85% належать до проектів, що повторюються. Тому актуальним стає використання досвіду, нагромадженого в програмному забезпеченні До того ж, поступово стало зрозуміло, що має вирішуватися завдання використання досвіду не лише безпосередньо програмування, у вигляді частин програм, але і досвіду результатів виконання інших процесів, наприклад, проектування. Для вирішення цього завдання в 1984 р. були широко розгорнені роботи з дослідження програмного забезпечення в аспекті повторного використання (reuse);

- техніка програмування і процеси, що були ефективні в 50-х і ранніх 60-х pp. XX ст. («програмування в малому») для розробки невеликих програм малими колективами, стали неефективними при розробці великого за обсягом, складного програмного забезпечення, що складається з мільйонів рядків коду, та вимагає декількох років роботи сотень фахівців різних спеціальностей. Були потрібні нові технології, що почали вважати «програмуванням у великому».

Почали з'являтися нові процеси, що потребували певної організації (табл.1.1). Таким чином, склалася ситуація, яка призвела до кризи в програмному забезпеченні і необхідності пошуку шляхів виходу з неї, так званої «срібної кулі». Виходом з цієї ситуації стало обговорення на конференції NATO в 1968 р. нової дисципліни, яку назвали «інженерія програмного забезпечення» (software engineering). До того ж, уперше акценти в методах, засобах і процесах розробки програмного забезпечення були зміщені: по-перше, з кодування програм на інші процеси їх розробки, а по-друге, з якісних аспектів у бік кількісних, інженерних. Окрім цього, додатковий стимул отримали ті, хто виконував наукові і практичні роботи з економічного напряму і менеджменту проектів програмного забезпечення.

Таблиця 1.1

Періоди розвитку 1960±5 років програмування "any-wich-way" 1970±5 років «програмування в малому» 1980±5 ро­ків «програму­вання у ве­ликому» Об'єкти порівняння       Об'єкти Маленькі програми Алгоритми і програми Системна структура Дані Неструктурована інформація Структури даних Бази даних     і типи   Управління Елементарне ро­зуміння діаграм управління Програми виконуються і закін­чуються Програми, що безпере­рвно вико­нуються Простір етанів Стан, що погано розуміється окре­мо від управління Маленькі, прості Великі,       структуризовані Організаційне управління Немає Індивідуальні зусилля Колективні       зусилля,       супровід Інструмент» Асемблери Компілятори, редактори, заван­тажувачі Середовища, інтегровані інстру­менти

1.2. Інженерія програмного забезпечення - інженерна галузь

Перейти на страницу:
Комментариев (0)