Этапы создания программного обеспечения

Этапы создания программного обеспечения

Часть 1. Основные понятия программирования

Профессиональное программирование подразумевает, что результатом труда, – программным продуктом, – будет пользоваться определенный круг людей, пользователей. На этапе разработки программы, в которой может участвовать группа людей, пользователей представляет Заказчик.

Для выполнения задачи создания и эксплуатации программного обеспечения ее разбивают на определенные этапы:

1. Постановка задачи.

2. Составление алгоритма.

3. Составление и ввод программы.

4. Отладка и тестирование программы.

5. Сопровождение программного продукта.

Создание любой программы начинается с постановки задачи. Изначально задача ставится в терминах некоторой предметной области, и необходимо перевести ее в понятия и выражения, более близкие к программированию. Поскольку программист первоначально редко досконально разбирается в предметной области, а Заказчик – в программировании, то постановка задачи может стать весьма непростым итерационным процессом.

Постановка задачи заканчивается созданием технического задания, а затем и внешней спецификации программы, которая включает в себя:

1. Описание исходных данных и результатов (виды, представление, точность, ограничения и т.п.).

2. Описание задачи, реализуемой программой.

3. Способ обращения к программе.

4. Описание возможных особых и аварийных ситуаций и ошибок пользователя.

На этом этапе программа рассматривается как «черный ящик», для которого определяется выполняемая им функция, входные и выходные данные. Каким образом достигается выполнение функций, здесь не указывается.

На втором этапе разрабатываются алгоритмы, задаваемые спецификациями, и формируется (проектируется) общая структура программ [3]. Здесь обычно применяется технология нисходящего проектирования с использованием метода пошаговой детализации. То есть сначала составляется укрупненный алгоритм в самом общем виде. Затем уточняются шаги (блоки) с более подробным описанием. На этом этапе описания производятся на языке, понятном человеку, используя определенную форму записи алгоритма. В программировании широко используется графическая форма записи в виде блок-схем или граф-схем.

Третий этап как раз и является непосредственно программированием на языке, понятном ЭВМ. По своей сути третий этап является продолжением второго, так как программа тоже есть форма записи алгоритма с максимальной степенью детализации, – программная.

Изучению одного из языков программирования высокого уровня и посвящается данный курс.

Четвертый этап подразумевает устранение всех ошибок и недопониманий, возникших на предыдущих этапах. Человеку свойственно ошибаться, поэтому четвертому этапу уделяется много внимания.

Существуют самые разнообразные методы и рекомендации по тестированию и отладке. Необходимо различать эти два понятия. Тестирование представляет собой процесс, посредством которого проверяется правильность функционирования программы и соответствие всем проектным спецификациям. В частности, для этих целей создается набор тестов. Отладка – процесс исправления ошибок в программе. Так, при отладке исправляются синтаксические ошибки, алгоритмические, ошибки, обнаруженные при тестировании и другие.

Пятый этап наступает, когда программный продукт сдан в эксплуатацию (или начались его продажи). Здесь так же возможно обнаружение не найденных на этапе тестирования ошибок, – их необходимо локализовать и исправить. Кроме этого, возможно изменение свойств программы для удобства эксплуатации: элементов интерфейса, некоторых функций и т.д. Казалось бы, пятый этап самый простой. Но ему отводится самая большая часть затрат времени и средств: до половины и более.

Все эти этапы разработки и сопровождения программного продукта, включая завершение поддержки эксплуатации, составляют жизненный цикл программы.

Возможно и другое деление на этапы [1] с приблизительным делением по времени реализации, как указано на рис. 1.1:

1. Анализ требований.

2. Определение спецификаций.

5. Автономное тестирование.

6. Комплексное тестирование.

Рис. 1.1. Временные затраты на реализацию этапов цикла разработки программного обеспечения (за исключением этапа эксплуатации и сопровождения) [1]

На последний же этап эксплуатации и сопровождения объемных программных продуктов отводится более половины времени: до 67% от общего времени жизненного цикла.

Классическим называется следующий набор технологических этапов (процессов) [2]:

1. Возникновение и исследование идеи

3. Анализ требований

6. Тестирование и отладка

7. Ввод в действие

8. Эксплуатация и сопровождение

9. Завершение эксплуатации

Процессы жизненного цикла программного обеспечения определены международным стандартом ISO 12207 [ISO/IEC 12207:1995] и делятся на три группы (без привязки ко времени) [2]:

· Основные процессы: приобретение, поставка, разработка, эксплуатация, сопровождение.

· Вспомогательные процессы: документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем.

· Организационные процессы: управление, создание инфраструктуры, усовершенствование, обучение.

