Смекни!
smekni.com

Методические указания к лабораторным работам по дисциплине “Системы автоматизации проектирования программного обеспечения” (стр. 13 из 22)

//## end Diskr_analiz::operator==%470F79570399_eq.body

}

int Diskr_analiz::operator!=(const Diskr_analiz &right) const

{

//## begin Diskr_analiz::operator!=%470F79570399_neq.body preserve=yes

//## end Diskr_analiz::operator!=%470F79570399_neq.body

}

//## Other Operations (implementation)

void Diskr_analiz::Vector_DF ()

{

//## begin Diskr_analiz::Vector_DF%470F7D1003D8.body preserve=yes

//## end Diskr_analiz::Vector_DF%470F7D1003D8.body

}

void Diskr_analiz::Vector_zn_DF ()

{

//## begin Diskr_analiz::Vector_zn_DF%470F7FB703A9.body preserve=yes

//## end Diskr_analiz::Vector_zn_DF%470F7FB703A9.body

}

void Diskr_analiz::Const_diskr ()

{

//## begin Diskr_analiz::Const_diskr%470F800F037A.body preserve=yes

//## end Diskr_analiz::Const_diskr%470F800F037A.body

}

void Diskr_analiz::Rasch_zn_DF ()

{

//## begin Diskr_analiz::Rasch_zn_DF%470F802C005D.body preserve=yes

//## end Diskr_analiz::Rasch_zn_DF%470F802C005D.body

}

// Additional Declarations

//## begin Diskr_analiz%470F79570399.declarations preserve=yes

//## end Diskr_analiz%470F79570399.declarations

//## begin module%470F79570399.epilog preserve=yes

//## end module%470F79570399.epilog

{Class Kovar_matrix}

//## begin module%1.5%.codegen_version preserve=yes

// Read the documentation to learn more about C++ code generator

// versioning.

//## end module%1.5%.codegen_version

//## begin module%470F792B01A5.cm preserve=no

// %X% %Q% %Z% %W%

//## end module%470F792B01A5.cm

//## begin module%470F792B01A5.cp preserve=no

//## end module%470F792B01A5.cp

//## Module: Kovar_matrix%470F792B01A5; Pseudo Package body

//## Source file: C:\Program Files\Rational\Rose\C++\source\Kovar_matrix.cpp

//## begin module%470F792B01A5.additionalIncludes preserve=no

//## end module%470F792B01A5.additionalIncludes

//## begin module%470F792B01A5.includes preserve=yes

//## end module%470F792B01A5.includes

// Kovar_matrix

#include "Kovar_matrix.h"

//## begin module%470F792B01A5.additionalDeclarations preserve=yes

//## end module%470F792B01A5.additionalDeclarations

// Class Kovar_matrix

Kovar_matrix::Kovar_matrix()

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_const.hasinit preserve=no

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_const.hasinit

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_const.initialization preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_const.initialization

{

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_const.body preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_const.body

}

Kovar_matrix::Kovar_matrix(const Kovar_matrix &right)

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_copy.hasinit preserve=no

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_copy.hasinit

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_copy.initialization preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_copy.initialization

{

//## begin Kovar_matrix::Kovar_matrix%470F792B01A5_copy.body preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F792B01A5_copy.body

}

Kovar_matrix::Kovar_matrix ()

//## begin Kovar_matrix::Kovar_matrix%470F7A3501C5.hasinit preserve=no

//## end Kovar_matrix::Kovar_matrix%470F7A3501C5.hasinit

//## begin Kovar_matrix::Kovar_matrix%470F7A3501C5.initialization preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F7A3501C5.initialization

{

//## begin Kovar_matrix::Kovar_matrix%470F7A3501C5.body preserve=yes

//## end Kovar_matrix::Kovar_matrix%470F7A3501C5.body

}

Kovar_matrix::~Kovar_matrix()

{

//## begin Kovar_matrix::~Kovar_matrix%470F792B01A5_dest.body preserve=yes

//## end Kovar_matrix::~Kovar_matrix%470F792B01A5_dest.body

}

Kovar_matrix & Kovar_matrix::operator=(const Kovar_matrix &right)

{

//## begin Kovar_matrix::operator=%470F792B01A5_assign.body preserve=yes

//## end Kovar_matrix::operator=%470F792B01A5_assign.body

}

