20
1 Технология разработки программного обеспечения Часть 1. Введение в технологию программирования (©) Владислав Лавров, vlavrov.professorjournal.ru

ТРПО (введение)

Embed Size (px)

Citation preview

Page 1: ТРПО (введение)

1

Технология разработки

программного обеспечения

Часть 1.

Введение в технологию

программирования(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 2: ТРПО (введение)

2

1.1. Программа как формализованное описание процесса обработки данных.Программное средство.

Данные- это представление фактов и идей в формализованном виде, пригодном для передачи и переработки в некоем процессе

Информация - это смысл, который придаётся данным при их представлении

Обработка данных- это выполнение систематической последовательности действий с данными

Носители данных - материальные объекты, способные хранить данные

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 3: ТРПО (введение)

3

Информационная среда - совокупность носителей данных, используемых при какой-либо обработке данных

Состояние информационной среды - набор данных, содержащихся в какой-либо момент в информационной среде

Процесс- последовательность сменяющих друг друга состояний некоторой информационной среды

Программа- формализованное описание процесса

Программное средство (программный продукт)- программа или логически связанная совокупность программ на носителях данных, снабжённая программной документацией

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 4: ТРПО (введение)

4

Алгоритм

- это точное предписание, определяющее

вычислительный процесс, идущий от

варьируемых исходных данных к искомому

результату

Марков, Андрей Андреевич (1856-1922)

— выдающийся русский математик,

внёсший большой вклад в теорию

вероятности, математический анализ и

теорию чисел.

1.2. Алгоритмы

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 5: ТРПО (введение)

5

Алгоритм

- это всякая система вычислений, выполняемых по

строго определённым правилам, которая после

какого-либо числа шагов заведомо приводит к

решению поставленной задачи

Колмогоров Андрей Николаевич (1903-1987) — выдающийся советский математик, доктор физико-математических наук, профессор Московского Государственного Университета (1931), академик Академии Наук СССР (1939), лауреат Сталинской премии, Герой Социалистического Труда. Колмогоров — один из основоположников современной теории вероятностей, им получены фундаментальные результаты в топологии, математической логике, теории турбулентности, теории сложности алгоритмов и ряде других областей математики и её приложений.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 6: ТРПО (введение)

6

Алгоритм

- это строго детерминированная

последовательность действий, описывающая

процесс преобразования объекта из начального

состояния в конечное, записанная с помощью

понятных исполнителю команд

Угринович, Николай Дмитриевич

Заведующий лабораторией информационных технологий Московского

института открытого образования, автор многочисленных учебных и

методических пособий по курсу информатики, а также нового учебного и

программно-методического комплекса по курсу информатики и

информационных технологий.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 7: ТРПО (введение)

7

Алгоритм

- это точное и конечное описание того или

иного общего метода, основанного на

применении исполнимых элементарных тактов

обработки.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 8: ТРПО (введение)

8

Свойства алгоритма (Д.Кнут)Дональд Эрвин Кнут (род. 1938) — американский учёный, почётный профессор Стэнфордского университета и нескольких других университетов в разных странах, преподаватель и идеолог программирования, автор 19 монографий (в том числе ряда классических книг по программированию) и более 160 статей, разработчик нескольких известных программных технологий. Автор всемирно известной серии книг, посвящённой основным алгоритмам и методам вычислительной математики, а также создатель настольных издательских систем TEX и METAFONT, предназначенных для набора и вёрстки книг, посвящённых технической тематике (в первую очередь — физико-математических).

1. Конечность

2. Определенность (детерминированность)

3. Наличие входных данных

4. Наличие выходных данных

5. Эффективность(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 9: ТРПО (введение)

9

1.3. Модели и моделирование

Модель

- упрощенное представление реальности. Это

такой материально или мысленно

представляемый объект, который в процессе

исследования замещает объект-оригинал так,

что его непосредственное изучение дает новые

знания об объекте-оригинале.

Моделирование

- метод исследования систем на основе

переноса изучаемых свойств системы на

объекты другой природы (©) Владислав Лавров, vlavrov.professorjournal.ru

Page 10: ТРПО (введение)

10

Принципы моделирования(Буч Г., Рамбо Д. и Джекобсон А. )

Гради Буч (род. 1955 г.) - американский инженер,

руководитель исследований в IBM Research. Гради Буч

наиболее известен как создатель унифицированного

языка моделирования UML, который он разработал

совместно с Иваром Якобсоном и Джеймсом Рамбо.

Буч Г., Рамбо Д., Джекобсон А.

Язык UML. Руководство пользователя.

- М.: ДМК, 2000. 432 с.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 11: ТРПО (введение)

11

Принципы моделирования(Буч Г., Рамбо Д. и Джекобсон А. )

1. Выбор модели оказывает определяющее влияние

на подход к решению проблемы и на то,

как будет выглядеть это решение.

2. Каждая модель может быть воплощена с разной

степенью абстракции. При этом переход от одной

степени абстракции к другой дает нам новую модель.

3. Лучшими моделями являются те, которые ближе

к реальности по некоторому выбранному критерию.

4. Следует использовать совокупность нескольких

моделей.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 12: ТРПО (введение)

12

1.4. Замечания по поводу понятия правильной программы

1. Понятие ошибки в программе является существенно неформальным

«В программе имеется ошибка, если она не выполняет того, что

разумно ожидать от нее пользователю» [Гленфорд Майерс]

«Разумное ожидание» пользователя формируется на основании

документации по применению этой программы.

2. Причиной ошибки в этом случае может оказаться сама функциональная спецификация, а не программа

3. Нельзя доказать формальными методами (математически) правильность программы

4. Нельзя доказать тестированием правильность программы.Тестирование может лишь продемонстрировать наличие в программе ошибки [Эдсгер Дeйкстра ]

Следствия:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 13: ТРПО (введение)

13

1.5. Надежность программного средства

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

Отказ программного средства

- проявление в нем ошибки

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

Следствие:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 14: ТРПО (введение)

14

1.6. Технология программирования как технология разработки надежных программных средств

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

Процесс совокупность взаимосвязанных действий (процедур), преобразующих некоторые входные данные в выходные

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

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 15: ТРПО (введение)

15

Пример каскадного технологического подхода к ведению жизненного цикла

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

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 16: ТРПО (введение)

16

Жизненный цикл программного обеспечения

- весь период его разработки и эксплуатации, начиная с

момента возникновения замысла и заканчивая

прекращением всех видов его использования.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 17: ТРПО (введение)

17

1.7. Функции профессиональных программистов

1. Разработка систем большого объема.

2. Создание системного и инструментального программного

обеспечения

3. Разработка программною продукта с предъявлением

особых требований к качеству и эффективности.

4. Разработка программ на основе подхода открытых систем

5. Применение системного анализа

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 18: ТРПО (введение)

18

1.8. Черты и особенности мышления программистов

• Способность определить архитектуру программы.

• Умение видеть задачу одновременно на разных уровнях

детализации.

• Умение представлять себе проектируемый процесс в

динамике.

• Разработка программ на основе подхода открытых

систем.

• Умение видеть дальше одной разрабатываемой в данный

момент программы.

• Умение обобщать типичные ситуации.

• Умение применять и комбинировать хорошо известные

программистские приёмы и типовые алгоритмы.(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 19: ТРПО (введение)

19

• Наличие комплексного мышления.

• Культура собственного труда.

• Способность анализировать собственные

ошибки.

• Умение работать в коллективе.

• Умение работать с пользователем.

• Владение интеллектуальными средствами.

Черты и особенности мышления программистов(продолжение)

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 20: ТРПО (введение)

20

Основная задача

Создание высококачественного

программного обеспечения

Последовательность решения

Методология программирования

Технологический подход

Инструментальные средства разработки

1.9. Основная задача профессионального программирования

(©) Владислав Лавров, vlavrov.professorjournal.ru