1_1_Введение в программирование

Содержание

Слайд 2

Учебный план

Учебный план

Слайд 3

Распределение учебного времени

8 лекций по 2 часа

8 занятий по 4 часа

Домашнее задание

Распределение учебного времени 8 лекций по 2 часа 8 занятий по 4 часа Домашнее задание

Слайд 4

Распределение учебного времени

Включает выполнение домашнего задания

8 лекций по 2 часа

4 занятия по

Распределение учебного времени Включает выполнение домашнего задания 8 лекций по 2 часа
4 часа

4 занятия по 4 часа

Слайд 5

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

Лекция 1

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ Лекция 1

Слайд 6

Вигерс К. Разработка требований к программному обеспечению/Пер. с англ. – М.: Русская

Вигерс К. Разработка требований к программному обеспечению/Пер. с англ. – М.: Русская
Редакция, 2014. – 736 с.
Руководство по разработке качественных требований к программному обеспечению.
Описаны приемы выявления, формулирования, разработки, проверки, утверждения и тестирования требований, которые помогут создать эффективное ПО.

Слайд 7

Соммервилл Иан. Инженерия программного обеспечения/Пер. с англ. – М.: Вильямс. – 736

Соммервилл Иан. Инженерия программного обеспечения/Пер. с англ. – М.: Вильямс. – 736
с.
Введение в инженерию программного обеспечения, описаны все этапы и технологии разработки программных систем.

Слайд 8

Является ли выбор языка проблемой?

Выбирать какой популярнее или тот который более

Является ли выбор языка проблемой? Выбирать какой популярнее или тот который более
эффективен в решении конкретных задач?
Как определить популярность языка?
Как определить эффективность применения языка?

Технологии развиваются и меняются очень быстрыми темпами. Поэтому знание того, что будет востребовано сегодня или завтра, является небольшим преимуществом

Слайд 9

Является ли выбор языка проблемой?

Выбирать какой популярнее или тот который более

Является ли выбор языка проблемой? Выбирать какой популярнее или тот который более
эффективен в решении конкретных задач?
Как определить популярность языка?
Опросы разработчиков
Анализ объявлений о вакансиях, чтобы увидеть, какие навыки ищут работодатели
Подсчет количества поисковых запросов
Анализ практического применения

Слайд 10

Язык программирования

Какой язык программирования изучать?
Что значит легкий или трудный язык программирования?
В каком

Язык программирования Какой язык программирования изучать? Что значит легкий или трудный язык
случае запись кода выглядит проще?

a = 5 $a = 5; var a = 5; int a = 5; var a:Integer = 5;

В чем смысл операции?
что значит "переменная"?
что значит "присваивается"?
что такое "значение", "тип"?
почему оно 5?
Эти вопросы от выбора языка не зависят

Наша цель – долгосрочное погружение в программирование

Слайд 11

Основная литература

Основы программирования на Python. Учебник. [Электронный ресурс]. Режим доступа: python_structured_programming.pdf..

Основная литература Основы программирования на Python. Учебник. [Электронный ресурс]. Режим доступа: python_structured_programming.pdf..

Слайд 12

Основная литература

Златопольский Д. М. Основы программирования на языке Python. – М.: ДМК

Основная литература Златопольский Д. М. Основы программирования на языке Python. – М.:
Пресс, 2017. – 284 с.: ил. [Электронный ресурс]. Режим доступа: FundamentalsofProgramminginPythonZlatopolsky.pdf..

Слайд 13

Основная литература

Жуков Р.А. Язык программирования Python: практикум : учеб, пособие / Р.А.

Основная литература Жуков Р.А. Язык программирования Python: практикум : учеб, пособие /
Жуков. — М.: ИНФРА-М, 2019. — 216с. [Электронный ресурс]. Режим доступа: yazyk_programmirovaniya_python_praktikum.pdf

Слайд 14

