Скачать презентацию Дисциплина ПРОГРАММИРОВАНИЕ Тема Общие вопросы разработки программного обеспечения Скачать презентацию Дисциплина ПРОГРАММИРОВАНИЕ Тема Общие вопросы разработки программного обеспечения

progr_su_1.ppt

  • Количество слайдов: 21

Дисциплина: ПРОГРАММИРОВАНИЕ Тема: Общие вопросы разработки программного обеспечения Направление «Информатика и вычислительная техника» Курс Дисциплина: ПРОГРАММИРОВАНИЕ Тема: Общие вопросы разработки программного обеспечения Направление «Информатика и вычислительная техника» Курс 1 Семестр 1 Лектор: Петрова О. Б.

Задачи курса Изучение алгоритмического языка программирования С и знакомство с элементами языка С++ Изучение Задачи курса Изучение алгоритмического языка программирования С и знакомство с элементами языка С++ Изучение способов построения и описания алгоритмов Изучение способов построения структур данных Знакомство с технологией получения исполняемого кода Освоение методики анализа задачи Освоение методики тестирования программ

Литература Бузюков Л. Б. , Петрова О. Б. – Современные методы программирования на языках Литература Бузюков Л. Б. , Петрова О. Б. – Современные методы программирования на языках C и C++. Березин Б. И. , Березин С. Б. – Начальный курс C и C++ Козин С. В. , Коробов С. А. . – Методические указания к лабораторным работам по ПЯВУ Павловская - C++: Учебный курс. Подбельский - Язык C++.

Основные термины Программа Программирование Программная инженерия Программное обеспечение (ПО) Программный комплекс (ПК) Программные средства Основные термины Программа Программирование Программная инженерия Программное обеспечение (ПО) Программный комплекс (ПК) Программные средства (ПС)

Жизненный цикл ПО Жизненный цикл ПО

Основные этапы решения задачи на ЭВМ (задача с малым временем жизни) Постановка задачи Составление Основные этапы решения задачи на ЭВМ (задача с малым временем жизни) Постановка задачи Составление плана решения Выбор способа решения, разработка алгоритмов Реализация Условия задачи, исходные данные, цели Разработка программного кода Разработка модулей Проверка правильности решения Подготовка и исполнение тестов, анализ результатов

Основные этапы решения задачи на ЭВМ (задача с большим временем жизни) Системный анализ Анализ Основные этапы решения задачи на ЭВМ (задача с большим временем жизни) Системный анализ Анализ требований Проектирование (архитектуры, модульной структуры, структуры данных, интерфейса пользователя) Подготовка инструментальных средств Разработка кода Разработка тестов для отладки Отладка (отдельных модулей, сборки, альфатестирование, бета-тестирование) Подготовка документации Испытания в реальных условиях

Критерии качества ПС Надежность Быстродействие Удобство, эргономичность интерфейса пользователя Совместимость с другими ПС Удобство Критерии качества ПС Надежность Быстродействие Удобство, эргономичность интерфейса пользователя Совместимость с другими ПС Удобство сопровождения

Классификация языков программирования Машинные коды Ассемблеры Языки высокого уровня (ЯВУ) Понятия и структура ЯВУ Классификация языков программирования Машинные коды Ассемблеры Языки высокого уровня (ЯВУ) Понятия и структура ЯВУ максимально приближены к человеческому Машинно-независимые языки (транслятор: компилятор, интерпретатор)

Классификация языков высокого уровня по семантике Императивные (процедурные, алгоритмические) (C, Pascal, Fortran, Cobol, Basic) Классификация языков высокого уровня по семантике Императивные (процедурные, алгоритмические) (C, Pascal, Fortran, Cobol, Basic) Функциональные (Lisp, Haskell, Erlang) Декларативные (логические) (Prolog, SQL) Объектно-ориентированные (C++, Java, C#, Objective-C, Object Pascal)

Постановка задачи - это четкое и однозначное изложение условий и целей задачи, точное определение Постановка задачи - это четкое и однозначное изложение условий и целей задачи, точное определение исходных данных. Задача (словесное описание): Дано (исходные данные) Требуется (цели) Связь (зависимость между требуемым и исходным)

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

Алгоритм Алгоритм — конечная последовательность точных указаний, выполнение которых приводит к решению поставленной задачи. Алгоритм Алгоритм — конечная последовательность точных указаний, выполнение которых приводит к решению поставленной задачи. Линейный, разветвляющийся и циклический алгоритм Классификация алгоритмов по степени формализации: Абстрактный (математический) Алгоритмическое описание действий Программа

Свойства алгоритма Результативность Результат достигается за конечное число шагов Однозначность Массовость Дискретность Свойства алгоритма Результативность Результат достигается за конечное число шагов Однозначность Массовость Дискретность

Способы описания алгоритма 1. Словесный 2. Формульно-словесный 3. Графический 4. Псевдокод 5. Языки программирования Способы описания алгоритма 1. Словесный 2. Формульно-словесный 3. Графический 4. Псевдокод 5. Языки программирования

Псевдокод Ввести число IF число больше нуля THEN Задать начальное значение счетчика циклов Задать Псевдокод Ввести число IF число больше нуля THEN Задать начальное значение счетчика циклов Задать начальное значение суммы DO-WHILE значение счетчика меньше числа Ввести новое число Прибавить новое число к значению суммы Инкремент счетчика циклов END-DO Вывод значения суммы ELSE Вывести сообщение «Ошибка ввода»

Блок-схемы (ГОСТ 19. 701 -90) Блок-схемы (ГОСТ 19. 701 -90)

Диаграммы Насси-Шнайдермана Обработка Любое действие Следование Процесс Любая группа действий, образующих блок Процесс 1 Диаграммы Насси-Шнайдермана Обработка Любое действие Следование Процесс Любая группа действий, образующих блок Процесс 1 Процесс 2 Процесс 3 нет ? Проц. 1 WHILE да Решение Проц. 2 Цикл Процесс IF<условие> THEN<процесс1> ELSE<процесс2> END -IF WHILE<условие> DO<процесс> END-DO REPEAT<процесс> UNTIL<условие> REPEAT-UNTIL 1 Вариант К 2 N ИНА ЧЕ Конструкция CASE K 1: <процесс 1> 2: <процесс 2> … N: <процесс N) END-CASE ELSE <процесс по умолчанию>

Системы счисления Непозиционные системы счисления IVXL IX XI Позиционные системы счисления Десятичная 0123456789 Восьмеричная Системы счисления Непозиционные системы счисления IVXL IX XI Позиционные системы счисления Десятичная 0123456789 Восьмеричная 01234567 Шестнадцатеричная 0123456789 ABCDEF 99910 457 1011002 A 1 B 16

Двоичная система счисления Основание системы счисления - 2 Вес разряда n: 2 n-1 Цифры Двоичная система счисления Основание системы счисления - 2 Вес разряда n: 2 n-1 Цифры 1 1 1 1 № разряда 8 7 6 5 4 3 2 1 Вес разряда 27 26 25 24 23 22 21 20

Шестнадцатеричная система счисления Основание системы счисления - 16 Вес разряда n: 16 n-1 Цифры Шестнадцатеричная система счисления Основание системы счисления - 16 Вес разряда n: 16 n-1 Цифры 1 1 № разряда 4 3 2 1 16 1=16 16 0=1 Вес разряда 16 3=4096 16 2=256