О методах и средствах проектирования программного обеспечения
Информационные технологии в наше время как неотъемлемая часть жизни общества. Знакомство с основными особенностями и ключевыми этапами разработки системы TexTLab. Общая характеристика методов, а также средств проектирования программного обеспечения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 30.07.2020 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
О методах и средствах проектирования программного обеспечения
Рассмотрены некоторые методы и средства проектирования программного обеспечения, их особенности. По результатам обзора был сделан выбор метода и средства проектирования ПО, к которым будем придерживаться при разработке системы TexTLab. Приведены примеры использования выбранного метода при проектировании системы TexTLab.
Информационные технологии (ИТ) в наше время стали неотъемлемой частью жизни общества. Этим фактом обуславливается необходимость применения вычислительной техники, и, соответственно, создания различного программного обеспечения (ПО) для всевозможных областей.
Перед непосредственной разработкой программного продукта, необходимо его спроектировать. На этапе проектирования происходит выбор технологических решений, на основе которых затем будет построено ПО. При проектировании ПО происходит определение и уточнение как внутренних, так и внешних свойств системы.
В данной статье происходит обзор и выбор этих решений, с помощью которых будет происходить проектирование системы TexTLab [1]. Эта система представляет собой многопользовательское клиент-серверное приложение и предназначена для интеграции данных и процессов их обработки в области частотного анализа текстов.
1 Подходы и методы проектирования ПО
Для создания моделей бизнес-процессов существует достаточно большое количество подходов проектирования. Важнейшими из подходов являются структурный (функциональный) и объектно-ориентированный [6]. Главной отличительной чертой этих двух подходов является способ декомпозиции (разбиения) системы:
· в основе структурного подхода - алгоритмическая декомпозиция;
· в основе объектно-ориентированного - объектная декомпозиция.
Выбор того или иного метода проектирования зависит от целей и особенностей проектируемой системы. Подходы и их методы проектирования ПО достаточно описаны в [2-6].
Структурный подход
Особенность структурного подхода к проектированию ПО заключается в иерархическом разбиении системы на подсистемы. Систему делят на более мелкие подсистемы, которые в свою очередь - на ещё более мелкие. И так до тех пор, пока выделенные элементы не будут представлять собой неделимое.
В качестве средств структурного подхода рассмотрим следующие наиболее распространенные методы:
· SADT (Structured Analysis and Design Technique, IDEF0) модели и диаграммы демонстрируют функциональную структуру объекта: действия и связи между ними. Логика и порядок взаимодействия процессов прозрачны. Есть возможность идентификации недостатков, относящихся к моделируемому процессу, а также к действиям: дублирование функций, отсутствие механизмов, регламентирующих процесс, отсутствие контрольных переходов и т.д. [7].
· DFD (Data Flow Diagrams) -- диаграмма потоков данных [8]. Она представляет собой иерархию функциональных процессов, связанных потоками данных. DFD описывает асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю. Используется для демонстрации преобразования входных данных в выходные на каждом выделенном этапе. Диаграммы DFD обычно строятся для наглядного изображения текущей работы системы документооборота организации и используются в качестве дополнения модели бизнес-процессов, выполненной в IDEF0 [9].
· ERD (Entity-Relationship Diagrams, IDEFI) -- диаграмма «сущность-связь», предложенная П. Ченом [10]. ERD (в частности, метод описания данных -- IDEF1X) является наиболее распространенным средством моделирования данных. В ERD модели устанавливаются объекты предметной области, их свойства и связи между ними. Используя ERD можно построить модель данных, соответствующую реляционной модели в третьей нормальной форме.
· IDEF3 - диаграмма документирования технологических процессов [11]. IDEF3 позволяет: описать процессы, фокусируя внимание на течении этих процессов; рассмотреть конкретный процесс с учетом последовательности выполняемых операций. IDEF3 хорошо приспособлен для сбора данных, требующихся для проведения анализа системы с точки зрения рассогласования/согласования процессов во времени. IDEF3-моделирование органично дополняет традиционное моделирование с использованием стандарта методологии IDEF0.
Объектно-ориентированный подход
Объектно-ориентированный подход получил свое развитие в конце 80-х - начале 90-х годов ХХ века. Он использует разбиение системы на объекты. Система описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщений между объектами. Кратко рассмотрим некоторые объектно-ориентированные методы разработки программного обеспечения:
· OMT (Object Modeling Technique) [12]. При использовании технологии OMT проектируемая система представляется в виде 3-х коррелирующих между собой моделях:
o объектной;
o динамической;
o функциональной.
· RUP (Rational Unified Process) [13]. Рациональный унифицированный процесс разработки (RUP) ПО был разработан компанией Rational Software [14]. Свое развитие методология получила с 1995 года [15]. RUP использует спиральную модель разработки. Использование данной методологии охватывает процессы от бизнес-моделирования до внедрения разрабатываемого ПО. К базовым концепциям RUP можно отнести:
o итеративная разработка;
o наличие четких требований;
o использование модульной архитектуры в моделях и программном коде;
o визуальное моделирование (использование UML) [16-17].
· JSD (Jackson Structured Development) [12]. Эта методология была разработана в начале 1980-ого года. В JSD рассматриваются в качестве одного большого процесса этапы от анализа требований до разработки ПО. В [18] приведены примеры типов систем, при проектировании которых JSD может успешно применена, и наоборот - плохо применима.
Самыми известными и популярными являются объектные методы ОМТ (по Рамбо), Booch (по Бучу) и OOSE (по Джекобсону). Стандартным средством визуального моделирования программных систем посредством этих методологий (с 1997 г.) является Унифицированный язык моделирования (Unified Modeling Language, UML), разработанный в 90-х гг. Г. Бучем, Д. Рамбо и И. Якобсоном.
Средства проектирования ПО
Возможность проектировать ПО не вручную, а используя специализированные программы, появилась с середины 1980-х годов. Такие программы называются CASE-средства [19]. Изначально они позиционировались как средства, применяющиеся при проектировании и анализе сложных проектов. Сейчас же, CASE-средства используются на всех этапах жизненного цикла ПО [20].
Существует классификация CASE-средства по нескольким параметрам: тип, категория и уровень [21]. Классификация по типам связана с функциональным назначением CASE-средств в ЖЦ ПО и подразделяет их на 6 типов. В основе классификации по категориям лежит степень интеграции в CASE-средства функций, позволяющих выполнять разработку в процессе ЖЦ ПО. По этому признаку выделяют 3 группы CASE-средств. Третья классификация (по уровням) подразумевает деление CASE-средств на 3 большие группы: верхнего, нижнего, среднего. Эти группы связаны с этапами разработки ПО и его жизненным циклом. В [2, с.249] рассмотрены эти типы классификации и приведены примеры CASE-средств.
На данный момент существует огромное количество CASE-средств. В работах [22-25] произведен разносторонний сравнительный анализ инструментальных средств проектирования ПО, выделены их достоинства и недостатки. В этих работах рассмотрены разные по составу группы средств, но почти в каждой работе выделены:
· AllFusion Process Modeler 7 (ранее BPwin) [26],
· AllFusion ERwin Data Modeler (ранее ERWin) [27],
· Rational Rose [28].
Каждое из существующих CASE-средств обладает ограниченным набором функциональных возможностей. Ни одно из них не предоставляет полный спектр необходимых требуемых функций при проектировании системы. Таким образом, если требуется строить различные виды схем и диаграмм, то, скорее всего, потребуется использование нескольких CASE-средств.
Так как для моделирования системы TexTLab был выбран язык UML, а также из-за различных функциональных назначений существующих CASE-средств, при проектировании будем использовать возможности Rational Rose.
Проектирование системы TexTLab
Разрабатываемая система TexTLab предназначена для специализированного решения задач частотного анализа текста с учетом использования её как в прикладных, так и учебном процессах. Интеграция процессов обеспечивает наличие обратной связи: «учебный процесс - алгоритм обработки», что позволяет накапливать статистику работы алгоритмов и повышать точность их работы.
TexTLab представляет собой многопользовательское клиент-серверное приложение, которое объединяет в себе процессы частотного анализа текста [29].
На рисунке 1 представлена структура диаграмм, входящих в состав унифицированного языка моделирования UML версии 2.3. В [30, c. 24] приведены иерархии типов диаграмм для 1-ой и 2-ой версий языка UML. В работе [31, c. 58] показана взаимосвязь между некоторыми UML-диаграммами. Далее опишем разрабатываемую систему, используя некоторые типы выделенных диаграмм.
Рис. 1. Диаграммы унифицированного языка моделирования UML версии 2.3
Представление видения архитектуры
Архитектурный стиль: трехзвенная архитектура клиент-сервер. Три программных компоненты: пользовательское приложение, сервер приложения и сервер базы данных (БД). Приложения представляют собой десктопные программы с графическим интерфейсом.
Приложение пользователей представляет собой Java-приложение и обеспечивает возможность аутентификации пользователей, предоставляет весь набор функций по управлению данными в БД. Для разных ролей пользователей определен различный функционал.
Сервер приложений является промежуточным между пользовательским приложением и сервером БД. Он осуществляет обработку запросов клиентов.
Сервер БД обеспечивает непосредственный доступ клиентских программ к таблицам БД с использованием SQL-запросов.
Пользовательское приложение содержит такие компоненты как уровень представления (View), контроллер бизнес - логики (Controller). С помощью протокола TCP/IP, используя сокеты, создается соединение с приложением на сервере, которое содержит уровни бизнес - модели и DAO (объекты таблиц БД). Через библиотеку JDBC осуществляется обращение к БД через MySQL с помощью SQL -- запросов.
Схематично архитектура с применением UML-диаграммы развертывания представлена на рисунке 2.
Рис. 2. Диаграмма развертывания
Типы пользователей и некоторые их возможности
В TexTLab выделено 5 типов ролей для пользователей: администратор системы, администратор пользователей, исследователь, преподаватель и студент. На диаграмме вариантов использования (рис. 3) представлены выделенные типы пользователей и некоторые (базовые) их функциональные возможности. Как видно из диаграммы, есть актер «Пользователь», действия которого соответствуют действиям неавторизованного пользователя системы. Он может авторизоваться, указав при этом свои логин и пароль. После успешной авторизации ему присваивается другая роль с дополнительными возможностями.
Рис. 3. Диаграмма вариантов использования
Актер «Администратор системы» может выполнять следующие действия по работе с БД: редактирование исходных текстов и категорий (добавление, удаление).
Актер «Администратор пользователей» работает с учетными записями пользователей системы (добавление, удаление, редактирование данных профиля, в том числе и назначение роли).
Актер «Исследователь» может формировать для себя схемы фрагментации (СФ). СФ определяет правило выбора текстовых фрагментов из списка текстов, включенных в систему. Для задания одного фрагмента необходимо выбрать текст и указать стартовую позицию, с которой будет браться текст и объем этого текста. Также исследователь может тестировать свои алгоритмы, при этом предварительно зарегистрировав его и получив выбранные данные для конкретной схемы фрагментации.
В возможности актера «Преподаватель» входит формирование списка студентов и заданий, а также контроль выполнения задания с последующей оценкой результата.
Актер «Студент» может выполнять активные задания, которые ему назначил «Преподаватель».
Назначение и выполнение задания
На рисунке 4 приведен пример диаграммы классов. Представлены классы, их атрибуты и методы, а также взаимоотношения с другими классами. В качестве примера отображены классы, участвующие в процессе назначения и выполнения учебного задания в TexTLab.
Из диаграммы классов видно:
· какие типы объектов (классов) участвуют в описываемом процессе;
· иерархию классов;
· перечень атрибутов и их типы для каждого класса;
· возможные методы классов;
· типы связей между объектами.
В приведенном примере класс «Пользователь», объект которого обладает данными зарегистрированного в системе пользователя. Классы «Студент» и «Преподаватель» расширяют его дополнительными свойствами и методами. Здесь мы может наблюдать связь между «Заданием», «Схемой фрагментации», «Фрагментом» и «Текстом». А именно: каждое задание ссылается на СФ, на основе которой формировалось задание; СФ в свою очередь состоит из фрагментов; фрагмент ссылается на текст. При выполнении задания студентом, в «Результат» фиксируются такие параметры выполнения решения, как: дата начала и окончания выполнения, суммарное активное время выполнения, количество входов и т.д.
Рис. 4. Диаграмма классов
Также на диаграмме классов можем увидеть кратность отношений [32, с. 87] между объектами. Так, например, у одного преподавателя есть возможность сформировать и назначить сколько угодно заданий для студентов. При этом, у каждого созданного задания будет только один «автор». То же самое со студентами и заданием. Каждому студенту может быть назначено неопределенное количество заданий различными преподавателями. Однако, одно задание назначается только одному студенту (то есть, нет возможности назначения одного и того же задания сразу нескольким студентам).
Авторизация
Опишем типовую последовательность действий пользователя при авторизации в системе в виде UML-диаграммы последовательности (см. рис. 5). Этот вид диаграммы предназначен для отображения взаимосвязи объектов. Чаще всего используется для описания одной линии действий.
Рассмотрим ситуацию, в которой пользователь TexTLab нажимает кнопку «Войти» и в появившемся окне сразу вводит корректные данные для авторизации в системе.
Рис. 5. Диаграмма последовательности для авторизации
На этом типе UML-диаграмм видна последовательность взаимодействия набора объектов. Также её можно рассматривать как последовательность обращений одного объекта к другому при выполнении запроса.
Здесь «View» представляет собой графический интерфейс пользователя, «Controller» реагирует и обрабатывает запросы пользователя, «Server» характеризует действия серверной части системы, «JDBC» -- интерфейс соединения с БД, «MySQL» -- база данных, с которой взаимодействует система.
Видим, что пользователь, а также контроллер бизнес-логики являются инициаторами выполнения дальнейших действий. Контроллер выполняет проверку введенных данных на корректность. Обращение к серверу с запросом на проверку наличия в БД пользователя с указанными логином и паролем происходит только в том случае, если данные в полях корректны.
Заключение
Обзор существующих методов проектирования ПО показал, что выбор метода для проектирования разрабатываемой системы в большей степени зависит от особенностей этой системы. Для проектирования системы TexTLab был выбран метод RUP, который поддерживает объектно-ориентированный подход проектирования. На следующем этапе - выбор средства проектирования, был сделан выбор программы Rational Rose. Это CASE-средство направлено на моделирование с использованием языка UML. Приведенные примеры проектирования:
· продемонстрируют пример реализации UML-диаграмм;
· описывают некоторые детали системы TexTLab.
Список литературы
программный информационный система
1.Коломец Н.В. Интеграция процессов частотного анализа текста // Фундаментальные и прикладные исследования: сборник научных трудов II Всероссийской конференции молодых ученых/ под ред. Е.Г. Гуровой, С.В. Макарова. - Новосибирск: Изд-во НГTУ, 2016. - с. 79.
2.Технология разработки программного обеспечения: учеб. пособие / В. В. Бахтизин, Л. А. Глухова. - Минск: БГУИР, 2010. - 267 с.
3.Довбуш Г. Ф. Технология разработки программного обеспечения: конспект лекций, Санкт-Петербург, 2010. - 131с.
4.Проектирование ИС на основе структурного подхода // кафедра «Информационные системы» МФПА URL: http://inftis.narod.ru/pis/pis-p4-3.htm (дата обращения: 15.02.2017).
5.Проектирование ИС на основе объектно-ориентированного подхода // кафедра «Информационные системы» МФПА URL: http://inftis.narod.ru/pis/pis-p4-4.htm (дата обращения: 15.02.2017).
6.Рябышева И. В. Сравнительный анализ подходов к проектированию ИС // СО РАН URL: http://www.nsc.ru/ws/YM2004/8666/index.htm (дата обращения: 23.03.2017).
7.Туманов В.Е., Маклаков С.В. Проектирование реляционных хранилищ данных - М.: Диалог-МИФИ, 2007. - 333 с.
Размещено на Allbest.ru
...Подобные документы
Понятие технологии разработки программы. Основа проектирования программного обеспечения. Модели жизненного цикла, возникшие исторически в ходе развития теории проектирования программного обеспечения. Спиральная (spiral), каскадная и итерационная модели.
презентация [1,0 M], добавлен 11.05.2015Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.
курсовая работа [67,9 K], добавлен 29.05.2013Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Цементирование обсадных колонн нефтяных скважин. Состав информационного обеспечения программного комплекса автоматизированного проектирования. Реализация инфологической модели и организация взаимодействия программного обеспечения с базой данных.
дипломная работа [2,3 M], добавлен 22.07.2013Требования к технологии проектирования программного обеспечения (ПО). Состав и описание стадий полного жизненного цикла ПО. Классификация моделей жизненного цикла ПО, их особенности. Методологии разработки ПО, приёмы экстремальный программирование.
презентация [874,4 K], добавлен 19.09.2016Информационные технологии, процессы, использующие совокупность средств и методов обработки и передачи первичной информации. Характеристика программного обеспечения и современных компьютерных технологий. Операционные системы и компьютерные вирусы.
курс лекций [119,7 K], добавлен 17.02.2012Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Оценка финансовой, стратегической ценности и уровня рисков проекта. Классификация проектов: "свой" заказчик, продукт под заказ, тиражируемый продукт, аутсорсинг. Организация процесса разработки программного обеспечения, методологии его проектирования.
презентация [82,8 K], добавлен 07.12.2013Разработка программных средств, облегчающих процесс проектирования программного обеспечения. Анализ развития мировых информационных ресурсов. Аппаратные средства и функции Электронного офиса, электронный документооборот. Служба обмена сообщениями ICQ.
контрольная работа [42,7 K], добавлен 01.10.2012Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Основные цели и принципы построения автоматизированного проектирования. Повышение эффективности труда инженеров. Структура специального программного обеспечения САПР в виде иерархии подсистем. Применение методов вариантного проектирования и оптимизации.
презентация [259,7 K], добавлен 26.11.2014Общая характеристика основных моделей жизненного цикла: каскадная, инкрементная, спиральная. Стадия как часть процесса создания программного обеспечения, ограниченная определенными временными рамками и заканчивающаяся выпуском конкретного продукта.
презентация [159,1 K], добавлен 27.12.2013Понятие, сущность и структура жизненного цикла программного обеспечения, описание технологии его проектирования, разработки и сопровождения. Сущность и основные положения международного стандарта ISO/IEC 12207. Перечень основных принципов методологии RAD.
реферат [39,3 K], добавлен 30.11.2010Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.
дипломная работа [861,9 K], добавлен 27.11.2014Разработка и эксплуатация рабочих программ для пользователей. Характеристика прикладного программного обеспечения для глобальных сетей. Использование прикладных информационных технологий автоматизированного проектирования в промышленности и экономике.
контрольная работа [30,9 K], добавлен 29.03.2015Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.
дипломная работа [2,8 M], добавлен 14.05.2010Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Программное обеспечение — неотъемлемая часть компьютерной системы, логическое продолжение технических средств. Типология прикладного программного обеспечения. Интегрированные пакеты программ. Общая характеристика системы автоматизации проектных работ.
курсовая работа [39,2 K], добавлен 16.01.2011Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Общая характеристика ключевых этапов разработки программного обеспечения "Автоматизация учета сведений о графике работы сотрудников и расчёт заработной платы". Знакомство с основными особенностями использования электронно-вычислительной техники в учете.
дипломная работа [362,7 K], добавлен 08.12.2014