Не забувайте про продуктивність

Крейг Рассел

Уявіть собі автомобіль – просторий, зручний, економічний, недорогий і утилізовано на 98% Хочете такий Звичайно Хто завгодно захоче Ах, так, єдина проблема: його максимальна швидкість складає 10 км / ч Чи не передумали Цей маленький приклад наочно показує, що продуктивність так само важлива, як і будь-який інший критерій

Багато архітекторів ставлять продуктивність на останнє місце у своїх списках – можливо, тому, що компютери обробляють дані незрівнянно швидше своїх користувачів, і архітекторові здається, що швидкість системи виявиться прийнятною А якщо сучасним системам не вистачить швидкодії, про все подбає закон Мура Однак швидкість роботи устаткування – лише один з аспектів системи

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

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

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

Хороша специфікація системи визначає не стільки час відгуку само по собі, скільки час виконання завдання Воно визначається як проміжок часу, необхідний для вирішення завдання з конкретної предметної області, включаючи всі взаємодії користувача з системою Крім часу відгуку в цю характеристику входять час роздуми оператора і час введення даних оператором – величини, що знаходяться поза сферою контролю системи Однак включення цих метрик сприяє якісному проектуванню інтерфейсу користувача Приділивши увагу способу подання інформації та кількості операцій, необхідних для вирішення завдання, ви в кінцевому підсумку поліпшите продуктивність людини-оператора

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

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

Крейг Рассел (Craig Russell) – практикуючий архітектор програмного забезпечення, що спеціалізується на персистентності обєктів (object persistence) і розподілених системах В даний час працює провідним спеціалістом в компанії Sun Microsystems

Джерело: Форд Н, Найгард М, де Ора Б, 97 етюдів для архітекторів програмних систем – Пер з англ – СПб: Сим-вол-Плюс, 2010 – 224 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*