Автор работы: Пользователь скрыл имя, 05 Февраля 2015 в 18:11, курсовая работа
На настоящий момент САПР становятся обязательной частью любой производственной экономической деятельности. Они помогают обеспечить жизнеспособность фирмы и дают ей возможность развиваться в нынешних условиях жесткой рыночной конкуренции. Основной вклад подобных систем состоит в следующем:
- повышение качества продукции за счет сокращения ошибок в конструкторских и технологических расчетах, удобства внесения инженерных изменений и контроля качества;
Ниже мы рассмотрим некоторые схемы разработки проекта.
"Водопад" - схема разработки проекта
Очень часто проектирование описывают как отдельный этап разработки проекта между анализом и разработкой. Однако в действительности четкого деления этапов разработки проекта нет - проектирование, как правило, не имеет явно выраженного начала и окончания и часто продолжается на этапах тестирования и реализации. Говоря об этапе тестирования, также следует отметить, что и этап анализа, и этап проектирования содержат элементы работы тестеров, например, для получения экспериментального обоснования выбора того или иного решения, а также для оценки критериев качества получаемой системы. На этапе эксплуатации уместен разговор и о сопровождении системы.
Ниже мы рассмотрим каждый из этапов, подробнее остановившись на этапе проектирования.
Стратегия
Определение стратегии предполагает обследование системы. Основная задача обследования - оценка реального объема проекта, его целей и задач, а также получение определений сущностей и функций на высоком уровне.
На этом этапе привлекаются высококвалифицированные бизнес-аналитики, которые имеют постоянный доступ к руководству фирмы; этап предполагает тесное взаимодействие с основными пользователями системы и бизнес-экспертами. Основная задача взаимодействия - получить как можно более полную информацию о системе (полное и однозначное понимание требований заказчика) и передать данную информацию в формализованном виде системным аналитикам для последующего проведения этапа анализа. Как правило, информация о системе может быть получена в результате бесед или семинаров с руководством, экспертами и пользователями. Таким образом определяются суть данного бизнеса, перспективы его развития и требования к системе.
По завершении основной стадии обследования системы технические специалисты формируют вероятные технические подходы и приблизительно рассчитывают затраты на аппаратное обеспечение, закупаемое программное обеспечение и разработку нового программного обеспечения (что, собственно, и предполагается проектом).
Результатом этапа определения стратегии является документ, где четко сформулировано, что получит заказчик, если согласится финансировать проект; когда он получит готовый продукт (график выполнения работ); сколько это будет стоить (для крупных проектов должен быть составлен график финансирования на разных этапах работ). В документе должны быть отражены не только затраты, но и выгода, например время окупаемости проекта, ожидаемый экономический эффект (если его удается оценить).
В документе обязательно должны быть описаны:
Выполненная на данном этапе работа позволяет ответить на вопрос, стоит ли продолжать данный проект и какие требования заказчика могут быть удовлетворены при тех или иных условиях. Может оказаться, что проект продолжать не имеет смысла, например из-за того, что те или иные требования не могут быть удовлетворены по каким-то объективным причинам. Если принимается решение о продолжении проекта, то для проведения следующего этапа анализа уже имеются представление об объеме проекта и смета затрат.
Следует отметить, что и на этапе выбора стратегии, и на этапе анализа, и при проектировании независимо от метода, применяемого при разработке проекта, всегда следует классифицировать планируемые функции системы по степени важности. Один из возможных форматов представления такой классификации - MoSCoW - предложен в Clegg, Dai and Richard Barker, Case Method Fast-track: A RAD Approach, Adison-Wesley, 1994.
Эта аббревиатура расшифровывается так: Must have - необходимые функции; Should have - желательные функции; Could have - возможные функции; Won't have - отсутствующие функции.
Анализ
Этап анализа предполагает подробное исследование бизнес-процессов (функций, определенных на этапе выбора стратегии) и информации, необходимой для их выполнения (сущностей, их атрибутов и связей (отношений)). На этом этапе создается информационная модель, а на следующем за ним этапе проектирования - модель данных.
Вся информация о системе, собранная на этапе определения стратегии, формализуется и уточняется на этапе анализа. Особое внимание следует уделить полноте переданной информации, анализу информации на предмет отсутствия противоречий, а также поиску неиспользуемой вообще или дублирующейся информации. Как правило, заказчик не сразу формирует требования к системе в целом, а формулирует требования к отдельным ее компонентам. Уделите внимание согласованности этих компонентов.
Аналитики собирают и фиксируют информацию в двух взаимосвязанных формах:
Двумя классическими результатами анализа являются:
Эти результаты являются необходимыми, но не достаточными. К достаточным результатам следует отнести диаграммы потоков данных и диаграммы жизненных циклов сущностей. Довольно часто ошибки анализа возникают при попытке показать жизненный цикл сущности на диаграмме ER.
3.2 Определение архитектуры программного средства
Определение архитектуры программного средства - это представление строения как оно видно (или должно быть видно) извне его, т.е. представление ПС как системы, состоящей из некоторой совокупности взаимодействующих подсистем. В качестве таких подсистем будут выступать отдельные программы.
Для определения структуры необходимо решить две задачи:
3.2.1
Обоснование выбора класса
Различают следующие основные классы архитектур программных средств:
Проведя анализ существующих подходов к формированию архитектуры разрабатываемого программного средства, мною сделан выбор в пользу слоистой структуры. Это обосновано тем, что подобный вид структуры позволит легко адаптировать и расширять программное средство, но при этом меня не устраивает недопустимость использования глобальных данных несколькими слоями. Эту возможность можно позаимствовать у цельной программы.
Таким образом, разрабатываемое программное средство будет представлять собой с одной стороны цельную программу, выполняющую одну ярко выраженную функцию с возможностью обмена данными с подсистемами, в то же время программа будет иметь возможность разработки модулей, на тех слоях, доступ в которые глобальным переменным будет закрыт.
Для обеспечения взаимодействия между библиотеками в ряде случаев не требуется создавать какие-либо дополнительные программные компоненты (помимо реализации внешних функций) - для этого может быть достаточно заранее фиксированных соглашений и стандартных возможностей базового программного обеспечения. Так в выбранном мною варианте архитектуры для обеспечения взаимодействия достаточно описания общей внешней информационной среды и возможностей операционной системы для запуска программ. В слоистой программной системе может оказаться достаточным спецификации выделенных программных слоев и обычный аппарат обращения к процедурам.
3.3 Разработка структуры программы
Приступая к разработке каждой программы, я имел в виду, что она, будет являться большой системой, поэтому необходимо принять меры для ее упрощения. Для этого программу разрабатывают по частям, которые называются программными модулями. Это приведет к тому, что каждый программный модуль программируется, компилируется и отлаживается отдельно от других модулей программы, и тем самым, физически разделен с другими модулями программы. Более того, каждый разработанный программный модуль может включаться в состав разных программ, если выполнены условия его использования, декларированные в документации по этому модулю. Таким образом, программный модуль может рассматриваться и как средство борьбы со сложностью программ, и как средство борьбы с дублированием в программировании (т.е. как средство накопления и многократного использования программистских знаний).
Основаниями к выделению того или иного модуля в проектируемой системе служит совокупность однородных функций, которые можно реализовать в рамках одного модуля. Например: модуль ввода данных, модуль работы с базой данных, модуль проектирования, модуль построения чертежа и т.д.
3.3.1 Обоснование метода разработки структуры программы.
В качестве модульной структуры программы принято использовать древовидную структуру, включая деревья со сросшимися ветвями. В узлах такого дерева размещаются программные модули, а направленные дуги (стрелки) показывают статическую подчиненность модулей, т.е. каждая дуга показывает, что в тексте модуля, из которого она исходит, имеется ссылка на модуль, в который она входит. Другими словами, каждый модуль может обращаться к подчиненным ему модулям, т.е. выражается через эти модули. При этом модульная структура программы, в конечном счете, должна включать и совокупность спецификаций модулей, образующих эту программу.
В процессе разработки программы ее модульная структура может по-разному формироваться и использоваться для определения порядка программирования и отладки модулей, указанных в этой структуре. Поэтому можно говорить о разных методах разработки структуры программы. Обычно в литературе обсуждаются два метода: метод восходящей разработки и метод нисходящей разработки.
Исследуя достоинства и недостатки перечисленных методов, можно отметить, что в выбранном мною методе нисходящей разработки модульная древовидная структуру программы должна разрабатываться до начала программирования модулей. На самом деле это делать не обязательно: так существуют подходы к разработке программ, при которых модульная структура формируется в процессе программирования модулей. Но для реализации проектируемой системы нисходящей разработки вполне достаточно.
3.3.2
Модульная структура
Проектируемую программу необходимо разбить на следующие взаимосвязанные модули:
Form1.cs – главный модуль программы
Form2.cs – модуль визуализации эскизов
4 Реализация
4.1 Построение модели переходника
В дипломной работе предлагается выполнить автоматизированное построение переходника, модель которого представлена на рисунке 4.1.
Рисунок 4.1 – Эскиз переходника
Для создания рассматриваемой модели необходимо осуществить ряд операций:
Рассмотрим более подробно построение каждой операции. Функция, задающая построение эскиза начинается с определения требуемых переменных (рисунок 4.2).
//прямоугольник1
double[] point_A = { 0.0, 0.0, 0.0 };
double[] point_B = { 0, 164, 0.0 };
double[] point_C = { 164, 164, 0.0 };
double[] point_D = { 164, 0, 0.0 };
string taper_angle = "0.0";
double startheight_rect = 0;
double height_rect = 30;
double[] ref_pt_extrude0 = { 0.0, 0.0, 0.0 };
double[] direction_extrude0 = { 0.0, 0.0, 1.0 };
FeatureSigns Operaciy_rect = FeatureSigns.Nullsign;
body1 = rectangl(point_A, point_B, point_C, point_D, startheight_rect, height_rect, taper_angle,
ref_pt_extrude0, direction_extrude0, Operaciy_rect);
//круг1
string taper_angle1 = "0.0";
double[] arc1_centerpt1 = { 82, 82, 0 };
double arc1_start_ang1 = 0.0;
double arc1_end_ang1 = 3.14159265358979324 * 2;
double arc1_rad1 = 30;
double startheight1 = 0;
double height1 = 18;
double[] matrix1 = { 1, 0, 0, 0, 1, 0, 0, 0, -1 };
double[] ref_pt_extrude1 = { 0.0, 0.0, 0.0 };
double[] direction_extrude1 = { 0.0, 0.0, 1.0 };