- •1. Технология программирования. Понятие технологии программирования. Методология процедурно-ориентированного программирования. Абстракция и декомпозиция.
- •Абстракция и декомпозиция
- •Технология программирования. Методология объектно-ориентированного программирования. Основные принципы ооп: наследование, инкапсуляция, полиморфизм.
- •Технология программирования. Методология объектно-ориентированного анализа и проектирования.
- •2 Важные вещи:
- •Технология программирования. Методология системного анализа и системного моделирования.
- •2 Важные вещи:
- •6 Документирование по. Ескд, естд, еспд. Основные документы. Техническое задание.
- •7 Документирование по. Основные документы. Программа и методика испытаний. Руководство оператора. Руководство системного программиста. Руководство программиста.
- •Шаблоны (template).
- •Параметризованные функции.
- •Взаимозаменяемость параметризованных функций.
- •Параметризованные классы.
- •Реализация стека.
- •Особенности реализации класса.
- •24 Stl. Контейнеры. Вектор (vector), список (list), дек (deque). Множество (set), словарь (map), стек (stack).
- •Контейнеры.
- •Множество(set)
- •Map(словарь)
- •Стек (адаптивный контейнер).
- •25 Stl. Итераторы. Алгоритмы: поиск, сортировка, суммирование.
- •Алгоритмы
- •26 Stl. Аллокаторы. Функциональные объекты. Строки. Аллокаторы.
- •Функциональные объекты.
- •Строки.
- •27 Uml. Общие сведения. Принципы построения модели сложной системы. Общая структура языка.
- •Общие сведения.
- •Принципы построения сложной системы.
- •Общая структура языка uml.
- •28 Uml. Специфика описания метамодели языка uml. Виды диаграмм.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •Специфика описания метамодели языка uml. Виды диаграмм.
- •29 Uml. Базовые отношения: отношение зависимости, отношение ассоциации, отношение обобщения, отношение реализации.
- •30 Uml. Дополнительные отношения: отношение расширения, отношение включения, отношение агрегации, отношение композиции.
- •31 Uml. Диаграмма вариантов использования. Актер, вариант использования, интерфейс, примечание.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •32 Uml. Диаграмма классов. Класс, объект, шаблон.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •33 Uml. Диаграмма состояний. Автомат, состояние (начальное, конечное, составное, подсостояние: последовательное, параллельное), переход (простой, сложный), синхронизирующие состояния.
- •34 Uml. Диаграмма деятельности. Состояние действия, переходы, дорожки, объекты.
- •35 Uml. Диаграмма последовательности. Объекты, сообщения.
Функциональные объекты.
Функциональные объекты – объекты классов, в которых выполнена перегрузка оператора “вызов функции” (operator ()).
Функциональные объекты используются как функции, вызываемые для различных типов данных.
Код, выполняемый при вызове, определяется пользователем.
Функциональные объекты реализуют указатель на функцию, но применительно к объектам шаблонных классов.
Пример (функциональный объект сравнения двух элементов):
class Functor
{
public:
bool operator() (int a, int b)
{
return a<b;
}
};
void main()
{
Functor f;
bool res;
res=f(5,7); //true
res=f(8,5); //false
}
Основное назначение функциональных объектов – использование их в различных алгоритмах.
Например: алгоритм for_each – переборка всех элементов контейнера и вызов определенного пользователем функционального объекта для каждого элемента контейнера.
Пример:
#include<algorithm>
#include<list>
using namespace std;
class A
{
public:
A(int v) {val=v;}
void inc(int a) {val+=a;}
private:
int val;
};
class Functor
{
public:
void operator() (A &a)
{
a.inc(2);
}
};
void main()
{
list<A> m;
Functor f;
m.push_back(A(1));
m.push_back(A(2));
m.push_back(A(3));
for_each(m.begin(),m.end(),f);//вызов f для каждого элемента
}
Строки.
В STL реализовано 2 шаблонных класса, которые обеспечивают работу с текстовыми строками:
1)string – обеспечивает работу с ANSI-строками;
2)wstring – обеспечивает работу с Unicode-строками;
Оба класса поддерживают динамическое изменение размера строки и имеют необходимый набор операций для работы со строками(сравнение, поиск, вставка, замена и т.д.).
Пример:
#include<stdio.h>
#include<string>
using namespace std;
void main()
{
string s1;
string s2;
s1=”Hello”;
s2=s1;
if(s1==s2)
{
printf(“Строки равны”);
}
if(s1<s2)
{
printf(“Первая строка меньше второй”);
}
s1+=”word”;
}
Внутри классов string и wstring перегружены следующие операторы:
!=, = =, <, >, <=, >=, <<(печать в стандартный поток вывода), >>(получить строку из стандартного потока ввода), =, +, +=.
Основные функции:
assign – присвоение одной строки другой;
append – присоединение части одной строки в конец другой;
length – подсчет символов в строке;
clear – очистка строки.
27 Uml. Общие сведения. Принципы построения модели сложной системы. Общая структура языка.
UML (unifed meta language)
Общие сведения.
Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для визуализации, спецификации, проектирования и документирования компонентов любых систем(программное обеспечение, бизнес-процессы, технологии и т.д.). Язык UML используется для моделирования сложных систем.
Программные продукты для работы с UML (Rational Rose, Together, Visio).
Принципы построения сложной системы.
1)Абстрагирование.
2)Многомодульность.
3)Иерархичность.
1)Абстрагирование означает, что в модель надо включить только те аспекты проектирования системы, которые имеют непосредственное отношение к выполнению системой своих функций. Все второстепенные детали опускаются, чтобы не усложнять процесс анализа и исследования полученной модели
2)Многомодульность. Никакая единственная модель не может с достаточной степенью адекватности описывать различные аспекты сложной системы. Необходимо использовать некоторое число взаимосвязанных представлений, каждое из которых отражает некоторый аспект поведения или структуры системы.
3)Принцип предписывает рассматривать процесс построения модели на разных уровнях абстрагирования или детализаций. При этом исходная модель имеет наиболее общее представление, а каждое последующее представление – более точное и детализированное.
1)Включает внешние и внутренние структурные отношения.
2)Включает отношения между компонентами ПО.
3)Описывает производительность и масштабируемость системы.
4)Топология взаимосвязей и коммуникаций системы.
1),2) – статическая модель сложной системы.
3),4) – динамическая модель сложной системы.
1),3) – описывают концептуальную модель сложной системы.
2),4) – физическая модель сложной системы.