ТОП 10:

Методы, технология и инструментальные средства



6.1. В чём сущность структурного подхода к программированию? Какие этапы охватывает данный подход?

Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

Формулировка задачи

Выбор метода решения

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

Написание программы

Решение задачи

 

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

 

6.3. В каких случаях целесообразно использовать диаграммы переходов состояний?

 

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

 

6.4. В чём заключается основное различие между функциональными диаграммами и диаграммами потоков данных? В каких случаях использование диаграмм потоков данных является предпочтительным?

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

 

 

6.5. Какие модели используют для описания структур данных?

Иерархические модели позволяют описывать упорядоченные или неупорядоченные отношения вхождения элементов данных в компонент более высокого уровня, т. е. множества, таблицы и их комбинации. К иерархическим моделям относят модель Джексона-Орра, для графического представления которой можно использовать:
• диаграммы Джексона, предложенные в составе методики проектирования программного
обеспечения того же автора в 1975 г.

• скобочные диаграммы Орра, предложенные в составе методики проектирования
программного обеспечения Варнье-Орра 1974.
Сетевые модели основаны на графах, а потому позволяют описывать связность элементов
данных независимо от вида отношения, в том числе комбинации множеств, таблиц и графов. К сетевым моделям, например, относят модель сущность-связь ER – Entity-Relationship, обычно используемую при разработке баз данных.

 

6.6. Какую модель взаимодействия с пользователем используют процедурно-ориентированные интерфейсы?

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

 

6.7. Какую модель взаимодействия с пользователем используют объектно-ориентированные интерфейсы?

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

 

6.8. Перечислите основные отличия пользовательских моделей интерфейсов процедурного и объектно-ориентированного типа.

Процедурно-ориентированные интерфейсы:

1)Обеспечивает пользователю функции, необходимые для выполнения задач;

2)Акцент делается на задачи;

3)Пиктограммы представляют приложения, окна или операции;

4)Содержание папок и справочников отражается с помощью таблицы-списка.

Объектно-ориентированные интерфейсы:

1)Обеспечивает пользователю возможность взаимодействия с объектами;

2)Акцент делается на входные данные и результаты;

3)Пиктограммы представляют объекты;

4)Папки и справочники являются визуальными контейнерами объектов.

 

6.9. Какие интерфейсы называют графическими и почему?

Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. Graphical user interface, GUI; сленг. ГУИ) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в видеграфических изображений.

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

 

6.10. Что такое когнитивная психология? Как принципы когнитивной психологии применяются при разработке пользовательских интерфейсов?

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

 

6.11. Дайте характеристику пользовательской и программной модели интерфейса.

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

1)уровнем подготовки в предметной области разрабатываемого про­граммного обеспечения;

2)интуитивными моделями выполнения операции в этой предметной об­ласти;

3)уровнем подготовки в области владения компьютером;

4)устоявшимися стереотипами работы с компьютером.

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

 

6.12. Какие интерфейсы являются более перспективными и почему?

6.13. По каким критериям производится оценка интерфейса пользователем?

1)простота освоения и запоминания операций системы - конкретно оце­нивают время освоения и продолжительность сохранения информации и па­мяти:

2)скорость достижения результатов при использовании системы - опре­деляется количеством вводимых или выбираемых мышью команд и на­строек;

3)субъективная удовлетворенность при эксплуатации системы (удобство работы, утомляемость и т. д.).

 

6.14. Какими операционными системами поддерживаются графические интерфейсы?

Microsoft Windows, Mac OS, Solaris, GNU/Linux, NeXTSTEP, OS/2, BeOS, Android, iOS, Bada, MeeGo.

 

6.15. Перечислите и охарактеризуйте основные компоненты графических интерфейсов (окна, пиктограммы, манипулирование данными, компоненты ввода-вывода и др.).

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

1)основные окна (окна приложений);

2)дочерние или подчиненные окна;

3)окна диалога;

4)информационные окна;

5)окна меню.

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

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

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

-программные пиктограммы;

-пиктограммы дочерних окон;

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

-пиктограммы объектов.

Программными пиктограммами, которые связаны с соответствующей программой, управляет ОС. Так, можно «свернуть» окно приложения в пиктограмму на панели задачWindows или «развернуть» его обратно «на рабочий стол».

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

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

Пиктограммы объектов используют для прямого манипулирования этими объектами.

Как правило, все пиктограммы можно перемещать мышью. Для облегчения работы с пиктограммами обычно использую «всплывающие» подсказки, которые появляются, если пользователь в течение некоторого времени удерживает мышь над пиктограммой панели инструментов.

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

-указание и выбор (развертывание пиктограмм, определение активного окна и т.п.);

-буксировка и «резиновая нить» (перенос объекта или его границ);

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