Не нашли то, что искали? Воспользуйтесь поиском:

Читайте также:  Чем отличается ртутный градусник от спиртового

Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 10011 — | 7768 — или читать все.

В этой статье попробуем раскрыть основные этапы разработки программы, написанной на любом языке программирования.

Спецификация (определение требований к программе):

На данном этапе происходит подробное описание исходных данных, осуществляется формулировка требований к получаемому результату, рассматриваются всевозможные поведения программы при возникновении особых случаев (к примеру, если ввели неверные данные), происходит разработка диалоговых окон, которые обеспечат взаимодействие пользователя и самой программы.

Разработка алгоритма:

На этом этапе программист определяет последовательность необходимых действий, которые впоследствии нужно выполнить для получения желаемого результата.

Если возникает ситуация, когда поставленную задачу можно решить несколькими способами, то само собой, возможны множество разных вариантов алгоритма решения. Тогда разработчик программы по некоторому немаловажному критерию (к примеру, скорость решения алгоритма) делает выбор более подходящего решения.

Результат данного этапа разработки программы — подробное словесное описание алгоритма программы, либо блок-схема алгоритма. Подробно узнать о том, как разработать алгоритм любой программы, можно, изучив эту статью.

Кодирование:

После проведения спецификации и составления алгоритма решения, используемый алгоритм в итоге будет записан на необходимом языке программирования (Pascal, Delphi, C++ и др.). Результатом этапа кодирования является готовая программа.

Этапы разработки программы. Отладка:

На данном этапе программист занимается отладкой программы, то есть поиском и устранением ошибок. Последние делятся на две группы: алгоритмические и синтаксические (ошибки в тексте исходной программы). Из этих двух групп ошибок наиболее легко устранить синтаксические ошибки, тогда как алгоритмические ошибки определить достаточно трудно.

Этап отладки считается законченным лишь тогда, когда исходная программа работает корректно и правильно при одном или двух наборах первичных данных. Что такое компиляция любой программы и какие основные задачи она выполняет, можно будет узнать, ознакомившись с данной статьей.

Тестирование:

Тестирование программы очень важно, поскольку в большинстве случаев программисты создают программы не для личного применения, а чтоб их программой пользовались другие. На этапе тестирования разработчик проверяет поведение программы при большой числе наборов входных данных, как верных, так и специально подобранных неверных.

Создание справочной системы:

Если программист разрабатывает программу, чтоб ею впоследствии пользовались другие, то программисту необходимо разработать справочную систему и установить для пользователя легкий быстрый доступ к этой справочной системе при работе с программой. Современные программы обладают справочной информацией, имеющей форму CHM- или HLP-файлов.

Кроме справочной информации справочная система содержит необходимые инструкции по инсталляции программы. Обычно их представляют в виде файла Readme разных форматов: *.doc, *.txt, *.htm. Более подробно рассматриваемый этап разработки программы будет описан позже.

Создание установочного диска (CD-ROM):

Инсталяционный диск (CD-ROM) разработчики создают для того, чтобы пользователи могли самостоятельно, без помощи программиста, проинсталировать данную программу на свой ПК.

Как правило, кроме самой программы установочный CD-ROM располагает файлами справочной информации и инструкциями по установке программы. Нужно заметить, что большинство современных программ, включая программы, разработанные в среде Delphi, во многих случаях, даже путем простого копирования файлов не могут быть проинсталированы на компьютер пользователя, поскольку для правильной работы этих программ необходимо присутствие специальных библиотек, а также компонентов, которые могут отсутствовать на ПК конкретного пользователя.

C этой целью установку программы на ПК пользователя должна осуществлять специальная программа, записанная на CD-ROM. Обычно, инсталяционная программа производит создание отдельной папки для устанавливаемой программы, далее копирует в эту папку файлы, и если необходимо, настраивает операционную систему, внося дополнения и изменения в реестр.

Этот этап разработки программы на примере утилиты InstallShield Express (она входит в состав Delphi) подробнее будет рассмотрен позже. Итак, мы вкратце рассмотрели этапы разработки программы. В следующих статьях поподробнее остановимся на каждом из них.

Привет, сегодня мы с Вами поговорим о том, как создаются высококачественные программы, а точнее, я расскажу на какие этапы делится этот процесс, поэтому если Вы хотите создавать классные приложения, то Вам обязательно стоит соблюдать все эти этапы, ну или по крайней мере большую их часть.

Зачем нужно проектировать программу и соблюдать этапы разработки?

Вы можете спросить, зачем нужно соблюдать какие-то там этапы, ведь разработка программы — это просто сел и написал код. Однако это не так, с таким подходом создать нормальное приложение не получится.

