Книга «Програмна інженерія. Підручник для вузів. 5-е видання оновлене і доповнене»

imageПривіт, Хаброжители! Ми вирішили написати огляд про навчальну літературу С. А. Орлова, який дає комплексний підхід до вирішення найбільш важливих питань, що виникають у програмних проектах.

Підручник присвячено систематичному викладу принципів, моделей, методів і показників, використовуваних в інженерній циклі створення складних програмних систем. Викладено основи як класичних, так і гнучких методів розробки, питання менеджменту класичних і гнучких програмних проектів. Показані останні наукові та практичні досягнення, що характеризують динаміку розвитку цієї галузі. Наприклад, значна увага приділяється самим «дзвінким» темами: сервисноориентированной архітектурі і хмарних технологій, предметно-орієнтованого підходу і методології DevOps, розробці через поведінку. Описано комплексний підхід до вирішення найбільш важливих питань, що виникають у програмних проектах.

Питання, висвітлені в даному підручнику:
— програмні продукти (вироби);
— життєвий цикл ПЗ;
— метрологія та якість;
— критерії якості: складність, коректність, надійність, трудомісткість;
— вимірювання та оцінка якості ПЗ;
— процес виробництва ЗА: методи, технологія та інструментальні засоби;
— тестування і налагодження;
— документування;
— проектування програмного забезпечення;
— технологічний цикл розробки програмних систем;
— колективна робота по створенню програм;
— організація процесу розробки та інструментальні засоби підтримки;
— автоматизація проектування програмних продуктів;
— принципи побудови, структура і технологія використання САПР.

Що нового в цьому виданні?
По-перше, текст оновлено для відображення найбільш вражаючих наукових та інженерних новацій останніх років. Суттєво розширено виклад питань менеджменту як класичних, так і гнучких програмних проектів. Зокрема, викладено такі класичні питання, як побудова ієрархічної структури робіт, створення розкладу за методом критичного шляху, контроль ходу проекту по методу освоєного об'єму. Введено пояснення принципів гнучкої і ощадливої програмної розробки. Відчутно зросла глибина викладу матеріалу з менеджменту гнучких Scrum-проектів. Досить послідовно і докладно розглянута специфіка Канбан-менеджменту ощадливої розробки. По-друге, додані нові розділи за сервісно-орієнтованої архітектури і хмарних технологій — самим «дзвінким» тем сучасної програмної інженерії. По-третє, наведено пояснення суті предметно-орієнтованого підходу (Domain-Driven Design) і новітньої методології DevOps (Development і Operations), гарячими темами для обговорення на всіх наукових і практичних конференціях програмної індустрії. По-четверте, виклад питань якості програмних продуктів тепер побудовано на основі нової серії міжнародних стандартів ISO/IEC 25000, а для кількісної оцінки характеристик якості пропонуються 89 метрик.

Зміст даного підручника відповідає рекомендаціям міжнародного стандарту з комп'ютерного освіти Computing Curricula 2005 і міжнародному стандарту з програмної інженерії IEEE Computer Society Guide to the Software Engineering Body of Knowledge SWEBOK 2004. Підручник складається з 21 глави і трьох додатків.

Перша глава присвячена базовим поняттям програмної інженерії. Тут наведена офіційна класифікація процесів програмної інженерії, докладно розглядаються основні ідеї, зміст і оцінка якості класичних, сучасних і перспективних процесів розробки ПЗ. Спектр категорій обговорюваних процесів досить широкий: від дисциплінуючих «великовагових» процесів (лінійних і циклічних) до полегшених гнучких процесів.

Другий розділ знайомить з питаннями управління програмними проектами — основними поняттями і специфікою процесу керівництва, плануванням проекту, управлінням ризиками, персоналом, документацією і конфігурацією програмного забезпечення. Тут роз'яснюються питання менеджменту як класичних, так і гнучких програмних проектів.

Третя глава розглядає комплексну оцінку при плануванні програмного проекту. Вводяться розмірно-орієнтовані та функціонально-орієнтовані метрики витрат, обговорюється методика їх застосування, описується найбільш популярна модель для оцінки витрат — СОСОМО II. Наводяться приклади попередньої оцінки програмного проекту та аналізу чутливості проекту до зміни умов розробки.

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

П'ята глава пояснює класичні методи аналізу вимог, орієнтовані на процедурну реалізацію програмних систем. Тут викладаються найбільш популярні, що пройшли перевірку часом методи. Виклад носить історичний характер.

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

Сьома глава — це огляд класичних, процедурних методів проектування ПО. Вони розглядаються як історичні корені сучасних методів проектування.