Щерба А.В. Программирование на Python: Первые шаги / М. : Лаборатория знаний,

Щерба А.В. Программирование на Python: Первые шаги / М. : Лаборатория знаний,
2022.—253 с. [Электронный ресурс]. Режим доступа: Щерба_Первые шаги. Python.pdf

Описаны базовые конструкции программирования на языке Python: от именования переменных до многострочных программ с несколькими вложенными циклами и условными конструкциями.
В каждой главе разбор возможных ошибок и задания с ответами в конце книги.

Слайд 15

Дауни Аллен Основы Python. Научитесь думать как программист / — М.:Манн, Иванов

Дауни Аллен Основы Python. Научитесь думать как программист / — М.:Манн, Иванов
и Фербер, 2021. — 304 с. [Электронный ресурс]. Режим доступа: Основы python_Дауни_Ален.pdf

Это практическое руководство последовательно раскрывает основы программирования на языке Python.
Вы будете продвигаться от самых простых тем к сложным и получите полное представление об одном из самых популярных языков программирования.
А еще вы поймете, как думают программисты, и сможете применять этот подход к решению даже повседневных задач.

Закрепление теории

Слайд 16

Лейси Никола Python, например. — СПб.: Питер, 2021. — 208 с.:. [Электронный

Лейси Никола Python, например. — СПб.: Питер, 2021. — 208 с.:. [Электронный
ресурс]. Режим доступа: Лейси_Никола Python_например.pdf

Это руководство поможет шаг за шагом прокачать навыки разработки.
В книге 150 задач от изучения основ языка к решению более сложных
задач.

Закрепление теории

Слайд 17

Что в этом коде не так?

Что в этом коде не так?

Слайд 18

Иерархия мастерства

Иерархия мастерства

Слайд 19

Программа и программирование

Цель программирования — разработка программ (программного обеспечения) для управления компьютером

Программа и программирование Цель программирования — разработка программ (программного обеспечения) для управления
с целью решения различных информационных задач
решение задач управления и планирования

Как воспринимать понятие «программное обеспечение»?
Можно ли его увидеть, пощупать или почувствовать другими органами?

Как воспринимать понятие «программирование»?

Слайд 20

Реальность программного обеспечения не встраивается естественным образом в пространство
У программного обеспечения нет

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

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

Слайд 21

Создание и запуск программ

Programmer: writes programs
User: runs programs

A programmer

writes a

a user

which

runs on

Создание и запуск программ Programmer: writes programs User: runs programs A programmer

a computer

Program

Слайд 22

Program

using

a computer

A programmer

which

runs on

a computer

writes a

a user

Создание и запуск программ

Program using a computer A programmer which runs on a computer writes

Слайд 23

users

their computers

using

a computer

run on

which

Program

writes a

A programmer

Создание и запуск программ

users their computers using a computer run on which Program writes a

Слайд 24

Programmers

which

their computers

using

computers

run on

Program

users

write a

Создание и запуск программ

Programmers which their computers using computers run on Program users write a Создание и запуск программ

Слайд 25

Программа и программирование

Решение задач управления и планирования
Пример. Уборка.
Что такое уборка?

Беспорядок

Порядок

Как

Программа и программирование Решение задач управления и планирования Пример. Уборка. Что такое
должен выглядеть порядок известно

Процесс (путь) известен

Программирование – это два состояния и план, т.е. задание пути от одного состояния к другому

Слайд 26

Какие должны быть программы?

Программные тексты должны быть понятными и расширяемыми
простыми для

Какие должны быть программы? Программные тексты должны быть понятными и расширяемыми простыми
внесения изменений
Программные элементы должны быть повторно используемыми:
чтобы при повторной встрече с похожей задачей не пришлось бы повторно изобретать ее решение.
Программы должны быть устойчивыми:
защищать себя от ошибочно введенных данных.
Программы должны быть корректными:
выдавать ожидаемые результаты.

Слайд 27

Примеры программных систем

Как внедряли электронную кассу в X5 Retail Group

Примеры программных систем Как внедряли электронную кассу в X5 Retail Group

Слайд 28

Как работает компьютер?

Память, процессоры и устройства коммуникации составляют hardware

Внешний мир

Memories

Communication
devices

Хранение и извлечение

Memories

Операции

Processors

Коммуникация

Communication

Как работает компьютер? Память, процессоры и устройства коммуникации составляют hardware Внешний мир
devices

Слайд 29

Компьютеры – это универсальные машины – они выполняют программу, которую им передают

Компьютеры – это универсальные машины – они выполняют программу, которую им передают
Program

+

=

Specialized machine

Software

Как работает компьютер?

Слайд 30

Введение в программирование

Что будем делать?
Простые «учебные» программы
Новые системы, создаваемые с чистого листа
Расширения

Введение в программирование Что будем делать? Простые «учебные» программы Новые системы, создаваемые
существующих программ
Сопровождение старой базы кода
Программирование – это искусство?
Чем руководствуетесь – инстинктом или планом?
Как понять, что хочет заказчик?

Слайд 32

Проблема понимания ПО

Так думает разработчик

Проблема понимания ПО Так думает разработчик

Слайд 33

Проблема понимания ПО

А так думают пользователи

Проблема понимания ПО А так думают пользователи

Слайд 34

Проблема восприятия ПО

Для пользователя любая система – это набор функций, которые он

Проблема восприятия ПО Для пользователя любая система – это набор функций, которые
может пощупать и увидеть ? сложность реализации функции оценивается по ее “визуальному богатству”

Чем больше форм и кнопок, тем интуитивно задача кажется более сложной

Секрет айсберга

Слайд 35

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

Программное обеспечение – совокупность всех программ, хранящихся на всех устройствах

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

Слайд 37

Виды программ (приложений)

Консольное приложение - это программа, которая работает с командной строкой.

Виды программ (приложений) Консольное приложение - это программа, которая работает с командной

это обычное окно, где пользователь может ввести какую-то команду и получить результат – нет графического интерфейса пользователя
Оконное приложение - это программа с графическим интерфейсом (GUI – Graphical User Interface)
Настольное приложение (например, калькулятор)
Web-приложение (web-сайт)

Мобильные приложения
Клиент-серверные приложения
Библиотеки
Утилиты и драйверы
API (Application Program Interface)

Слайд 38

Данные: наборы символов, хранящиеся в компьютере
Информация: интерпретация данных для человеческих целей

Информация и

Данные: наборы символов, хранящиеся в компьютере Информация: интерпретация данных для человеческих целей
данные

Информация – это то, что человек может воспринять,
Пример: текст или музыка
Данные – это то, как информация кодируются для компьютера
Пример: аудиоформат MP3

Слайд 39

Информация и обработка данных

Данные хранятся в памяти
Устройства ввода вырабатывают данные из информации
Устройства

Информация и обработка данных Данные хранятся в памяти Устройства ввода вырабатывают данные
вывода получают информацию из данных

Information

Information

Data

Data

Data

Input

Output

Process

Computer

Слайд 40

Где находится программа?

Компьютер с сохраненной программой: программа находится в памяти
“Executable data” –

Где находится программа? Компьютер с сохраненной программой: программа находится в памяти “Executable
исполняемые данные
Программа может быть в памяти в различных формах:
Источник (Source): удобочитаемая форма (язык программирования)
Целевая форма (machine code, object form): форма, выполняемая компьютером
Компилятор (compiler) преобразует исходный текст в машинный код
Компьютер (платформа + операционная система) находит программу в памяти для ее выполнения

Слайд 41

Программирование

Цель программирования – описание процессов обработки данных
Данные – это представление фактов

Программирование Цель программирования – описание процессов обработки данных Данные – это представление
и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе.
Информация – это смысл, который придается данным при их представлении.

Слайд 42

Программирование

Обработка данных – выполнение систематической последовательности действий с данными.
Данные представляются и

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

Слайд 43

Программирование

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

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

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

Слайд 44

Программирование

Программировать – это исключительно точно, шаг за шагом, описать последовательность преобразования информации

Программирование Программировать – это исключительно точно, шаг за шагом, описать последовательность преобразования
с такой строгостью, которая требуется для автоматического выполнения этого преобразования
Результат программирования – компьютерная программа – это некое послание человека машине

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

Слайд 45

Программирование

Процесс обработки данных

Программирование Процесс обработки данных

Слайд 46

Пример.

Точное определение некого явления (понятия)

Пример. Точное определение некого явления (понятия)

Слайд 47

Високосный год

Все хорошо знают что такое високосный год (но лучше уточните у

Високосный год Все хорошо знают что такое високосный год (но лучше уточните
гугла☺).
В соответствии с этим правилом можно определить является ли некий конкретный год високосным.
Цель упражнения: научиться давать точные определения интуитивно ясных понятий – не операционные знания при конструировании ПО
Требуется:
Определить (сформулировать) условия, при которых конкретный год определяется как високосный.
Другими словами, требуется дать определение високосного года. Это понятие в дальнейшем будет использовано при программировании.
Убедитесь, что ваше определение покрывает все возможные случаи и соответствует правилам високосного года.

Слайд 48

Программирование

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

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

Слайд 49

Программный продукт

Общие программные продукты – автономные программные системы, которые созданы для продажи

Программный продукт Общие программные продукты – автономные программные системы, которые созданы для
на открытом рынке программных продуктов любому потребителю
Примеры: системы управления базами данных, текстовые процессоры, графические пакеты, средства управления проектами, планировщики задач и т.п.
Распространяются как обычный товар «в коробке» или по Интернету
Клиент – массовый потребитель
Стандартные операции установки на машину клиента

Слайд 50

Программный продукт

Программные продукты, созданные на заказ - программные системы, которые создаются по

Программный продукт Программные продукты, созданные на заказ - программные системы, которые создаются
заказу определенного потребителя
Примеры: системы поддержки определенных производственных или бизнес-процессов и т.п.
Разрабатываются специально для данного потребителя согласно заключенному контракту
Распространяются как внедрение в аппаратно-программной системе клиента – «решение»
Клиент – «заказчик» - организация (в широком смысле) со своими особыми требованиями
Развертывание и установка с учетом особенностей клиента

Слайд 51

Системный программный продукт

Системный программный продукт

Слайд 52

Компонентная разработка

Разработчики пользуются готовыми компонентами, но это именно программные компоненты – “сухие

Компонентная разработка Разработчики пользуются готовыми компонентами, но это именно программные компоненты –
смеси”, а не готовые изделия.

Слайд 53

Разработка программного обеспечения

Хаотическая деятельность –"code and fix" ("пишем и правим")
единого плана

Разработка программного обеспечения Хаотическая деятельность –"code and fix" ("пишем и правим") единого
не существует
общий проект представляет собой просто смесь краткосрочных решений

Для сложных систем нужна некая организация работы по созданию программного обеспечения

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

Методики разработки ПО различаются используемой моделью жизненного цикла ПО и уровнем формализма при его создании

Слайд 54

Разработка программного обеспечения

Хаотическая деятельность –"code and fix" ("пишем и правим")
единого плана

Разработка программного обеспечения Хаотическая деятельность –"code and fix" ("пишем и правим") единого
не существует,
общий проект представляет собой просто смесь краткосрочных решений
Технология превращает создание программного продукта в упорядоченный процесс
работа программиста более прогнозируемая и эффективна
создается детальное описание процесса создания системы, особое место в котором занимает планирование (аналогично другим инженерным дисциплинам)
Облегчённые (lightweight) или гибкие (agile) технологии
меньшая ориентация на документацию
ориентированность на код

Слайд 55

Командная разработка

Работа в команде является необходимым условием успешности проекта
Умение работать в команде

Командная разработка Работа в команде является необходимым условием успешности проекта Умение работать
– важное качество высококвалифицированного разработчика программного обеспечения
Уровни команд
Отдельный программный компонент, входящий в более крупный проект;
Компонент должен войти в более общий продукт.
Разработка нескольких проектов одновременно

Слайд 57

Навыки и умения

Документирование
Тестирование
Управлениями версиями
Непрерывная интеграция и непрерывная доставка (CI/CD)

Навыки и умения Документирование Тестирование Управлениями версиями Непрерывная интеграция и непрерывная доставка (CI/CD)

Слайд 58

Непрерывный жизненный цикл доставки приложений

Continuous Integration (Непрерывная интеграция)
Continuous Delivery (Непрерывная доставка)
Continuous Deployment

Непрерывный жизненный цикл доставки приложений Continuous Integration (Непрерывная интеграция) Continuous Delivery (Непрерывная
(Непрерывное развертывание)

Слайд 59

Continuous Integration (CI)

Процесс непрерывной интеграции (Continuous Integration) нацелен на автоматизированную проверку интеграции

Continuous Integration (CI) Процесс непрерывной интеграции (Continuous Integration) нацелен на автоматизированную проверку
между изменениями разработчика и остальным кодом
заключается в постоянном слиянии рабочих копий софта в одну основную общую ветвь разработки

Слайд 60

Непрерывная доставка + Непрерывное развертывание

Continuous Delivery (CD)
Целью этого этапа является доставка измененной

Непрерывная доставка + Непрерывное развертывание Continuous Delivery (CD) Целью этого этапа является
версии приложения в эксплуатацию
Автоматизация процессов CD позволяет ускорить процесс доставки, исключить влияние человеческого фактора, а также сделать доставку более доступной для остальных членов команды
Continuous Deployment (CD)
Процесс нацелен на развертывание новой версии приложения в окружение эксплуатации или тестирования
Обычно этот этап не выделяют как отдельный, развертывание включают в процесс доставки

Слайд 61

Система разработки ПО

Система разработки программного обеспечения включает в себя персонал, процесс,

Система разработки ПО Система разработки программного обеспечения включает в себя персонал, процесс, проект и продукт
проект и продукт

Слайд 62

Процесс и стадии создания ПО

Анализ предметной области (постановка задачи)
Разработка проекта системы
Создание

Процесс и стадии создания ПО Анализ предметной области (постановка задачи) Разработка проекта
модели, отражающей основные функциональные требования, предъявляемые к программе
Выбор метода решения (построение математической модели)
Разработка алгоритма – последовательности действий по решению задачи
Реализация программы на языке программирования (кодирование)
Анализ полученных результатов (тестирование)
Внедрение и сопровождение

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

Слайд 63

Проблема желаний

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

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

При разработке ПО

Необходимость удовлетворить множество различных, иногда взаимоисключающих желаний (требований)

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

Слайд 64

Требования к ПО

IEEE Standard Glossary of Software Engineering Terminology (1990):
Условия или возможности,

Требования к ПО IEEE Standard Glossary of Software Engineering Terminology (1990): Условия
необходимые пользователю для решения проблем или достижения целей
Условия или возможности, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворять стандартам, спецификациям или другим формальным документам

Основная задача этапа определения требований
выяснить, обсудить и зафиксировать, что действительно требуется от системы в форме, понятной и клиентам и членам команды разработчиков.

Слайд 65

Анализ и проектирование

Этап анализа (analysis) состоит в исследовании требований и решаемой проблемы
Различают:
Анализ

Анализ и проектирование Этап анализа (analysis) состоит в исследовании требований и решаемой
требований (requirements analysis) – исследование требований к системе
Объектный анализ (object analysis) – исследование объектов предметной области
В процессе проектирования (design) основное внимание уделяется концептуальному решению, обеспечивающему выполнение основных требований
Например, на этапе проектирования описываются программные объекты или схема базы данных

Слайд 66

Итеративный процесс формулирования требований

Разработка требований состоит из выявления, анализа, документирования и проверки

Выявление:

Итеративный процесс формулирования требований Разработка требований состоит из выявления, анализа, документирования и
задавать клиентам вопросы, слушать их ответы и наблюдать, что они делают
Анализ: классифицировать информацию по категориям, связать потребности клиентов с возможными программными требованиями
Спецификация: структурировать информацию
от пользователей и выведенные требования в виде письменных требований-утверждений и диаграмм
Проверка: подтверждение, что «представленное» точно и полно отражает потребности, исправление ошибок

Слайд 67

Функциональные и нефункциональные требования к программному средству

Функциональные и нефункциональные требования к программному средству

Слайд 68

Бизнес-требования (business requirements) содержат высокоуровневые цели организации или заказчиков системы
Требования пользователей (user

Бизнес-требования (business requirements) содержат высокоуровневые цели организации или заказчиков системы Требования пользователей
requirements) описывают цели и задачи, которые пользователям позволит решить система
Функциональные требования (functional requirements) определяют функциональность ПО, которую разработчики должны построить, чтобы пользователи смогли выполнить свои задачи в рамках бизнес-требований
Системные требования (system requirements) определяют высокоуровневые требования к продукту, которые содержат многие подсистемы
Бизнес-правила (business rules) включают корпоративные политики, правительственные постановления, промышленные стандарты и вычислительные алгоритмы
Атрибуты качества (quality attributes) представляют собой дополнительное описание функций продукта, выраженное через описание его характеристик, важных для пользователей или разработчиков

Слайд 69

Пользовательские истории (User story)

Пользовательские истории составляются в свободной форме, в виде

Пользовательские истории (User story) Пользовательские истории составляются в свободной форме, в виде
историй или некоторых сценариев использования системы
Каждая история имеет условного рассказчика (автора) истории, повествующего о наиболее значимых для исполнения требований к проектируемой программной системе
Эти истории являются основой для формулирования функциональных требований
Могут быть использованы в дальнейшем для создания приемочных тестов (критериев) при оценивании качества ПО

Как писать User Story

Как писать качественные пользовательские истории

techtarget.com/ user-story

Пользовательские истории - примеры и шаблоны

Слайд 70

Пользовательские истории (User story)

Пользовательские истории включают:
Контекст
“находясь в окне … приложения…”
Событие
“при выполнении

Пользовательские истории (User story) Пользовательские истории включают: Контекст “находясь в окне …
….. когда делаю…..”
Результат
“получаю ответ (уведомление) системы …..”

GIVEN

WHEN

THEN

Слайд 71

Пример. Книжный интернет-магазин

Пример. Книжный интернет-магазин

Слайд 72

Представление требований

Документация, в которой используется четко структурированный и аккуратно используемый естественный

Представление требований Документация, в которой используется четко структурированный и аккуратно используемый естественный
язык
Графические модели, иллюстрирующие процессы преобразования, состояния системы и их изменения, отношения данных, логические потоки и т. п.
Формальные спецификации, где требования определены с помощью математически точных, формальных логических языков

Слайд 73

Рамки решения и рамки проекта

Требования к системе («рамки решения») и соответствующие им

Рамки решения и рамки проекта Требования к системе («рамки решения») и соответствующие
задачи разработчика («рамки проекта») требования сводят в таблицу

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

Слайд 74

Пользовательские интерфейсы и спецификация требований

Вопрос: включать описание элементов пользовательского интерфейса в спецификацию?
Однозначного

Пользовательские интерфейсы и спецификация требований Вопрос: включать описание элементов пользовательского интерфейса в
ответа нет!
Изображения и архитектура пользовательского интерфейса отображают дизайн, а не требования.
Если у пользователей продукта есть ожидания насчет того, как должны выглядеть и вести себя те или иные части продукта, то можно включить описание UI в спецификацию

Слайд 75

Как оценить качество требований?

Полнота. Каждое требование должно содержать всю информацию, необходимую разработчику,

Как оценить качество требований? Полнота. Каждое требование должно содержать всю информацию, необходимую
чтобы реализовать его
Корректность. Каждое требование должно точно описывать возможность, которая будет удовлетворять какую-то потребность заинтересованного лица и четко определять функциональность, которую надо построить
Осуществимость. Необходима возможность реализовать каждое требование при известных возможностях и ограничениях системы и рабочей среды, а также в рамках временных, бюджетных и ресурсных ограничений проекта.

Слайд 76

Как оценить качество требований?

Необходимость. Каждое требование должно отражать возможность, которая действительно предоставит

Как оценить качество требований? Необходимость. Каждое требование должно отражать возможность, которая действительно
заинтересованным лицам ожидаемую бизнес-пользу, выделит продукт на рынке или необходима для соблюдения внешних стандартов, политик или правил.
Назначение приоритетов. Определяйте приоритеты требований на основании важности для получения требуемой пользы.
Недвусмысленность. Читатели должны понимать, о чем идет речь в требовании.

Слайд 77

Общий шаблон формулировки требований

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

Общий шаблон формулировки требований С точки зрения системы: [необязательное предварительное условие] [необязательный
система должна [ожидаемая реакция системы]
Пример (без триггера).
«Если запрошенный материал есть на складе, система должна отобразить список всех хранимых на складе контейнеров с указанным материалом»
Можно фразу «система должна» не указывать, если удаление фразы не изменит смысла требования

Слайд 78

Общий шаблон формулировки требований

С точки зрения пользователя:
[класс пользователя или имя действующего лица]

Общий шаблон формулировки требований С точки зрения пользователя: [класс пользователя или имя
должен иметь возможность [выполнить что-то] [с каким-то объектом] [условия выполнения, время отклика или декларация качества]
Пример.
«Менеджер должен иметь возможность повторно заказать любой материал, который он ранее заказывал, путем извлечения и редактирования параметров ранее введенного заказа»
В требовании рекомендуется использовать название класса пользователя – Менеджер, а не общий термин «пользователь» (явная формулировка максимально снижает вероятность неверного истолкования)

Слайд 79

Общие рекомендации по формулировке требований

Избегайте смешения активного и пассивного залогов в попытке

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

Слайд 80

Стандартизация проектирования ПО

ГОСТ 19.ххх-хх Единая система программной документации
ГОСТ 34.601-90 - распространяется на

Стандартизация проектирования ПО ГОСТ 19.ххх-хх Единая система программной документации ГОСТ 34.601-90 -
автоматизированные системы и устанавливает стадии и этапы их создания
ISO/IEC 12207 - стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного ПО
Custom Development Method (методика Oracle) по разработке прикладных информационных систем
Rational Unified Process (RUP)
Microsoft Solution Framework (MSF)
Программная инженерия Google

Слайд 81

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

Жизненный цикл - это непрерывный процесс, который начинается

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

с момента принятия решения о необходимости его создания
и заканчивается в момент его полного изъятия из эксплуатации.

Слайд 82

Структура ЖЦ ПО

Жизненный цикл ПО базируется на трех группах процессов:
основные процессы
реализуются

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

Слайд 83

Модель жизненного цикла

ГОСТ Р ИСО/МЭК 15288 — 2005 Информационная технология. Системная

Модель жизненного цикла ГОСТ Р ИСО/МЭК 15288 — 2005 Информационная технология. Системная
инженерия. Процессы жизненного цикла систем
Модель жизненного цикла (life cycle model): Структурная основа процессов и действий, относящихся к жизненному циклу, которая также служит в качестве общей ссылки для установления связей и взаимопонимания сторон.
Процесс (process) – совокупность взаимосвязанных и взаимодействующих видов деятельности, преобразующих входы в выходы

Слайд 84

Каскадная модель

Проектирование

Кодирование
Тестирование модулей

Интеграция тестирование

Эксплуатация
Сопровождение

Определение требований

Каскадная модель Проектирование Кодирование Тестирование модулей Интеграция тестирование Эксплуатация Сопровождение Определение требований

Слайд 85

Каскадная модель:
Фиксированный набор стадий
Каждая стадия -> законченный результат
Стадия начинается, когда закончилась предыдущая.
Недостатки:

Каскадная модель: Фиксированный набор стадий Каждая стадия -> законченный результат Стадия начинается,
негибкость
фаза д.б. закончена, прежде чем приступить к следующей
Набор фаз фиксирован
Тяжело реагировать на изменения требований
Использование: там, где требования хорошо понятны и стабильны.

Слайд 86

Итерационный подход

Часто подходы, перечисленные ранее, используется в совокупности.
Требования всегда меняются в ходе

Итерационный подход Часто подходы, перечисленные ранее, используется в совокупности. Требования всегда меняются
разработки.
К каждой из предыдущих моделей можно применить итерации.
Следовательно, важна возможность выполнения итераций, результатом которых является прототип продукта с частичной функциональностью.
Это достигается в итерационных моделях.
Модель пошаговой разработки
Спиральная модель разработки

Слайд 87

Спиральная модель

Вместо действий с обратной связью – спираль.
Каждый виток спирали соответствует 1

Спиральная модель Вместо действий с обратной связью – спираль. Каждый виток спирали
итерации.
Нет заранее фиксированных фаз. В зависимости от потребностей.
Каждый виток разбит на 4 сектора:
Определение целей
Оценка и разрешение рисков
Разработка и тестирование
Планирование
Главное отличие: акцент на анализ и преодоление рисков.
На каждом витке могут применяться разные модели процесса разработки ПО.

Слайд 88

Спиральная модель

Спиральная модель

Слайд 89

Единая система программной документации

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

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

Слайд 90

Назначение ЕСПД

В стандартах ЕСПД устанавливают требования, регламентирующие разработку, сопровождение, изготовление и эксплуатацию

Назначение ЕСПД В стандартах ЕСПД устанавливают требования, регламентирующие разработку, сопровождение, изготовление и
программ, что обеспечивает возможность:
унификации программных изделий для взаимного обмена программами и применение ранее разработанных программ в новых разработках;
снижение трудоёмкости и повышение эффективности разработки, сопровождения, изготовления и эксплуатации программных изделий;
автоматизации изготовления и хранения программной документации

Слайд 91

Состав ЕСПД

В состав ЕСПД входят:
основополагающие и организационно-методические стандарты
стандарты, определяющие формы и содержание

Состав ЕСПД В состав ЕСПД входят: основополагающие и организационно-методические стандарты стандарты, определяющие
программных документов, применяемых при обработке данных
стандарты, обеспечивающие автоматизацию разработки программных документов.

Слайд 92

Состав ЕСПД

ГОСТ 19.101-87 Виды программ и программных документов
ГОСТ 19.102-77 Стадии разработки
ГОСТ 19.201-78.

Состав ЕСПД ГОСТ 19.101-87 Виды программ и программных документов ГОСТ 19.102-77 Стадии
Техническое задание, требования к содержанию и оформлению
ГОСТ 19.202-78. Спецификация, требования к содержанию и оформлению
ГОСТ 19.401-78. Текст программы, требования к содержанию и оформлению
ГОСТ 19.402-78. Описание программы
ГОСТ 19.501-78. Формуляр, требования к содержанию и оформлению
Имя файла: 1_1_Введение-в-программирование.pptx
Количество просмотров: 40
Количество скачиваний: 0