Читайте также:  Какие мониторы у про игроков

В зависимости от размера программных проектов этапы разработки могут отличаться, в некоторых случаях это будут очень детализированные и бюрократичные этапы, а в некоторых — просто сформулированные в любом удобном для разработчиков виде.

Так, например, при строительстве сарая у себя на даче Вы не будете что-то там детально планировать, исследовать, инспектировать, но в случае, скажем, со строительством электростанции все будет очень детально спланировано, спроектировано, режим работы рабочих будет расписан поминутно, так как цена ошибки на любом этапе будет значительно выше, чем в случае со строительством простого сарая.

Точно так же происходит и при разработке ПО, если проект крупный и очень важный, который возможно будет влиять на жизни людей или связан с огромными финансовыми рисками, все этапы разработки ПО будут соблюдаться, т.е. детально проработаны и даже будут добавляться новые этапы, микроэтапы и так далее.

Все это делается для того, чтобы не допустить появления ошибок и реализовать тот продукт, который действительно нужен.

Чем раньше будут обнаружены ошибки или выявлен неправильных подход в реализации того или иного действия, тем цена этих ошибок будет меньше. Иными словами, в зависимости от этапа обнаружения ошибки ее цена может меняться от 10 до 100 раз. Например, если на самом начальном этапе цена исправления ошибки будет равняться 100 рублей, то на этапе тестирования она может вылиться в 10000. Поэтому этапы разработки ПО очень важны, и разработчик должен их соблюдать и попытаться донести это видение до менеджеров, которым всегда нужен только результат. Так как они или отводят на это слишком мало времени или и вовсе не считают это необходимым, например, зачем при программировании вырабатывать какие-то требования или что-то там проектировать.

Основные этапы разработки ПО

Вот этапы, которые в большинстве случаев должны соблюдаться при разработке программного обеспечения:

Некоторым может показаться, что это слишком сложный план, но если Вы будете работать над крупным проектом, то столкнётесь со всем этим, и даже более детализированным планом.

Сейчас давайте рассмотрим каждый этап, т.е. узнаем, какие действия необходимо выполнять на каждом этапе.

Этап 1 – Определение проблемы

Перед тем как приступать к кодированию, необходимо четко сформулировать проблему, которую Ваша будущая программа должна решать. Так как, не имея хорошего определения проблемы, Вы можете потратить много усилий и времени на решение не той проблемы, которую требуется решить.

На данном этапе проводится простая формулировка сути проблемы без каких-либо намеков на ее возможные решения, при этом формулировать ее следует на языке, понятном пользователю, т.е. она должна быть описана с пользовательской точки зрения.

Определение проблемы – это фундамент всего процесса программирования!

Этап 2 – Выработка требований

Что такое требования и зачем их нужно выработать?

Требования к программе – это подробное описание всех возможностей программы и действий, которые должна выполнять программа. Такие требования иногда также называют «Функциональной спецификацией» или просто «Спецификацией».

Требования вырабатывают для того, чтобы свести к минимуму изменения системы после начала непосредственной разработки. Такие требования должны быть обязательно официальными, т.е. документально оформлены. Так как это гарантирует то, что функциональность системы определяется заказчиком, а не программистом. Даже в случае с внутрикорпоративными разработками такие требования должны быть зафиксированы, например, в виде технического задания, подписанного всеми задействованными лицами, тем самым Вы избежите лишних разговоров и споров, например, о том, что реализованный функционал делает не все или не так.

Выработка требований очень важна, так как она позволяет определить функциональность программы до начала программирования.

Этап 3 – Создание плана разработки

На данном этапе Вы уже должны в формальном виде составить план разработки программного обеспечения с учётом существующей проблемы и выработанных требований. Иными словами, Вы должны составить план того, как Вы будете действовать дальше.

Этап 4 – Разработка архитектуры системы или высокоуровневое проектирование

Архитектура системы – это каркас программы, это высокоуровневое проектирование программы.

Данный этап также очень важный, так как, не имея хорошей архитектуры, Вы можете решать правильную проблему, но прийти к неправильному решению. Хорошая архитектура программы упрощает программирование, а плохая архитектура усложняет его.

Читайте также:  Схема прибора для проверки импульсных трансформаторов

Архитектура системы обычно включает:

  • Общее описание системы;
  • Основные компоненты;
  • Формат и способ хранения данных;
  • Специфические бизнес-правила;
  • Способ организации пользовательского интерфейса;
  • Подход к безопасности системы;
  • Оценки производительности;
  • Возможности масштабирования;
  • Моменты, связанные с интернациональностью, т.е. будет ли система интернациональной.

