Основы разработки ПО (продолжение)

Содержание

Слайд 2

Программирование может рассматриваться как научная дисциплина и как инженерная деятельность Информатика

Программирование может рассматриваться как научная дисциплина и как инженерная деятельность

Информатика –

наука, изучающая законы и методы накопления, обработки и передачи информации.
С теоретической точки зрения выделяют теоретическую информатику. Теоретическая информатика или Информационная наука – раздел информатики, изучающий информационные процессы и системы, в том числе структуру информации и её использование в различных областях человеческой деятельности.
С практической точки зрения выделяют прикладную информатику. Прикладная информатика или Вычислительная наука – совокупность разделов информатики и вычислительной техники, ориентированная на решение разнообразных вопросов автоматизации накопления, передачи и обработки информации.
Слайд 3

Тогда программирование можно охарактеризовать следующим образом Программирование как научная дисциплина –

Тогда программирование можно охарактеризовать следующим образом

Программирование как научная дисциплина – раздел

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

Разделы программирования 1. Теория программирования (тж. наука программирования): изучает математические абстракции

Разделы программирования

1. Теория программирования (тж. наука программирования): изучает математические абстракции программ,

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

Теория программирования основывается на трёх понятиях: алгоритм, задача и вычислитель, и

Теория программирования

основывается на трёх понятиях: алгоритм, задача и вычислитель, и включает

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

Рис.2.1. Понятия и направления теории программирования

Рис.2.1. Понятия и направления теории программирования

Слайд 7

Разделы программирования 2. Методология программирования: изучает методы с точки зрения основ

Разделы программирования

2. Методология программирования: изучает методы с точки зрения основ их

построения. Конкретная методология (подход) – это объединённая единым философским подходом совокупность методов, применяемых в процессе разработки.
3. Технология программирования: изучает процессы разработки ПО как технологические процессы, а также порядок их прохождения (с использованием знаний, методов и средств). Конкретная технология (подход) содержит в себе определённый набор процессов, а также используемых в них знаний, методов и средств.
Слайд 8

Разделы программирования 4. Инженерия программирования или программная инженерия: изучает различные методы

Разделы программирования

4. Инженерия программирования или программная инженерия: изучает различные методы и

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

Содержание инженерии весьма динамично и включает большое количество направлений, среди которых

Содержание инженерии весьма динамично и включает большое количество направлений, среди которых

следует отметить следующие:

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

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

Слайд 10

Разделы программирования 5. Инструментарий программирования или программный инструментарий: изучает системы программирования.

Разделы программирования

5. Инструментарий программирования или программный инструментарий: изучает системы программирования.
Сюда

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

Термин «метод» В каждом из таких разделов, как методология, технология и

Термин «метод»

В каждом из таких разделов, как методология, технология и инженерия,

использовался термин «метод».
В общем случае метод представляет собой путь исследования или познания.
Метод включает средства – с помощью чего осуществляется действие – и способы – каким образом осуществляется действие.
В методологии программирования методы рассматриваются с точки зрения основ их построения,
в технологии программирования – с точки зрения их использования при организации процессов,
а в инженерии программирования – с точки зрения достижения с их помощью определённых целей.
Слайд 12

Основные направления в программировании представлены тремя взаимосвязанными группами (рис.2.2). Первая –

Основные направления в программировании представлены тремя взаимосвязанными группами (рис.2.2).

Первая –

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

Рис.2.2. Группы направлений программирования

Рис.2.2. Группы направлений программирования

Слайд 14

Основная задача программирования на профессиональном уровне решается с помощью приведённых основных

Основная задача программирования на профессиональном уровне решается с помощью приведённых основных

направлений.

Краткие рекомендации по их применению выглядят следующим образом:
1. Сначала следует определить методологию, которая будет включать совокупность методов и концепций, объединенных общим философским подходом.
2. Далее следует выбрать технологию, который будет определять совокупность процессов, применяемых при разработке программного продукта. Определенная ранее методология включает совокупность методов, которые будут применены в технологическом подходе.
3. Методология и технология определяют языки и системы программирования, необходимые для каждого процесса избранного технологического подхода.
4. Процессы будут исполняться на некоторых аппаратной и операционной платформах. Заметим, что платформы могут существенно определять наличие и специфику инструментов. В большинстве разработок следует избегать зависимости от платформ, однако ряд проектов в большой степени опирается на их хорошее знание.

Слайд 15

Программирование как инженерная деятельность – это совокупность процессов, связанных с созданием

Программирование как инженерная деятельность

– это совокупность процессов, связанных с созданием

ПО и его реализацией. В связи с усложнением ПО и его создания вместо понятия «программирование» в настоящее время используется более общее понятие – разработка программного обеспечения (РПО).
Исходное понятие сохранило своё значение только в узком смысле – как написание программы, синонимами которого являются кодирование и реализация.
Слайд 16

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

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

названий для разделов программирования:
теория программирования обычно называется теория ПО (букв. наука ПО);
методология программирования – методология разработки ПО;
технология программирования – технология разработки ПО.
С этой точки зрения программную инженерию называют также инженерией ПО, а программный инструментарий – инструментарием ПО.
В иностранной литературе большинство вопросов методологии и технологии разработки ПО принято рассматривать с инженерной точки зрения и относить соответствующие направления разработки к инженерии ПО.
Слайд 17

Системная инженерия В настоящее время активно развивается область, называемая Системная инженерия

Системная инженерия

В настоящее время активно развивается область, называемая Системная инженерия

(тж. Инженерия систем), в рамках которой речь идёт уже о разработке систем. Смена терминологии является результатом влияния системного подхода. В данном случае это означает понимание того, что необходимо учитывать не только само ПО, но его окружение, т.е. систему в целом, в котором ПО – всего лишь определённая (пусть и существенная) её часть.