рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ - раздел Программирование, ...

 

 

М.Ю. Катаев

 

 

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ

ИНФОРМАТИКИ

И ПРОГРАММИРОВАНИЯ

 

 

УЧЕБНОЕ ПОСОБИЕ

 

 

ТОМСК − 2006


Федеральное агентство по образованию


ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

 

Кафедра АСУ

 

М.Ю. Катаев

 

 

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ

ИНФОРМАТИКИ

И ПРОГРАММИРОВАНИЯ

 

 

УЧЕБНОЕ ПОСОБИЕ

 

 


 

 

 


Корректор: Осипова Е.А.

 

М.Ю. Катаев. Спецкурс−1. Высокоуровневые методы информатики и программирования: Учебное пособие. – Томск: Томский межвузовский центр дистанционного образования, 2006. − 132 стр.

 

© Катаев М.Ю., 2006

© Томский межвузовский центр

дистанционного образования, 2006
СОДЕРЖАНИЕ

Введение…………………………………………………………..
Глава 1 Основы программирования на С++…………………….
1.1 Типы данных………………………………………………….
1.2 Выражения…………………………………………………….
1.3 Арифметические операторы………………………………….
1.4 Комментарии………………………………………………….
1.5 Условная операция присваивания……………………………
1.6 Ветвящиеся алгоритмы……………………………………….
1.7 Массивы и работа с файлами………………………………...
1.8 Доступ к элементам массива…………………………………
1.9 Процедуры и функции………………………………………..
1.10 Объявление процедур……………………………………….
1.11 Определение функции………………………………………
1.12 Передача массива функциям………………………………..
1.13 Указатели…………………………………………………….
1.14 Динамическое выделение и освобождение памяти……….
1.15 Прототипы функций…………………………………………
1.16 Вызов по значению и вызов по ссылке…………………….
1.17 Структуры……………………………………………………
1.18 Доступ к элементам структуры……………………………..
1.19 Передача структур в функции………………………………
1.20 Объединения…………………………………………………
1.21 Дополнительные средства (TYPEDEF и ENUM)………….
1.22 Синтаксис и правила для классов С++……………………..
1.23 INLINE методы………………………………………………
1.24 Указатель THIS………………………………………………
1.25 Конструкторы и деструкторы……………………………….
1.26 Перегрузка методов класса………………………………….
1.27 Перегрузка операций………………………………………..
1.28 Инкапсуляция или сокрытие данных………………………
1.29 Сокрытие данных в потомках………………………………
Глава 2 Теоретические основы объектно-ориентированного программирования………………………………………………..  
2.1 Парадигмы программирования………………………………
2.2 От процедурного программирования к объектному……….
2.3 Основные принципы и этапы объектно-ориентированного программирования………………………………………………..  
2.4 Объектно-ориентированные языки программирования……
2.5 Этапы разработки систем с использованием ООП…………
2.6 Объектная декомпозиция……………………………………..
2.7 Объекты и сообщения………………………………………...
2.8 Классы………………………………………………………….
2.9 Основные средства разработки классов……………………..
2.10 Наследование………………………………………………..
2.11Полиморфизм…………………………………………………
2.12 Сложный полиморфизм или создание полиморфных объектов……………………………………………………………  
2.13 Композиция………………………………………………….
2.14 Наполнение…………………………………………………..
Глава 3 Технология ООП программирования…………………..
3.1 Технология программирования и информатизация общества…………………………………………………………...  
3.2 Общие принципы разработки программных средств………
3.3 Специфика разработки программных средств……………..
3.4 Жизненный цикл программного средства…………………..
3.5 Понятие качества программного средства…………………..
3.6 Надежность программных средств…………………………..
3.7 Методы борьбы со сложностью программных средств….....
3.8 Контроль принимаемых решений……………………………
3.9 Объектный подход к разработке программных средств……
3.10 Особенности объектного подхода к разработке программного средства……………………………………………….  
3.11 Особенности объектного подхода на этапе конструирования программного средства………………………………………  
3.12 Особенности объектного подхода на этапе кодирования программного средства…………………………………………...  
3.13 Качество и методы его обеспечения………………………..
3.14 Методы контроля качества………………………………….
3.15 Ошибки в программном обеспечении……………………..
Вопросы для самоконтроля………………………………………
Литература…………………………………………………………

 


ВВЕДЕНИЕ

 

Согласно стандарту предлагаемое вниманию пособие включает в себя следующие разделы:

- Новейшие направления в области создания технологий программного обеспечения.

