ТРПО (введение)
Upload: ural-federal-university-named-after-first-president-of-russia-bn-yeltsin
Post on 22-May-2015
4.092 views
TRANSCRIPT
1
Технология разработки
программного обеспечения
Часть 1.
Введение в технологию
программирования(©) Владислав Лавров, vlavrov.professorjournal.ru
2
1.1. Программа как формализованное описание процесса обработки данных.Программное средство.
Данные- это представление фактов и идей в формализованном виде, пригодном для передачи и переработки в некоем процессе
Информация - это смысл, который придаётся данным при их представлении
Обработка данных- это выполнение систематической последовательности действий с данными
Носители данных - материальные объекты, способные хранить данные
(©) Владислав Лавров, vlavrov.professorjournal.ru
3
Информационная среда - совокупность носителей данных, используемых при какой-либо обработке данных
Состояние информационной среды - набор данных, содержащихся в какой-либо момент в информационной среде
Процесс- последовательность сменяющих друг друга состояний некоторой информационной среды
Программа- формализованное описание процесса
Программное средство (программный продукт)- программа или логически связанная совокупность программ на носителях данных, снабжённая программной документацией
(©) Владислав Лавров, vlavrov.professorjournal.ru
4
Алгоритм
- это точное предписание, определяющее
вычислительный процесс, идущий от
варьируемых исходных данных к искомому
результату
Марков, Андрей Андреевич (1856-1922)
— выдающийся русский математик,
внёсший большой вклад в теорию
вероятности, математический анализ и
теорию чисел.
1.2. Алгоритмы
(©) Владислав Лавров, vlavrov.professorjournal.ru
5
Алгоритм
- это всякая система вычислений, выполняемых по
строго определённым правилам, которая после
какого-либо числа шагов заведомо приводит к
решению поставленной задачи
Колмогоров Андрей Николаевич (1903-1987) — выдающийся советский математик, доктор физико-математических наук, профессор Московского Государственного Университета (1931), академик Академии Наук СССР (1939), лауреат Сталинской премии, Герой Социалистического Труда. Колмогоров — один из основоположников современной теории вероятностей, им получены фундаментальные результаты в топологии, математической логике, теории турбулентности, теории сложности алгоритмов и ряде других областей математики и её приложений.
(©) Владислав Лавров, vlavrov.professorjournal.ru
6
Алгоритм
- это строго детерминированная
последовательность действий, описывающая
процесс преобразования объекта из начального
состояния в конечное, записанная с помощью
понятных исполнителю команд
Угринович, Николай Дмитриевич
Заведующий лабораторией информационных технологий Московского
института открытого образования, автор многочисленных учебных и
методических пособий по курсу информатики, а также нового учебного и
программно-методического комплекса по курсу информатики и
информационных технологий.
(©) Владислав Лавров, vlavrov.professorjournal.ru
7
Алгоритм
- это точное и конечное описание того или
иного общего метода, основанного на
применении исполнимых элементарных тактов
обработки.
(©) Владислав Лавров, vlavrov.professorjournal.ru
8
Свойства алгоритма (Д.Кнут)Дональд Эрвин Кнут (род. 1938) — американский учёный, почётный профессор Стэнфордского университета и нескольких других университетов в разных странах, преподаватель и идеолог программирования, автор 19 монографий (в том числе ряда классических книг по программированию) и более 160 статей, разработчик нескольких известных программных технологий. Автор всемирно известной серии книг, посвящённой основным алгоритмам и методам вычислительной математики, а также создатель настольных издательских систем TEX и METAFONT, предназначенных для набора и вёрстки книг, посвящённых технической тематике (в первую очередь — физико-математических).
1. Конечность
2. Определенность (детерминированность)
3. Наличие входных данных
4. Наличие выходных данных
5. Эффективность(©) Владислав Лавров, vlavrov.professorjournal.ru
9
1.3. Модели и моделирование
Модель
- упрощенное представление реальности. Это
такой материально или мысленно
представляемый объект, который в процессе
исследования замещает объект-оригинал так,
что его непосредственное изучение дает новые
знания об объекте-оригинале.
Моделирование
- метод исследования систем на основе
переноса изучаемых свойств системы на
объекты другой природы (©) Владислав Лавров, vlavrov.professorjournal.ru
10
Принципы моделирования(Буч Г., Рамбо Д. и Джекобсон А. )
Гради Буч (род. 1955 г.) - американский инженер,
руководитель исследований в IBM Research. Гради Буч
наиболее известен как создатель унифицированного
языка моделирования UML, который он разработал
совместно с Иваром Якобсоном и Джеймсом Рамбо.
Буч Г., Рамбо Д., Джекобсон А.
Язык UML. Руководство пользователя.
- М.: ДМК, 2000. 432 с.
(©) Владислав Лавров, vlavrov.professorjournal.ru
11
Принципы моделирования(Буч Г., Рамбо Д. и Джекобсон А. )
1. Выбор модели оказывает определяющее влияние
на подход к решению проблемы и на то,
как будет выглядеть это решение.
2. Каждая модель может быть воплощена с разной
степенью абстракции. При этом переход от одной
степени абстракции к другой дает нам новую модель.
3. Лучшими моделями являются те, которые ближе
к реальности по некоторому выбранному критерию.
4. Следует использовать совокупность нескольких
моделей.
(©) Владислав Лавров, vlavrov.professorjournal.ru
12
1.4. Замечания по поводу понятия правильной программы
1. Понятие ошибки в программе является существенно неформальным
«В программе имеется ошибка, если она не выполняет того, что
разумно ожидать от нее пользователю» [Гленфорд Майерс]
«Разумное ожидание» пользователя формируется на основании
документации по применению этой программы.
2. Причиной ошибки в этом случае может оказаться сама функциональная спецификация, а не программа
3. Нельзя доказать формальными методами (математически) правильность программы
4. Нельзя доказать тестированием правильность программы.Тестирование может лишь продемонстрировать наличие в программе ошибки [Эдсгер Дeйкстра ]
Следствия:
(©) Владислав Лавров, vlavrov.professorjournal.ru
13
1.5. Надежность программного средства
Надежность программного средства- это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью
Отказ программного средства
- проявление в нем ошибки
Надежное программное средство (ПС) не исключает наличия в нем ошибок. Важно лишь, чтобы эти ошибки при практическом применении этого ПС в заданных условиях проявлялись достаточно редко
Следствие:
(©) Владислав Лавров, vlavrov.professorjournal.ru
14
1.6. Технология программирования как технология разработки надежных программных средств
Технология программирования совокупность производственных методов и процессов, приводящую к созданию требуемого программного средства, а также описание этой совокупности процессов
Процесс совокупность взаимосвязанных действий (процедур), преобразующих некоторые входные данные в выходные
Стадия часть действий по созданию программного обеспечения, ограниченная некоторыми временными рамками и заканчивающаяся выпуском конкретного продукта, определяемого заданными для данной стадии требованиями
(©) Владислав Лавров, vlavrov.professorjournal.ru
15
Пример каскадного технологического подхода к ведению жизненного цикла
Технологический подходспецифическая комбинация стадий и процессов, ориентированных на разные классы программного обеспечения, особенности коллектива разработчиков, а также условия, в которых оно создается и функционирует.
(©) Владислав Лавров, vlavrov.professorjournal.ru
16
Жизненный цикл программного обеспечения
- весь период его разработки и эксплуатации, начиная с
момента возникновения замысла и заканчивая
прекращением всех видов его использования.
(©) Владислав Лавров, vlavrov.professorjournal.ru
17
1.7. Функции профессиональных программистов
1. Разработка систем большого объема.
2. Создание системного и инструментального программного
обеспечения
3. Разработка программною продукта с предъявлением
особых требований к качеству и эффективности.
4. Разработка программ на основе подхода открытых систем
5. Применение системного анализа
(©) Владислав Лавров, vlavrov.professorjournal.ru
18
1.8. Черты и особенности мышления программистов
• Способность определить архитектуру программы.
• Умение видеть задачу одновременно на разных уровнях
детализации.
• Умение представлять себе проектируемый процесс в
динамике.
• Разработка программ на основе подхода открытых
систем.
• Умение видеть дальше одной разрабатываемой в данный
момент программы.
• Умение обобщать типичные ситуации.
• Умение применять и комбинировать хорошо известные
программистские приёмы и типовые алгоритмы.(©) Владислав Лавров, vlavrov.professorjournal.ru
19
• Наличие комплексного мышления.
• Культура собственного труда.
• Способность анализировать собственные
ошибки.
• Умение работать в коллективе.
• Умение работать с пользователем.
• Владение интеллектуальными средствами.
Черты и особенности мышления программистов(продолжение)
(©) Владислав Лавров, vlavrov.professorjournal.ru
20
Основная задача
Создание высококачественного
программного обеспечения
Последовательность решения
Методология программирования
Технологический подход
Инструментальные средства разработки
1.9. Основная задача профессионального программирования
(©) Владислав Лавров, vlavrov.professorjournal.ru