Требования к программным системам

В ГОСТ 23501.101-87 определены требования к компонентам видов обеспечения.

3.1. Требования к компонентам программного обеспечения

3.1.1. Компоненты программного обеспечения, объединенные в ПМК, должны иметь иерархическую организацию, в которой на верхнем уровне размещается монитор управления компонентами нижних уровней программными модулями.

3.1.2. Программный модуль должен: регламентировать функционально законченное преобразование информации; быть

написанным на одном из стандартных языков программирования; удовлетворять соглашениям о представлении данных, принятым в данной САПР; быть оформленным в соответствии с требованиями ЕСПД.

3.1.3. Монитор предназначен для: управления функционированием набора программных модулей ПМК, включая контроль последовательности и правильности исполнения; реализации общения пользователя с ПМК и программных модулей с соответствующими базами данных (БД); сбора статистической информации.

3.2. Требования к компонентам лингвистического обеспечения

3.2.1. К компонентам лингвистического обеспечения относят языки проектирования (ЯП), информационно — поисковые языки (ИПЯ), и вспомогательные языки, используемые в обслуживающих подсистемах, и на связи с ними проектирующих подсистем.

3.2.2. Компоненты лингвистического обеспечения должны быть согласованы с компонентами обеспечения других видов, быть относительно инвариантными к конкретному содержанию БД, предоставлять в компактной форме средства описания всех объектов и процессов заданного для системы класса с необходимой степенью детализации и без существенных ограничений на объект описания, быть рассчитанными, в основном, на диалоговый режим их использования.

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

3.2.4. ЯП должны представлять собой набор директив, используя которые пользователь осуществляет процесс формирования модели объекта проектирования и ее анализ, обеспечивать возможность фиктивного контроля заданий пользователей иметь средства выдачи пользователю справок,

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

3.2.5. ИПЯ должны включать словари, правила индексирования входной информации и правила формирова-ния поисковых предписаний.

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

3.3. Требования к составлению алгоритма программы.

Первое правило — при построении алгоритма прежде всего необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное ( закодированное ) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные.

Это правило позволяет сразу отделить алгоритмы от “методов” и “способов”. Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.

Второе правило – для работы алгоритма требуется память. В памяти размещаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые являются результатом работы алгоритма. Память является дискретной, т.е. состоящей из отдельных ячеек. Поименованная ячейка памяти носит название переменной. В теории алгоритмов размеры памяти не ограничиваются, т. е. считается, что мы можем предоставить алгоритму любой необходимый для работы объем памяти.

Третье правило — дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд).

Четвертое правило — детерменированность. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.

Пятое правило — сходимость ( результативность ). Алгоритм должен завершать работу после конечного числа шагов. При этом необходимо указать, что считать результатом работы алгоритма.

3.3.1 Методы изображение алгоритмов

На практике наиболее распространены следующие формы представления алгоритмов:

— словесная (записи на естественном языке);

— графическая (изображения из графических символов);

— псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

— программная (тексты на языках программирования).

Словесное описание алгоритма

Данный способ получил значительно меньшее распространение из-за его многословности и отсутствия наглядности.

Рассмотрим пример на алгоритме нахождение максимального из двух значений:

— Определим форматы переменных X, Y, M, где X и Y – значения для сравнения, M – переменная для хранения максимального значения;

— получим два значения чисел X и Y для сравнения;

— сравним X и Y.

— если X меньше Y, значит большее число Y.

— Поместим в переменную M значение Y.

— Если X не меньше (больше) Y, значит большее число X.

— Поместим в переменную M значение X.

Словесный способ не имеет широкого распространения по следующим причинам:

— такие описания строго не формализуемы;

— страдают многословностью записей;

— допускают неоднозначность толкования отдельных предписаний.

Блок-схема алгоритма

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

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

Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.

Принцип программирования «сверху вниз» требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок «расписывался» до элементарных операций. Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема «расползется» до такой степени, что ее невозможно будет охватить одним взглядом.

Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения.

В Приложении 7 приведены наиболее часто употребляемые символы при составлении блок-схем.

Проектирование

4.1 Задания на курсовой проект:

1. Разработка программного средства, позволяющего фиксировать все сообщения, поступающие от мыши.

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

2. Разработка приложения Калькулятор.

Характеристики программы:

— вид калькулятора — обычный;

— набор операций, поддерживаемых калькулятором, согласовывается с преподавателем;

— возможность выполнения арифметических и логических операций над числами в любой системе счисления (двоичной, шестнадцатеричной, десятичной);

3. Разработка программного средства, позволяющего отображать графики функций, заданных таблично.

В процессе выполнения реализовать:

— формат файла для хранения табличных функций;