- Эволюция программного обеспечения.

- Программирование в средах информационных систем: процедурное, структурное и модульное программирование, сущность объектно-ориентированного подхода (наследование, полиморфизм, инкапсуляция, конструкторы, деструкторы и др.).

Большинство программного обеспечения в настоящее время написано в объектно-ориентированном стиле программирования. Например, такие известные пакеты программ WORD, EXCEL, 1C, ORIGIN, MATHCAD, MATLAB, Mathematica и др. пакеты написаны в объектно-ориентированном стиле.

Объектно-ориентированная технология привлекает пользователя повышенной производительностью в течение всего жизненного цикла ПО, что приводит к реальной отдаче капиталовложений. Повышенная производительность достигается при наличии четырех основных свойств объектно-ориентированных систем и вытекающих из них преимуществ:

1. Использование объектов в качестве основных моделей позволяет пользователю моделировать сложные системы реального мира.

2. Гибкость объектно-ориентированных текстов выливается в быстрое реагирование на изменения требования пользователя.

3. Повторное использование стандартных компонентов снижает как время разработок новых прикладных задач, так и объем сгенерированного кода.

4. Простота ПО делает его более гибким и снижает затраты на эксплуатацию.

 

Создание первых компьютерных программ в мире и в России тоже началось в 50-е годы XX века. Для компьютерной техники это было необычное время. Сейчас уже трудно представить тот энтузиазм, который присутствовал в то время, при разработке, создании и запуске первых вычислительных систем. Эти системы тут же стали востребованы в разных областях науки и техники, ядерной отрасли, космической, медицинской, программировании и др. В это время шло становление компьютерной техники, формирование стандартов и первых программ, которые записывались, как правило, в машинных кодах. Программирование развивалось вслед за развитием техники. Такое направление развития продолжалось вплоть до 80-х годов ХХ века. Тем не менее основные принципы построения программ были развиты именно в эти годы. Возникли такие языки, как FORTRAN, ALGOL, PASCAL, BASIC, COBOL, ADA, LISP, PROLOG, C, которые известны до настоящего времени.

В 80-е годы были сформированы многочисленные международные стандарты по компонентам компьютеров, языкам программирования и методам разработки программного обеспечения. Шло развитие языков программирования, которые уже стали независимыми от технической составляющей (которая стала унифицированной). Тем не менее процесс написания программ, особенно больших (десятки тысяч строк), был весьма напряженным и ответственным. В это время не существовало еще программных систем, облегчающих труд программиста.

Далее, в 90-е годы, идет формирование языков программирования. Одни языки программирования исчезают, другие вбирают лучшее, что известно в других, и развиваются успешно (FORTRAN, PASCAL, C++, BASIC и некоторые др.). Однако самое главное, в это время появились первые так называемые системы программирования. Они взяли на себя нелегкую заботу по оформлению программ. К таким системам можно отнести Visual FORTRAN, DELPHI, Visual C++, C++Builder, CLARION и др.

Последующие годы идут под знаком успешного развития именно таких программных систем, которые позволяют автоматизировать многие компоненты программирования, а программисту сосредоточиться только на логике работы программы и алгоритмов.

В настоящее время три системы программирования являются несомненными лидерами по числу продаж и применимости на практике при разработке сложных программ. Эти системы и их взаимосвязь с языками программирования показана на нижеследующем рисунке.

 

Рисунок − Взаимосвязь языков программирования и лидирующих в мире систем программирования

 

Развитие языков программирования зависело не только от развития компьютерной техники, но и решаемых задач. Таких задач существует множество, например, задачи реального времени, потоков данных, математические, визуальные, диалоговые, логические и др. Каждая из этих реально существующих задач формирует для программирования соответствующие вопросы, которые необходимо переписать в машинные коды. Система ответов на такие вопросы (надо отметить, что не на все) дает парадигма программирования (способ решения задачи на компьютере).

Так, для решения одних задач необходима одна парадигма программирования, для других задач – другая. Всего существует не так много парадигм программирования, к ним можно отнести: алгоритмическую, процедурную, логическую, баз данных, модульную, объектно-ориентированную и др.

Например, при процедурном программировании (процедурная парадигма) все части программы, обладающие одинаковыми свойствами и элементами, выделяются в отдельные процедуры (подпрограммы и функции). При решении некоторого разнообразия задач отдельные подпрограммы делаются стандартными и записываются в библиотеки, которые могут применять не один, а множество программистов.