int Kovar_matrix::operator==(const Kovar_matrix &right) const

{

//## begin Kovar_matrix::operator==%470F792B01A5_eq.body preserve=yes

//## end Kovar_matrix::operator==%470F792B01A5_eq.body

}

int Kovar_matrix::operator!=(const Kovar_matrix &right) const

{

//## begin Kovar_matrix::operator!=%470F792B01A5_neq.body preserve=yes

//## end Kovar_matrix::operator!=%470F792B01A5_neq.body

}

//## Other Operations (implementation)

void Kovar_matrix::Sovm_kov_matrix ()

{

//## begin Kovar_matrix::Sovm_kov_matrix%470F7A5E02EE.body preserve=yes

//## end Kovar_matrix::Sovm_kov_matrix%470F7A5E02EE.body

}

// Additional Declarations

//## begin Kovar_matrix%470F792B01A5.declarations preserve=yes

//## end Kovar_matrix%470F792B01A5.declarations

//## begin module%470F792B01A5.epilog preserve=yes

//## end module%470F792B01A5.epilog

{Class_Matrix}

//## begin module%1.5%.codegen_version preserve=yes

// Read the documentation to learn more about C++ code generator

// versioning.

//## end module%1.5%.codegen_version

//## begin module%470F762F032C.cm preserve=no

// %X% %Q% %Z% %W%

//## end module%470F762F032C.cm

//## begin module%470F762F032C.cp preserve=no

//## end module%470F762F032C.cp

//## Module: Matrix%470F762F032C; Pseudo Package body

//## Source file: C:\Program Files\Rational\Rose\C++\source\Matrix.cpp

//## begin module%470F762F032C.additionalIncludes preserve=no

//## end module%470F762F032C.additionalIncludes

//## begin module%470F762F032C.includes preserve=yes

//## end module%470F762F032C.includes

// Matrix

#include "Matrix.h"

//## begin module%470F762F032C.additionalDeclarations preserve=yes

//## end module%470F762F032C.additionalDeclarations

// Class Matrix

Matrix::Matrix()

//## begin Matrix::Matrix%470F762F032C_const.hasinit preserve=no

//## end Matrix::Matrix%470F762F032C_const.hasinit

//## begin Matrix::Matrix%470F762F032C_const.initialization preserve=yes

//## end Matrix::Matrix%470F762F032C_const.initialization

{

//## begin Matrix::Matrix%470F762F032C_const.body preserve=yes

//## end Matrix::Matrix%470F762F032C_const.body

}

Matrix::Matrix(const Matrix &right)

//## begin Matrix::Matrix%470F762F032C_copy.hasinit preserve=no

//## end Matrix::Matrix%470F762F032C_copy.hasinit

//## begin Matrix::Matrix%470F762F032C_copy.initialization preserve=yes

//## end Matrix::Matrix%470F762F032C_copy.initialization

{

//## begin Matrix::Matrix%470F762F032C_copy.body preserve=yes

//## end Matrix::Matrix%470F762F032C_copy.body

}

Matrix::~Matrix()

{

//## begin Matrix::~Matrix%470F762F032C_dest.body preserve=yes

//## end Matrix::~Matrix%470F762F032C_dest.body

}

Matrix & Matrix::operator=(const Matrix &right)

{

//## begin Matrix::operator=%470F762F032C_assign.body preserve=yes

//## end Matrix::operator=%470F762F032C_assign.body

}

int Matrix::operator==(const Matrix &right) const

{

//## begin Matrix::operator==%470F762F032C_eq.body preserve=yes

//## end Matrix::operator==%470F762F032C_eq.body

}

int Matrix::operator!=(const Matrix &right) const

{

//## begin Matrix::operator!=%470F762F032C_neq.body preserve=yes

//## end Matrix::operator!=%470F762F032C_neq.body

}

//## Other Operations (implementation)

void Matrix::Proizv ()

{

//## begin Matrix::Proizv%470F7891009C.body preserve=yes

//## end Matrix::Proizv%470F7891009C.body

}

void Matrix::Standart ()

{

//## begin Matrix::Standart%470F78AC0242.body preserve=yes

//## end Matrix::Standart%470F78AC0242.body

}

void Matrix::Obratn ()

