maran program engineering (Маран Программная инженерия), страница 14

PDF-файл maran program engineering (Маран Программная инженерия), страница 14 Программная инженерия (88178): Книга - 4 семестрmaran program engineering (Маран Программная инженерия) - PDF, страница 14 (88178) - СтудИзба2021-02-16СтудИзба

Описание файла

PDF-файл из архива "Маран Программная инженерия", который расположен в категории "". Всё это находится в предмете "программная инженерия" из 4 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 14 страницы из PDF

В качестве типаданных пишем double, поля имя, видимость, стереотип выберем как раньше, нообратим внимание на свойство кратность. По умолчанию оно равно единице.Можем дать там, в принципе, любое значение больше единицы (это — количество элементов) или писать знак *, что означает, что количество элементов неопределено. Такому компоненту класса в программе соответствует стандартный интерфейс IEnumerable.Приступаем к добавлению функций. Добавим в класс Dan функцию вычисления индекса массы тела funMI. Тип возвращаемого значения double, параметров она не имеет, стереотип метод C#.

Свойства имя и видимость нам ужезнакомы. У всех функций имеются свойства постусловия и предусловия, о нихмы говорили выше в разделе о языке OCL. Можно заполнить и эти свойства, ноони не влияют на генерацию программ и поэтому могут рассматриваться каккомментарии.Добавим в класс MyClass функцию fun1, у которой нет возвращаемогозначения, но она имеет формальные параметры:• массив arr типа double;• n типа int, исходное значение для функции (передача по значению);• w типа double, значение будет получено в функции;• t типа double, значение которой должна быть задано при обращении кфункции, но она может там измениться.69Добавим функцию fun1, определим ее свойства: имя, видимость, стереотип, возвращаемое значение, как было описано выше.

Имеется свойство параметры, имеющее диалоговое окно для их определения. Откроем это окно. Видим там кнопки Добавить (Add) и Удалить (Remove). Нажмем на кнопку Добавить, в результате появится новый параметр с именем Parameter1. Справа имеется окно свойств параметра.Имя arr. Тип данных double[]. Остальные значения можем оставить поумолчанию.Имя n, тип данных int.

Остальные значения можем оставить по умолчанию.Имя w, тип данных double. Направление out, что означат, что его значениебудет определено в функции и не должно быть определено при обращении. Каквы заметили, по умолчанию это свойство имеет значение in, что и требовалосьв предыдущих случаях.Имя t тип данных double. Направление inout, что означает, что этот параметр должен иметь значение при обращении к функции, но функция может егоизменить.Рассмотрим использование отношений между классами. Отношениеобобщения означает наследование. Кроме него на диаграмме классов проектирования рекомендуется использовать только отношение агрегации (композиции) и избегать мощности «многие ко многим», как это делать — см. выше.Добавим на нашу диаграмму 3 класса для показа названных отношений.

Обратите внимание на то, что у класса ClassA кратность отошения равна 1, а у класса ClassB задана *.Результат представлен на рис. 4.9.Рис. 4.9Поставим курсор мыши на имя диаграммы UML Class Diagram1, нажмемна правую клавишу и выберем пункт Создать код (Generate Code). В обозревателе решения появится новый раздел Mod48Lib (Modlib — имя созданного намипроекта проектирования), где и появятся сгенерированные классы:public class Dan70{public object Fam;public object Imya;public object Rost = 0;public object Ves;public virtual double MasInd{get;set;}public virtual double funMI(){throw new System.NotImplementedException();}}//---------------------------------------------public class MyClass : ClassX//наследование{public double[] mas; // обычный массивpublic List<Dan> lst1; // список из элементов класса Danpublic IEnumerable<double> collect;//коллекция, кратность>1public ClassA x{get;set;}public virtual IEnumerable<ClassB>ClB// свойство типа класс, кратность>1// генерируется автоматически{get;set;}public virtual void fun1(double[] arr1, int n,out double w, ref double t)// заголовок функции по правилам C#{throw new System.NotImplementedException();} }71При внесении изменений в диаграмму классов и повторной генерацииизменения будут учтены.

Однако при внесении изменений в тексты программони не могут быть перенесены в диаграммы.Таким образом, целесообразно создать первоначальную диаграмму классов проектирования. После генерации кода можно перейти к другой разновидности диаграммы классов, где возможности для работы с ними заметно шире.Для этого поставим курсор мыши на имя сгенерированного класса, нажмем направую клавишу и выберем Перейти к диаграмме классов (Show ClassDiagram).