При объектно-ориентированном подходе формируются некоторые программные блоки – объекты, которые обладают свойствами реально существующего объекта (обладают состоянием и поведением и обмениваются сообщениями). Это позволяет сократить повторное использование кода, увеличить наглядность программы и др.

Наряду с этими явными преимуществами использование объектно-ориентированных языков и сред программирования способствует пошаговой разработке ПО. Быстрое прототипирование интерфейсов позволяет тестировать ответы пользователя независимо от основного тела прикладной задачи. Значение такого подхода наиболее проявляется в проектах, прикладные задачи которых заданы нечетко или трудны для понимания.

Первое важное преимущество объектно-ориентированных систем вытекает из природы их связи с реальным миром. Разработчик может спроектировать физическую систему в программную, первоначально задав все важные физические объекты и соответствующие им программные объекты. Группы взаимосвязанных физических объектов отображаются в классы, которые можно организовать в иерархию, начиная с общих классов и добавляя к ним специализированные подклассы. Процедуры, общие для нескольких классов, находятся в их общем суперклассе и наследуются ими.

Объектно-ориентированный подход уменьшает концептуальный разрыв между реальным миром и компьютерной моделью. Он позволяет инженерам, экономистам, аналитикам и проектировщикам ясно понимать структуру системы. Поэтому сегодня объектно-ориентированные системы используются как для моделирования сложных физических систем на производстве, в телекоммуникациях, в военном и оборонном комплексах, так и в экономике.

В 90-е годы монитор из алфавитно-цифрового стал графическим, что привело к изменению и возможностей программирования. Компьютер приобрел компьютерное управление (обратная связь). Многие элементы, расположенные на экране, из просто картинок стали элементами управления. Теперь перемещение указателя мыши на некоторый объект на экране приводит к выполнению заданных заранее действий. Программы, которые позволяют выполнять такие действия, построены по принципам визуального программирования.


ГЛАВА 1

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С++

 

История языка С++ насчитывает к настоящему времени уже более 30 лет (начиная от времени создания языка С). В 1997 году был принят международный стандарт С++. Язык С++ – это универсальный язык программирования. Совместимость с языком С, предшественником С++, – еще одна важная особенность языка. Все ранее разработанные программы на языке С легко переносимы на С++ в области обработки данных эксперимента, текста или бизнес-информации. Кроме эффективности программирования и выразительности языка, преимуществом С++ является возможность многократного использования программ.

Все особенности и нововведения языка С++ можно найти на интернет странице разработчика языка Бьерна Страуструпа:

 

http://www.research.att.com/~bs/bs_faq.html

 

Далее будут в конспективной форме изложены основные моменты языка С++.

 

ТИПЫ ДАННЫХ

 

Любая переменная может изменить тип, для этого необходимо присвоить ей значение требуемого типа. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены. В языке С++ реализовано четыре разновидности типов данных:

- Целочисленный тип.

- Строковый тип.

- Логический тип.

- Пользовательский тип (классы).

ВЫРАЖЕНИЯ

Выражения состоят из операторов и операндов. Большинство операторов в Конструкторе являются бинарными, то есть содержат два операнда. Остальные…   Таблица 1 − Приоритет операторов ОПЕРАТОРЫ ПРИОРИТЕТ КАТЕГОРИЯ НЕ …

АРИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ

 

В следующей таблице приведены типы операндов и результаты для бинарных и унарных арифметических операций.

 


Таблица 2 − Бинарные арифметические операции

ОПЕРАТОР ОПЕРАЦИЯ ТИП ОПЕРАНДОВ ТИП РЕЗУЛЬТАТА
+ Сложение Целый Целый
Вычитание Целый Целый
* Умножение Целый Целый
/ Деление Целый Целый

 

Таблица 3. Унарные арифметические операции.

ОПЕРАТОР ОПЕРАЦИЯ ТИП ОПЕРАНДОВ ТИП РЕЗУЛЬТАТА
- Арифметическое отрицание Целый Целый

Например:

a=1; b=2.;

sum=a+b;

b=5.

При выполнении операций присваивания для идентификаторов a и b в ячейки памяти записываются числа 1 и 2. В результате выполнения операции сложения в ячейку памяти под именем sum записывается число 3. При этом содержимое ячеек a и b не изменяется. Последующее действие (выполнение присваивания) b=5 и предыдущее значение b=2 «забываются».

