
- •1. Основные этапы решения задач на эвм. Критерии качества программы.
- •2. Жизненный цикл программного обеспечения
- •3. Постановка задачи и спецификация программы
- •4. Способы конструирования программ, модульные программы, основы доказательства правильности
- •5. Процесс производства программных продуктов. Основные подходы: процедурное, логическое, функциональное и объектно-ориентированное программирование
- •6. Методы, технология и инструментальные средства
- •7. Тестирование и отладка
- •8. Документирование и стандартизация
- •9. Автоматизация проектирования и технология использования сапр программного обеспечения
5. Процесс производства программных продуктов. Основные подходы: процедурное, логическое, функциональное и объектно-ориентированное программирование
Процесс разработки программного обеспечения (англ. software development process, software process) — структура, согласно которой построена разработка программного обеспечения (ПО).
Существует несколько моделей такого процесса, каждая из которых описывает свой подход, в виде задач и/или деятельности, которые имеют место в ходе процесса.
[править]Шаги процесса
Процесс разработки состоит из множества подпроцессов, или дисциплин, некоторые из которых показаны ниже. В модели водопада они идут одна за другой, в других процессах их порядок или состав изменяется.
Парадигма программирования
Бизнес-моделирование
Анализ требований
Планирование
Разработка архитектуры
Кодирование
Тестирование и отладка
Документирование
Внедрение
Сопровождение
[править]
Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием Машина Тьюринга.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней.
Процедурный язык программирования предоставляет возможность программисту определять каждый шаг в процессе решения задачи. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.
Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Самым известным языком логического программирования является Prolog.
Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процессвычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Объе́ктно-ориенти́рованное, или объектное, программи́рование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.
6. Методы, технология и инструментальные средства
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. Какие интеллектуальные элементы используются для создания пользовательских интерфейсов?