Результат показан на рис. 4.10, внесенные в диаграмму изменения автоматически передаются в текст программы и наоборот. Если на этой диаграмме классов поставить курсор мыши на символ класса и нажать на правую клавишу, то в контекстном меню предлагается добавить в класс поля, методы,свойства, конструктор, деструктор и т. д. Кроме того, там появился новыйпункт «Сведения о классе» (Class Details) при выборе которого появится окно,приведенное на рис. 4.11. Как видно из рисунка, там подробно представленывсе компоненты класса и их характеристики. Там можно их изменить, и эти изменения автоматически передаются на диаграмму классов и сами тексты сгенерированных программ.

Обратите внимание на запись «Добавить …(Add)»: нажав на нее можно увеличить количество всех составных частей. На самой диаграмме классов (рис. 4.10) можно также менять состав классов и их компонентов, как это было описано выше.Рассмотрим создание диаграммы последовательностей. На диаграммеклассов, приведенной на рис. 4.9 и 4.10, мы главное внимание уделили составукласса. Для рассмотрения диаграммы последовательностей нам потребуется несколько классов с функциями.

Поэтому составим вспомогательную диаграммуклассов, представленную на рис. 4.12. Обратите внимание, что между классамиClass1 и Class2 имеется отношение наследования.Рис. 4.1072Рис. 4.11Рис. 4.12Для создания этой диаграммы, как обычно, поставим курсор на имя проекта, нажмем на правую клавишу, выберем по очереди добавить — новый элемент — диаграмма последовательностей. Для первоначального заполнениятолько что созданной диаграммы имеются две возможности.Можно поставить на диаграмме классов курсор мыши на класс и выбратьиз контекстного меню пункт «Создать линию жизни», следует вопрос: на какуюдиаграмму линию жизни ставить, ответим на него.73Можно открыть пустую диаграмму последовательностей, из палитры инструментов перенести на нее компонент «Линия жизни» и заполнить свойстваИмя и Тип.

Тип можно выбрать из существующих классов.Конечный результат не зависит от способа создания. Текст Obj1:Class1означает, что это объект Obj1 класса Class1. Напомним, что на этой диаграммевремя течет сверху вниз, и все сообщения должны быть размещены в такой последовательности. Сообщению всегда должен соответствовать метод в классеадресате. Сообщения бывают синхронными (класс-отправитель ждет ответа откласса-адресата) и асинхронными (класс отправляет сообщение и продолжаетработу).

Сообщения наносим на диаграмму точно так, как мы и ранее наносиливсе связи: выберем нужную разновидность сообщения и протягиваем его от отправителя до адресата. Сообщениям будут присвоены имена Message1, …, которые можно менять. Сообщения имеют свойство «Операция» с выпадающимсписком, включающем функции класса-адресата (как собственные, так и наследованные). Диаграмма последовательностей считается корректной, если каждойлинии жизни (объекту) соответствует класс и каждому сообщению функция. Нанашей диаграмме сообщение Message1 синхронное, остальные — асинхронные.Сообщению Message1 соответствует функция fun1(), наследованная классомClass2 от класса Class1.

Составленная диаграмма представлена на рис. 4.13.Рис. 4.13При этом не следует забывать об одной тонкости: все объекты должныбыть созданы до того, когда им можно будет передавать сообщения. По сутиэто означает, что должен быть запушен конструктор класса и инициирован минимальный для работы набор его данных.

Кроме того, класс-отправитель должен иметь доступ к переменной типа класс-адресат. Можно рекомендовать дваспособа решения этой проблемы:74• первое сообщение запускает конструктор класса-адресата;• имеется «центральный» класс, из которого будут запущены конструкторывсех необходимых классов с последующей передачей полученных адресов объектов с учетом будущих передач сообщений.Пример можно найти в разделе создания многооконных интерейсов(п. 5.2.1 и 5.2.2): создание нового окна, определение его свойств и вызов методов.755. Реализация на языке C# в средеMicrosoft Visual Studio5.1. Простейший пример5.1.1. Постановка задачиВизуальное программирование похоже на рассмотренное выше составление диаграмм.

«Перетаскиваем» с палитры инструментов на создаваемую форму компоненты, уточним их свойства и определим связанные с ними события.Создаем в Microsoft Visual Studio проект Windows Forms для C#. Поставим перед собой цель — создать простейший пример, главная форма которого приведена на рис. 5.1.Рис. 5.1Для начала поменяем свойство формы Text на My first Example и увидим,что изменился заголовок формы. Ограничимся рассмотрением компонентовLabel, TextBox и Button.

Label (метка) предназначена для нанесения на формупояснительных текстов и вывода результатов. Во время работы приложения невозможно редактировать содержимое меток. TextBox (строка редактирования)предназначена для ввода/вывода, тип данных в нем — всегда string, и все преобразования должны выполняться программистом. Компоненту Button (командная кнопка) можно ставить в соответствие функцию, которая будет выполнена при нажатии на кнопку.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5302
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее