Лекции по высокоуровневым методам информатики и программированию
Лекции по высокоуровневым методам информатики и программированию
|0. Введение |0.1 |
|0.1. Содержание дисциплины | |
|Высокоуровневые методы информатики и | |
|программирования |Объем - 52 часа |
| |2 семестр: |
|Предметом изучения являются:[pic] |лекции - 34 |
| |лаб. работы - 18 |
|Новейшие направления в области создания |----------------------------- |
|технологий программирования, |всего - 52 |
|Законы эволюции программного обеспечения, |экзамен |
|Создание модульных программ, |курсовая работа |
|Элементы теории модульного программирования, |экзамен |
|Объектно-ориентированное программирование, | |
|Объектный тип данных, | |
|Переменные объектного типа, | |
|Конструкторы и деструкторы, | |
|Инкапсуляция, наследование, полиформизм, | |
|Классы и объекты, | |
|Особенности программирования в оконных | |
|операционных средах, | |
|Основные стандартные модули, обеспечивающие | |
|работу в оконной операционной системе, | |
|Интегрированная среда программирования, | |
|Система окон разработки, система меню, | |
|Основы визуального программирования, | |
|Компоненты и их использование, | |
|Размещение нового компонента. Реакция на событие| |
| | |
|0.2. Список литературы | |
|Основная: | |
|Петров А. и др. Вычислительная техника и |Учебник |
|программирование. Высшая школа, 1990. | |
|Епанешников А.. М. Епанешников В. А. |Учебно-справочное издание |
|Программирование в среде TURBO PASCAL 7.0. | |
|Диалог МИФИ, 1995г. | |
|Р. Баас, М. Фервай, Х. Гюнтер. Delphi 4. Пер. с |Учебное пособие. |
|нем. под ред. А. Шевцова. Для пользователя BNV, | |
|Киев 1999. |Учебное пособие. |
|В. Гофман, А. Хоменко. Delphi 5. Наиболее полное| |
|руководство. СПБ: БХВ, 2000 | |
|Дополнительная: | |
|Информатика, Учебник /Под ред. Макаровой Н.В. |Учебник |
|Москва, Финансы и статистика, 1997. | |
|Ван Тассел Д. Стиль, разработка, эффективность, |Пособие по языку. |
|отладка и испытание программ. Мир, 1985. | |
| | |
| 0.3 Программные продукты |0.2 |
|и | |
|их основные характеристики | |
|0.3.1. Понятия программного обеспечения | |
| |Программирование может |
|Программирование – это сфера действий, |рассматриваться как наука, так и |
|направленная на создание программ. |искусство |
|Программа – это последовательность команд |Программа результат |
|компьютера, приводящая к решению задачи. |интеллектуального труда, для |
|Приложение – это программная реализация на |которого характерно творчество. |
|компьютере решения задачи. |Программы предназначены для |
|Программное обеспечение (ПО) - это программные |машинной реализации задач. |
|продукты и техническая документация к ним. |Задача – это проблема, подлежащая |
|Программный продукт (ПП) – это комплекс |решению с помощью технических |
|взаимосвязанных программ, предназначенный для |средств, а приложение (синоним |
|реализации определенной задачи массового спроса.|программа) – реализованное на |
| |компьютере решение данной задачи. |
|Программы являются критерием развития |Программы делятся на утилиты (для |
|вычислительной техники. |нужд разработчиков) и программные |
| |продукты (для удовлетворения |
|Проблемы, возникающие при создании программных |потребностей пользователя) |
|продуктов: |В настоящее время на мировом рынке |
|Быстрая смена вычислительной техники и |господствуют ЭВМ разного типа: VAX |
|алгоритмических языков. |и IBM и языки, совместимые с этими|
|Не стыковка машин друг с другом (VAX и IBM). |ЭВМ. Программы, написанные для |
|Отсутствие полного взаимопонимания между |одной машине, не всегда подходят к|
|заказчиком и исполнителем к разработанному |другой. |
|программному продукту. |Для разработчика это творчество, |
| |для заказчика это удобный |
| |инструмент. |
| |В Японии 60% трудоспособного |
| |населения занимается |
| |программированием |
|0.3.2 Характеристики качества ПО. | |
| |Критерии оценки качества программы.|
|Перечень показателей качества: |Программа должна: |
|документированность, |работать согласно техническому |
|эффективность, |заданию (и это легко проверяется); |
|простота использования, |быть эффективна по быстродействию и|
|удобство эксплуатации, |памяти (или быстрее работать или |
|мобильность, |занимать меньше памяти); |
|совместимость, |широко использоваться и быть |
|испытуемость, |доступной (любой грамотный |
|стоимость. |программист должен в программе |
| |разобраться и ее эксплуатировать, |
| |модернизировать как под новую |
| |задачу, так и под новую версию ОС);|
| | |
| |быть приспособлена к выявлению |
| |ошибок (достаточно надежна в |
| |процессе расчета получать |
| |достоверные результаты); |
| |должна быстро разработана и |
| |отлажена с минимальными |
| |трудозатратами. |
|0.4. Классификация и сравнение языков |0.3 |
|программирования | |
|ЭВМ исполняет программу в машинных кодах. |Программа для ЭВМ занимается |
|Составляют программу люди на удобном для себя |преобразованием одних данных в |
|языке. |другие. |
|Различают языки: |На английском языке. |
|низкого уровня (машинно-ориентированные), | |
|высокого уровня (на зависят от типа ЭВМ). |Зависит от типа ЭВМ. Например, |
|Языки высокого уровня бывают: |Ассемблер. |
|процедурно-ориентированные (Паскаль), |Не зависят от типа ЭВМ. |
|проблемно-ориентированные (MathCAD), |Например, Паскаль. |
|объектно-ориентированные (С++). |Например, MathCAD. |
| |Например, С++ |
|Трансляторы переводят программу с языка |И. - Построчный перевод и |
|программирования в машинные коды. |исполнение. Медленно, но удобно при|
|Виды трансляторов: |отладке. |
|Интерпретатор – построчный перевод и исполнение,|К. - Перевод всей программы с |
| |последующим исполнением. Неудобно |
|Компилятор – перевод всей программы с |при отладке, но быстрое исполнение |
|последующим исполнением. |готовой программы |
| Примеры языков | |
|высокого уровня: |Для математических расчетов. От |
|Fortran = Formula |слов - транслятор формул. |
|Translator | |
|----------------------------------------- | |
|BASIC = Beginner’s |Универсальный простой язык. |
|All-perpose |Многоцелевой мнемокод для |
|Symbolic |начинающих. |
|Instruction | |
|Code | |
|---------------------------------------- |Язык для бизнеса. По первым буквам |
|COBOL = Common |слов английской фразы - язык, |
|Business |ориентированный на обычный бизнес. |
|Oriented | |
|Language | |
|----------------------------------------- |Язык для описания алгоритмов. |
|Algol = Algorithmic | |
|Language |Универсальный современный |
|------------------------------- |структурированный язык. Назван в |
|Pascal |честь Блеза Паскаля. |
|------------------------------- |Языки для системного |
|С, |программирования. |
|С++ |Для решения задач в реальном |
|------------------------------- |времени. Назван в честь |
|Ada |программистки Ады Лавлейс. |
|------------------------------- |Язык обработки списков в системах |
|Lisp = List | |
|Programming |искусственного интеллекта. |
|------------------------------- |Язык логического программирования |
|Prolog = Programming |для систем искусственного |
|Logically |интеллекта. |
|0.5. Проектирование программных продуктов (ПП) |0.4 |
|0.5.1. Классификация методов проектирования ПП | |
| |Проектирование алгоритмов и |
| |программ – наиболее ответственный |
| |этап жизненного цикла ПП. |
|Признаки |Традиционное неавтоматизированное |
| |проектирование алгоритмов и |
| |программ используется при |
| |разработке небольших по |
| |трудоемкости и структурной |
| |сложности ПП, не требующих большого|
| |числа разработчиков. ПП имеют |
| |прикладной характер. |
| |Автоматизированное проектирование |
| |алгоритмов и программ возникло с |
| |необходимостью уменьшить затраты на|
|Неавтоматизированное проектирование алгоритмов и|проектные работы, сократить сроки |
|программ используется при разработке небольших |их выполнения, создать типовые |
|по трудоемкости и структурной сложности ПП. |"заготовки", многократно |
|Автоматизированное проектирование используется в|тиражируемых для различных |
|крупных фирмах при разработке определенного |разработок, координации работ |
|класса ПП большого коллектива разработчиков. |большого коллектива разработчиков |
| | |
|.Структурное проектирование – это |Методология –это подходы к |
|последовательная декомпозиция, целенаправленное |проектированию |
|разбиение на отдельные составляющие. |Начало развития падает на 60-е |
|Структурное проектирование включает в себя: |годы. |
|нисходящее проектирование ("сверху вниз"), |Метод нисходящего проектирования |
|модульное программирование, |предполагает последовательное |
|структурное программирование (кодирование). |разложение общей функции обработки |
| |данных на простые функциональные |
|Информационное моделирование – построение |элементы ("сверху вниз"). |
|комплекса взаимосвязанных моделей данных. |В основе Информационного |
| |моделирования лежит положение об |
|Объектно-ориентированный подход основан на: |определяющей роли данных при |
|выделении классов объектов; |проектировании алгоритмов и |
|установлении свойств объектов и методов их |программ. |
|обработки; |Структурное программирование |
|создании иерархии классов, наследовании свойств |основано на модульной структуре |
|объектов и методов их обработки. |программного продукта и базовых |
|Каждый объект объединяет данные и программу |алгоритмических структурах. |
|обработки этих данных и относится к |Кроме того, ООП позволяет резко |
|определенному классу. |сократить объем и трудоемкость |
| |подготовки программ, имеющих дело с|
|Основная цель ООП - преодолеть следующие |множеством связанных друг с другом |
|недостатки проектирования “сверху вниз”: |объектов. |
|- недостаточное внимание к структурам данных, |Объектно-ориентированный анализ – |
|- слабая связь структур данных с процессами их |это выявление объектов, определение|
|обработки. |свойств и методов обработки |
| |объектов, установление их |
| |взаимосвязей. |
| |ООП процесс объектной декомпозиции |
| |и представления с использованием |
| |моделей данных проектируемой |
| |системы на логическом и физическом |
| |уровнях. |
|0.5.2. Этапы создания ПП |0.5 |
|Составление технического задания на програм- |Создание программных продуктов |
|мирование. |трудоемкий процесс, основанный на |
|На этом этапе требуется: |определенной технологии. |
|определить тип ОС - MS DOS, Windows, Windows NT,| |
| | |
|оценить необходимость сетевого варианта работы | |
|программы, |которую можно переносить на |
|определить необходимость разработки программы, |различные платформы. |
|обосновать необходимость работы с БД под |Разрабатывают функциональную |
|управлением СУБД, |структуру алгоритма или состав |
|выбрать методы решения задачи, |объектов, определяют требования к |
|разработать обобщенный алгоритм решения |комплексу технических средств |
|комплекса задач и структуры данных, |системы. |
|определить требования к интерфейсу пользователя.| |
| |Пример: для создания MS DOS- |
|Технический проект. |приложений может быть использован |
|На этом этапе выполняется: |язык программирования Visual Basic |
|разработка детального алгоритма обработки |for DOS Standard, Fortran, Visual |
|данных, |C++ for Windows. Если необходима |
|определение состава общесистемного программного|переносимость программ на другие |
|обеспечения, включающего базовые средства (ОС, |ЭВМ, выбирается среда Windows NT. |
|модель БД, электронные таблицы), |При разработке программ, работающих|
|разработка внутренней структуры ПП, образованной|в среде Windows, возможно |
|отдельными программными модулями, |применение технологии OLE, для |
|выбор средств разработки программных модулей. |создания приложений. |
|Рабочая документация (рабочий проект). |Приложение может работать с БД |
|На этом этапе осуществляется: |различных СУБД. |
|разработка программных модулей, | |
|программирование или создание программного кода,| |
| | |
|отладка программного продукта, | |
|испытание работоспособности программных модулей | |
|и базовых программных средств, | |
|подготовка контрольного примера, для проверки | |
|соответствия ПП заданию, | |
|создание эксплуатационной документации на |- характеристика программного |
|программный продукт: |изделия с указанием сферы его |
|Описание применения; |применения; |
|Руководство пользователя; |- детальное описание функциональных|
|Руководство программиста (оператора). |возможностей и технологии работы с |
|Обучающей системы (для ПП массового применения) |программным продуктом; |
|Ввод в действие. |- указывает особенности установки |
|Готовый программный продукт сначала проходит |программного продукта. |
|опытную эксплуатацию, а затем сдается в | |
|промышленную эксплуатацию. |Тиражирование и распространение ПП |
| | |
| | |
| | |
|0.6. Структура программных продуктов ( ПП ). |0.6 |
|Архитектура ПП представляет собой совокупность и|В большей степени программные |
|взаимосвязь программных модулей. |продукты не являются монолитом и |
|Модуль – это самостоятельная часть программы, |имеют конструкцию построения – |
|имеющая определенное назначение и обеспечивающая|совокупность программных модулей. |
| |ПП обладает внутренней структурой, |
|заданные функции обработки автономно от других |что обеспечивает удобство |
|программных модулей. |разработки, программирование, |
| |отладку и внесение изменений в ПП. |
|Программный продукт обладает внутренней |Программные комплексы большой |
|структурой. |алгоритмической сложности |
|Структуризация программы выполняется для |разрабатываются коллективом |
|удобства |разработчиков ( 2-15 человек ). |
|разработки, |Управлять разработкой программ |
|программирования, |можно при научной основе. |
|отладки, | |
|внесения изменения в ПП. |Структурное разбиение программ на |
|. |отдельные составляющие служит |
|Структуризация ПП преследует следующие цели: |основой и для выбора средств их |
|Распределить работы по исполнителям, обеспечив |создания. При создании ПП |
|их |выделяются многократно используемые|
|загрузку и требуемые сроки разработки; |модули, проводится их типизация и |
|Построить календарные графики проектных работ и |унификация, за счет чего |
|осуществлять их координацию в процессе создания |сокращаются сроки и трудозатраты на|
|программных изделий; |разработку ПП в целом. |
|Контролировать трудозатраты и стоимость | |
|проектных | |
|работ. | |
| | |
| |Некоторые ПП используют модули из |
| |готовых библиотек стандартных |
| |подпрограмм, процедур, функций, |
| |объектов, методов обработки данных.|
| |На Рис. Приведена типовая структура|
| |ПП, состоящая из отдельных |
| |программных модулей и библиотек |
| |процедур, встроенных функций, |
|. . . |объектов. |
|. . . | |
| | |
|. . . | |
| |Существует в единственном числе. |
| |В работе ПП активизируются |
|Среди множества модулей различают: |необходимые программные модули. |
|Г о л о в н о й модуль – управляет запуском |Управляющие модули задают |
|ПП; |последовательность вызова на |
|У п р а в л я ю щ и й модуль – обеспечивает |выполнение очередного модуля. |
|вызов |Информационная связь модулей |
|других модулей на обработку; |обеспечивается за счет |
|Р а б о ч и е модули - выполняют функции |использования общей БД либо |
|обработки |межмодульной передачи данных через |
|С е р в и с н ы е модули и библиотеки, |переменные обмена. |
|утилиты – |Структура ППП многомодульная. |
|осуществляют обслуживающие функции. | |
| | |
|Каждый модуль оформляется как самостоятельно | |
|хранимый файл. Для функционирования ПП | |
|необходимо | |
|наличие программных модулей в полном составе. | |
|0.7.Проектирование интерфейса пользователя |0.7 |
|0.7.1. Диалоговый режим | |
|Большинство ПП работают в Диалоговом режиме. |В диалоговом режиме под |
|Состав диалоговых систем: |воздействием пользователя |
|Меню – пользователю предлагается выбор |осуществляется запуск функций |
|альтернативных функций обработки из |обработки, изменение свойств |
|фиксированного перечня; |объектов, производится настройка – |
|Меню может содержать вложенные подменю. |параметров выдачи информации на |
|Действия запрос-ответ – фиксированный перечень |печать и т.п. |
|возможных значений, выбираемых из списка или |Меню могут быть иерархическим и |
|ответы типа Да/Нет; |содержать вложенные подменю |
|Запрос по формату - с помощью ключевых слов, |следующего уровня. |
|фраз. |Выставить панели инструментов. |
| |или путем заполнения экранной формы|
|Диалоговый процесс управляется согласно |с регламентированным по составу и |
|созданному сценарию, для которого определяются:|структуре набором реквизитов |
| |осуществляется подготовка |
|Момент начала диалога; |сообщений: "Выполнили не допустимую|
|Инициатор диалога – человек или ПП; |операцию" |
|Параметры и содержание диалога – сообщения, |Описание сценария диалога выполняют|
|состав и структура меню, экранные формы; |блок-схемы, специализированные |
|Реакция ПП на завершение диалога. |объектно-ориентированные языки |
| |построения сценариев. |
|Для создания диалогового процесса и интерфейса | |
| |ООТехнологии, включают в себя |
|пользователя используют объектно-ориентированные|специальные языки программирования |
| |и инструментальные средства |
|средства разработки программ (Delphi). |разработки пользовательского |
|В их составе содержатся: |интерфейса. |
|Построители меню (для создания главного меню и | |
|вложенного подменю); | |
|Конструктор экранных форм (для разработки | |
|форматов экранного ввода и редактирования |Возможны настройки главных меню, |
|данных). |создание системы подсказок с |
| |помощью встроенных средств и языков|
|Диалоговые окна содержат элементы управления: |программирования. |
|Тексты сообщения; | |
|Поля ввода информации пользователя; | |
|Списки возможных альтернатив для выбора; | |
|Кнопки, переключатели и т.п. | |
|0.7.2. Графический интерфейс пользователя | |
| |Реализуется для ПП, |
|Обязательный компонент большинства современных |работающих в среде Windows. |
|ПП. |К нему предъявляются высокие |
|Требования к графическому интерфейсу: |требования с инженерной и |
|1. Содержать привычные и понятные пользователю |художественной стороны разработки. |
|пункты меню, соответствующие функциям обработки;|Строится в виде системы ниспадающих|
| |меню с использованием в качестве |
|2. Ориентироваться на пользователя, который |средства манипуляции мыши и |
|общается с программой на внешнем уровне |клавиатуры. |
|взаимодействия; |С помощью интерфейса пользователь |
|3. Удовлетворять правилу "шести" – в одну |работает с экранными формами, |
|линейку меню включать не более 6 понятий, каждое|содержащими объекты управления, |
|из которых содержит не более 6 опций; |панели инструментов с пиктограммами|
|4. Сохранять стандартизированное назначение и |режимов и команд обработки. |
|местоположение на экране графических объектов. | |
|0.8. Структурное проектирование и |0.8 |
|программирование | |
|Структурное проектирование включает в себя: | |
| | |
|нисходящее проектирование ("сверху вниз"), | |
|модульное программирование, | |
|структурное программирование. | |
|0.8.1.Нисходящее проектирование | |
| | |
|Метод предполагает последовательное разложение |В результате строится иерархическая|
|функции обработки данных на простые |схема, которая отражает состав и |
|функциональные элементы ("сверху вниз"). |взаимоподчиненность отдельных |
|В результате строится функциональная структура |функций. Она носит название |
|алгоритма (ФСА) приложения, в которой |функциональная структура алгоритма |
|отражаются: |(ФСА) приложения. |
|цели предметной области (цель-подцель); |Подобная структура отражает состав |
|состав приложений (задач обработки), |и взаимосвязь функций обработки |
|обеспечивающих реализацию поставленных целей; |информации для реализации |
|характер взаимосвязи приложений с их основными |приложений, не раскрывая логику |
|характеристиками; |выполнения каждой отдельной |
|функции обработки данных; |функции. |
| |Разложение должно носить строго |
|Функциональная структура приложения. |функциональный характер, т.е. |
| |отдельный элемент ФСА описывает |
| |законченную содержательную функцию |
| |обработки информации, которая |
|. . . |предполагает определенный способ |
| |реализации на программном уровне. |
| |Функции ввода/вывода информации |
|. . . |отделяют от функций вычислительной |
| |или логической обработки данных. |
| | |
|. . . . |Некоторые функции например Ф2, ФМ |
| |далее неразложимы на составляющие, |
| |они предполагают непосредственную |
|. . . |программную реализацию. Другие |
| |функции Ф2… могут быть представлены|
|По частоте использования функции делятся на: |в виде структурного объединения |
|однократно выполняемые; |более простых функций, например |
|повторяющиеся. |Ф11, Ф12 .. Для всех |
| |функций-компонентов осуществляется |
| |самостоятельная программная |
| |реализация, составные функции типа |
| |Ф1, ФМ реализуются как программные |
| |модули, управляющие |
| |функциями-компонен-тами, например, |
| |в виде программ-меню. |
|0.8.2. Модульное программирование |0.9 |
| |Модульное программирование основано|
Страницы: 1, 2, 3
|