З чого складається вартість по
Типове розподіл вартості між основними етапами (без супроводу) виглядає наступним чином:
15% - специфікація - формулювання вимог і умов розробки
25% - проектування - розробка і верифікація проекту
20% - розробка - кодування і тестування компонент
40% - інтеграція і тестування - об'єднання і складальне тестування продукту
Відхилення від цієї схеми в залежності від типу ПО виглядають наступним чином:
Для коробкового ПО характерна більш висока частка тестування за рахунок скорочення насамперед частки специфікації (до 5%)
Розподіл вартості замовленого ПЗ залежить від його складності. При складному ПО також зростає частка інтеграції та тестування, але за рахунок скорочення частки проектування і розробки Частка специфікацій може зростати. Скорочення частки проектування і розробки досягається за рахунок застосування випробуваних проектних рішень і повторного використання готових компонент.
Застосування випробуваних рішень і готових компонент при створенні коробкових продуктів дозволяє підвищити якість і скоротити терміни розробки.
Ще питання
Для того, щоб отримати уявлення про те, в чому полягає накопичений програмної інженерії досвід, спробуємо розібратися в наступних питаннях:
Що таке програмний процес?
Що таке модель програмного процесу?
Що таке методи програмної інженерії?
Що таке CASE (Computer-Aided Software Engineering)?
Якими властивостями володіє хороша програма?
Які основні труднощі стоять перед програмної інженерії?
Програмний процес?
Одним з основних понять програмної інженерії є поняття життєвого циклу програмного продукту і програмного процесу.
Життєвий цикл - безперервний процес, що починається з моменту прийняття рішення про створення ПО і закінчується зняттям його з експлуатації. Життєвий цикл розбивається на окремі процеси.
Процес - сукупність дій і завдань, що мають на меті досягнення відчутного результату. Основними процесами (іноді називають етапами або фазами) життєвого циклу є:
Розробка специфікації вимог (результат - опису вимог до програми, які є обов'язковими для виконання - опис того, що програма повинна робити)
Розробка проекту програми (результат - опис того, як програма буде працювати)
Кодування (результат - вихідний код і файли конфігурації)
Тестування програми (результат - контроль відповідності програми вимогам)
Документування (результат - документація до програми)
Крім основних, існує багато додаткових і допоміжних процесів, пов'язаних чи не створенням продукту, а з організацією робіт (нефункціональні процеси): створення інфраструктури, управління конфігурацією, управління якістю, навчання, розв'язання суперечностей, ...
Процес повинен бути встановлений. Повний встановлення процесу передбачає:
Опис процесу - детальний опис дій і операцій процесу
Навчання процесу - проведення занять з персоналом по освоєнню процесу
Введення метрик - встановлення кількісних показників ходу виконання
Контроль виконання - вимір метричних показників і оцінка ходу виконання
Удосконалення - зміна процесу при мінливих умовах застосування
Застосування повних (важких) процесів вимагає додаткових ресурсів (найчастіше істотних) і далеко не завжди окупається отриманим результатом. Тому, вибір складу процесів, ступеня їх встановленням (повноту встановлення) в кожному конкретному випадку може бути зроблений по-різному відповідно до обраної моделлю процесу.