- •Вопросы по программированию
- •Понятие алгоритма и его свойства
- •2. Понятие «язык программирования».
- •2.1. Классификация и обзор языков программирования.
- •2.3 Система программирования
- •3. Что включает в себя постановка задачи?
- •Что такое спецификация программы??
- •Что такое защитное программирование? Перечислите пути реализации защитного программирования.
- •5. Примеры спецификаций (например, для метода сортировки массива в возрастающем порядке
- •Понятие Инварианта. Инвариант цикла.
- •В чем заключаются принципы защитного программирования?
- •Методологии программирования.
- •5. Функциональное программирование.
- •Модульное программирование: основные понятия.
- •Структурное программирование: основные понятия.
- •. Тестирование программ. Восходящее и нисходящее тестирование.
- •Структура программы на языке с. Арифметические операции. Основные алгоритмические структуры.
- •Типы данных, диапазоны значений
- •Представление числовой информации в компьютере.
- •Рекуррентные соотношения (например, вычисление чисел Фиббоначи и др.)
2.3 Система программирования
Система программирования — это система для разработки новых программ на конкретном языке программирования.
Составные систем программирования:
• компилятор или интерпретатор;
• интегрированная среда разработки;
• средства создания и редактирования текстов программ;
• обширные библиотеки стандартных программ и функций;
• отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;
• "дружественная" к пользователю диалоговая среда;
• многооконный режим работы;
• мощные графические библиотеки; утилиты для работы с библиотеками
• встроенный ассемблер;
• встроенная справочная служба;
• другие специфические особенности.
Turbo Basic, Quick Basic, Turbo Pascal, Turbo C, системы программирования, ориентированные на создание Windows-приложений:
• пакет Borland Delphi (Дельфи) — предоставляющий качественные и очень удобные средства визуальной разработки.
• пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.
• пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.
Транслятор — это программа-переводчик, преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор — читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор — переводит и выполняет программу строка за строкой.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался.
3. Что включает в себя постановка задачи?
Постановка задачи — точная формулировка условий задачи с описанием входной и выходной информации.
Входная информация по задаче — данные, поступающие на вход задачи и используемые для её решения.
Выходная информация может быть представлена в виде документов, кадров на экране монитора, информации в базе данных, выходного сигнала устройству управления.
Постановка задачи разрабатывается организацией, разработчиком программной продукции, на основании технического задания совместно с заказчиком. Главный исполнитель — это разработчик.
// (не точное, нужна доработка)
Что такое спецификация программы??
Спецификация, определение требований к программе — один из важнейших этапов, на котором подробно описывается исходная информация, формулируются требования к результату, поведение программы в особых случаях (например, при вводе неверных данных), разрабатываются диалоговые окна, обеспечивающие взаимодействие пользователя и программы.
Спецификация программы - это средство для точного описания того, что должно быть совершено в результате выполнения программы.
Спецификация программы - точная и полная формулировка задачи, содержащая информацию, необходимую для построения алгоритма (программы) решения этой задачи.
+ Существует несколько видов спецификаций:
- функциональная
- внешняя
- архитектурная
- техническая
Функциональная спецификация: формальное описание, которое объясняет, что и как будет делать программа. Она достаточно детально показывает строение всех модулей и их взаимодействие с учетом проектных ограничений. Спецификация невозможна без четкого описания структур данных программы.
В крупных комплексных проектах спецификации имеют несколько уровней детализации. Первоисточником для разработки функциональных спецификаций является Техническое задание. В этом документе описываются требования к программному продукту.
На верхнем уровне специфицирования программного продукта разрабатывается Внешняя спецификация для заказчика. Это документ, объясняющий в бизнес–терминах, что должна делать система. Документ разрабатывается с ориентацией на пользователя и, соответственно, должен отражать все его интересы. Документ не должен быть перегружен техническими подробностями. Пользователю интересно, какие меню, экраны и отчеты будут представлены в программе, и как программа будет осуществлять переходы из одной точки в другую. В зависимости от уровня подготовленности заказчика спецификация может иметь различную степень детализации.
На втором уровне может быть разработан концептуальный документ, описывающий Архитектуру системы. Эта спецификация показывает функционирование всей системы в целом, не детализируя устройство отдельных модулей. Она представляет структуру объектов и их зависимости. Спецификация дает профессионалу быстрое понимание организации системы и функционирования компонент, как части общей системы. Инструментами для описания архитектуры являются такие средства: UML, DFD, ERD и т.п.
На заключительном этапе разрабатывается Техническая спецификация. Этот документ является завершающим в цепочке спецификаций и позволяет полностью сосредоточиться на стадии кодирования системы. Спецификация описывает низкоуровневую организацию продукта. Здесь для каждого модуля разработчик должен определить все требования, включая передаваемые параметры, глобальные структуры и переменные, вызываемые подпрограммы и т.д. Эта информация важна для кодировщиков, которые параллельно реализуют различные модули, взаимодействующие друг с другом. Хорошо выполненная техническая спецификация снимает все проблемы, возникающие при объединении отдельных модулей в единое целое. Вторая часть низкоуровневого проектирования - создание псевдокода - является трудной, но очень важной частью процесса. Для маленьких процедур и модулей код с размером в несколько строк написать проще, при этом не надо тратить время на представление одних и тех же действий дважды. Однако для крупных проектов с большой командой усилия, затраченные на эту работу, с лихвой окупятся на этапе сопровождения продукта, делая его более понятным, а, следовательно, модифицируемым с меньшими затратами.
Спецификация может содержать следующие разделы:
* Назначение и область применения
* Термины и сокращения
* Описание структурной модели программы (описываются модули и взаимодействие между ними, используются соответствующие инструменты, могут использоваться диаграммы классов, событийные диаграммы)
* Описание информационной модели (специфицируются структуры данных и приводятся диаграммы данных)
* Описание алгоритмической модели (описываются 2-3 наиболее интересные с точки зрения алгоритмов функции программы, для описания используются псевдокод)
Структурная модель, событийная и информационная модели описывают архитектуру программы верхнего и среднего уровня. Алгоритмическая модель должна описывать работу системы на низком уровне.
В России форму и порядок составления программного документа "Спецификация" определяется по ГОСТ 19.101-77.
Структура и оформление документа устанавливаются в соответствии с ГОСТ 19.105-78. Информационную часть (аннотацию и содержание) допускается в документ не вносить.
Кроме того для составления спецификаций используются CASE-системы/язык UML
