
- •Экзаменационные вопросы Дисциплина: «Технология разработки программных продуктов»
- •Определение технологии конструирования программного обеспечения. Технология программирования. Программная инженерия.
- •Требования к программному средству.
- •Существенные черты программных средств как сложных систем.
- •Характеристики качества программного изделия.
- •Структура жизненного цикла. Большой жизненный цикл.
- •Структура жизненного цикла. Малый жизненный цикл.
- •Классический жизненный цикл пи. Водопадная модель. Классический жизненный цикл
- •Макетирование.
- •Стратегии конструирования по: инкрементная модель.
- •Стратегии конструирования по: быстрая разработка приложений.
- •Стратегии конструирования по: спиральная модель.
- •Руководство проектом. Планирование расписания работ.
- •Руководство проектом. Ввод, распределение ресурсов, анализ полученного расписания. Ввод и распределение ресурсов для выполнения проекта
- •Анализ полученного расписания
- •Руководство проектом. Контроль за исполнением проекта.
- •Особенности ценообразования программных продуктов.
- •Конструктивная модель стоимости: затратный подход.
- •Конструктивная модель стоимости: рыночный подход.
- •Конструктивная модель стоимости: доходный подход.
- •Проектирование программного изделия. Основные этапы.
- •Системный анализ. Требования при разработке технического задания. Техническое задание
- •Общие положения
- •Содержание разделов технического задания
- •Стадии разработки программ: эскизный проект.
- •Стадии разработки программ: технический проект.
- •Стадии разработки программ: рабочий проект.
- •Виды схем и их особенности.
- •Модульно – иерархическое построение программы. Основные принципы структурной методологии.
- •Типовая структура модуля.
- •Модуль. Виды связности.
- •Модуль. Виды сцепления.
- •Сцепление по управлению
- •Общие правила проектирования программного средства: связь по управлению.
- •Общие правила проектирования программного средства: связь по информации.
- •Стиль программирования
- •Стандарты структурного программирования.
- •Внешнее проектирование модулей.
- •Проектирование и кодирование логики модулей.
- •Проектирование программных средств: разработка архитектуры.
- •Проектирование программных средств: процедурная разработка.
- •Принципы объектно-ориентированного программирования: инкапсуляция.
- •Принципы объектно-ориентированного программирования: полиморфизм.
- •Принципы объектно-ориентированного программирования: наследование.
- •Объектно-ориентированный подход в программировании: области доступности элементов класса.
- •Сущность объектного подхода к разработке программных средств: классы, объекты, методы.
- •Основные принципы создания пользовательского интерфейса.
- •Типичные ошибки разработки интерфейса.
- •Современные компоненты интерфейса пользователя. Размещение информации на экране
- •Выделение элементов интерфейса яркостью
- •Использование цвета при проектировании эргономичного интерфейса
- •Непротиворечивость и стандартизация
- •Тексты и диалоги
- •Средства управления графического интерфейса пользователя.
- •Изображения (Иконки)
- •Ментальная модель пользовательского интерфейса.
- •Модель пользователя.
- •Модель программиста.
- •Основные принципы создания меню. Меню
- •Основные принципы создания меню
- •Предотвращение, обнаружение и исправление ошибок.
- •Обработка ошибок в формах ввода
- •Средства организации и работы с графикой.
- •Файлы проекта Delphi.
- •Структура модуля программы Delphi.
- •Окна программы Delphi.
- •Библиотека визуальных компонентов vcl и ее базовые классы.
- •Управление свойствами визуальных компонент в процессе выполнения.
- •Организация ветвлений при разработке программ.
- •Средства организации и обработки событий.
- •Средства организации и работы с файлами.
- •Подпрограммы работы с файлами
- •Компоненты tOpenDialog и tSaveDialog
- •Средства организации и работы с модулями.
Сцепление по управлению
Сцепление по внешним ссылкам (СЦ=5)
Модули А и В ссылаются на один и тот же глобальный элемент данных.
Сцепление по общей области (СЦ=7)
Это такое сцепление модулей, когда несколько модулей используют одну и ту же глобальную структуру данных
Сцепление по содержанию (СЦ=9).
Один модуль прямо ссылается на содержание другого модуля (не через его точку входа). Например, коды их команд перемежаются друг с другом.
Общие правила проектирования программного средства: связь по управлению.
Передача управления вызываемому модулю всегда осуществляется через его начало, т.е. через первый оператор или команду, а выход из вызываемого модуля всегда происходит через его естественное окончание, т.е. последний оператор или команду.
По окончании исполнения вызываемого модуля управление передается в вызывающий модуль на оператор, следующий непосредственно за оператором вызова.
Модули низших уровней или одного уровня иерархии могут вызываться для исполнения только модулями высших уровней, а модули одного уровня – вызывать друг друга.
Для исполнения модуля с некоторой внутренней точки вызов осуществляется стандартным образом (через первый оператор), а точка начала задается в виде параметра. При этом в начале вызываемого модуля должен стоять переключатель, который обеспечивает передачу управления к внутренним точкам входов по параметру, указанному при обращении.
В любом модуле должна быть предусмотрена возможность подключения контрольных и отладочных средств: операторы, реализующие эти средства, обычно сосредотачиваются в конце модуля.
Общие правила проектирования программного средства: связь по информации.
Информация зон глобальных переменных доступна для исполнения любым модулям, входящим в комплекс программ в соответствии с областью действия зоны глобальных переменных, т.е. глобальные переменные могут быть доступны не для всего комплекса программ, а лишь для указанной в описании группы модулей.
Локальные переменные доступны лишь в пределах того модуля, в котором они определены или объявлены.
Для взаимодействия вызываемых и вызывающих модулей создаются зоны обменных переменных, информация из которых доступна лишь модулям, непосредственно связанным по управлению.
Запрещается использовать для обмена информацией между модулями регистры и ячейки памяти, используемые как регистры.
Информация, находящаяся в регистрах вызывающего модуля при вызове, должна быть сохранена на период выполнения вызываемого модуля и восстановлена при возврате управления в вызывающий модуль.
Стиль программирования
Стиль программирования представляет собой набор приемов и методов программирования, позволяющего создавать эффективные и доступные для понимания программы.
Основные требования к стилю программирования
Стиль должен обеспечивать удобство в эксплуатации и сопровождении программ.
Программы должны легко читаться как разработчиком, так и другими программистами. Это необходимо для проведения корректировки, модификации и исполнения программ.
Факторы хорошего стиля программирования.
Требования простоты, ясности, удобочитаемости программ.
Советы:
использовать осмысленные имена переменных, функций и процедур;
избегать схожих имен;
не использовать в качестве идентификаторов ключевые слова языков программирования;
избегать использование промежуточных переменных там, где без этого можно обойтись;
записывать в одной строке не более одного оператора;
исполнять алгоритм в соответствии с уровнями вложенности операторов;
избегать безусловных переходов;
не изменять значения параметров цикла в теле цикла;
использовать комментарии;
использовать отступы и пустые строки для улучшения читаемости программ.
Использование особенностей языка программирования.
Советы:
изучать и использовать возможности языков программирования (например, перегруженность операторов);
избегать неясности и противоречий языка программирования;
изучать и использовать библиотечные и встроенные функции;
не игнорировать предупреждающих сообщений компилятора.
Улучшение эффективности программы.
Советы:
не улучшать программу, пока она не будет окончательно проверена;
не жертвовать легкостью программы ради ее эффективности;
добиваться эффективности путем выбора алгоритма и структур данных (макроэффективность).
Проектирование комплекса программ должно подчиняться определенным правилам.
Принцип абстракции
Абстракция позволяет разработчику вообразить требуемое решение задачи без учета множества деталей. Используя принцип абстракции, разработчик может рассматривать программу по уровням. Верхний уровень показывает большую абстракцию, упрощает взгляд на проект, в то время как нижний уровень показывает мелкие детали реализации.
На принципе абстракции основываются многие структурные методы, например, восходящая и нисходящая стратегии программирования.
Принцип формальности
Формальность предполагает строгий методический подход.
Принцип формальности является базой для превращения программирования из импровизации в инженерную дисциплину. Этот принцип позволяет изучать программы (алгоритмы) как математические объекты.
Принцип «разделяй и властвуй» известен со времен Юлия Цезаря и является методом решения трудных проблем путем разделения проблемы на множество мелких независимых, которые легче понимать и решать. Этот принцип означает разделение программы на отдельные фрагменты (модули), которые просты по управлению и допускают независимую отладку и тестирование.
Принцип иерархического упорядочения позволяет решать сложные проблемы управления в системах, включающих множество частей. Этот принцип выдвигает требования иерархического структурирования взаимосвязей между модулями программного комплекса, что облегчает достижение целей структурного программирования.