В основе деятельности по созданию и использованию программного обеспечения любого типа (поэтому далее – просто ПО) лежит понятие его жизненного цикла (ЖЦ). Жизненный цикл является моделью создания и использования ПО, отражающей его различные состояния, начиная с момента возникновения необходимости в данном ПО и заканчивая моментов его полного выхода из употребления у всех пользователей.
Традиционно выделяются следующие основные этапы ЖЦ ПО:
- анализ требований
- проектирование
- кодирование (программирование)
- тестирование и отладка
- эксплуатация и сопровождение
ЖЦ образуется в соответствии с принципом нисходящего проектирования и, как правило, носит итеративный характер: реализованные этапы, начиная с самых ранних, циклически повторяются в соответствии с изменениями требований и внешний условий, введением ограничений и т.п. На каждом этапе ЖЦ порождается определенный набор документов и технических решений, при этом для каждого этапа исходными являются документы и решения, полученные на предыдущем этапе.
Каждый этап завершается верификацией порожденных документов и решений с целью проверки их соответствия исходным.
Существующие модели ЖЦ определяют порядок исполнения этапов в ходе разработки, а также критерии перехода от этапа к этапу.
Наибольшее распространение получили три модели ЖЦ:
1. Каскадная модель (70-80 г.г.) – предполагает переход на следующий этап после полного окончания работ по предыдущему этапу.
2. Поэтапная модель с промежуточным контролем (80-85 г.г.) – итерационная модель разработки ПО с циклами обратной связи между этапами. Преимущество такой модели заключается в том, что межэтапные корректировки обеспечивают меньшую трудоемкость по сравнению с каскадной моделью, однако, время жизни каждого из этапов растягивается на вес период разработки.
3. Спиральная модель (86-90 г.г.) – делает упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапно модели создания фрагмента или версии программного изделия, на нем уточняются цели и характеристики проекта, определяется его качество, планируются работы следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации.
Спиральная модель обладает такими преимуществами:
- Накопление и повторное использование программных средств, моделей и прототипов
- Ориентация на развитие и модификацию ПО в процессе его проектирования
- Анализ риска и издержек в процессе проектировании
Главная особенность индустрии ПО состоит в концентрации сложности на начальных этапах ЖЦ (анализ, проектирование) при относительно невысокой сложности и трудоемкости последующих этапов. Более того, нерешенные вопросы и ошибки, допущенные на этапах анализа и проектирования, порождают на более поздних этапах трудные, часто уже неразрешимые проблемы, и приводят к неуспеху всего проекта.
Рассмотрим этапы ЖЦ более подробно:
Анализ требований: требования заказчика уточняются, формализуются и документируются. На этом этапе дается ответ на вопрос: «Что должна делать система?».
Список требований к разрабатываемой системе должен включать:
- Совокупность условий, при которых предполагается эксплуатировать будущую систему (аппаратные и программные ресурсы, внешние условия функционирования, состав людей и работ, имеющих отношение к системе)
- Описание функций системы
- Ограничения в процессе разработки (директивные сроки завершения отдельных этапов, имеющиеся ресурсы, организационные процедуры и мероприятия, обеспечивающие защиту информации)
Целью анализа является преобразование общих, неясных знаний о требованиях к будущей системе в точные (по возможности) определения. На этом этапе определяются:
- Архитектура системы, ее функции, внешние условия, распределение функций между аппаратным и программным обеспечением
- Интерфейсы и распределение функций между человеком и системой
- Требования к программным и информационным компонентам ПО, необходимые аппаратные ресурсы, требования к БД, физические характеристики компонентов ПО, их интерфейсы.
Этап проектирования: дает ответ на вопрос «Как (каким образом) система будет соответствовать предъявленным требованиям?».
Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем без внимания к вопросам реализации.
Обычно этот этап разбивают на два подэтапа:
- Проектирование архитектуры ПО – разработка структуры и интерфейсов компонентов, согласование функций и технических требований к компонентам, стандартам проектирования, производство отчетных документов
- Детальное проектирование– разработка спецификаций каждого компонента, интерфейсов между компонентами, разработку требований к тестам и плана интеграции компонентов.
В результате деятельности на этапах анализа и проектирвания должен быть получен проект системы, содержащий достаточно информации для реализации системы на его основе в рамках бюджета выделенных ресурсов и времени.
Подготовка ко внедрению или разработке системы. Процесс внедрения.
Процесс разработки и внедрения КИС исполняется по следующему сценарию:
1. Анализ существующих систем или разработка требований к создаваемой системе
2. Типовой процесс внедрения
2.1 Разработка стратегии автоматизации
2.2 Анализ деятельности предприятия.
2.3 Реорганизация деятельности.
2.4 Выбор системы.
2.5 Внедрение системы.
2.6 Эксплуатация
К типичным проблемам при внедрении КИС относят:
- Подготовка предприятия к автоматизации
- Выбор системы
В таблице 1 приведены примерные функции системы и их характеристики. При разработке технического задания на разработку системы или при сравнительном анализе сопоставимых альтернативных систем желательно составить подобную таблицу и заполнить её для альтернативных систем.
Таблица 1 – Функции системы и их плюсы использования.
Функция системы | Позволяет делать | Качественный выигрыш |
Блок проектирования | ||
Item Part Number Control (Управление структурой изделия) | Управляет структурой изделия с точностью до комплектующих (узлов и агрегатов) | Повышение точности данных для планирования производственной деятельности, обеспечение стыка с системами проектирования |
Bill of Materials Control (Управление спецификациями продуктов) | Контролирует весь перечень материалов, требуемых для производства конечного изделия (как количественно, так и в финансовом эквиваленте) | Повышение точности данных для планирования производственной деятельности, обеспечение стыка с системами проектирования |
Блок контроля инженерной документации | ||
Routings (Маршрутизация) | Управляет распределением потока заказов по цехам (рабочим местам) | Оптимальная загрузка цехов (оборудования) |
Estimating (Смета) | Оценка влияния изменений | Точный учет затрат, связанных с изменениями |
Design Engineering (Разработка технологии) | Подготавливает технологию выпуска продукции | Оптимальная технология выпуска продукции |
Блок управления закупками | ||
Vendor Performance (Исполненные поставки) | Учет исполнения запланированных поступлений | Точный учет запасов, повышение достоверности планирования |
Purchase Order Management (Управление заказами на закупку) | Планирование и ввод заказов на закупку | Сокращение материальных запасов за счет обеспечения поставок в требуемый срок |
Subcontract Purchase Orders (Заказы на закупку по субконтрактам) | Планирование и ввод заказов на закупку, выполняемых субподрядчиками | Сокращение материальных запасов за счет обеспечения поставок в требуемый срок |
Блок управления материальными запасами | ||
Inventory Control (Управление запасами) | Планирование и учет запасов | Сокращение материальных запасов за счет планирования поставок к требуемому сроку |
Master Production Scheduling (План-график выпуска продукции) | Среднесрочный объемно-календарный план выпуска продукции | Выпуск продукции к требуемому сроку, сокращение издержек на хранение продукции |
Material Requirements Planning (Планирование потребностей в материалах) | Планирование необходимых материалов по количеству и срокам | Сокращение времени простоя из-за нехватки материалов, сокращение материальных запасов |
Lot/Serial Tracking (Отслеживание партий/серий) | Учет выпуска партий продукции | Повышение точности планирования продаж, сокращение материальных запасов |
Rough-Cut Capacity Planning (Укрупненное планирование мощностей) | Планирование необходимых мощностей на основании требуемых для выпуска видов продукции ресурсов | Оптимальная загрузка критических ресурсов под виды продукции |
Производственный блок | ||
Shop Floor Control (Управление на уровне производственного цеха) | Составление оперативных (дни-месяц) план-графиков | Оптимальная загрузка цеха, детальное планирование выпуска продукции |
Capacity Requirements Planning (Планирование потребностей в мощностях) | Детальное планирование потребных мощностей до уровня рабочих центров | Оптимальная загрузка всех рабочих мест |
Project Control (Управление проектом) | Управление проектами предприятия | Выполнение проектов с требуемым качеством в заданные сроки |
Блок управления издержками | ||
Job Costing (Трудовые издержки) | Рассчитывает трудозатраты | Выделение затрат, связанных с работой персонала |
Cash Flow Analysis (Анализ наличных потоков) | Анализ всех денежных потоков предприятия | Оптимальное регулирование денежных потоков |
Actual Costs (Действительные издержки) | Расчет реальной себестоимости | Выявление неэффективных участков и технологий |
Standard Costs (Нормативная стоимость) | Расчет плановой себестоимости | Поддержка процесса снижения издержек |
Work Breakdown Structure (Стоимость этапов работ) | Расчет себестоимости работ по отдельным этапам | Поддержка процесса снижения издержек |
Блок управления финансами | ||
Accounts Receivable (Выставленные счета) | Выставление счетов к оплате | Учет выставленных счетов |
Accounts Payable (Оплаченные счета) | Регистрация оплаты счетов | Учет реальной оплаты выставленных счетов |
General Ledger (Главная книга) | Учет всех бухгалтерских операций | Реальная картина текущего баланса |
Multi-Company Consolidation (Консолидация баланса от многих компаний) | Объединение баланса нескольких дочерних компаний | Реальная картина баланса нескольких компаний. |
Foreign Currency Conversion (Конвертор валют) | Работа с несколькими валютами | Возможность осуществления расчетов в нескольких валютах |
Блок маркетинга/продаж | ||
Sales Order Management (Управление заказами на продажу) | Учет заказов на продукцию | Оптимальная загрузка производства |
Order Configurator (Конфигурация заказов) | Планирование последовательности заказов | Оптимальная загрузка складов, поддержка процесса оптимизации денежных потоков |
Billing/Invoicing (Выставление счетов-фактур) | Ведение книги продаж/покупок | Соответствие законодательству, сокращение затрат |
Full Sales Analysis (Полный анализ продаж) | Анализ всех аспектов продаж | Повышение достоверности прогнозирования/ планирования |
Commission Calculation/Reporting (Расчет комиссионных/ отчетность) | Расчет скидок/комиссионных | Гибкая работа с поставщиками и потребителями |
Sales Forecasting/Rollups (Прогнозирование продаж) | Подготовка исходных данных для производственых планов верхнего уровня | Повышение достоверности планирования |
Quoting (Квотирование) | Квотирование продаж | Повышение прибыли за счет управления спросом |