При выполнении арифметических операций со многими переменными применяется ПРИОРИТЕТ выполнения операций. Сначала выполняются операции: умножение, деление и вычисление остатка, потом – сложение и вычитание. Если выражение содержит несколько операций одного приоритета подряд, то они выполняются слева направо. Например, в выражении i=k+d*i/m–1, действия выполняются в следующем порядке: умножение, деление, сложение и вычитание.

Операция присваивания выполняется справа налево. Например:

i=j=1; равнозначно i=1; j=1; или j=1; i=j;

 

В С++ применяются сокращенные формы записи арифметических операций. Например,

операций присваивания:

c+=3; c=c+3;

c-=3; c=c-3;

c*=3; c=c*3;

c/=3; c=c/3;

Операций инкремента

i++ постфиксная форма i=i+1

++i префиксная форма i=i+1

Операций декремента

i-- постфиксная форма i=i-1

--i префиксная форма i=i-1

 

 

КОММЕНТАРИИ

Часто бывает полезно вставлять в программу текст, который предназначается в качестве комментария только для читающего программу человека и… Символы /* начинают комментарий, заканчивающийся символами */. Вся эта… Символы // начинают комментарий, который заканчивается в конце строки, на которой они появились. Опять вся…

ВЕТВЯЩИЕСЯ АЛГОРИТМЫ

