Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Краткие теоретические и учебно-методические материалы
По теме лабораторной работы Работа объектов программы описывается с помощью автоматов (или машин состояний). Существует хорошо развитая теория автоматов, в которой изучаются вопросы их построения и анализа работы. Автомат – это элемент системы, который характеризуется двумя базовыми понятиями: состояние и переход. Каждый автомат в определенный момент времени может находиться в одном из допустимых состояний. Число этих состояний, возможно, бесконечно. Задан также набор правил, по которому допускается переход из одних множеств состояний в другие. Схожесть автоматной модели с программированием в том, что переменные (ячейки памяти) в каждый момент работы процессора всегда хранят конкретные значения из допустимых диапазонов значений. Эти значения фактически являются состояниями переменных. Автомат в определенный момент времени может находиться только в одном состоянии. Это правило соответствует принципу императивного программирования, согласно которому любая переменная в каждый момент времени (такт процессора, шаг работы программы) хранит только одно из множества допустимых значений. Число состояний автомата конечно. Из текущего состояния автомат может перейти только в одно следующее состояние. Не исключено, что это состояние выбирается из нескольких доступных вариантов. В рамках диаграммы у каждого состояния должен быть предшественник (за исключением начального состояния). Это правило запрещает размещение на диаграмме состояний, никак не связанных друг с другом. Состояния. Конкретное состояние (в общем случае – статический срез системы) формируется инструментом State (Состояние). На диаграмме оно изображается в виде прямоугольника с закругленными углами. Состояние имеет имя, начинающееся с заглавной буквы. Под ним могут записываться условия и действия. Условия проверяются, а действия выполняются, когда автомат находится в соответствующем состоянии. Отметим принятые правила оформления элементов диаграммы состояний. Элемент State представляет не действие, а описание статического состояния, в котором автомат может находиться неограниченно долго. Автомат может переходить из текущего состояния в другие состояния при выполнении определенных действий пользователя или условий, которые должны быть выполнены. Действия и условия отображаются только на линиях пере- ходов между состояниями.
Подавтоматы. Внутри каждого состояния разрешается формировать собственный автомат (подавтомат) – мини-диаграмму состояний. Благодаря этому возможно проектировать систему постепенно, раскрывая отдельные ее элементы по мере необходимости. Подавтомат – это автомат, вложенный в другой автомат и описывающий поведение конкретного состояния. Диаграммы состояний. Диаграммы состояний (State Machine Diagram) стали новым типом диаграмм в версии UML 2.0. Они особенно важны для разработчика, использующего среду Delphi. Дело в том, что в последней версии Delphi 2006 имеется технология моделирования ЕСО III. Она расширена средствами визуального построения алгоритмов. С помощью этих средств описывается работа разных элементов модели. Ранее для описания модели и генерации исходного кода на языке Delphi применялись лишь статические диаграммы классов. Теперь задействованы и диаграммы состояний. Диаграмма состояний – это средство, описывающее логику функционирования автоматов (машин состояний). В основу диаграмм состояний положена концепция автоматов. Доказано, что с помощью таких автоматов можно запрограммировать произвольный алгоритм любой сложности, если его можно также записать на императивном языке программирования. Диаграмма состояний всегда относится к конкретному классу и описывает его внутреннее функционирование. На диаграмме конкретное состояние отображается с помощью элемента State. Начальное и конечное состояния – элементы Initial (Начальное) и Final (Конечное) – представлены на диаграмме сплошным кружком. Кружок, соответствующий конечному состоянию, обведен каймой. Фактически, это псевдосостояния, не возникающие при реальной работе. Начальное и конечное состояния лишь наглядно задают последовательность входа в первое рабочее состояние и выхода из последнего рабочего состояния. Отдельное состояние может охватывать последовательность действий. Состояние, охватывающее другие состояния, называют суперсостоянием, а вложенные в него состояния – подсостояниями. Такой иерархический подход к организации состояний позволяет формировать одинаковые реакции подсостояний на уровне одного суперсостояния. Пусть, например, имеется стандартное аварийное состояние и стандартный переход в него по команде отмены. Для каждого из множества состояний диаграммы можно указать этот переход индивидуально, а можно объединить их в суперсостояние. Тогда переход в аварийное состояние представляется на диаграмме всего одной линией, исходящей из элемента, представляющего суперсостояние.
Пример: Разработать программный код на языке Delphi для разработки простого MDA приложения с использованием машин состояний.
# include <iostream.h> # include <fstream.h> # include <string.h> # include <iomanip.h> # include <stdlib.h> # include <conio.h> struct student { char name[30]; int kurs; char gr[7]; }; struct group { char gr[7]; int ng; }; class dmassiv { private: student *pst; int n; group *pz; int k; public: dmassiv() { n=0; pst=NULL; k=0; pz=NULL;} ~dmassiv(); void inputstudentfile (); void outputstudent (); void outputgroup (); void outputgroupfile (); void perechengroup (); void add (); void deletename (); }; void main() { massiv a; a.inputstudentfile (); cout << ” Исходный массив структур. \n”; a.outputstudent (); a.perechengroup (); cout << ” Перечень групп, имеющих задолжников. \n”; a.outputgroup (); a.outputgroupfile (); } Задание для лабораторной работы Разработать программный код на языке Си++ для создания простого приложения MDA с использованием машин состояний. Контрольные вопросы 1. Дайте определение понятию автомат. 2. В чём заключается схожесть автоматной модели с программированием? 3. Каким инструментом формируется конкретное состояние? 4. Описать функциональные возможности диаграмм состояний. Лабораторная работа №24-25 «Применение стохастического тестирования классов» Цель работы: получение навыков при тестировании классов Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь: - владеть основными методологиями процессов разработки программного обеспечения; - использовать методы для получения кода с заданной функциональностью и степенью качества.
знать: -модели процесса разработки программного обеспечения; -основные принципы процесса разработки программного обеспечения; -основные подходы к интегрированию программных модулей; -основные методы и средства эффективной разработки;
|
||||||
Последнее изменение этой страницы: 2021-12-07; просмотров: 35; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.237.255 (0.009 с.) |