Что такое понятность в информатике определение
Понятность ПО: самый важный показатель, который вы не отслеживаете
Привет, Хабр! В OTUS открыт набор на новый поток курса «Software Architect», в связи с этим приглашаем всех желающих на онлайн день открытых дверей, в рамках которого наши эксперты подробно расскажут о программе обучения, а также ответят на ваши вопросы.
Основные идеи
Все течет, все меняется. Программирование как нельзя лучше подтверждает правильность этого изречения: разработчики ежедневно модифицируют, адаптируют, дорабатывают и даже перерабатывают свои системы.
Приложения становятся все сложнее, над ними трудятся все больше разработчиков, и поддерживать понятность программного обеспечения становится нелегко. Сложный код труднее понять и при необходимости изменить.
Понятность системы — это то ее свойство, благодаря которому инженеру не составит труда в ней разобраться. Чем понятнее система, тем проще инженерам вносить в нее изменения, которые будут вести себя предсказуемо и не сделают систему уязвимой.
Система является понятной, если она отвечает следующим критериям: завершенность, компактность, открытость и структурированность.
Со свойством понятности связано свойство наблюдаемости, однако основными характеристиками наблюдаемости являются: 1) способность предупреждать о неправильном функционировании системы и помогать выявлять причины ошибки, чтобы восстановить нормальную работу системы, и 2) способность помогать выявлять факторы, ограничивающие производительность системы, чтобы задействовать дополнительные ресурсы или сообщить о проблеме ответственным лицам.
2500 лет назад Гераклит сказал: «Все течет, все меняется». Программирование как нельзя лучше подтверждает правильность этого изречения: разработчики ежедневно модифицируют, адаптируют, дорабатывают и даже перерабатывают свои системы. Еще один аспект, который отличает разработку программного обеспечения ото всех остальных направлений деятельности, — большая свобода действий, ограниченная лишь техническими возможностями информационных систем.
Однако часто на нашем пути к реализации этого мощнейшего потенциала возникает неожиданное препятствие — ограничены наши знания о собственных разработках. Приложения становятся все сложнее, над ними трудятся все больше разработчиков, и поддерживать понятность программного обеспечения становится нелегко. В результате проекты рушатся, как Вавилонская башня.
Пример
Большинство коммерческих проектов по разработке программного обеспечения начинается не с чистого листа. Как правило, уже существует какое-то приложение, написанное на определенном языке (или языках) программирования для одной или нескольких операционных систем, в котором используется набор фреймворков и библиотек.
Самый быстрый и надежный способ выпуска приложений. Развертывание, подключение, защита и эксплуатация приложений в мультиоблачных средах и на периферии. Начните бесплатно.
Мы (или наша команда) изменяем это приложение таким образом, чтобы оно соответствовало некоторым требованиям, например разрабатываем новую возможность, устраняем существующий баг и так далее. При этом мы обязаны соблюдать все действующие (не только задокументированные) требования и, насколько это возможно, не менять существующее поведение программы.
Устроившись на работу, любой начинающий разработчик осознает, что написать фрагмент кода для решения простой задачи по информатике (или найти ответ на StackOverflow) — это совсем не то же самое, что встроить такой фрагмент в большую сложную систему.
Что такое понятность?
Посмотрим, как толкуют понятность финансисты, и на основе этого определения дадим свое: «Понятность системы — это то ее свойство, благодаря которому инженеру не составит труда в ней разобраться». Чем понятнее система, тем проще инженерам вносить в нее изменения, которые будут вести себя предсказуемо и не сделают систему уязвимой.
Опираясь на эту аналогию, можно сказать, что система является понятной, если она отвечает следующим критериям.
Завершенность. Система должна поставляться с определенным набором исходной информации (исходный код, документация и т. д.). У инженера должна быть вся важная информация о системе.
Компактность. Исходный код не должен содержать слишком много ненужной информации, в которой пользователь может захлебнуться. Здесь в дело вступают принципы разделения ответственности и абстракции, которые позволяют инженеру сосредоточиться на своей задаче.
Открытость. Это такой метод представления программы, который позволяет человеку понять ее в результате чтения кода. Огромное значение здесь имеют согласованность, соглашения о кодировании, форматирование исходного кода, комментарии к коду и подсветка синтаксиса.
Структурированность. В структурированной системе должны присутствовать перекрестные ссылки, чтобы инженеру не составляло труда найти нужную информацию. Ориентироваться в системе программистам позволяет модульность кода, документация на программное обеспечение, средства навигации по исходному коду и инструменты управления исходным кодом.
Понятность среды выполнения
С распространением модели «программное обеспечение как услуга» (SaaS) и других моделей поставки приложений многие организации предпочитают самостоятельно реализовывать полный жизненный цикл программного обеспечения.
В таких организациях понятность кода играет еще более важную роль: разработчикам необходимо отслеживать, как работает приложение и как его используют клиенты.
Поэтому у специалистов, которые занимаются этой задачей, должен быть доступ к информации о закономерностях использования системы, реальным примерам входных и выходных данных, сведениям о фактической производительности и доступности приложения.
Наблюдаемость и понятность — не одно и то же
Сейчас вы, возможно, подумали, что для этого нужно обеспечить наблюдаемость приложения и использовать средства мониторинга. К сожалению, это не так. Средства мониторинга предназначены для решения более традиционных задач в ИТ:
Предупреждение о неправильном функционировании системы и помощь в выявлении причины ошибки, чтобы восстановить нормальную работу системы.
Выявление факторов, ограничивающих производительность системы, чтобы задействовать дополнительные ресурсы или сообщить о проблеме ответственным лицам.
Ведение подробных журналов событий для обеспечения корректной эксплуатации системы, ее защиты и поддержки.
С этими проблемами ИТ-индустрия сталкивается с незапамятных времен. А поскольку их экономический эффект вполне очевиден, рынок насыщен эффективными инструментами для решения этих проблем. Однако это не те задачи, которые возложены на плечи разработчиков ПО, и эти средства никогда не предназначались для помощи в разработке.
Все эти задачи объединяет то, что сотруднику с базовыми знаниями о системе нужно получить точную информацию о сбое в каждом конкретном случае и принять необходимые меры. То есть мы собираем данные о заранее известных типах событий, в основном о взаимодействии системы с внешними факторами.
С другой стороны, разработчики ПО отлично знают внутренние механизмы системы и стараются получить больше информации о том, как она работает в реальном мире. Нужные им данные изменяются ежедневно (или даже ежечасно) в зависимости от изменений, которые они вносят в систему.
Борьба со сложностями
Программное обеспечение становится все более сложным по мере его масштабирования и модификации. Во многих случаях усложнения систем не избежать, поскольку коммерческие потребности компаний постоянно растут. Однако усложнение программ по другим причинам нежелательно. Оно связано с некачественной модификацией либо с неудачными проектными решениями и часто называется техническим долгом.
Независимо от причин, сложный код труднее понять и при необходимости изменить. Эта проблема усугубляется потерей интеллектуального потенциала в связи с текучестью кадров.
Всем, занятым в индустрии программного обеспечения, известно, что системы должны быть максимально простыми. Чем сложнее ПО, тем затратнее разработка и внедрение обновлений и ниже качество системы в целом. Уже написано много руководств по разработке приложений с минимальным уровнем сложности и эффективному масштабированию систем и команд разработчиков.
Понятность нового ПО
Многие разработчики нового программного обеспечения излишне усложняют приложения, в результате чего они становятся менее понятными. Отказавшись от сложных приемов или максимально сократив их количество, можно естественным образом обеспечить понятность кода. К счастью, для этого сейчас существует множество средств и методов разработки ПО.
В первую очередь нужно привлекать высококвалифицированных сотрудников. Талантливые разработчики, опираясь на собственный опыт, могут найти простое и элегантное решение сложной бизнес-задачи и сделать понятными исходный код и архитектуру.
Старайтесь создавать небольшие системы, насколько это возможно, — такие системы по своему характеру являются менее сложными и более понятными. Системы можно упростить «сверху»: создавайте такое ПО, которое будет отвечать ключевым потребностям бизнеса, отказавшись от дополнительных функций (по крайней мере, временно). Часто системы можно упростить и «снизу»: используйте абстракции высокого уровня, например новые языки программирования, фреймворки с расширенными возможностями и современные базы данных.
И, что не менее важно, используйте скаффолдинг при разработке сложных приложений. Пишите автоматические модульные и системные тесты, которые позволят программистам безопасно заниматься рефакторингом кода для его упрощения. Используйте качественные инструменты для мониторинга системы, дающие общее представление о ее функционировании. Автоматизируйте конвейеры интеграции и развертывания приложений, и вы сможете эффективнее их совершенствовать и быстрее поставлять релизы.
Понятность существующего ПО
Когда речь заходит о существующем программном обеспечении, мы воспринимаем неспособность программистов понять код как проклятье. Не нужно с ходу бросать все силы на упрощение приложения, это не самый эффективный подход к повышению понятности.
В большинстве случаев вам приходится иметь дело с устаревшими системами, для создания которых использовались менее продвинутые инструменты, чем те, которыми мы пользуемся сегодня, средства автоматизации и скаффолдинг в них не предусмотрены, а разработчиков уже не найти. Жалобами на технический долг, с которым вы столкнулись, и на «нечитаемый код», в котором ваши программисты никак не разберутся, вы ситуацию не исправите. Не помогут и рассуждения о долгосрочном рефакторинге и миграциях — чаще всего на разговорах дело и заканчивается.
В этих случаях просто незаменимы платформы для отладки кода в продакшне. Получив результаты глубокого анализа механизмов работы кода в реальных условиях, инженеры начнут понимать систему. А собрав по крупицам данные о работе приложения из разных сред и получив представления о сценариях его использования, они смогут постепенно распутать сложный код.
Заключение
Мы получили более широкое представление о том, насколько важно обеспечивать понятность кода при разработке ПО. С одной стороны, мы всегда знали, что код должен быть читаемым и простым в использовании, — это одна из важнейших задач разработчиков. И тем не менее сейчас становится все более очевидным, что именно это свойство кода позволяет приложениям эволюционировать.
С другой стороны, мы убедились, что повысить понятность системы (упростить ее, тщательнее поработать над проектом, написать более простой код) не всегда просто. Чаще всего мы запрыгиваем в вагон на ходу, когда взять управление в свои руки практически невозможно. Отсюда вывод, что понятность — это ключевой показатель, который необходимо отслеживать и которым надо управлять. Обеспечив понятность системы, можно добиться максимальной скорости ее доработки с максимально качественными результатами, даже если условия для этого не самые благоприятные.
Подробнее о курсе «Software Architect». Посмотреть открытый урок по теме «Мониторинг и Алертинг» можно здесь.
Учитель информатики
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
§ 1.1. Информация и её свойства
Информатика. 7 класса. Босова Л.Л. Оглавление
1.1.1. Информация и сигнал
Ключевые слова:
Информация (от лат. informatio — осведомление, разъяснение, изложение) — очень широкое понятие, имеющее множество трактовок.
В обыденной жизни под информацией понимают всякого рода сообщения, сведения о чём-либо, которые получают и передают люди. Информации содержится в речи людей, текстах книг, колонках цифр, в звуках и видах природы, в показаниях часов, термометров и других приборов. Каждый материальный объект, с которым происходят изменения, становится источником информации либо об окружающей среде, либо о происходящих в этом объекте процессах. Эту информацию мы получаем в виде сигналов — изменений физических величин (давления, температуры, цвета и др.). Различают световые, звуковые, тепловые, механические, электрические и другие типы сигналов.
Информация для человека — это содержание сигналов (сообщения), воспринимаемых человеком непосредственно или с помощью специальных устройств, расширяющее его знания об окружающем мире и протекающих в нём процессах.
Сигналы могут быть непрерывными или дискретными.
Непрерывный сигнал принимает бесконечное множество значений из некоторого диапазона. Между значениями, которые он принимает, нет разрывов.
Дискретный сигнал принимает конечное число значений. Все значения дискретного сигнала можно пронумеровать целыми числами.
Сравните лестницу и наклонную плоскость. В первом случае имеется строго определённое количество фиксированных высот, равное числу ступенек. Все их можно пронумеровать. Наклонная плоскость соответствует бесконечному количеству значений высоты.
В жизни человек чаще всего имеет дело с непрерывными сигналами. Примерами непрерывных сигналов могут служить речь человека, скорость автомобиля, температура в некоторой географической точке в течение определённого периода времени и многое другое. Примером устройства, подающего дискретные сигналы, является светофор. Сигнал светофора может быть красным, жёлтым или зелёным, т. е. принимать всего три значения.
1.1.2. Виды информации
Сигналы внешнего мира поступают в мозг человека через его органы чувств для анализа и осмысления. По способу восприятия человеком информация может быть разделена на следующие виды:
Около 80-90% информации здоровый человек получает при помощи органов зрения (визуально), примерно 8-15% — при помощи органов слуха (аудиально) и только 1-5% — при помощи остальных органов чувств (обоняния, вкуса, осязания). А вот, например, лисы, собаки и многие другие животные основную часть информации получают с помощью носа. У них хорошо развито обоняние. Для летучих мышей главная информация — звуковая. На сайте http://sc.edu.ru/ размещён электронный образовательный ресурс «Кто как видит» (135131 ) 1 который наглядно продемонстрирует вам особенности визуального восприятия информации из окружающего мира разными живыми существами. Узнать о некоторых особенностях зрительного восприятия информации человеком вам поможет виртуальная лаборатория «Оптические иллюзии» (134876).
1.1.3. Свойства информации
Информация является предметом интеллектуальной деятельности человека и продуктом этой деятельности. Учёба в школе — это специально организованный процесс передачи важнейшей информации (знаний) от предшествующих поколений подрастающему поколению.
Информация нужна человеку для того, чтобы ориентироваться в окружающей обстановке и принимать правильные решения. Но любая ли информация помогает нам в этом? Принятию правильного решения способствует владение объективной, достоверной, полной, актуальной, полезной и понятной информацией. Объективность, достоверность, полноту, актуальность, полезность и понятность называют свойствами информации. Рассмотрим их подробнее.
Информация объективна, если она не зависит от чьего-либо мнения, суждения. Объективную информацию можно получить с помощью измерительных приборов. Но, отражаясь в сознании конкретного человека, информация перестаёт быть объективной, становится субъективной, так как преобразовывается (в большей или меньшей степени) в зависимости от опыта, знаний, пристрастий конкретного человека (субъекта).
Информация достоверна, если она отражает истинное положение дел. Достоверная информация помогает нам принять правильное решение. Недостоверной информация может быть: в случае преднамеренного искажёния; в результате воздействия помех («испорченный телефон»); при приуменьшении или преувеличении значения реального факта (слухи и «рыбацкие истории», реклама и др.).
Информация полна, если её достаточно для понимания ситуации и принятия решения. Неполная информация может привести к ошибочному выводу или решению.
Информация актуальна, если она важна, существенна для настоящего времени. Только своевременно полученная информация может принести необходимую пользу. Информация неактуальна, если она является устаревшей или преждевременной.
Полезность информации оценивается по тем задачам, которые можно решить с её помощью. Оценка полезности информации всегда субъективна. То, что полезно для одного человека, может быть совершенно бесполезно для другого. Какие-либо сведения, например исторические, могут десятилетиями считаться ненужными, но в какой-то момент их полезность может резко возрасти.
Информация понятна, если она выражена на языке, доступном для получателя. Так, вы не сможете воспользоваться самой актуальной и достоверной информацией, если она будет выражена на незнакомом вам языке, т. е. вам непонятна.
В качестве примера попробуем охарактеризовать информацию, находящуюся в ваших школьных учебниках.
Самое главное.
Информация для человека — это содержание сигналов (сообщения), которые он получает из различных источников.
Сигналы могут быть непрерывными или дискретными. Непрерывный сигнал принимает бесконечное множество значений из некоторого диапазона. Дискретный сигнал принимает конечное число значений, которые можно пронумеровать.
По способу восприятия человеком выделяют такие виды информации, как: визуальная, аудиальнад, обонятельная, вкусовая, тактильная.
Объективность, достоверность, полноту, актуальность, полезность и понятность называют свойствами информации. Одна и та же информация может обладать разными свойствами для разных людей.
Вопросы и задания
1.Ознакомьтесь с материалом презентации к параграфу содержащейся в электронном приложении к учебнику. Что вы можете сказать о формах представления информации в презентации и в учебники? Какими слайдами вы могли бы дополнить презентацию?
ГИА и ЕГЭ по информатике
Блог для учеников и учителей информатики. Задания и решения ГИА
Популярные сообщения
Словарь терминов по информатике
СЛОВАРЬ ТЕРМИНОВ ПО ИНФОРМАТИКЕ
Абзац – фрагмент текста, заканчивающийся нажатием клавиши Enter.
Алгоритм – точное и понятное указание исполнителю совершить конечную последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи.
Алгоритмизация – разработка алгоритма решения задачи.
Алфавит – конечное множество объектов, называемых буквами или символами.
Аппаратный интерфейс – устройство, обеспечивающее согласование между отдельными блоками вычислительной системы.
Арифметическо-логическое устройство – часть процессора, предназначенная для выполнения арифметических и логических операций.
Архивация данныхорганизация хранения данных в удобной и легкодоступной форме, снижающей затраты на хранение и повышающей общую надежность информационного процесса.
Архитектура ЭВМ – общее описание структуры и функций ЭВМ на уровне, достаточном для понимания принципов работы и системы команд ЭВМ. Архитектура не включает в себя описание деталей технического и физического устройства компьютера.
База данных – хранящаяся во внешней памяти ЭВМ совокупность взаимосвязанных данных, организованных по определенным правилам, предусматривающим общие принципы их описания, хранения и обработки.
Базовая аппаратная конфигурация – типовой набор устройств, входящих в вычислительную систему. Включает в себя системный блок, клавиатуру, мышь и монитор.
Базовое программное обеспечение – совокупность программ, обеспечивающих взаимодействие компьютера с базовыми аппаратными средствами.
Байт – 1. восьмиразрядное двоичное число; 2. элемент памяти, позволяющий хранить восьмиразрядное двоичное число.
Буфер обмена – область оперативной памяти, к которой имеют доступ все приложения и в которую они могут записывать данные или считывать их.
Векторный редактор – графический редактор, использующий в качестве элемента изображения линию, являющуюся кривой третьего порядка. Используется, когда форма линии важнее информации о цвете.
Видеопамять – участок оперативной памяти компьютера, в котором хранится код изображения, выводимого на дисплей.
Внедрение – включение объекта в документ, созданный другим приложением.
Внешняя память – память большого объема, служащая для долговременного хранения программ и данных.
Вычислительная сеть (компьютерная сеть) – соединение двух и более компьютеров с помощью линий связи с целью объединения их ресурсов.
Базовое программное обеспечение – совокупность программ, обеспечивающих взаимодействие компьютера с базовыми аппаратными средствами.
Гибкий магнитный диск – устройство, предназначенное для переноса документов и программ с одного компьютера на другой, хранения архивных копий программ и данных, не используемых постоянно на компьютере.
Графический редактор – программа, предназначенная для создания и обработки графических изображений.
Данные – зарегистрированные сигналы.
Диаграмма – любой видов графического представления данных в электронной таблице.
Диалоговое окно – разновидностью окна, позволяющая пользователю вводить в компьютер информацию.
Диалоговый режим – режим работы операционной системы, в котором она находится в ожидании команды пользователя, получив её, приступает к исполнению, а после завершения возвращает отклик и ждёт очередной команды.
Диапазон – совокупность ячеек электронной таблицы, образующихся на пересечении группы последовательно идущих строк и столбцов.
Диспетчер файлов (файловый менеджер) – программа, выполняющая операции по обслуживанию файловой системы.
Документ Windows– любой файл, обрабатываемый с помощью приложений, работающих под управлением операционной системы Windows.
Драйвер – программа, обеспечивающая взаимодействие компьютера с внешним устройством.
Жесткий магнитный диск (ЖМД) – внешняя память компьютера, предназначенная для постоянного хранения данных, программ операционной системы и часто используемых пакетов программ.
Запрос – объект, служащий для извлечения данных из таблиц и предоставления их пользователю в удобном виде.
Интерфейс – набор правил, с помощью которых осуществляется взаимодействие элементов систем
Информатика – наука, изучающая закономерности получения, хранения, передачи и обработки информации в природе и человеческом обществе.
Информационная система – система, способная воспринимать и обрабатывать информацию.
Что такое понятность в информатике определение
Информация. Свойства информации
Информация обладает определенными свойствами. К основным свойствам информации можно отнести достоверность, объективность, полноту, актуальность, понятность и доступность (рис. 1).
Информация достоверна, если она отражает истинное положение дел. Недостоверная информация может привести к принятию неправильных решений. Например, объявление, опубликованное в сети Интернет, может содержать недостоверные сведения о характеристиках какой-либо продукции. Покупатель, который поверил такому объявлению и приобрел товар, может напрасно потратить деньги.
Информация объективна, если она не зависит от чьего-либо мнения или суждения. Объективную информацию можно получить, например, с помощью исправных измерительных приборов. Сообщение «Автомобиль двигался на большой скорости» содержит субъективную информацию. Сообщение «Автомобиль двигался со скоростью 100 км/ч» будет объективным при исправном спидометре.
Информация полна, если ее достаточно для принятия решений. Неполная информация может привести к ошибочным выводам и действиям. Например, сообщение «Температура на улице 10 градусов» без уточнения «тепла» или «мороза» может привести к неправильному выбору человеком верхней одежды.
Информация актуальна, если она необходима в настоящее время. Например, телеграмма о приезде друзей, полученная своевременно, позволит вовремя их встретить. Устаревшая, преждевременная или незначимая информация для человека является неактуальной.
Информация понятна, если она выражена на языке, понятном для человека. Например, записка на испанском языке для человека, который не знает этого языка, будет непонятна.
Информация доступна, если имеет возможность ее получения. Различные барьеры могут сделать информацию недоступной. Например, секретные документы, хранящиеся в архиве, невозможно получить людям, которым доступ к таким архивам запрещен. Поэтому для этих людей информация, содержащаяся в этих документах, будет недоступной.
Каждый человек решает для себя вопрос о полезности и важности полученной информации в зависимости от того, удовлетворяет или не удовлетворяет эта информация перечисленным свойствам. Знание основных свойств информации помогает человеку правильно оценивать получаемую информацию и принимать верное решение в каждом конкретном случае.
Человек постоянно получает информацию из окружающего мира, анализирует ее свойства, выявляет существенные закономерности и тем самым познает мир. В процессе понимания информации, ее анализа и применения на практике у человека формируются знания. Одна и та же информация может приводить к появлению разных знаний у разных людей. Сформированные знания человек использует в своей деятельности. В то же время деятельность человека, способствует постоянному пополнению его знаний об окружающем мире.
Знания людей может разделить на два вида: декларативные и процедурные (рис. 2).
Декларативные знания, по своей сути, являются утверждениями и начинаются со слов «Я знаю, что…». К этому виду относятся знания о конкретных объектах. Например, «Я знаю, что вещество, энергия и информация являются основными ресурсами современного общества», «Я знаю, что компьютер является универсальным устройством для работы с информацией».
Процедурные знания, определяют действия, которые надо выполнить для достижения поставленной цели. Они начинаются со слов «Я знаю, как…». Например, «Я знаю, как подключить принтер к системному блоку компьютера», «Я знаю, как записать алгоритм сложения двух чисел». Декларативные и процедурные знания позволяют человеку сформировать свое собственное представление о предметах, процессах и явлениях окружающего мира.
Два подхода к понятию “информация”.
Информация для человека – это сведения, которые уменьшают существующую до их получения неопределенность знания.
Под информацией, когда речь идет о технике, принято понимать все сведения, которые представлены в определенной форме для хранения, передачи и обработки с помощью технических средств, в том числе и компьютера.
Таким образом, понятие «информация» многозначно. Существуют различные подходы к пониманию информации. До сих пор не дано единого, универсального и исчерпывающего ее определения. Термин «информация» может содержать разный смысл, в зависимости от тех областей знаний, в которых он используется.