Кроме того, в архитектуру необходимо включить подтверждение того, что при разработке этой архитектуры рассматривались альтернативные варианты в каждом из вышеперечисленных направлений, с обоснованием окончательного выбора и подхода.

Этап 5 – Детальное проектирование

На этом этапе проводится проектирование программы на низком уровне, иными словами, здесь проектируются классы и методы, рассматриваются, оцениваются и сравниваются различные варианты и причины выбора окончательных подходов и способов реализации.

При разработке небольших программ программисты обычно сами проектируют программу на таком уровне, это выглядит как написание псевдокода или рисование схем, поэтому часто этот этап рассматривается как часть непосредственного кодирования и в таких случаях итоговый документ (если того требует формальность) состоит преимущественно из различных набросков и заметок программистов.

Но при реализации крупных проектов данному процессу отводится отдельный этап и проектирование в этом случае проводится с очень высокой степенью детальности.

Этап 6 – Кодирование и отладка

Это как раз тот этап, который все знают и, наверное, думают, что это единственный этап в процессе разработке программного обеспечения – это непосредственное написание кода и его отладка. Но, как видите, это далеко не первый и не единственный этап разработки ПО.

Если все вышеперечисленные этапы выполнены, то данный этап подразумевает чисто механическую работу, т.е. кодинг. Программисту в этом случае не нужно что-то выдумывать и самостоятельно разрабатывать, ему нужно просто написать код, который реализует заданный, очень детально описанный в проекте, алгоритм.

После того как код написан, программисту необходимо отладить этот код, чтобы в нем не было никаких ошибок.

Этап 7 – Тестирование компонентов

После того, как код написан, и проведена отладка, необходимо провести тестирование реализованного функционала. Если программа состоит из нескольких компонентов, сначала тестируют каждый компонент в отдельности, так как очень крупные программы включают огромный функционал, который часто разделяют на отдельные компоненты, разработка которых осуществляется по отдельности. В менее крупных проектах этот этап может включать просто тестирование отдельных классов.

Этап 8 – Интеграция компонентов

Когда тестирование всех компонентов закончено, можно переходить к интеграции всех компонентов в единый программный комплекс, этот этап как раз и подразумевает процесс интеграции, т.е. слияния всех компонентов в единую систему.

В небольших проектах этот этап может заключаться в объединении нескольких классов, на что будет затрачено не больше одного дня, но в крупных проектах этот этап может длиться не один месяц.

Этап 9 – Тестирование всей системы

На данном этапе проводится тестирование всей системы, уже с учётом интеграции всех компонентов. На этом этапе можно выявить проблемы взаимодействия компонентов и устранить их. Также на этом этапе основным предметом тестирования является безопасность, производительность, утечка ресурсов и другие моменты, которые невозможно протестировать на более низких уровнях тестирования.

Этап 10 – Сопровождение, внесение изменений, оптимизация

После запуска программы в промышленную эксплуатацию осуществляется сопровождение этой программы, т.е. внесение изменений на основе выявленных недочетов в процессе эксплуатации системы, а также проводится оптимизация функционала или добавление нового.

Если Вы хотите погрузиться глубже в мир проектирования и конструирования программного обеспечения, то рекомендую почитать книгу Стива Макконнелла «Совершенный код», в которой очень детально рассказывается о том, как нужно разрабатывать программу, и как правильно писать код. С помощью нее Вы не научитесь какому-нибудь языку программирования, но Вы научитесь писать правильный код, иными словами, она для тех, кто уже владеет базовыми знаниями в программировании.

Если Вы еще не умеете программировать, и даже не знаете, с чего начать, то в этом случае я рекомендую Вам начать с книги «Как стать программистом? 14 советов по достижению поставленной цели», в ней приведены советы и рассмотрен конкретный план действий, которые помогут Вам стать программистом.

У меня на этом все, надеюсь, статья была Вам интересна. Пока!

Ссылка на основную публикацию
Что такое секретный режим
Режим инкогнито — приватный режим работы браузера, при работе в браузере не сохраняются данные о посещенных сайтах, поисковых запросах, другие...
Через какое время отключают сим карту мегафон
Часто можно слышать, что некоторые люди вместо одной сим-карты предпочитают пользоваться двумя или сразу несколькими. Это объясняется лояльной политикой компании...
Через прямую l провести плоскость перпендикулярно данной
Не будет преувеличением утверждать, что построение взаимно перпендикулярных прямых и плоскостей наряду с определением расстояния между двумя точками являются основными...
Что такое сенсорный экран на телефоне
Сначала тачскрины (сенсорные экраны) встречались достаточно редко. Их возможно было найти, только лишь в некоторых КПК, PDA (карманных компьютерах). Как...
Adblock detector