Этапы разработки программного обеспечения Профессиональное программирование подразумевает, что результатом труда, – программным продуктом, – будет пользоваться определенный круг людей, пользователей. Н а этапе разработки программы, в которой может участвовать группа людей, пользователей представляет Заказчик. Для выполнения задачи создания и экспл уатации программного обеспечения ее разбивают н а определенные этапы: 1. 2. 3. 4. 5. Пос т а н ов ка задачи. Составление алгоритма. Составление и ввод программы. Отладка и тестирование программы. Сопровождение программного продукта. Создание любой программы н а ч ин а е т с я с п о с т а н о в к и задачи. Изначально задача с т а в и т с я в терминах некоторой предметной области, и необходимо перевести ее в по н я т и я и выражения, более близкие к программированию. Поскольку программист первоначально редко досконально разбирается в предметной области, а З а к а з ч и к – в программировании, то по ста новка задачи может стат ь весьма непростым ит ерационным процессом. Пос т а н ов ка задачи за ка н ч ив а е тся созданием Техниче ск ого задания, а затем и в н е ш н е й с п е ц и ф и к а ц и и п р огр аммы , которая включает в себя: 1. Описание исходных да нны х и результатов (виды, представление, точность, ограничения и т.п.). 2. Описание задачи, реализуемой программой. 3. Способ обращения к программе. 4. Описание возможных особых и а в а р ийн ы х с ит уа ций и ошибок пользователя. Н а этом этапе программа рас сматривается к а к «черный ящик», для которого определяется выполняемая им ф у н к ц и я , входные и выходные данные. К а к и м образом достигается выполнение функций, здесь не указывае тся. На втор ом э т а п е разрабатываются алгоритмы, задаваемые спецификациями, и формируется (проектируется) общая структура программ. Здесь обычно применяется технология нисходящего проектирования с использованием метода по ша- говой детализации. То есть сначала составляется укрупне нный алгоритм в самом общем виде. Зате м уточняются ш а г и (блоки) с более подробным описанием. Н а этом этапе о писан ия производятся н а языке, понятном человеку, используя определенную форму записи алгоритма. В программировании широко используется гр а фич е с ка я форма запис и в виде блок-схем или граф-схем. Т р е т и й э т а п к а к раз и являе тся непосредственно программированием н а языке, понятном Э В М . По своей сути третий эт ап яв ляе тся продолжением второго, т а к к а к программа тоже есть форма записи алгоритма с максимальной степенью детализации, – программная. Ч е т в е р т ы й э т а п подразумевает устранение всех ошибок и недопониманий, возни кш их н а предыдущих эта пах . Человеку свойственно ошибаться, поэтому четвертому этапу уделяется много внимания. Существуют самые разнообразные методы и рекомендации по тестированию и отладке. Необходимо различать эти два понятия. Т е с т и р о в а н и е представляет собой процесс, посред-ством которого проверяется правильность функ цион ир ова ния программы и соответствие всем проектным с п е ци фи ка ция м . В частности, для этих целей создается набор тестов. Отладка – процесс исправления ошибок в программе. Т а к , при отладке исправляются синтаксические ошибки, алгоритмические, ошибки, обнаруженные при тестировании и другие. П я т ы й э т а п наступает, когда программный продукт сдан в эксплуатацию (или начались его продажи). Здесь т а к же возможно обнаружение не найде н ных н а этапе тестирования ошибок, – их необходимо локализовать и исправить. Кроме этого, возможно изменение св о йс тв программы для удобства эксплуатации: элементов интерфейса, некоторых ф у н к ц и й и т.д. Казалось бы, п ят ы й эта п самый простой. Но ему отводится самая большая част ь затрат времени и средств: до половины и более. Вс е эти эт а пы разработки и сопровождения Программного продукта, включа я завершение поддержки эксплуа тации, составляют ж и з н е н н ы й ц и к л п р о гра м мы. Возможно и другое деление н а эт а пы [1] с приблизитель-ным делением по времени реализации, к а к указано н а рис. 1.1: 1. 2. 3. 4. 5. 6. Анализ требований. Определение с п е ц и фика ц ий. Проектирование. Кодирование. Автономное тестирование. Комплексное тестирование. Рис. 1.1. Временные затраты на реализацию этапов цикла разработки программного обеспечения (за исключением эт апа эксплуатации и сопровождения) [1] Н а последний же этап эксплуатации и сопровождения объемных программных продуктов отводится более половины времени: до 6 7 % от общего времени жизненного цикла. Классическим называ е тся следующий набор технологических этапов (процессов) [2]: 1. 2. 3. 4. 5. 6. 7. Возникновение и исследование идеи Управление Анализ требований Проектирование Программирование Тестирование и отладка Ввод в действие 8. 9. Экспл уата ци я и сопровождение Завершение эксплуатации Процессы жизненного цикла программного обеспечения определены международным стандартом I S O 1 2 2 0 7 [ I S O / I E C 12207:1995] и делятся н а три группы (без пр ивя зки ко времени) [2]: Основные процессы: приобретение, п ос т а в к а , разработка, эксплуатация, сопровождение. Вспомогательные процессы: документирование, управление конфигурацией, обеспечение к а ч е с т в а , в е р и ф ика ц и я, атте стация, совместная оце нка, аудит, разрешение проблем. Организационные процессы: управление, создание инфр аструкт уры, усовершенствование, обучение.