Восьма глава розкриває принципи об'єктно-орієнтованого представлення програмних систем — особливості їх абстрагування, інкапсуляції, модульності, ієрархічної організації. Тут вивчаються характеристики основних будівельних елементів об'єктно-орієнтованого ПО — об'єктів і класів, а також відносини між ними. Далі дається стислий виклад базових понять мови візуального моделювання — UML, описується його сучасна версія 2.3 та коментуються механізми розширення мови.

Дев'ята глава містить матеріал з сучасним методам і засобам формування вихідних вимог замовника та аналізу детальних вимог до об'єктно-орієнтованої середовищі. В якості засобів для формування вимог обговорюються діаграма Use Case і діаграма діяльності, а в якості засобів для аналізу вимог — діаграма комунікації і діаграма послідовності. Детально пояснюється методика оцінки витрат на програмний проект, орієнтована на обробку діаграм Use Case. Додатково описуються діаграми кінцевих автоматів — потужний інструмент для моделювання об'єктів, керованих подіями.

Десята глава висвітлює широке коло питань проектування в об'єктно-орієнтованому стилі: принципи детального проектування, засоби мови UML для архітектурного та детального проектування; патерн-орієнтоване проектування. Ілюструються модель промислового підходу до компонентної упаковці програмного коду, базові ідеї аспектно-орієнтованого підходу. Визначаються принципи проектування користувальницького інтерфейсу і метрики практичності інтерфейсу, викладаються питання розгортання на апаратних засобах комп'ютерних систем, пояснюються ідеї предметно-орієнтованого підходу до розробки (DDD) і новітнього підходу, що отримав назву DevOps.

Одинадцята глава являє особливості розробки баз даних в рамках об'єктно-орієнтованої програмної системи.

У дванадцятій главі роз'яснюється метричний апарат для оцінки якості об'єктно-орієнтованих проектних рішень: метрики оцінки об'єктно-орієнтованої зв'язності, зчеплення; аспектно-орієнтовані метрики; широко відомі набори метрик Чидамбера і Кемерера, Фернандо Абреу, Лоренца і Кідда; описується методика їх застосування.

Тринадцята глава вирішує завдання презентації уніфікованого процесу розробки об'єктно-орієнтованих програмних систем, на конкретних прикладах навчає методикою застосування цього процесу. Крім того, тут розглядається XP-процес екстремальної розробки. Застосування XP-процесу також ілюструється прикладом.

Чотирнадцята глава визначає базові поняття структурного тестування програмного забезпечення (за принципом «білого ящика») і знайомить з найбільш популярними методиками даного виду тестування: тестування базового шляху, тестування гілок і операторів відносин, тестування потоків даних, тестування циклів.

П'ятнадцята глава вводить в коло понять функціонального тестування та описує конкретні способи тестування — шляхом розбиття за еквівалентності, аналізу граничних значень, побудови діаграм причин–наслідків.

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

Сімнадцята глава навчає особливостям об'єктно-орієнтованого тестування, проведення такого тестування на рівні візуальних моделей, рівні методів, рівні класів і рівні взаємодії класів. Тут же описується методика розробки через тестування (TDD), застосовувана в гнучких процесах, а також її розвиток — методика розробки через поведінку (BDD). Крім того, обговорюється організація популярної середовища тестування JUnit.

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

Дев'ятнадцята глава націлена на широкий спектр питань, що покривають хмарні технології: передумови їх виникнення, основні поняття (віртуалізація, консолідація, визначення хмари, базові характеристики, переваги хмарного підходу, категорії хмар, моделі надання хмарних послуг). Значна увага приділяється розгляду як функціональної, так і структурної організації хмарних додатків.

Двадцята глава відображає проблематику оцінки якості програмних систем. Тут мова йде про поняття «якість» і всіх аспектах його забезпечення: цілі, фактори, кількісному підході до визначення рівня якості, наводиться вся панорама діяльності по забезпеченню якості. Окремо обговорюються технічні перевірки та аудити, інспектування, верифікація і валідація, а також оформлення плану по забезпеченню якості.

Двадцять перша глава демонструє можливості застосування CASE-системи IBM Rational Software Architect до вирішення завдань автоматизації формування вимог, аналізу, проектування та програмування програмного продукту. У додатках наведено розрахункові таблиці для моделі витрат COCOMO II, наводяться 89 метрик для оцінки якості програмних продуктів у відповідності зі стандартом ISO/IEC 25023, перераховуються терміни мови UML і уніфікованого процесу розробки.

» Більш докладно з книгою можна ознайомитися на сайті видавництва
» Зміст
» Уривок

Для Хаброжителей знижка 15% по купону — Програмна інженерія

Електронна версія на Google Play
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.