Тема 7. Программное обеспечение и технологии программирования Лекция 14. Технологии программирования и принципы разработки программного приложения
План лекции:
Технологии программирования. Общие принципы разработки программного обеспечения, частотный принцип, принцип модульности, принцип функциональной избирательности, принцип генерируемости, принцип функциональной избыточности, принцип "по умолчанию". Общесистемные принципы, принцип включения, принцип системного единства, принцип развития, принцип комплексности, принцип информационного единства, принцип совместимости, принцип инвариантности. Жизненный цикл программного обеспечения, стадии определения требований, проектирования, программирования, отладки и сопровождения. Стандарты программирования. Классификация методов проектирования, традиционные и CASE-технологии. Структура программного продукта.
Краткий конспект лекции
Технологии программирования — это апробированные стратегии (процессы) создания программ, которые излагаются в виде методик с описаниями проектных процедур и проектных операций.
В реальных проектных ситуациях необходима разработка рациональной стратегии каждого конкретного проекта, которая осуществляется на основе одной, двух и даже трех технологий.
Разработаны следующие технологии:
структурного программирования,
проектирования программ с рациональной структурой данных,
объектно-ориентированного программирования,
визуального программирования.
В каждой из этих технологий используется одна или несколько парадигм (методологий) программирования (концепций, систем взглядов). Последние представляют собой разные подходы к написанию программ.
Существуют четыре основные парадигмы, которые описывают большинство сегодняшних методов программирования: императивная, аппликативная, основанная на системе правил и объектно-ориентированная.
Императивная парадигма – последовательное выполнение процедур и операторов программы. Эта модель вытекает из особенностей аппаратной части стандартного компьютера, выполняющей инструкции (команды) последовательно. На основе ее разработано множество операторно-ориентированных (структурных) языков программирования (FORTRAN, ALGOL, PL, Basic, С, Pascal, Ada, Smalltalk, COBOL).
Аппликативная парадигма - рассмотрение функции, которую выполняет программа, и какую функцию необходимо применить к начальному состоянию машины
Парадигма, основанная на системе правил. Языки, основанные на этой парадигме, осуществляют проверку наличия необходимого разрешающего условия и в случае его обнаружения выполняют соответствующее действие.
Объектно-ориентированная парадигма. В этой модели строятся сложные объекты данных. Для операций над ними определяется некоторый ограниченный набор методов. Создаваемые объекты могут наследовать свойства более простых объектов.
Существуют и другие парадигмы (визуальное программирование, параллельное программирование), что объясняется необходимостью решать разные задачи.
Общие принципы разработки программного обеспечения
Программы различаются по назначению, выполняемым функциям, формам реализации. Однако существуют некоторые общие принципы, которые следует использовать при разработке программ.
Частотный принцип основан на выделении в алгоритмах и данных особых групп по частоте использования. Для действий, наиболее часто встречающихся при работе программ, создаются условия их быстрого выполнения.
Принцип модульности. Под модулем в данном контексте понимают функциональный элемент рассматриваемой системы, имеющий законченное оформление, и выполненное в пределах требований системы, и имеющий средства сопряжения с подобными элементами или элементами более высокого уровня данной или другой системы.
Принцип функциональной избирательности. Этот принцип является логическим продолжением частотного и модульного принципов и используется при проектировании программ. В программах выделяется некоторая часть важных модулей, которые постоянно должны быть в состоянии готовности для эффективной организации вычислительного процесса.
Принцип генерируемости - определяет такой способ исходного представления программы, который бы позволял осуществлять настройку на конкретную конфигурацию технических средств, круг решаемых проблем, условия работы пользователя.
Принцип функциональной избыточности - учитывает возможность проведения одной и той же работы различными средствами.
Принцип «по умолчанию» применяется для облегчения организации связей с системой как на стадии генерации, так и при работе с уже готовыми программами. Принцип основан на хранении в системе некоторых базовых описаний структур, модулей, конфигураций оборудования и данных, определяющих условия работы с программой.
Общесистемные принципы программирования
принцип включения, предусматривающий, что требования к созданию, функционированию и развитию ПО определяются со стороны более сложной, включающей его в себя системы;
принцип системного единства, состоящий в том, что на всех стадиях создания, функционирования и развития ПО его целостность будет обеспечиваться связями между подсистемами, а также функционированием подсистемы управления;
принцип развития, предусматривающий в ПО возможность его наращивания и совершенствования компонентов и связей между ними;
принцип комплексности, заключающийся в том, что ПО обеспечивает связанность обработки информации как отдельных элементов, так и всего объема данных в целом на всех стадиях обработки;
принцип информационного единства, т. е. во всех подсистемах, средствах обеспечения и компонентах ПО используются единые термины, символы, условные обозначения и способы представления;
принцип совместимости, состоящий в том, что язык, символы, коды и средства программного обеспечения согласованы, обеспечивают совместное функционирование всех подсистем и сохраняют открытой структуру системы в целом;
принцип инвариантности, предопределяющий, что подсистемы и компоненты ПО инвариантны к обрабатываемой информации, т. е. являются универсальными или типовыми.
Жизненный цикл программного обеспечения
Жизненный цикл — совокупность взаимосвязанных процессов создания и последовательного изменения состояния ПО от формирования к ней исходных требований до окончательной ее эксплуатации или потребления.
Каждая программа начинается с какой-либо неудовлетворенной потребности и, осознав ее, необходимо провести системный анализ для выявления целей будущего программного изделия и требований к нему. Следующим этапом будет внешнее специфицирование, предназначенное для создания «идеологии» программы — общей направленности в последующем проектировании, вплоть до внешнего вида программы и инструкции пользования программой.
На этапе проектирования программное изделие специфицируется в полном объеме от постановки задачи до рабочего проекта с описанием внутренней структуры программы и плана разработки частей программы. Затем происходит кодировка и тестирование, в результате чего выходит (изготавливается) готовая версия программы. Программа выпускается в тираж и сопровождается производителем. Сопровождение заключается как в устранении обнаруживаемых в процессе эксплуатации ошибок и выпуске исправленных версий, так и в усовершенствовании базовой версии программы, что зачастую приводит к перепроектированию программы и выпуску радикально обновленных версий. |
Окончание жизненного цикла обусловливается прекращением эксплуатации разработки. Однако идеи, выдвинутые в процессе эксплуатации программы, обычно используются при разработке последующего, более совершенного и современного изделия.
Стандарты и программирование
Стандарты давно используются в технике и программировании. Создание сложной системы немыслимо без стандартов. Они нужны для борьбы с хаосом и неразберихой, но вместе с этим стандарт не должен быть слишком «узким» и мешать техническому прогрессу.
Государственные стандарты отслеживают тенденции развития программирования и дают обязательные рекомендации по их соблюдению. Помимо государственных стандартов (ГОСТ) действуют отраслевые стандарты (ОСТ), стандарты предприятий (СТП).
Группа стандартов ГОСТ «Единая система программной документации» (ЕСПД) претерпела мало изменений с момента ее создания, пережила несколько поколений ЭВМ и революционных изменений технологий разработки программ. При этом она до настоящего времени никогда не затрудняла новаций.
В области программирования общепризнанной ведущей организацией по разработке стандартов является институт ANSI (Американский национальный институт стандартов). Данный институт является лидером по установке стандартов языков программирования, кодовых таблиц клавиш и символов, выводимых на экран, и еще многих других. Необходимо также отметить стандарты ISO.
CASE-технология создания программного обеспечения.
Инструментарий технологии разработки представляет собой программные продукты поддержки (обеспечения) технологии разработки ПО.
Средства для создания приложений:
локальные средства, обеспечивающие выполнение отдельных работ по созданию программ: языки и системы программирования (компилятор, отладчик, документатор исходного кода, система поддержки и управления проектом, т.д.); инструментальная среда пользователя (предоставляет библиотеки функций, процедур, макрокоманды, конструкторы экранных форм и отчетов, конструкторы меню, генераторы приложений и др.);
интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ (являются дальнейшим развитием локальных средств разработки).
Средства CASE-технологии, автоматизирующие весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных/информационных систем (сформировались в конце 80-х гг.)
Технологии CASE (Computer Aided Software/System Engineering) - разработка программного обеспечения/систем с использованием компьютера.
CASE-технология представляет собой совокупность методов разработки ПО и набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки и сопровождения ПО и разрабатывать приложения в соответствии с информационными потребностями пользователей. CASE-технология позволяет не только создавать "правильные" продукты, но и обеспечить "правильный" процесс их создания.
Вопросы по данной теме:
Перечислите технологии программирования.
Перечислите Общесистемные принципы программирования.
Перечислите Общие принципы разработки программного обеспечения.
Опишите этапы жизненного цикла программного обеспечения.
Что представляют CASE-технологии создания программного обеспечения?
Литература по теме:
Информатика. Общий курс / Под ред. В.И. Колесникова. - 2-е изд. - М.: Дашков и К; Наука-Пресс, 2008. - 400 с.
Игошин В.И. Математическая логика и теория алгоритмов: Уч. пос. - М.: Академия, 2004. - 448с.
Микрюков В.Ю. Алгоритмизация и программирование: Учебн. пос.- Ростов н/Д: Феникс, 2007.
- Тема 1. Понятие информации, общая характеристика процессов сбора, передачи, обработки и накопления информации Лекция 1. Понятие данные и информация
- Свойства информации
- Качества информации
- Лекция 2. Представление информации в компьютере.
- Кодирование графических данных
- Кодирование звуковых данных
- Формула Шеннона
- Лекция 3. Информационно-логические основы построения пк
- Законы логических операций
- Логические элементы эвм
- Cумматор (p0 – перенос разряда из предыдущей операции суммирования)
- Тема 3. Технические средства реализации информационных процессов Лекция 4. Классификация эвм. Тенденции развития вычислительной техники. Архитектура эвм.
- Типы компьютеров:
- Типы компьютерных систем
- Многопроцессорные системы
- Архитектура пк
- Лекция 5. Состав и назначение основных узлов персонального компьютера. Их характеристики
- Микропроцессор
- Лекция 6. Устройства передачи данных в пк. Виды памяти пк. Устройства ввода/вывода информации в пк
- Виды памяти пк. Назначение и основные характеристики
- Внутренняя память пк
- Внешняя память пк
- Устройства ввода информации в компьютер
- Устройства вывода информации из компьютера
- Файловые системы
- Лекция 8. Текстовые редакторы и процессоры, интерфейс, типовые операции. Графические редакторы и демонстрационные программы
- Лекция 9. Электронные таблицы. Специализированные программные средства и системы программирования.
- Тема 4. Основы защиты информации и сведений, методы защиты информации Лекция 10. Защита информации. Компьютерные вирусы. Антивирусные программы. Архивация, методы сжатия. Методы шифрования.
- Основные источники вирусов:
- Основные ранние признаки заражения компьютера вирусом:
- Антивирусные программы
- Различают типы антивирусных программ:
- Алгоритмы сжатия информации без потерь (обратимые методы)
- Алгоритмы сжатия информации с потерями (необратимые методы)
- Тема 5. Базы данных Лекция 11. Методы шифрования базы данных и субд. Реляционные базы данных.
- Тема 6. Алгоритмизация и программирование Лекция 12. Алгоритмы. Свойства алгоритмов. Языки программирования.
- Лекция 13. Объектно-ориентированный подход к программированию.
- Тема 7. Программное обеспечение и технологии программирования Лекция 14. Технологии программирования и принципы разработки программного приложения
- Тема 8. Языки программирования высокого уровня Лекция 15. Эволюция и классификация языков программирования
- Языки программирования низкого уровня
- Машинный язык
- Assembler (Ассемблер)
- Языки программирования высокого уровня
- Basic (Бейсик)
- Fortran (Фортран)
- Cobol (Кобол)
- Pascal (Паскаль)
- Объектно-ориентированное и визуальное программирование
- Лекция 16. Программирование на языке visual basic
- Операции Visual Basic
- Вызов функций и процедур
- Область видимости переменной
- Время жизни переменной
- Лекция 17. Среда разработки приложений visual basic.
- Интегрированная среда разработки приложений Visual Basic
- Компоненты рабочей среды
- Панель элементов управления
- Лекция 18. Разработка программного приложения.
- Лекция 19. Компиляция и выполнение проекта План лекции:
- Тема 9. Модели решения функциональных и вычислительных задач Лекция 20. Моделирование объектов и систем
- Тема 10. Локальные и глобальные сети эвм Лекция 21. Локальные сети эвм
- Типы локальных сетей
- Архитектура (Топология) лвс
- Сетевой кабель
- Сравнение кабелей
- Назначение платы сетевого адаптера
- Администрирование сети
- Лекция 22. Глобальные сети эвм
- Расширение локальных сетей
- Передача данных по сети
- Беспроводные сети
- Семейство протоколов tcp/ip