Введение
Данная курсовая работа выполнена с использованием языка программирования Pascal.
Pascal является языком профессионального программирования и одним из наиболее распространенных языков. Он был создан в 1967 г. Никлаусом Виртом. Pascal - это несколько усовершенствованный с целью удобства его освоения и применения язык программирования Algol. Свое название Pascal получил в честь французского математика и философа Блеза Паскаля. Изначально целью создания данного языка программирования было обучение, но в результате Pascal стал также использоваться и для создания программных средств в профессиональном программировании.
Существует ряд причин, по которым язык программирования Pascal приобрел такую широкую популярность:
а) простота для обучения, благодаря удачному первоначальному описанию и компактности;
б) отражение фундаментальных и наиболее важных идей алгоритмов в легкой для восприятия форме, что помогает программисту проектировать программы;
в) четкая реализация идей структурного программирования и структурной организации данных;
г) использование простых и гибких структур управления: ветвлений, циклов;
д) повышение надежности создаваемых программ, благодаря требованиям языка Pascal к описанию применяемых в программах переменных и проверки и проверке согласованности программы при ее компиляции без выполнения.
Основной целью курсовой работы является разработка программы, позволяющей осуществлять обработку файлов.
Таким образом, создаваемый программный продукт может использоваться для автоматизации и структурирования списков, то есть облегчить работу с крупными базами данных на предприятиях.
1. Некоторые сведения о разработке программного обеспечения (ПО)
интерфейс программный алгоритм
1.1 Технология программирования и ее развитие
В настоящий момент с помощью вычислительной техники может быть осуществлено решение множества задач. К их числу можно отнести как задачи чисто математического характера, так и задачи, связанные с обработкой различного рода информации, такой как: графическая, аудио-, видео- и текстовая информация. Таким образом, современные информационные технологии позволяют создавать новое программное обеспечение и применять компьютерную технику в различных областях деятельности.
Реализация вышеперечисленных задач стала возможной благодаря стремительному развитию области науки и техники под названием программирование.
Совокупность всех используемых в процессе разработки программного обеспечения средств и методов называют технологией программирования [1], которая включает в себя следующие технологические инструкции:
а) порядок выполнения технологических операций;
б) условия к выполнению какой-либо операции;
в) подробное описание операций.
Программирование от момента своего возникновения и до настоящего времени прошло огромный путь развития. Следом за ним совершенствовалась и технология программирования, в эволюции которой принято выделять несколько этапов.
Этап первый носит название «стихийного» программирования.
Он имел место с момента возникновения первых ЭВМ до середины 60-х годов XX века. Как таковые технологии программирования в этот период отсутствовали, а само программирование воспринималось как некоторое подобие искусства.
Первые программы были написаны с использованием машинного языка. Структура программ того времени являлась простейшей.
Благодаря появлению языков программирования Fortran и Algol, стало возможным осуществление написания программ, имеющих более сложную структуру [1].
Существенным событием того времени было возникновение такого понятия как подпрограмма. Их появление позволило создавать библиотеки подпрограмм, являющихся пригодными для использования в других программах.
Программирование этого периода осуществлялось «сверху-вниз», что означало создание в первую очередь простых программ, которые в совокупности должны были образовывать программу более сложную. При подобном подходе программирование становилось довольно трудоемким, поскольку в результате сборки конечной программы программисты обнаруживали большое количество ошибок, на исправление которых уходило достаточно много времени.
В результате подробного анализа всех возникших трудностей при создании программ подобным образом, был разработан другой подход к программированию.
Второй этап (60-70-е годы XX века) получил название структурного подхода.
Создание программ согласно структурному программированию основано на использовании строго определенных конструкций. Необходимым условием такого подхода является разбиение на более мелкие подпрограммы исходной задачи, то есть процедурная декомпозиция программы.
Стали появляться языки программирования, получившие называние процедурных, основанные на структурном подходе. К таким языкам программирования относятся: PL/1, ALGOL-68, Pascal, С.
Развитие модульного программирования относится к данному этапу. Оно подразумевает создание отдельно компилируемых модулей, пользующихся одними и теми же глобальными данными. Эта концепция позволила группам программистов создавать программное обеспечение одновременно и не зависеть при этом друг от друга.
К недостаткам модульного программирования можно отнести тот факт, что ошибки в функционировании создаваемого программного обеспечения не обнаруживаются при компиляции модулей отдельно, для их выявления требуется сборка программы целиком. Поэтому в более сложном и объемном программном продукте обнаружить ошибки в выполнении программы становится все более затруднительной задачей, а в некоторых случаях и вовсе почти неосуществимой.
Таким образом, чтобы облегчить разработку объемных и сложных программ, был создан объектный подход к программированию.
Этап третий - объектный подход к программированию
Данный этап имел место с середины 80-х до конца 90-х годов XX века.
Ключевая идея объектного подхода к программированию заключается в объединении данных, которые использует программа, и процедур, которые обрабатывают эти данные, в одну составляющую, называемую объектом. Все объекты относятся к каким-то определенным классам. Классы в совокупности формируют иерархию с наследуемыми параметрами.
Объектно-ориентированный подход к программированию сделал возможным разработку сложного программного обеспечения.
Объектно-ориентированное программирование (ООП) обладает следующими достоинствами:
а) объектная декомпозиция;
б) разработка сложных объектов из более простых с использованием инкапсуляции, наследования, полиморфизма.
Объектная декомпозиция позволяет при реализации определенной задачи из какой-либо предметной области выделить отдельные объекты для проведения независимого создания данных частей программы. Этот механизм существенно упрощает разработку программного обеспечения.
Инкапсуляцией называется объединение данных и обрабатывающих их функций и процедур в отдельные объекты с целью их обработки [11]. Основная задача инкапсуляции - это обеспечение согласованности внутреннего состояния объекта.
Одно из важнейших свойств ООП - это наследование. Ключевым его принципом является создание нового класса на основе другого уже существующего, что позволяет значительно снизить вероятность ошибок и сделать код программы более простым для понимания. При этом все поля, методы и свойства порожденного класса наследуются от класса родителя [11].
Следующим свойством ООП является полиморфизм, под которым понимается возможность использования одинаковых имен для методов, входящих в разные классы [11].
В результате практического применения данных свойств стало возможным повторное применение кодов программ, а также разработки библиотек классов.
Несмотря на наличие ряда достоинств, объектно-ориентированный подход обладает тем не менее и недостатками. Одним из них при создании программы на основе объектных языков программирования (Pascal, C++) является существование взаимодействия модулей между собой, в результате которого проявляется их зависимость друг от друга.
Четвертый этап - компонентный подход и CASE технологии
Середина 90-х годов XX века является началом данного этапа. Он продолжается и в наши дни.
Компонентный подход подразумевает разработку программного продукта при помощи компонентов, которые существуют отдельно друг от друга и осуществляют взаимодействие при помощи стандартизированных двоичных интерфейсов.
Данные компоненты можно объединять в библиотеки или исполняемые файлы, распространять в двоичном коде, а также применять в языках программирования, которые поддерживают такую технологию.
Применение компонентного подхода для создания сложного программного продукта позволяет осуществить поставленную задачу гораздо более рационально, но тем не менее это не исключает создание программ без использования компонентов.
1.2 Жизненный цикл программного обеспечения
Жизненный цикл ПО (ЖЦ ПО) - это одно из основных определений, используемых при создании программных продуктов.
Существует международный стандарт ISO/1EC 12207: 1995 «Information Technology - Software Life Cycle Processes», что означает: «Информационные технологии - Процессы жизненного цикла программного обеспечения». Он представляет собой документ, регламентирующий следующие основные параметры: жизненный цикл ПО и реализуемые при разработке ПО действия и задачи [6].
Согласно приведенному стандарту жизненный цикл ПО формируется из совокупности задач, работ и процессов. Также ЖЦ ПО содержит следующие параметры: разработка, эксплуатация, сопровождение ПО. Поэтому можно сказать, что жизненным циклом программы является модель разработки ПО.
Все модели ЖЦ ПО основываются на пяти базовых этапах.
Название и краткая характеристика данных этапов в соответствии с ГОСТ 19.102-77 представлены в таблице 1.
Таблица 1 - Этапы жизненного цикла программного обеспечения
|
Название этапа |
Краткое содержание |
|
|
1 Техническое задание |
Постановка задачи; отбор критериев эффективности; выполнение предварительных научно-исследовательских работ; создание технического задания. |
|
|
2 Эскизный проект |
Формирование структуры входных и выходных данных; конкретизация методов решения; составление общего алгоритма; создание документации эскизного проекта. |
|
|
3 Технический проект |
Конкретизация структуры входных и выходных данных; создание алгоритмов; формы данных; семантика и синтаксис языка; структура программы; структура технических средств; проект работ. |
|
|
4 Рабочий проект |
Программирование и отладка; создание документов; разработка и осуществление испытаний; исправление программы и документов в результате испытаний. |
|
|
5 Внедрение |
Передача программы и документов для сопровождения; составление акта; передача в Фонд алгоритмов и программ (ФАП) |
1.3 Требования к программному обеспечению
Постановка задачи является важным этапом при создании ПО, который включает в себя принятие решений о функциях разрабатываемого ПО и об эксплуатационных ограничениях, которые накладываются на ПО, также выбирается архитектура и среда разработки, интерфейс и др.
Требования к программным продуктам делятся на две группы: функциональные и эксплуатационные.
Функциональные требования характеризуют действия программного продукта в конкретных ситуациях, ее ответ на какие-либо входные данные и процессы, осуществление которых дозволено пользователям. Также к функциональным требованиям можно отнести информацию, касающуюся того, что не должна выполнять программа.
Необходимо наличие четко сформулированной совокупности критериев, согласно которой делается вывод о пригодности данного программного продукта к выполнению конкретной задачи.
Формируется функциональная спецификация, в которой подробно указываются действия продукта [6]:
а) Описывается внешняя информационная среда, используемая создаваемым программным продуктом. Определяются взаимодействия информационных объектов и необходимые каналы ввода/вывода;
б) Указываются все применяемые программой функции, осуществляется указание входных данных и результатов работы;
в) Описываются различные исключительные ситуации и соответствующие им реакции программы. Рассматриваются все ситуации, при которых программный продукт не осуществляет свою работу должным образом.
Следующая разновидность требований - это эксплуатационные требования. Они представляют собой совокупность параметров программного продукта [5], приведенных ниже в таблице 2.
Таблица 2 - Параметры эксплуатационных требований
|
Требование |
Пояснение |
|
|
Правильность |
Осуществление работы согласно поставленной задаче. Данная характеристика является обязательной для любого программного продукта. Возможность возникновения ошибок требуется свести к минимуму. |
|
|
Универсальность |
Организация корректного функционирования с использованием верных данных и защита он неверных данных. Говорить об однозначной универсальности нельзя, поэтому используется такое понятие, как степень универсальности. |
|
|
Надежность |
Организация получения верного результата при разнообразных сбоях. Причиной сбоев могут быть как технические средства, так и люди, применяющие данные средства. |
|
|
Проверяемость |
Убеждение в правильности полученных результатов. |
|
|
Точность результатов |
Возможность определения погрешности результатов. Величину погрешности определяют входные данные, мера адекватности применяемой модели, величина точности выбранного метода, погрешность выполнения операций в компьютере. |
|
|
Защищенность |
Организация конфиденциальности информации при помощи программных, криптографических, правовых и других методов. |
|
|
Программная совместимость |
Способность функционировать совместно с другим программным обеспечением. |
|
|
Аппаратная совместимость |
Способность функционировать совместно с некоторым оборудованием. |
|
|
Эффективность |
Применение минимального количества ресурсов технических средств. |
|
|
Адаптируемость |
Возможность быстро модифицироваться, чтобы приспособиться к изменениям в функционировании. |
|
|
Реентерабельность |
«Параллельное» использование одновременно несколькими процессами. |