— (чтение из файла) и простейшими математическими выражениями

— окно работы с табличными функциями с возможностями чтения/записи файла, редактирования таблиц;

— возможность отображения графиков функций;

— создания таблиц элементарных функций, набор которых согласовывается с преподавателем.

4. Разработать приложения, позволяющего создавать круговые диаграммы.

Характеристики программы:

— задание параметров диаграммы, включающих таблицу параметров диаграммы, цвета каждой области диаграммы, размеры диаграммы;

— реализовать возможность сохранения и чтения параметров диаграммы в файл;

— отображение диаграммы на экране;

— экспорт диаграммы в файл формата *.bmp.

5. Разработка редактора ресурсных файлов приложения.

Программа позволяет формировать следующие ресурсы:

— иконки;

— меню;

— текст;

— диалоговые окна.

6. Разработка программы-проводника.

Программа выполняет следующее:

— просматривать содержимое дисков и каталогов;

— копировать файлы из одного каталога (диска) в другой;

— изменять имена фалов.

7. Разработка программного средства для работы с файловой информацией.

Действия программы:

— просматривать содержимое дисков и каталогов;

— получать подробную информацию о файлах (размер, тип, дата последнего изменения);

— удалять файлы с диска;

8. Разработка MDI приложения, позволяющего просматривать текстовые файлы и файлы формата rtf.

Приложение должно давать возможность одновременного просмотра нескольких файлов, а также возможность получения информации о файле.

9. Разработка программного средства, позволяющего фиксировать все сообщения, поступающие в программу от клавиатуры.

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

10. Разработка программного средства, позволяющего фиксировать все сообщения, поступающие в программу от дочерних окон управления и меню.

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

11. Разработка программного средства адресная книга. Программа должна позволять вводить Ф.И.О. абонента, домашний и рабочий адрес, телефон, и дополнительную текстовую информацию. Информация запоминается на диске в виде внешнего файла. Программа позволяет просматривать элементы базы данных, а также осуществлять поиск по фамилии.

12. Разработка программного средства для статистики текстовых файлов.

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

13. Разработка программного средства для работы с таблицами.

При создании новой таблицы пользователь вводит число строк и число столбцов. В ячейках таблицы пользователь может вводить текстовую информацию.

14. Разработка приложения, позволяющего просматривать файлы текстового формата.

Приложение должно давать возможность одновременного просмотра нескольких файлов, а также возможность получения информации о файле.

15. Разработка приложения Калькулятор.

Действия программы:

— вид калькулятора — инженерный;

— возможность выполнения арифметических и логических операций над числами в любой системе счисления (двоичной, шестнадцатеричной, десятичной).

16. Разработка приложения, позволяющего просматривать установленное оборудование на ПК.

Программа должна отображать перечень имеющегося оборудования, имя, тип каждого устройства;

17. Разработка главного меню операционной системы. Программа должна отображать интерфейс с рабочими ярлыками, с подсказкой о предназначении каждого ярлыка;

18. Разработка интерфейса рабочего стола операционной системы с возможностью настройки панели инструментов;

19. Разработка интерфейса рабочего стола операционной системы с возможностью настройки панели задач;

20. Разработка приложения, позволяющего просматривать сведения о системе. Данная программа должна отображать сведения о системе, пользователе, сведения компьютера, сведения имеющегося оборудования.

Выполнение курсовой работы следует начать с изучения постановки задачи. Чтобы найти оптимальное решение для поставленной задачи, необходимо по реферативным журналам, сборникам алгоритмов и программ подобрать литературу, в которой описано решение подобных задач. Для получения отличной оценки за работу требуется составление оригинальной программы. Следует четко определить функции системы, ее достоинства по сравнению с существующими, а также пользователя системы с точки зрения его квалификации.

После определения функций должны быть составлены спецификации. Каждой функции системы должна соответствовать хотя бы одна спецификация. При разработке спецификации необходимо исходить из того, что они должны быть просты как с точки зрения пользователя (применять для записи естественный язык), так и с точки зрения их реализации (не громоздки, требовать минимального числе. параметров, обеспечение возможности задания параметров по умолчанию). Составленные спецификации — это лицо системы, поэтому уделите этому вопросу максимальное внимание! Составленные спецификации обсудите с руководителем курсовой работы и с пользователями Вашей системы. После утверждения спецификаций руководителем (для реальных систем спецификации утверждаются заказчиком) должны быть составлены тесты для проверки функционирования будущей системы и для доказательства полноты спецификаций. Для каждого теста должны быть определены ожидаемые результаты.

