Файл: Алгоритмизация как обязательный этап разработки программы (Понятие программы).pdf
Добавлен: 22.04.2023
Просмотров: 193
Скачиваний: 1
Недостатки:
- требуют специальных знаний и опыта использования;
- не дают существенного выигрыша в стоимости разработки;
- большинство сложных систем с трудом поддаются формальному описанию [1].
Модель пошаговой разработки (рисунок 4)
Рис. 4 Модель пошаговой разработки программного обеспечения
На каждом шаге отсутствует требование использования одного и того же подхода к процессу разработки.
Достоинства:
- нет необходимости ждать полного завершения разработки системы;
- можно использовать компоненты, полученные на первых шагах, как прототипы;
- уменьшается риск общесистемных ошибок;
- системные сервисы с высоким приоритетом разрабатываются первыми, а все последующие интегрируются с ними. Это позволяет снизить вероятность программных ошибок в особо важных частях системы.
Недостатки:
- компоненты, получаемые на каждом шаге, имеют небольшой размер;
- сложно определить на первых этапах общесистемные функции;
- невозможно сразу определить набор базовых свойств, которые зачастую разрабатываются совместно с другими частями системы [3].
Спиральная модель (рисунок 5).
Рис. 5 Спиральная модель разработки программного обеспечения
Достоинства:
- нет фиксированных этапов;
- эта модель может включать в себя любые другие модели на каждом витке спирали:
- прототипирование может использоваться при нечетком определении требований;
- каскадная модель в случае последовательного выполнения некоторых этапов;
- модель формальных преобразований – если четко сформулированы требования.
Недостатки:
- сложная автоматизация процессов разработки;
- огромная роль при разработке системы отводится управлению проектом [12].
Базовые процессы создания ПО
Разработка спецификации ПО – определение сервисов, которыми будет обладать создаваемое ПО, а также ограничений, налагаемых на функциональные возможности и разработку ПО.
Результат процесса определения требований – документация, формализующая требования, предъявляемые к системе.
Два уровня детализации:
- требования, предъявляемые конечными пользователями;
- системная спецификация для разработчиков [13].
Реализация ПО – процесс перевода системной спецификации в работоспособную систему. Включает в себя процессы проектирования и программирования.
Процесс проектирования включает в себя определение структуры ПО, данных, интерфейсов взаимодействия системных компонентов, используемые алгоритмы. Проектирование предполагает последовательную формализацию и детализацию создаваемого ПО.
Результат каждого этапа проектирования – спецификация, необходимая для выполнения следующего этапа.
Методы проектирования – множество формализованных нотаций и нормативных документов для проектирования ПО.
Структурные методы поддерживают модели системы:
- модель потоков данных;
- модель «сущность–связь»;
- структурная модель;
- объектно–ориентированные иерархическая модель системы, модель отношений между объектами, модель взаимодействия объектов;
- диаграммы переходов или сценарии жизни сущностей [11].
Программирование и отладка:
Тестирование – процесс установления программных ошибок.
Отладка – установление местоположения ошибок и их устранение.
Аттестация и верификация – процесс установления соответствия ПО ее спецификации, а также ожиданиям и требованиям пользователей и заказчика.
Сопровождение системы – это внесение изменений в систему, которая находится в эксплуатации [8].
В первой главе работы проанализированы определения программы, компьютерной программы и программного обеспечения. Кратко рассмотрена его классификация и основные виды. Подробно охарактеризован процесс разработки программы, этапы которого могут незначительно варьироваться в зависимости от выбранной модели разработки – каскадной, спиральной и т.д. Можно сделать вывод, что, несмотря на разнообразие моделей разработки программ, их этапы остаются теми же – меняется в большинстве случаев только их последовательность. При этом важно, что алгоритмизация, входящая в один из первых этапов разработки программы, остается обязательной, вне зависимости от выбранной модели разработки.
Глава 2. Алгоритмизация как обязательный этап разработки
2.1 Этапы разработки программного обеспечения
Разработка любой программы, будь то небольшая процедура по обработке поступающей на консоль информации или комплексный программный продукт, состоит из нескольких этапов, грамотная реализация которых является обязательным условием для получения хорошего результата. Четкое следование выверенным временем этапам разработки программного обеспечения становится основополагающим критерием для занимающихся созданием ПО компаний и их заказчиков, заинтересованных в получении превосходно выполняющей свои функции программы. Подробно рассмотрим каждую стадию общепризнанной методологии разработки ПО, чтобы оценить их высокую значимость для достижения поставленной перед исполнителями цели.
Анализ требований
Самым первым этапом разработки программного обеспечения по праву называется процедура проведения всестороннего анализа выдвинутых заказчиком требований к создаваемому ПО, чтобы определить ключевые цели и задачи конечного продукта. В рамках этой стадии происходит максимально эффективное взаимодействие нуждающегося в программном решении клиента и сотрудников компании–разработчика, в ходе обсуждения деталей проекта помогающих более четко сформулировать предъявляемые к ПО требования. Результатом проведенного анализа становится формирование основного регламента, на который будет опираться исполнитель в своей работе – технического задания на разработку программного обеспечения. ТЗ должно полностью описывать поставленные перед разработчиком задачи и охарактеризовать конечную цель проекта в понимании заказчика [5].
Проектирование
Следующий ключевой этап в разработке программного обеспечения – стадия проектирования, то есть моделирования теоретической основы будущего продукта. Самые современные средства программирования позволяют частично объединить этапы проектирования и кодирования, то есть технической реализации проекта, будучи основанными на объектно–ориентированном подходе, но полноценное планирование требует более тщательного и скрупулезного моделирования. Качественный анализ перспектив и возможностей создаваемого продукта станет основой для его полноценного функционирования и выполнения всего комплекса возлагаемых на ПО задач. Одной из составных частей этапа проектирования, к примеру, является выбор инструментальных средств и операционной системы, которых сегодня на рынке присутствует очень большое количество.
В рамках данного этапа стороны должны осуществить:
- оценку результатов проведенного первоначально анализа и выявленных ограничений;
- поиск критических участков проекта;
- формирование окончательной архитектуры создаваемой системы;
- анализ необходимости использования программных модулей или готовых решений сторонних разработчиков;
- проектирование основных элементов продукта – модели базы данных, процессов и кода;
- выбор среды программирование и инструментов разработки, утверждение интерфейса программы, включая элементы графического отображения данных;
- определение основных требований к безопасности разрабатываемого ПО [11].
Кодирование
Следующим шагом становится непосредственная работа с кодом, опираясь на выбранный в процессе подготовки язык программирования. Описывать особенности и тонкости самого трудоемкого и сложного этапа вряд ли стоит, достаточно указать, что успех реализации любого проекта напрямую зависит от качества предварительного анализа и оценки конкурирующих решений, с которыми создаваемой программе предстоит «бороться» за право называться лучшей в своей нише. Если речь идет о написании кода для выполнения узкоспециализированных задач в рамках конкретного предприятия, то от грамотного подхода к этапу кодирования зависит эффективность работы компании, заказавшей разработку. Кодирование может происходить параллельно со следующим этапом разработки – тестированием программного обеспечения, что помогает вносить изменения непосредственно по ходу написания кода. Уровень и эффективность взаимодействия всех элементов, задействованных для выполнения сформулированных задач компанией–разработчиком, на текущем этапе является самым важным – от слаженности действий программистов, тестировщиков и проектировщиков зависит качество реализации проекта [12].
Тестирование и отладка
После достижения задуманного программистами в написанном коде следуют не менее важные этапы разработки программного обеспечения, зачастую объединяемые в одну фазу – тестирование продукта и последующая отладка, позволяющая ликвидировать огрехи программирования и добиться конечной цели – полнофункциональной работы разработанной программы. Процесс тестирования позволяет смоделировать ситуации, при которых программный продукт перестает функционировать. Отдел отладки затем локализует и исправляет обнаруженные ошибки кода, «вылизывая» его до практически идеального состояния. Эти два этапа занимают не меньше 30% затрачиваемого на весь проект времени, так как от их качественного исполнения зависит судьба созданного силами программистов программного обеспечения. Нередко функции тестировщика и отладчика исполняет один отдел, однако самым оптимальным будет распределить эти обязанности между разными исполнителями, что позволит увеличить эффективность поиска имеющихся в программном коде ошибок [8].
Внедрение
Процедура внедрения программного обеспечения в эксплуатацию является завершающей стадией разработки и нередко происходит совместно с отладкой системы. Как правило, ввод в эксплуатацию ПО осуществляется в три этапа:
- первоначальная загрузка данных;
- постепенное накопление информации;
- вывод созданного ПО на проектную мощность.
Ключевой целью поэтапного внедрения разработанной программы становится постепенное выявление не обнаруженных ранее ошибок и недочетов кода. В рамках этого этапа разработки программного обеспечения и заказчик, и исполнитель могут столкнуться с рядом достаточно узкого спектра ошибок, связанных с частичной рассогласованностью данных при их загрузке в БД, а также срывов выполнения программных процедур в связи с применением многопользовательского доступа. Именно на этой стадии выкристаллизовывается окончательная картина взаимодействия пользователя с программой, а также определяется степень лояльности последнего к разработанному интерфейсу. Если выход системы на проектную мощность после ряда проведенных доработок и улучшений произошел без особых осложнений, значит предварительная работа над проектом и реализация предыдущих стадий разработки осуществлялась правильно [16].
Создание даже небольшого и технически простого ПО зависит от четкого выполнения каждой фазы, то есть деятельности всех отделов, задействованных в процессе разработки. Четкий план выполнения необходимых мероприятий с указанием конечных целей становится неотъемлемой частью работы разработчиков, планирующих оставаться широко востребованными на рынке труда специалистами. Только правильно составленное техническое задание позволит добиться нужного результата и осуществить разработку по–настоящему качественного и конкурентного ПО для любой платформы – серверной, стационарной или мобильной.
2.2 Алгоритмизация как обязательный этап разработки программы
На этот этап иногда смотрят как на вспомогательный, подготовительный к выполнению следующего этапа, считающегося основным, на котором производится написание программы на выбранном языке программирования. Введение такого «промежуточного» этапа преследует цель облегчить написание кода программы и тем самым предотвратить возникновение многих ошибок при его осуществлении для сложных задач. Формулировка алгоритма закрепляет последовательность основных шагов выполнения программы, четко фиксирует функциональное содержание ее частей, позволяет уделить необходимое внимание простоте логической структуры разрабатываемой программы. Этап алгоритмизации является совершенно необходимым также, в случае, если язык, на котором предстоит программировать, не вполне освоен программистом–разработчиком и предвидятся трудности при его использовании на следующем этапе.
Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные [12].
Основными свойствами алгоритма являются:
- детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
- результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
- массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;
- дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений [22].