{

//## begin Matrix::Obratn%470F78C3006D.body preserve=yes

//## end Matrix::Obratn%470F78C3006D.body

}

void Matrix::Transp ()

{

//## begin Matrix::Transp%470F78D00177.body preserve=yes

//## end Matrix::Transp%470F78D00177.body

}

// Additional Declarations

//## begin Matrix%470F762F032C.declarations preserve=yes

//## end Matrix%470F762F032C.declarations

//## begin module%470F762F032C.epilog preserve=yes

//## end module%470F762F032C.epilog

4 Задание на лабораторное занятие

1. Сгенерировать программный код на С++ для диаграммы классов, разработанной вами в предыдущей лабораторной работе.

5 Содержание отчета

- титульный лист;

- постановка задачи;

- листинг сгенерированного кода;

- вывод.

6 Контрольные вопросы

1. Какие диаграммы необходимо предварительно разработать, чтобы выполнить кодогенерацию?

2. Как посмотреть исходный код?

3. Какие установки свойств доступны на вкладке C++?

4. Какова структура создаваемого кода?

5. Что необходимо добавить в шаблоны классов для получения работоспособного приложения?

6. Какие шаги нужно предпринять для обновления модели по исходному коду?

7. Какие основные этапы кодогенерации вы знаете? Расскажите кратко о каждом из них?

Лабораторная работа № 6

Тема: «Отладка и тестирование проектируемого программного обеспечения»

Цель работы:

1) отладка разработанного программного средства;

2) тестирование разработанного программного средства.

1 Задание на самоподготовку

- уметь отлаживать программные средства;

- знать методику тестирования ПС.

2 Краткие теоретические сведения

Отладка ПС - это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ. Тестирование ПС - это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки.

Отладка программного средства невозможна без представления физической структуры. На этом этапе проектирования необходимо разработать диаграмму компонентов.

Диаграммой компонентов (Component diagram) называется диаграмма UML, на которой показаны компоненты системы и зависимости между ними.

Компонентом называется физический модуль кода. Компонентами бывают как библиотеки исходного кода, так и исполняемые файлы. Например, .h и .cpp и .exe - будут отдельными компонентами.

2.1 Особенности разработки диаграмм компонентов в среде IBM Rational Rose 2003

Диаграмма компонентов служит частью физического представления модели, играет важную роль в процессе ООАП и является необходимой для генерации программного кода. Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов (Component View), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчанию Main (Главная).

Активизация диаграммы компонентов может быть выполнена одним из следующих способов:

Щелкнуть на кнопке с изображением диаграммы компонентов на стандартной панели инструментов.

Раскрыть представление компонентов в браузере (Component View) и дважды щелкнуть на пиктограмме Main (Главная).

Через пункт меню Browse

Component Diagram (Браузер
Диаграмма компонентов).

В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы компонентов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы компонентов (табл. 6.1).

Таблица 6.1 - Назначение кнопок специальной панели инструментов диаграммы компонентов

Графическое изображение

Всплывающая подсказка

Назначение кнопки

Selection Tool Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме
Text Box Добавляет на диаграмму текстовую область
Note Добавляет на диаграмму примечание
Anchor Note to Item Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы
Component Добавляет на диаграмму компонент
Package Добавляет на диаграмму пакет
Dependency Добавляет на диаграмму отношение зависимости
Subprogram Specification Добавляет на диаграмму спецификацию подпрограммы
Subprogram Body Добавляет на диаграмму тело подпрограммы
Main Program Добавляет на диаграмму главную программу
Package Specification Добавляет на диаграмму спецификацию пакета
Package Body Добавляет на диаграмму тело пакета
Task Specification Добавляет на диаграмму спецификацию задачи
Task Body Добавляет на диаграмму тело задачи
Generic Subprogram Добавляет на диаграмму типовую подпрограммы(по умолчанию отсутствует)
Generic Package Добавляет на диаграмму типовой пакет (по умолчанию отсутствует)
Database Добавляет на диаграмму базу данных (по умолчанию отсутствует)

Программа IBM Rational Rose 2003 не поддерживает следующие графические стереотипы. Графическое изображение этих стереотипов и их краткая характеристика приводятся в следующей таблице (табл. 6.2). При этом каждому из компонентов, как правило, соответствует отдельный файл исходной сборки программного приложения.