Не последняя роль в графических интерфейсах отводится динамическим визуальным сигналам, которые представляют собой изменение изображения на экране. Основная цель этих сигналов заключается в предоставлении пользователям дополнительной информации. Простейшим примером такого сигнала является изменение изображения курсора мыши при выполнении конкретных операций, например, изображение его в форме песочных часов во время обработки. Другой пример - изменение изображения кнопки при нажатии на нее. Хотя в отличие от анимационных интерфейсов прямого манипулирования эти визуальные сигналы играют в ГПИ вспомогательную роль, обеспечивая более реалистическую картинку.

СМ. РИС.35-1

СМ. РИС.35-2

Компоненты ввода-вывода. Как уже упоминалось, в окнах приложения могут размещаться специальные компоненты, используемые для ввода-вывода информации. Интерфейс практически любого современною ПО включает несколько меню: основное или «ниспадающее» иерархическое меню, пиктографические меню (панели инструментов) и контекстные меню для разных ситуаций. Любое из указанных меню представляет собой компонент ввода-вывода, реализующий диалог с пользователем, используя табличную форму.

Иерархические меню используют, чтобы организоватьвыполняемые ПО операции, программным обеспечением операции, если их число превышает 5-8 (6 в соответствии с рекомендациями фирмы IBM), и обеспечить пользователю их обзор. Панели инструментов и контекстные меню применяют, для обеспече­ния быстрого доступа к часто используемым командам, обеспечивая, пользователю возможность относительно свободной навигации.

Кроме меню в интерфейсе используют и другие компоненты ввода-вы­вода, которые можно разделить на три группы в соответствии с тем, какую форму диалога они реализуют: фразовую, табличную или смешанную. Ди­рективная форма диалога обычно предполагает ввод комбинаций клавиш или перемещение пиктограмм, а потому не требует использования компо­нентов ввода-вывода. На рис. приведены основные компоненты WINP-интерфейса Windows и даны рекомендации по их использованию.

 

6.16. Как реализуются диалоги в графическом пользовательском интерфейсе?

6.17. Какие средства проектирования пользовательских интерфейсов прямого манипулирования Вам известны?

Интерфейсы данного типа на внешнем уровне используют директивную форму диалога: ввод команды осуществляется при выполнении определенных действий с пиктограммой объекта мышью. Основными элементами этих интерфейсов являются: метафоры, объекты, представления объектов и технология Drag and Drop («перетащил и бросил»).

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

Объекты интерфейса прямого манипулирования и их представления. Существует три основных типа объектов интерфейсов прямого манипулирования: объекты-данные, объекты-контейнеры и объекты-устройства.

rag-and-drop (в переводе с английского означает буквально тащи-и-бросай; Бери-и-Брось) — способ оперированияэлементами интерфейса в интерфейсах пользователя (как графическим, так и текстовым, где элементы GUI реализованы при помощи псевдографики) при помощи манипулятора «мышь» или сенсорного экрана.

 

6.18. Какие интеллектуальные элементы используются для создания пользовательских интерфейсов?

 

Тестирование и отладка

7.1. Что является целью тестирования программ?

Тести́рование програ́ммного обеспе́чения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта.

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

 

7.2. Какие подходы к тестированию Вы знаете? В чём они заключаются?

Блочное (модульное, unit testing) тестирование наиболее понятное для программиста. Фактически это тестирование методов какого-то класса программы в изоляции от остальной программы.

Интеграционное тестирование, на мой взгляд, наиболее сложное для понимания. Есть определение — это тестирование взаимодействия нескольких классов, выполняющих вместе какую-то работу. Однако как по такому определению тестировать не понятно. Можно, конечно, отталкиваться от других видов тестирования. Но это чревато.

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

 

7.3. Что такое функциональное тестирование? Перечислите основные методы.

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

 

7.4. Что такое структурное тестирование? Перечислите основные методы. Какой метод структурного тестирования обеспечивает наибольшую вероятность обнаружения ошибок?

Структурное тестирование называют также тестированием по «маршрутам», так как в этом случае тестовые наборы формируют путем анализа маршрутов, предусмотренных алгоритмом. Под маршрутами при этом понимают последовательности операторов программы, которые выполняются при конкретном варианте исходных данных.

В основе структурного тестирования лежит концепция максимально полного тестирования всех маршрутов программы.

 

7.5. Чем нисходящее тестирование отличается от восходящего? Что такое комплексное тестирование?

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

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

 

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

 

7.6. Перечислите виды тестирования системы в целом.

7.7. Какой процесс называется отладкой? В чём его сложность?

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

узнавать текущие значения переменных;

выяснять, по какому пути выполнялась программа.

 

7.8. Назовите основные типы ошибок. Как они проявляются при выполнении программы?

7.9. Перечислите методы отладки. В чём заключается различие между ними?

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

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

 

7.10. Какие средства получения дополнительной информации об ошибках Вы знаете?

 







Последнее изменение этой страницы: 2017-02-17; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.188.251 (0.017 с.)