3. Процесс создания программного обеспечения
Процесс создания программного обеспечения – это множество взаимосвязанных процессов и результатов их выполнения, которые ведут к созданию программного продукта. Процесс создания ПО может начинаться с разработки программной системы “с нуля”, но чаще новое ПО разрабатывается на основе существующих программных систем путем их модификации.
Процесс создания ПО, как и любая другая интеллектуальная деятельность, основан на человеческих суждениях и умозаключениях, т.е. является творческим. Вследствие этого все попытки автоматизировать процесс создания ПО имеют лишь ограниченный успех. CASE-средства могут помочь в реализации некоторых этапов процесса разработки ПО, но по крайней мере в ближайшие несколько лет не стоит ожидать от них существенного продвижения в автоматизации тех этапов создания ПО, где существенен фактор творческого подхода к разработке ПО.
Одна из причин ограниченного применения автоматизированных средств к процессу создания ПО – огромное многообразие видов деятельности, связанных с разработкой программных продуктов. Кроме того, организации-разработчики используют разные подходы к разработке ПО. Также различаются характеристики и возможности создаваемых систем, что требует особого внимания к определенным сторонам процесса разработки. Поэтому даже в одной организации при создании разных программных систем могут использоваться различные подходы и технологии.
Несмотря на то что наблюдается огромное многообразие подходов, методов и технологий создания ПО, существуют фундаментальные базовые процессы, без реализации которых не может обойтись ни одна технология разработки программных продуктов. Перечислим эти процессы.
1. Разработка спецификации ПО. Это фундамент любой программной системы. Спецификация определяет все функции и действия, которые будет выполнять разрабатываемая система.
2. Проектирование и реализация (производство) ПО. Это процесс непосредственного создания ПО на основе спецификации.
3. Аттестация ПО. Разработанное программное обеспечение должно быть аттестовано на соответствие требованиям заказчика.
4. Эволюция ПО. Любые программные системы должны модифицироваться в соответствии с изменениями требований заказчика.
Хотя не существует “идеального” процесса создания ПО, во многих организациях-разработчиках пытаются его усовершенствовать, поскольку он может опираться на устаревшие технологии и не включать лучших методов современной инженерии программного обеспечения. Кроме того, многие организации постоянно используют одни и те же технологии (когда-то ранее хорошо себя зарекомендовавшие) и им также необходимы методы современной инженерии ПО.
Совершенствовать процесс создания программных систем можно разными путями. Например, путем стандартизации, которая уменьшит разнородность используемых в данной организации технологий. Это, в свою очередь, приведет к совершенствованию внутренних коммуникаций в организации, уменьшению времени обучения персонала и сделает экономически выгодным процесс автоматизации разработок. Стандартизация обычно является первым шагом к внедрению новых методов и технологий инженерии ПО.
44 Инструментарий технологии программирования. Процесс разработки программ
Инструментарий технологии программированияобеспечивает процесс разработки программ и включает специализированные программные продукты, которые являются инструментальными средствами разработчика. Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользователями технологии программирования являются системные и прикладные программисты.
Но прежде чем обсуждать сами инструментальные средства разработки программ, рассмотрим принципы разработки программного обеспечения.
При разработке программ всегда следует помнить одно золотое правило: надежность программы достигается, в первую очередь, благодаря ее правильному проектированию, а не бесконечному тестированию. О том, как правильно организовать разработку программ (независимо от языка), написана не одна сотня книг. Большинство авторов предлагают следующийпроцесс разработки (создания) программы:
1. Этап постановки и формулировки задачи. Постановка задачи(problem definition) —это точная формулировка решения задачи на компьютере с описанием входной и выходной информации:
изучение предметной области и сбор материала в проблемно-ориентированном контексте;
определение назначения программы, выработка требований к ней и представление требований, если возможно, в формализованном виде;
формулирование требований к представлению исходных данных и выходных результатов;
определение структур входных и выходных данных;
формирование ограничений и допущений на исходные и выходные данные.
2. Этап проектирования:
формирование модели задачи;
выбор метода реализации задачи;
разработка алгоритма реализации задачи;
разработка структуры программы
3. Этап кодирования:
уточнение структуры входных и выходных данных и определение формата их представления;
комментирование текста программы и составление предварительного описания программы.
4. Этап отладки и тестирования:
составление тестов для проверки правильности работы программы;
обнаружение, локализация и устранение ошибок в программе, выявленных в тестах;
корректировка кода программы и ее описания.
5. Этап эксплуатации и сопровождения:
настройка программы на конкретные условия использования;
обучение пользователей работе с программой;
организация сбора сведений о сбоях в работе программы, ошибках в выходных данных, пожеланиях по улучшению интерфейса и удобства работы с программой;
модификация программы с целью устранения выявленных ошибок и, при необходимости, изменения ее функциональных возможностей.
После написания программы на языке программирования нужно ввести программу в компьютер, перевести в машинное представление и выполнить. Как это сделать? Дальнейшее обсуждение будет посвящено именно этому вопросу.
Программа, подготовленная на языке высокого уровня, проходит несколько этапов:
1. этап. В текстовом редакторе пишетсяисходный код программы на алгоритмическом языке (source code) и сохраняется в файле с расширением *.pas.
2 этап. Трансляция, происходит преобразованиеисходного кода программы (source code) вобъектный код (object code), т.е. происходит проверка синтаксиса написания операторов, и если ошибок в написании нет, осуществляется перевод на язык машинных кодов. Файл объектного кода имеет расширение *.obj;
Трансляторыпредназначены для проверки правильности написания операторов и преобразования программ, написанных на языках программирования, в программы на машинном языке. Программа, подготовленная на каком-либо языке программирования, называетсяисходным модулем. В качестве входной информации трансляторы применяют исходные модули и формируют в результате своей работыобъектные модули, являющиеся входной информацией для редактора связей. Объектный модуль содержит текст программы на машинном языке и дополнительную информацию, обеспечивающую настройку модуля по месту его загрузки и объединение этого модуля с другими независимо оттранслированными модулями в единую программу.
Трансляторыделятся на два класса:компиляторы (compiler) иинтерпретаторы (interpreter). Компиляторы транслируют всюпрограмму, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняютпооператорный перевод на машинный язык и выполнение всей программы.
3. этап.Компоновка, когда происходит обработка объектного кодаредактором связей, специальной программой осуществляющей построениезагрузочного модуля (load module), пригодного к выполнению (рис 16.).
Компоновщик, или редактор связей – системная обрабатывающая программа, редактирующая и объединяющая объектные (ранее оттраслированные) модули в единые загрузочные, готовые к выполнению программные модули. Загрузочный модуль может быть помещен ОС в основную память и выполнен.
Получив исполняемый модуль, не спешите радоваться. К сожалению, устранение синтаксических ошибок еще не гарантирует того, что программа будет хотя бы запускаться, не говоря уже о правильности работы. Поэтому обязательным этапом процесса разработки является отладка. На этапеотладки, используя описание алгоритма, выполняется контроль правильности функционирования, как отдельных участков кода, так и всей программы в целом.
Отладчикпозволяет управлять процессом исполнения программы, является инструментом для поиска и исправления ошибок в программе. Базовый набор функций отладчика включает:
пошаговое выполнение программы (режим трассировки) с отображением результатов,
остановка в заранее определенных точках,
возможность остановки в некотором месте программы при выполнении некоторого условия;
изображение и изменение значений переменных.
Но даже успешное окончание отладки еще не является гарантией того, что программа будет работать правильно со всеми возможными исходными данными. Поэтому нужно обязательно провести тестирование программы, то есть проверить ее работу на «пограничных» и заведомо некорректных исходных данных. Для этого составляются тесты. Вполне возможно, что результаты тестирования вас не удовлетворят. В этом случае придется вносить поправки в код программы, то есть возвращаться к первому шагу процесса разработки (см. рисунок 16).
Инструментарий технологии программирования— совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программных продуктов.
Сформировались следующие группы программных продуктов (рис.17):
Средства для создания приложений, включающие:
- локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;
- интегрированные средыразработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ;
При подготовке материала использовались источники:
https://studfile.net/preview/1848692/page:10/
https://studfile.net/preview/4292695/page:26/