При проектировании системы определяется схема данных, которая отражает путь данных при решении задач к определяет этапы обработки данных. Для каждого данного определяется источник и приемник. Для всех программ определяются алгоритмы их функционирования. Для задания алгоритмов можно использовать графическое представление алгоритмов с помощью схем, которые должны выполняться в соответствии со стандартами . Для увеличения наглядности схема не должна содержать более 50 блоков. Вместо схем алгоритмов можно использовать его текстовое представление с помощью специальных языков проектирования, описанных в литературе, или язык, разработанный самостоятельно. В последнем случае язык должен быть предварительно описан. Этап проектирования считается выполненным после проверки всех алгоритмов, разработанных для модулей системы. Для проверки

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

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

Все программы, разработанные студентом, должны быть описаны в соответствии с принятыми стандартами для описания программ.

Тестирование программ

Тестирование (выполнение программы с целью обнаружения ошибок [6]) по различным оценкам авторов занимает более 50 % времени, отведенного для разработки системы.

При выполнении курсовой работы необходимо выполнить тестирование с использованием стратегии черного и белого ящика. В первом случае структура программы считается неизвестной, тесты формируются с учетом функций программы. Если среди спецификаций есть взаимосвязанные и взаимозависимые спецификации, необходимо использовать функциональные диаграммы. Если диаграмма получается громоздкой, необходимо составить диаграммы для части спецификации. Для независимых спецификаций и их частей использовать метод эквивалентных разбиений .Для подготовки тестов с использованием логики программы рекомендуется использовать комбинаторное покрытие условий . Этим способом проверяются только те условия, которые

не были проверены тестами, сформированными предыдущими методами. Система тестов дополняется тестами, получаемыми с учетом граничных значений.

При отладке и тестировании программ рекомендуется использовать средства отладки языков Си, а также процедуру проверки выхода за границы индексов при использовании массивов.

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

Вопросы для самопроверки

1. Общая характеристика современных операционных систем на примере ОС Windows?

2. Назначение графического интерфейса устройства (GDI)? Какие типы функций GDI вы знаете?

3. В чем заключается объектно-ориентированный подход к программированию? Каким образом данный подход реализован в ОС Windows?

4. Особенности отображения графических примитивов при помощи функций API. Векторная графика и формат метафайла?

5. Понятие контекста устройства. Основные характеристики и объекты контекста дисплея?

6. Опишите основные этапы создания окна приложения. Объясните смысл оконной процедуры?

7. Опишите основные этапы создания окна приложения. Объясните смысл цикла обработки сообщений.

8. Объекты контекста. Понятие «пера» и «кисти». Особенности использования объектов контекста?

9. Особенности архитектуры операционной системы, управляемой событиями. Типы сообщений, порядок их обработки приложением?

10. Опишите основные этапы создания окна приложения. Объясните смысл регистрации класса окна?

11. Особенности отображения графических примитивов при помощи функций API. Векторная графика и работа с метафайлом?

12. Оконная процедура. Основные группы сообщений, обрабатываемых оконной процедурой. Назначение функции DefWindowProc ?

13. Битовые образы, зависящие от устройства?

14. Сообщения, поступающие в программу от мыши. Особенности их использования. Захват мыши?

15. Понятие активного окна. Окна, предопределенные в Windows. Порядок создания и работы дочерних окон?

16. Опишите основные этапы создания окна приложения. Функция создания окна: необходимые параметры, показ и обновление окна?

17. Синхронные и асинхронные сообщения в Windows?

18. Особенности обработки сообщения WM_PAINT?

19. Два способа получения описателя контекста устройства. Действительные и недействительные области окна приложения?

20. Особенности использования предопределенных дочерних окон на примере кнопок и окон редактирования?

21. Битовые образы, не зависящие от устройства. Формат *.bmp файла?

22. Синхронные и асинхронные сообщения в Windows?

23. Понятие контекста устройства. Основные характеристики и объекты контекста дисплея?

24. Особенности использования предопределенных дочерних окон на примере полос прокрутки?

25. Понятие контекста устройства. Основные характеристики и объекты контекста дисплея?

26. Что понимается под рабочей и клиентской областью окна приложения? Сообщения рабочей и клиентской области. Основные стили окна?

27. Синхронные и асинхронные сообщения в Windows?

28. Назначение графического интерфейса устройства (GDI)?

29. Какие способы представления графики реализованы функциями API?

30. Вытесняющая и не вытесняющая многозадачность?

31. Порядок обработки аппаратных и символьных сообщений от клавиатуры?

32. Понятие активного окна?

33. Системные и несистемные сообщения от клавиатуры?

34. Растровая графика. Способы представления растровой графики в Windows?

35. Клиентская, не клиентская и рабочая области окна. Действительные и недействительные области окна?

Vrsta


Похожие статьи.

Понравилась статья? Поделиться с друзьями: