Технология структурного программирования.
Технология программирования – это система методов, способов и приемов обработки и выдачи информации.
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.
Цели структурного программирования:
- Повысить надежность программ
- Повысить эффективность программ
- Уменьшить время и стоимость программной разработки
- Улучшить читабельность программ
Основные принципы структурной методологии:
- Принцип абстракции – этот принцип позволяет разработчику рассматривать программу в нужный момент без лишней детализации.
- Принцип формальности. Он предполагает строгий методический подход к программированию, придает творческому процессу определенную строгость и дисциплину.
- Принцип модульности. В соответствии с этим принципом программа разделяется на отдельные законченные фрагменты, модули, которые просты по управлению и допускают независимую отладку и тестирование.
- Принцип иерархического упорядочения. Взаимосвязь между частями программы должна носить иерархический, подчиненный характер.
Реализации структурного стиля программирования:
- Структура информационного пространства. Задача разбивается на подзадачи, и таким образом выстраивается дерево вложенности подзадач. Информационное пространство структурируется в точном соответствии с деревом вложенности
- Структуры управления. Стиль структурного программирования предполагает использование строго ограниченного набора управляющих конструкций: последовательность операторов, условные и выбирающие операторы, все вычислительные ветви которых сходятся в одной точке программы, а также процедуры, вычисления которых всегда заканчиваются возвратом управления в точку вызова.
- К структурным операторам добавляются либо циклы, либо рекурсии. Концептуальное противоречие между циклами и рекурсиями намного мягче, чем между операторами структурного программирования и структурными переходами, и оно отмечается лишь в виде изредка встречающихся прагматических указаний не смешивать их произвольно.
- Потоки передачи данных. Разбивая задачу на подзадачи, программист предусматривает их взаимодействие по данным: одни подзадачи передают другим данные для переработки.
- Структуры данных. Данные объединяются в логически связанные фрагменты, соответствующие структурам задачи либо вспомогательных конструкций, вводимых для ее решения.
Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных.
Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.
Основные принципы структурного программирования:
- Программа работает и решает поставленную задачу
- Минимальное время, затрачиваемое на тестирование и отладку программы
- Уменьшение затрат на сопровождение
- Гибкость программы
- Уменьшение затрат на разработку
- Простота и эффективность
Сборочное программирование – технология программирования, при которой программа собирается посредством повторного использования уже известных фрагментов программ.
Открытая система — это система, реализующая открытые спецификации на интерфейсы, службы и форматы данных, достаточные для того, чтобы обеспечить:
- возможность переноса (мобильность) прикладных систем, разработанных должным образом, с минимальными изменениями на широкий диапазон систем;
- совместную работу (интероперабельность) с другими прикладными системами на локальных и удаленных платформах;
- взаимодействие с пользователями в стиле, облегчающем последним переход от системы к системе (мобильность пользователей).
От применения технологии открытых систем выигрывают все категории специалистов, участвующих в процессе информатизации: пользователи, разработчики, производители и стандартизаторы.
Для обеспечения пользователей и проектировщиков прикладных систем современным инструментарием, позволяющим значительно сократить сроки проектирования и создания открытых систем, повысить качество проектов служит следующий набор средств:
- рекомендации по выбору инструментальных средств проектирования приложений, переносимых между различными аппаратными платформами и операционными средами;
- экспериментальные образцы программных средств для поддержки всего жизненного цикла открытых систем, в том числе — информационной базы, экспертной системы принятия проектных решений, интеллектуального инструментария для проектирования программного обеспечения;
- методы и средства моделирования (имитации) процессов взаимодействия в открытых системах;
- объектно-ориентированные средства проектирования и программирования открытых систем;
- методы и средства конструирования предметно-ориентированных языков, трансляторов с этих языков, синтаксически управляемых редакторов и интерпретирующих сред в открытых системах;
- исследования и разработка распределенных операционных систем и параллельных языков программирования, функционирующих в среде открытых систем.
- Важным инструментом для выявления взаимосвязи различных функциональных компонент, используемых прикладной системой в открытой среде, является модель такой среды.
Модель развивается и используется уже около двадцати лет. Она описывает систему взаимодействий в процессах обмена сообщениями и данными между прикладными системами в вычислительных сетях. Модель является наиболее проработанной с функциональной точки зрения, полноты набора стандартов и определения их совместимости друг с другом. Модель основана на разбиении среды на семь уровней, взаимодействие между которыми описывается соответствующими стандартами
Эта модель представляет собой попытку объединить различные подходы к классификации компонент среды. Она строится в виде матрицы 7х4, столбцы которой соответствуют видам взаимодействия (обслуживания) в системе: взаимодействие с пользователем, системные средства, доступ к данным, коммуникационные средства.
В рамках этой модели под прикладным обеспечением понимаются собственно прикладные программы, данные, а также документация и средства обучения пользователей.
Прикладная платформа состоит из аппаратной платформы и программного обеспечения. Сюда входят: операционная система, компиляторы, СУБД, графические системы, т. е. все средства, составляющие операционную среду для прикладных систем.
К внешней среде относятся все системные элементы, которые являются внешними по отношению к прикладной платформе и прикладному обеспечению. Это утилиты и подсистемы, реализуемые на других (удаленных) платформах, а также периферийные устройства.
Взаимодействие между прикладным обеспечением и прикладной платформой осуществляется с помощью Прикладных Программных Интерфейсов (API). В области API предусматривается четыре интерфейсных элемента для взаимодействия с: системными службами; коммуникационными службами; информационными службами; службами, обеспечивающими человеко-машинный интерфейс.
Тема 1. Технология программирования (основные понятия и подходы)
Данная дисциплина является одной из важнейших составляющих частей учебного процесса, играющей важную роль в подготовке высококвалифицированных специалистов по информационным системам. Она является инженерной дисциплиной, входящей в обязательный набор знаний и умений всякого инженера, причастного к созданию и эксплуатации программного обеспечения компьютеров и относится к блоку специальных дисциплин. Технология программирования имеет четко выделенный объект изучения – процессы разработки и сопровождения программного обеспечения. Цель дисциплины — формирование у студентов представления о программировании как о процессе формализации требований заказчика (пользователя) в виде внешнего проекта, создания необходимых структур данных, кодирования программ, их тестирования и отладке, а также формализованного документирования результатов проектирования. Основными задачами данной дисциплины являются: изучение основных принципов постановки и решения задач на ЭВМ; формирование у студентов способности формализации конкретной экономической ситуации, умения выбрать адекватные методы решения; использование усвоенных технологий при компьютерном моделировании экономических ситуаций, разработке различных сценарных подходов при выборе экономически обоснованных решений; получение знаний о способах записи и программировании рекурсивных алгоритмов; изучение основных видов и способов реализации списков; знакомство с возможность реализации программ на языке высокого уровня; получение представления об основных структурах программирования: итерации, ветвлении, повторения; практическое изучение базовых технологий разработки программных средств; приобретение навыков критического анализа и сравнения различных технологий, моделей, методов и парадигм программирования; приобретение навыков коллективного обсуждения сложных методологических вопросов. В результате изучения дисциплины специалист должен: иметь целостное представление об информационных системах и технологиях, способах и средствах обмена информацией; знать: теоретические основы и современные информационные технологии анализа, проектирования и разработки программного обеспечения; о проблемах и направлениях развития технологии программирования; об основных методах и средствах автоматизации проектирования и основных характеристиках современных CASE-средств и других программных средств коллективной разработки программного обеспечения; знать о стандартах, поддерживающих создание мобильных прикладных программ в информационных системах. уметь: использовать современные принципы моделирования процессов и структур данных для построения моделей в предметной области; проектировать и разрабатывать различные виды программного обеспечения на основе стандартных подходов (процедурного, объектно-ориентированного, компонентного); приобрести навыки: применения технологических подходов для анализа, проектирования, разработки и применения программных и программно-аппаратных систем; владеть, иметь опыт: выбора, проектирования, реализации, оценки качества и анализа эффективности программного обеспечения для решения задач в различных предметных областях;