- •Краткая характеристика1
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Операции работы с указателями.
- •Функции
- •Директивы препроцессора
- •Указатели Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Функции работы с указателями и памятью
- •Строки.
- •Время жизни и область видимости переменных
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
- •Введение в объектно-ориентированное программирование
- •Часть 2. Введение в технологию программирования.
- •Этапы развития программирования.
- •Проблемы разработки сложных программных систем:
- •Жизненный цикл программного продукта.
- •Модели жц.
- •Экстремальное программирование
- •Оценка качества процессов создания программного обеспечения.
- •Процессы проектирования.
- •Требования, цели
- •Внешнее проектирование.
- •Диаграммы потоков данных (Data Flow Diagrams).
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •Почему модуль должен компилироваться с первого раза?
- •Рекомендации по внесению ясности в текст программы:
- •Тестирование.
- •Документирование.
- •Пользовательский интерфейс
- •Часть 3. Типовые структуры данных и алгоритмы.
- •3.1 Структуры данных Логические структуры данных:
- •Хранение циклических структур данных в памяти компьютера
- •Организация двусвязанного списка.
- •Организация массива переменного размера:
- •3.2 Алгоритмы Быстрая сортировка
- •Поиск пути
- •Примеры программ
- •Список литературы
Часть 2. Введение в технологию программирования.
Технология программирования – совокупность методов и средств, используемых в процессе разработки программных средств.
Технология программирования включает:
– указание последовательности выполнения технологических операций;
– перечисление условий, при которых выполняется операция;
– описание самих операций;
– способы описания моделей, используемых на различных этапах разработок.
Этапы развития программирования.
1. Стихийное программирование (до сер. 60-х годов):
– программирование в 2-х кодах;
– появление ассемблеров;
– появление ЯВУ (Fortran, Algol);
– появление подпрограмм, работающих с глобальными данными);
– локализация данных в подпрограммах;
– стихийное использование подхода «снизу-вверх», сложные интерфейсы функций.
2. Структурное программирование (сер. 60 – сер. 80):
В основе СП лежит декомпозиция сложных систем. Процедурная декомпозиция – разбиение на подпрограммы (несколько десятков операторов).
– проектирование «сверху вниз»;
– использование 3 базовых алгоритмических конструкций (следование, ветвление, цикл);
– структурирование данных, пользовательские типы;
– модульное программирование – выделение группы подпрограмм, использующих одни данные, в отдельно компилируемые модули.
Языки: PL/1, Algol-68, Pascal, C.
3. Объектный подход (сер. 80 – конец 90).
– представление программы в виде совокупности объектов, которые являются экземплярами определённого класса;
– классы образуют иерархию с наследованием свойств;
– система сообщений;
– ООП обеспечивает более естественную декомпозицию ПО, что реализует наиболее полную локализацию данных и позволяет вести независимую разработку классов;
– визуальное программирование.
Примеры языков: Simula, Smalltalk, C++, Modula, Java, Object Pascal.
4. Компонентный подход и CASE-технологии.
– построение программного обеспечения из отдельных компонентов – отдельно существующих частей ПО, взаимодействующих между собой через стандартизованные двоичные интерфейсы;
– компоненты собираются в двоичные библиотеки или исполняемые файлы;
Примеры:
COM (Component Object Model) – определяет общую парадигму взаимодействия программ любых типов, позволяя одному программному обеспечению использовать функции (службы), предоставляемые другой.
Объекты COM функционируют в составе сервера: внутреннего, локального, удалённого.
На его основе построены OLE-Automation и ActiveX.
CORBA (Common Object Request Broker Architecture).
CASE-технологии (Computer-Aided Software/System Engineering) – автоматизированные технологии разработки и сопровождения ПО.
Проблемы разработки сложных программных систем:
1. Сложность формального определения требований к ПС.
2. Отсутствие удовлетворительных средств описания дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий.
3. Коллективная разработка.
4. Необходимость увеличения степени повторяемости кода.
Жизненный цикл программного продукта.
Жизненный цикл (ЖЦ) – это период от момента появления идеи создания ПО до момента завершения его поддержки.
Постановка задачи (Техническое задание).
Анализ требований и разработка спецификаций (Эскизный проект).
Проектирование (Технический проект).
Реализация (Рабочий проект).
Сопровождение (отсутствует в современном стандарте).
Стандарт ISO/IEC 12207: 1995 “Information Technology – Software Life Cycle Process”. Содержит этапы: подготовительная работа (выбор моделей ЖЦ, методов, средств разработки, составление плана работ); анализ требований к системе; проектирование архитектуры; анализ требований к программному обеспечению; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; квалификационное тестирование ПО; интеграция системы; квалификационное тестирование системы; установку ПО; приёмку ПО.