Простейший из циклов имеет вид: while (условие) {

МАССИВЫ И РАБОТА С ФАЙЛАМИ

тип_данных имя_массива[размер_массива];   Например, для представления данных о температуре можно воспользоваться следующим описанием:

УКАЗАТЕЛИ

Указатель является переменной, которая содержит адрес другой переменной или функции. Описание указателя определяет тип данных, на которые ссылается… тип_указываемых данных *имя_указателя;  

ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ И

ОСВОБОЖДЕНИЕ ПАМЯТИ

int *array=new int[10];   Если память не может быть выделена, то оператор new возвращает указатель NULL . После каждой операции выделения памяти…

СТРУКТУРЫ

В отличие от массива, структура позволяет иметь смешанные атрибуты различных типов данных. Структура создается при помощи ключевого слова struct, за… struct имя_типа {

ПЕРЕДАЧА СТРУКТУР В ФУНКЦИИ

  struct имя_типа {

ОБЪЕДИНЕНИЯ

Объединения – еще один тип данных, которые можно использовать различным образом. К примеру, некоторые данные в одном случае могут рассматриваться… Объединение создается при помощи ключевого слова union: union имя_типа

ИНКАПСУЛЯЦИЯ ИЛИ СКРЫТИЕ ДАННЫХ

Понятие инкапсуляция означает, что функции элементы и структуры данных, определяющие некоторые свойства данного класса, рассматриваются в качестве… Вообще, в объектном программировании считается хорошим тоном закрывать все… B C++ программисту предоставлено три уровня доступа к элементам объектов:

СКРЫТИЕ ДАННЫХ В ПОТОМКАХ

При порождении потомка класса у вас есть выбор в определении типа элементов. По умолчанию элементы базового класса автоматически получают приватный…    

ГЛАВА 2

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

ООП появилось в результате длительной эволюции технологии разработки программных продуктов. В основу эволюции легло стремление ускорить процесс…  

ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ

В программировании существуют различные парадигмы, представляющие собой разные подходы к написанию программ. Большинство программистов знакомы лишь… Такое количество парадигм связано с огромным количеством разнообразных научных… Существующие языки программирования классифицируют по четырём основным группам (парадигмам): процедурные,…

ОСНОВНЫЕ ПРИНЦИПЫ И ЭТАПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

В теории программирования ООП определяется технология создания сложного программного обеспечения, которая основана на представлении программы в виде… Такое представление программы впервые было использовано в языке имитационного… Основное достоинство ООП − сокращение количества межмодульных вызовов и уменьшение объемов информации,…

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ

ПРОГРАММИРОВАНИЯ

Несмотря на то, что принципиально ООП возможно на многих языках программирования, желательно для создания объектно-ориентированных программ… Самая простая объектная модель использована при разработке Borland Pascal 7.0.… Особое место занимают объектные модели Delphi и C++Builder. Эти модели обобщают опыт ООП для MS DOS и включают…

ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СИСТЕМ С

ИСПОЛЬЗОВАНИЕМ ООП

Процесс разработки программного обеспечения с использованием ООП включает четыре этапа: анализ; проектирование; эволюция; модификация.   Анализ. Цель анализа − максимально полное описание задачи. На этом этапе выполняется анализ предметной области…

ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ

Как уже упоминалось выше, при использовании технологии ООП решение представляется в виде результата взаимодействия отдельных функциональных… В такой системе каждый функциональный элемент, получив некоторое входное… Функциональные элементы системы, параметры и поведение которой определяются условием задачи, обладающие…

ОБЪЕКТЫ И СООБЩЕНИЯ

В предыдущем разделе было показано, что под объектом применительно к ООП понимается отдельно реализуемая часть предметной области задачи.… Каждый объект, получая сообщения, должен определенным образом «реагировать» на… Реакция объекта на сообщение может зависеть от его состояния: так, объект Файл, получив сообщение «Добавить запись»,…

КЛАССЫ

 

Реализация объектов, полученных в результате декомпозиции, принципиально возможна на любом языке, даже на ассемблере. Однако наличие специальных средств позволяет существенно упростить программирование, дополнительно обеспечивая программиста заготовками классов из библиотек и встроенными механизмами обеспечения требуемых свойств.

Для представления абстракций объектов используется специальный определяемый программистом тип данных – класс.

Класс − это структурный тип данных, который включает описание полей данных, а также процедур и функций, работающих с этими полями данных. Применительно к классам такие процедуры и функции получили название методов.

Реализация объединения данных с определенными видами их обработки делает классы пригодными для описания состояния и поведения моделей реальных объектов. Совокупность полей определяется множеством аспектов состояния объекта с точки зрения решаемой задачи, а совокупность методов − множеством аспектов поведения объекта (см. рис. 13).

В программах используются переменные типа класса. Такие переменные принято называть объектами.

Рассмотрим пример − описание класса Окно.Пусть необходимо разработать класс, переменные которого используются для изображения на экране цветного прямоугольника заданного цвета и размера (см. рис. 14). Проектируемый класс должен содержать поля для сохранения параметров окна: XI, Yl, X2, Y2 − координаты верхнего левого и нижнего правого углов и Color − цвет.

Рис. 13 −Соответствие объекта-абстракции классу и объектам-переменным

 

Пусть единственное сообщение, обрабатываемое объектом, будет − «Нарисовать окно». Соответственно, класс должен содержать метод, реализующий процесс рисования объекта. Поля объекта можно инициализировать при создании переменной-объекта, передав ему сообщение инициализации, включающее значения полей. Следовательно, класс должен содержать метод инициализации.

 

 

Рис. 14 −Вид и параметры окна на экране

 

Окончательно получаем класс, имеющий следующую структуру:

Класс Окно:

поля Х1,У1, Х2,У2, Color

метод Инициализировать(аХ1,аY1,аХ2,аY2,аСо1ог)

метод Изобразить

Конец описания.

Создавая объекты типа Окно, инициализируя их в соответствии с условием и посылая им сообщение «Нарисовать окно», получим разные окна на экране,… Каждая переменная типа класса включает набор полей, объявленных в классе.… Воздействие на объект выполняется посредством изменения его полей или вызова его методов. Доступ к полям и методам…

Интерфейс

<объявление полей и методов класса,

к которым возможно обращение извне>

Реализация

<объявление полей и методов класса,

к которым невозможно обращение извне>

Конец описания.

Как уже говорилось выше, объединение полей данных и процедур и функций, работающих с этими данными, в единый пакет при наличии специальных правил… Наличие интерфейса обеспечивает уменьшение возможности «разрушения»…  

Конец описания.

 

После определения структуры класса должны быть разработаны алгоритмы методов и назначены типы полей и передаваемых параметров.

В программе должна быть использована переменная типа Файл. Так как файл в программе используется постоянно, соответствующую переменную лучше определять статически. Передача сообщений объекту будет реализована как вызов соответствующего метода интерфейсной части.

ОСНОВНЫЕ СРЕДСТВА РАЗРАБОТКИ КЛАССОВ

 

Языки, поддерживающие ООП, существенно облегчают разработчику создание новых классов за счет реализации механизмов наследования, композиции, наполнения и полиморфизма.

НАСЛЕДОВАНИЕ

Если непосредственный родитель единственный, то наследование называется простым, а если таких классов несколько – то множественным. При этом… Наличие механизма наследования в языке программирования позволяет повторно не…

Конец описания.

Класс Окно_меняющее_цвет содержит все поля родительского класса и все его методы. Дополнительно объекты типа Окно_меняющее_цвет могут менять цвет… При множественном наследовании, реализованном, например, в C++, наследуются…

ПОЛИМОРФИЗМ

Простой полиморфизм. При создании иерархии классов может обнаружиться, что некоторые свойства объектов, сохраняя название, изменяются по сути. Для реализации таких иерархий в языке программирования должен быть… Совокупность полиморфных методов с одним именем для иерархии классов образует единый полиморфный метод иерархии, в…

Конец описания.

 
 

Рис. 18 −Иерархия классов Окно и Окно_с_текстом

 

Примечание. При реализации методов Изобразить и Инициализировать потомка можно вызвать соответствующие родительские методы, а затем добавить операторы, определяющие собственные действия метода для разрабатываемого класса.

СЛОЖНЫЙ ПОЛИМОРФИЗМ ИЛИ

СОЗДАНИЕ ПОЛИМОРФНЫХ ОБЪЕКТОВ

Полиморфными объектами или полиморфными переменными называются переменные, которым в процессе выполнения программы может быть присвоено значение,… - При передаче объекта типа класса-потомка в качестве фактического параметра… - При работе с указателями, когда указателю на объект класса-родителя присваивается адрес объекта класса-потомка.

КОМПОЗИЦИЯ

Ранее было указано, что в результате объектной декомпозиции второго и более уровней могут быть получены объекты, находящиеся между собой в отношении… Применение наследования эффективно в том случае, если разрабатываемый класс… В тех случаях, когда сходное поведение не просматривается или наследование по каким-либо причинам нецелесообразно,…

Конец описания.

Метод Инициализировать, класса-потомок, при этом должен получить двойной список параметров по сравнению с методом Инициализировать класса-родитель.… Доступ к компонентам объектного поля осуществляется с указанием имени объекта,…  

НАПОЛНЕНИЕ

Включение объектов в некоторый класс можно реализовать и с использованием указателей на эти объекты. В отличие от объектного поля, которое включает… Механизм наполнения в основном используется для подключения объекта или…  

ГЛАВА 3

ТЕХНОЛОГИЯ ООП ПРОГРАММИРОВАНИЯ

В соответствии с обычным значением слова «технология» под технологией программирования будем понимать совокупность производственных процессов,… В литературе имеются и другие, несколько отличающиеся, определения технологии… В технологии программирования акцент делается на изучении процессов разработки ПС (технологических процессов) и…

ОБЪЕКТНЫЙ ПОДХОД К РАЗРАБОТКЕ

ПРОГРАММНЫХ СРЕДСТВ

Отношение связывает некоторые объекты: можно считать, что объединение этих объектов обладает некоторым свойством. Если отношение связывает n… Состояние объекта может быть изучено по значению простых или ассоциативных… В процессе познания или изменения окружающего нас мира мы всегда принимаем к рассмотрению ту или иную упрощенную…

ОСОБЕННОСТИ ОБЪЕКТНОГО ПОДХОДА

К РАЗРАБОТКЕ ПРОГРАММНОГО СРЕДСТВА

Часто определение требование завершается разработкой диаграммы вариантов использования, в которой фиксируются, в каких случаях будет использоваться…    

МЕТОДЫ КОНТРОЛЯ КАЧЕСТВА

Как контролировать качество системы? Как точно узнать, что программа делает именно то, что нужно, и ничего другого? Как определить, что она… Ответы на эти вопросы можно получить с помощью процессов верификации и… Верификация — проверка того, что продукт делался правильно, т.е. проверка того, что он разрабатывался в соответствии…

ОШИБКИ В ПО

Ошибками в ПО, вообще говоря, являются все возможные несоответствия между демонстрируемыми характеристиками его качества и предписанными… В англоязычной литературе используется несколько терминов, часто переводящихся… · defect — самое общее нарушение каких-либо требований или ожиданий, не обязательно проявляющееся вовне (к дефектам…

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

К главе 1

1.1 Какие типы данных поддерживает С++? 1.2 Из каких компонент состоит выражение С++? 1.3 Какие виды арифметических операторов вы знаете?

К главе 2

2.1 Какие парадигмы программирования вы знаете? 2.2 Поясните архитектуру процедурного программирования. 2.3 Поясните архитектуру модульного программирования.

К главе 3

3.1 Что такое программная инженерия? 3.2 Что такое программное средство (ПС)? 3.3 Что такое ошибка в ПС?

ЛИТЕРАТУРА

 

1. Майерс Г. Надежность программного обеспечения. − М.: Мир, 1980.

2. Дал У., Дейкстра Э., Хоор К. Структурное программирование. − М.: Мир, 1975.

3. Дзержинский Ф.Я., Калиниченко И.М. Концепция и опыт реализации методических средств программной инженерии. − М.: ЦНИИ информации и технико-экономических исследований по атомной науке и технике, 1988.

4. Турский В. Методология программирования. − М.: Мир, 1981.

5. Буч Г.. Объектно-ориентированное проектирование с примерами применения. − М.: Конкорд, 1992.

6. Брукс, мл. Ф.П. Как проектируются и создаются программные комплексы. − М.: Наука, 1979.

7. Хьюз Дж., Мичтом Дж. Структурный подход к программированию. − М.: Мир, 1980.

8. Боэм Б., Браун Дж., Каспар Х. и др. Характеристики качества программного обеспечения. − М.: Мир, 1981.

9. Липаев В.В. Качество программного обеспечения. − М.: Финансы и статистика, 1983.

10. Шнейдерман Б. Психология программирования. −М.: Радио и связь, 1984.

11. Кауфман В.Ш. Языки программирования. Концепции и принципы. − М.: Радио и связь, 1993.

12. Требования и спецификации в разработке программ. − М.: Мир, 1984.

13. Агафонов В.Н. Спецификация программ: понятийные средства и их организация. − Новосибирск: Наука (Сибирское отделение), 1987.

14. Липаев В.В., Филиппов Е.Н. Мобильность программ и данных в открытых информационных системах. − М.: Научная книга, 1997.

15. Жоголев Е.А. Введение в технологию программирования (конспект лекций). − М.: "ДИАЛОГ-МГУ", 1994.

16. Зелковец М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения. − М.: Мир, 1982.

17. Зиглер К. Методы проектирования программных систем. − М.: Мир, 1985.

18. Фокс Дж. Программное обеспечение и его разработка. − М.: Мир, 1985.

19. Боэм Б., Браун Дж., Каспар Х. и др. Характеристики качества программного обеспечения. − М.: Мир, 1981.

20. Фуксман А.Л. Технологические аспекты создания программных систем. − М.: Статистика, 1979.

21. Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ. − М.: Мир, 1985.

22. Безбородов Ю.М. Индивидуальная отладка программ. − М.: Наука, 1982.

23. Горбунов-Посадов М.М. Конфигурации программ. Рецепты безболезненных изменений. – М.: «Малип», 1994.

24. Фути К., Судзуки Н. Языки программирования и схемотехника СБИС. – М.: Мир, 1988.

25. Фаулер М., Скотт К. UML в кратком изложении. – М.: Мир, 1999.

26. Крачтен Ф. Введение в Rational unified process. – М.: Изд. Дом «Вильямс», 2002.

27. Кауфман В.Ш. Языки программирования. Концепции и принципы. – М.: Радио и связь, 1993.

28. Бен-Ари М. Языки программирования. Практический сравнительный анализ. – М.: Мир, 2000.

29 Константайн Л., Локвуд Л. Разработка программного обеспечения. Питер, 2004.

30. Торрес Р.Дж. Практическое руководство по проектированию и разработке пользовательского интерфейса. – Вильямс, 2002.

31. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Питер-ДМК, 2001.

32. Брауде. Э. Дж. Технология разработки программного обеспечения. − Питер, 2004.

33. Страуструп Б. Язык программирования С++. − Киев: Диасофт, 2001.

34. Бабэ Б. Просто и ясно о Borland C++. Версии 4.0 и 4.5. − М.: Бином. 2001.

35. Вайнер Р., Пинсон Л. С++ изнутри. − Киев: Диасофт, 1993.

36. Дьюхарст С. Программирование на С++. − Киев: Диасофт, 1993.

37. Лукас П. С++ под рукой. − Киев: Диасофт, 1993.

38. Намиот Д.Е. Основные особенности языка программирования С++. Реализация Turbo C++. − М.: Память, 1991.

39. Подбельский В.В. Язык С++: Учебное пособие. − М.: Финансы и статистика, 1995.

40. Рассохин Д. От Си к Си++. − М.: Эдель, 1993.

41. Романов В.Ю. Программирование на языке С++. Практический подход. − М.: Компьютер, 1993.

42. Страуструп Б. Язык программирования С++. Часть 1. − Киев: Диасофт, 1993.

43. Страуструп Б. Язык программирования С++. Часть 2. − Киев: Диасофт, 1993.

44. Фейсон Т. Объектно-оpиентиpованное пpогpаммиpование на Borland С++ 4.5. − Киев.: Диалектика, 1996.

45. Эллис М., Страуструп Б. Справочное руководство по языку программирования С++ с комментариями. − М.: Мир, 1992.

46. Соммервилл И. Инженерия программного обеспечения. − Вильямс, 2002.

47. Ройс У. Управление проектами по созданию программного обеспечения. − М.; Лори, 2002.

48. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. − Питер, 2002.

49. Брауде. Э. Дж. Технология разработки программного обеспечения. − Питер, 2004.

50. Бек К. Эктремальное программировнаие. − Питер, 2002.

51. Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. − Вильямс, 2002.

52. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование. – М.: МГТУ им. Баумана, 2001.

53. Ишкова Э.А. С++ начала программирования. – М.: БИНОМ, 2001.

54. Ирэ П. Объектно-ориентированное программирование – К.: Диасофт, 1995.

55. Бугг Г. Объектно-ориентированное программирование с примерами применения – М.: Финансы и Статистика, 1992.

56. Дал У., Дейкстра Э., Хоор К. Структурное программирование. − М.: Мир, 1975.

 

– Конец работы –

Используемые теги: высокоуровневые, Методы, информатики, программирования0.075

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Лекции по курсу Информатика Лекция 1. Основные понятия и методы теории информатики и кодирования. Информатика как научная дисциплина. Понятие информации и информационных процессов
Лекция Основные понятия и методы теории информатики и кодирования... Информатика как научная дисциплина... Понятие информации и информационных процессов...

Статистические показатели себестоимости продукции: Метод группировок. Метод средних и относительных величин. Графический метод
Укрупненно можно выделить следующие группы издержек, обеспечивающих выпуск продукции: - предметов труда (сырья, материалов и т.д.); - средств труда… Себестоимость является экономической формой возмещения потребляемых факторов… Такие показатели рассчитываются по данным сметы затрат на производство. Например, себестоимость выпущенной продукции,…

Лекции по высокоуровневым методам информатики и программированию
Реакция на событие Объем - 52 часа 2 семестр лекции - 34 лаб. работы - 18 всего - 52 экзамен курсовая работа экзамен 2. Список литературыОсновная 1.… Delphi 4. Пер. с нем. под ред. А. Шевцова. Для пользователя BNV, Киев 1999. 4.… Мир, 1985. Учебник Учебно-справочное издание Учебное пособие. Учебное пособие. Учебник Пособие по языку. 0.3…

Методы линейного программирования, двойственность в линейном программировании
Методы линейного программирования двойственность в линейном... Задание Задание Задание...

Методы решения жестких краевых задач, включая новые методы и программы на С++ для реализации приведенных методов
Стр. 8. Второй алгоритм для начала счета методом прогонки С.К.Годунова.Стр. 9. Замена метода численного интегрирования Рунге-Кутта в методе прогонки… Стр. 10. Метод половины констант. Стр. 11. Применяемые формулы… Стр. 62. 18. Вычисление вектора частного решения неоднородной системы дифференциальных уравнений. Стр. 19. Авторство.…

ЛЕКЦИЯ 1. 3 ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ. Правовая информатика как наука и учебная дисциплина. О месте правовой информатики в системе наук и правоведении. 14
ВВЕДЕНИЕ... ЛЕКЦИЯ... ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ Правовая информатика как наука и учебная дисциплина...

Сравнение эффективности методов сортировки массивов: Метод прямого выбора и метод сортировки с помощью дерева
При прямом включении на каждом шаге рассматриваются только один очередной элемент исходной последовательности и все элементы готовой… Полностью алгоритм прямого выбора приводится в прогр. 3. Таблица 2. Пример… Можно сказать, что в этом смысле поведение этого метода менее естественно, чем поведение прямого включения.Для С имеем…

Радиоволновые, радиационные методы контроля РЭСИ. Методы электронной микроскопии
Область применения СВЧ-методов радиоволнового вида неразрушающего контроля приведен в таблице 1 и в ГОСТ 23480-79. Табл. 1 – Радиоволновые методы… Из¬менение зазора между антеной преобразователя и поверхностью конт-роля.… Неоднознач¬ность отсчета при изменении толщины более 0,5А,Е Измене¬ние диэлектри¬ческих свойств материала объек-тов…

Информатика и программирование
Факультет информационных технологий... Учебно методическое пособие...

ЛЕКЦИИ ПО КУРСУ ИНФОРМАТИКА Лекция 1. Введение. История информатики. Измерение
Лекция... Введение История информатики Измерение...

0.039
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам