Б. Конструктивно-технологическая часть проекта.
1. Технология программирования.
Технология программирования - это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств.
На первых этапах программирование происходило без использования каких-либо методов. Первые программы представляли собой простую последовательность из операторов, причем перед написанием последовательности команд составляли операторную схему, отражающую последовательность операторов и переходы между ними.
Со временем размеры программ стали увеличиваться и требовать определенного подхода. Важной чертой любого большого программного продукта является уровень его сложности. Так например сложность промышленных программ может превышать возможности человеческого интеллекта. Сложность задач предметной области может быть достаточно большой, в процентном отношении, на каждые 25% сложности задачи приходится 100% сложности требуемого программного обеспечения для ее решения.
Сложности разработки программного обеспечения можно разделить на два следующих типа:
Внутренние сложности.
Сложности при производстве программного обеспечения.
Дополнительные сложности при разработке могут возникнуть, например, при изменениях требований к системе во время ее процесса.
Приведем существующие модели разработки программного обеспечения и выберем среди них ту, которая наиболее соответствует требованиям к разработке данной системы.
1.1 Анализ существующих моделей и методологий разработки.
При использовании водопадной модели разработки весь процесс делится на последовательные этапы. Следующий этап разработки в водопадной модели начинается только после полного завершения предыдущего.
-
Анализ
-
Проектирование
-
Программирование
-
Тестирование
-
Документирование
При переходе от одной фазы проекта к следующей предполагается полная корректность ее результата. Если результат является некорректным или были сформированы неточные требования, то приходится вновь возвращаться к предыдущей фазе, до тех пор, пока не будет выполнено необходимое условие. При использовании этой модели разработки не исключено, что при такого характера откатах проектная команда может попросту выбиться из графика. Водопадная модель считается практически нереалистичной и если и может использоваться , то только для создания небольших программных продуктов.
Итеративная и инкрементальная модель.
При использовании такой модели жизненный цикл проекта разбивают на итерации, располагая их в определенной последовательности. Целью каждой итерации является наличие рабочей версии системы с определенным для данной итерации функционалом, с учетом наличия функционала, реализованного в предыдущих итерациях.
Отсюда пошло название модели, так как в каждой последующей итерации функциональность программы получает инкремент.
Достоинства:
Возможность возвращения к предыдущему положительному результату в случае неудачи
Возможность обратной связи с пользователем после каждой итерации, что позволяет вовремя исправлять ошибки, без их накопления.
Модель позволяет создавать программу пошагово, что в свою очередь максимизирует шансы на успех.
Недостатки:
Каждую итерацию отбрасывается часть работы, сделанной в предыдущей.
Понимание конечного функционала и возможных ограничений фактически отсутствует до полной реализации проекта.
Интеграция и тестирование.
Анализ
Реализация
Проектирование.
Спиральная модель разработки.
Спиральная модель скорее является более прогрессивным вариантом инкрементальной модели, нежели моделью самостоятельной. Особое внимание в спиральной модели уделяется рискам. Формулируются следующие риски:
1. Дефицит специалистов.
2. Нереалистичные сроки и бюджет.
3. Реализация несоответствующей функциональности.
4. Разработка неправильного пользовательского интерфейса.
5. Перфекционизм, ненужная оптимизация и оттачивание деталей.
6. Непрекращающийся поток изменений.
7. Нехватка информации о внешних компонентах, определяющих
окружение системы или вовлеченных в интеграцию.
8. Недостатки в работах, выполняемых внешними ресурсами.
9. Недостаточная производительность получаемой системы.
10. Разрыв в квалификации специалистов разных областей.
Рис 1. Графическое представление спирального метода разработки.
1.2 Выбор модели разработки.
Исходя из анализа существующих моделей разработки, для разработки данного программного обеспечения, с учетом человеческих и материальных ресурсов следует использовать спиральную модель разработки.
Это обусловлено дефицитом специалистов, работающих над данной программой, недостатком бюджета и другими рисками, возникшими на начальных этапах разработки проекта.
1.3. Обзор существующих средств разработки.
В качестве основных существующих средств разработки программного обеспечения следует выделять следующие:
Средства, предназначенные для проектирования ПО.
Фактически ими являются все существующие средства для описания моделей, которые являются результатом проектирования программного обеспечения. Модели могут быть описаны при помощи блок-схем, ER-диаграмм, UML диаграмм и прочих.
Средства реализации программного кода.
На этом этапе пишется сам программный код для компонент программного обеспечения, согласно разработанному техническому проекту. Набор используемых средств чаще определяется подходами, примененными к проектированию.
В целях реализации программного кода для начала, как правило, следует выбрать язык программирования, на котором будет осуществляться разработка, такой как C, C++, C# и другие. Фактически, язык, который будет использован, выбирается исходя из того, насколько просто и эффективно можно будет на нем добиться конечной цели разработки. Для каждого языка существуют отладчики, например Visual studio. Для того ,чтобы управлять базами данных также предусмотрены специальные средства, таки как MySQL , Oracle и другие.
Выбрав язык разработки, выбирают среду, в которой собственно и будет происходить реализация программного кода, в качестве среды можно выбрать Qt creator, Microsoft Visual studio и прочие среды, которые следует выбирать опять же в зависимости от поставленных целей.
Средства для тестирования программного обеспечения
Средства тестирования используются для обнаружения ошибок, проявляющихся во время работы программы, помогают определить, соответствует ли функциональность программы необходимым требованиям.
1.4 Выбор средств разработки.
При выборе средства для реализации программного кода рассматривались два претендента:
Qt creator
Microsoft Visual studio.
В качестве средства для реализации программного кода, в рамках данного проекта был выбран QT creator. Такой выбор был сделан исходя из требований к разрабатываемому программному обеспечению, одним из которых являлась его кросcплатформенность, которую можно реализовать, используя библиотеки Qt, в отличие от Microsoft Visual studio, которая адаптирована исключительно под операционную систему Windows, к тому же программа должна обладать понятным и приятным пользовательским интерфейсом, для реализации которого в Qt creator предусмотрен встроенный редактор форм. Независимость от платформы необходима разрабатываемой программе в связи с тем, что современные пользователи персональных компьютеров предпочитают различные операционные системы и, безусловно, программа должна быть адаптирована к большинству из них, это сделает ее гораздо удобнее.
-
Выбор языка программирования.
Выбор модели программирования.
Язык, на котором будет реализован проект, следует выбирать исходя из поставленных задач, которые должна осуществлять программа и предъявляемым требованиям к ней. Одним из критериев выбора языка программирования является выбранная модель программирования, которые бывают следующих видов:
Императивная модель программирования.
Структурная.
Декларативная.
Метапрограммирование.
К подходам, применимым для реализации императивной модели относят процедурное программирование, декларативной относят функциональное и логическое программирование, структурной- объектно-ориентированное программирование, модульное программирование, метапрограммирования- генерация кода, самомодифицирующийся код.
В процедурном программировании код программы состоит из операторов, находящихся в определенной последовательности, которые задают процедуру решения задачи. Такая модель более всего подходит для решения небольших задач, для которых важным фактором является скорость выполнения.
В функциональном программировании не предполагается явное хранение текущего состояния программы и его изменение, в основном, оно строится на вычислениях результатов функций. Функция в функциональном программировании понимается как математическая, в отличие от функций императивных.
Основой логического программирования является аппарат математической логики, автоматическое доказательство теорем, при котором используется механизм логического вывода, который в свою очередь, использует заданные факты и правила вывода.
Основой модульного программирования является разбиение всей программы на отдельные и независимые модули, компилируемые отдельно друг от друга. Это приводит к уменьшению времени перекомпиляции, с учетом изменений, вносимых в малое количество файлов исходного кода, что значительно упрощает разработку программного обеспечения группой разработчиков.
При использовании объектно-ориентированного программирования описывают структуру и поведение программного обеспечения, тем самым определяя составляющие части системы в терминах объектов и классов. Объектно-ориентированное программирование удобно, когда проектируемая система должна работать с отдельными объектами, устройство которых описывается в классах, обладающими определенными характеристиками, способом представления и поведением.
Основными методами, при помощи которых реализуется генерация кода являются шаблоны и внешне-языковые средства.
Современные языки программирования зачастую являются мультипарадигмальными, то есть соответствуют нескольким моделям.
В качестве модели программирования данной системы выбирается структурная модель программирования, причем для ее реализации выбирается объектно- ориентированный подход, так как программу будет наиболее удобно реализовать в терминах объектов и классов.
Система работает с такими объектами как:
Элементы пользовательского интерфейса.
Колонки.
Инженерно-геологические элементы.
Профили склона.
Слои грунтов.
Каждый из этих объектов имеет собственное представление, обладает собственными характеристиками, которые входят в их устройство и описываются в соответствующих классах.
Исходя из выбранной модели и подхода к ее реализации, рассмотрим языки программирования, удовлетворяющие поставленным условиям.
Выбор языка для реализации программного кода.
Выбранному подходу и парадигме программирования соответствуют следующие языки программирования:
Java
C++
Php
C#
Python
Visual Basic
Perl
Delphi
Из вышеприведенных языков, с учетом того, что средой для реализации программного кода выбрана Qt creator с дополнительными библиотеками для C++, а также с учетом навыков и опыта написания программного обеспечения на каждом из них, языком, выбранным для реализации программного обеспечения является C++. C++, с дополнительными библиотеками Qt, является популярным и современным объектно-ориентированным языком программирования. Он предоставляет все возможности для создания системы, разрабатываемой в рамках данного дипломного проекта, позволяет работать с динамической памятью, использовать необходимые типы данных, такими как:
Перечислимый.
Целочисленный.
Вещественный.
Символьный.
Множество.
Логический.
Массивы.
Строковый.
Структуры.
Классы.
Метаклассы.
А также работать с объектами пользовательского интерфейса, созданными в Qt designer.
В. Охрана труда.
Приведем основные термины и их определения.
Согласно 209 статье ТК РФ:
Охрана труда - система сохранения жизни и здоровья работников в процессе трудовой деятельности, включающая в себя правовые, социально-экономические, организационно-технические, санитарно-гигиенические, лечебно-профилактические, реабилитационные и иные мероприятия.[9]
Вредный производственный фактор - производственный фактор, воздействие которого на работника может привести к его заболеванию. [9]
Опасный производственный фактор - производственный фактор, воздействие которого на работника может привести к его травме. [9]
В ГОСТ 12.0.002-80* приведены следующие определения по безопасности труда:
Безопасные условия труда - Состояние условий труда, при которых воздействие на работающего опасных и вредных производственных факторов исключено или воздействие вредных производственных факторов не превышает предельно допустимых значений.
Безопасность производственного оборудования - Свойство производственного оборудования соответствовать требованиям безопасности труда при монтаже (демонтаже) и эксплуатации в условиях, установленных нормативно-технической документацией.[10]
Классификация опасных и вредных производственных факторов приведена в ГОСТ 12.0.003-74 (1999) и описывает как общую классификацию, так и детальную классификацию каждой общей группы. Рассмотрим общую классификацию:
Опасные и вредные производственные факторы подразделяются по природе действия на следующие группы:
химические;
биологические;
психофизологические.
[11]
Расчет защитного зануления на рабочем месте.
Зануление – преднамеренное электрическое соединение с нулевым защитным проводником металлических нетокопроводящнх частей, которые могут оказаться под напряжением.
|