Целью программирования является описание процессов обработки данных (в дальнейшем – просто процессов).
Данные - это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе,
информация - это смысл, который придается данным при их представлении.
Обработка данных - это выполнение систематической последовательности действий с данными.
Описать процесс – значит определить последовательность состояний заданной информационной среды. Такое описание называется программой. С другой стороны, программа должна быть понятной и человеку, так как и при разработке программ, и при их использовании часто приходится выяснять, какой именно процесс она порождает. Поэтому программа составляется на удобном для человека формализованном языке программирования, с которого она автоматически переводится на язык соответствующего компьютера с помощью другой программы, называемой транслятором. Человеку (программисту), прежде чем составить программу на удобном для него языке программирования, приходится проделывать большую подготовительную работу по уточнению постановки задачи, выбору метода ее решения, выяснению специфики применения требуемой программы, прояснению общей организации разрабатываемой программы и многое другое. Использование этой информации может существенно упростить задачу понимания программы человеком, поэтому весьма полезно ее как-то фиксировать в виде отдельных документов (часто не формализованных, рассчитанных только для восприятия человеком).
Обычно программы разрабатываются в расчете на то, чтобы ими могли пользоваться люди, не участвующие в их разработке (их называют пользователями). Для освоения программы пользователем помимо ее текста требуется определенная дополнительная документация. Программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией, называется программным средством (ПС). Программа позволяет осуществлять некоторую автоматическую обработку данных на компьютере. Программная документация позволяет понять, какие функции выполняет та или иная программа ПС, как подготовить исходные данные и запустить требуемую программу в процесс ее выполнения, а также: что означают получаемые результаты (или каков эффект выполнения этой программы).
Надежность ПС – это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. При этом под отказом в ПС понимают проявление в нем ошибки. Таким образом, надежная ПС не исключает наличия в ней ошибок – важно лишь, чтобы эти ошибки при практическом применении этого ПС в заданных условиях проявлялись достаточно редко. Убедиться, что ПС обладает таким свойством можно при его испытании путем тестирования, а также при практическом применении. Таким образом, фактически мы можем разрабатывать лишь надежные, а не правильные ПС.
Разрабатываемая ПС может обладать различной степенью надежности. Как измерять эту степень? Так же как в технике, степень надежности можно характеризовать вероятностью работы ПС без отказа в течении определенного периода времени. Однако в силу специфических особенностей ПС определение этой вероятности наталкивается на ряд трудностей по сравнению с решением этой задачи в технике. Позже мы вернемся к более обстоятельному обсуждению этого вопроса.
При оценке степени надежности ПС следует также учитывать последствия каждого отказа. Некоторые ошибки в ПС могут вызывать лишь некоторые неудобства при его применении, тогда как другие ошибки могут иметь катастрофические последствия, например, угрожать человеческой жизни. Поэтому для оценки надежности ПС иногда используют дополнительные показатели, учитывающие стоимость (вред) для пользователя каждого отказа.
Кто такой профессионал? Этим словом мы называем человека, который занимается каким-либо делом не просто как специалист, но и демонстрирует профессионализм – отличное владение своей профессией (в нашем случае – программированием). Профессионализм – это интегральная личностная характеристика человека (программиста), который:
- овладел нормами профессиональной деятельности и общения и осуществляет их на высоком уровне, добиваясь профессионального мастерства в своей области (программировании);
- следует профессиональной ценностной ориентации, соблюдая профессиональную этику;
- развивает свою личность средствами профессии;
- стремится внести творческий вклад в профессию, обогащая ее опыт;
- стремится и умеет вызвать интерес общества к результатам своей профессиональной деятельности, способствует повышению веса и престижа своей профессии в обществе, гибко учитывает новые запросы общества к ней.
Природа профессионализма такова, что чем он выше, тем он уже.
Выделим основные функции профессиональных программистов .
- Разработка систем большого объема. Профессионалы знают, что “выход за некоторую границу сложности создаваемого программного продукта без надлежащей технологии разработки вообще невозможен”.
- Создание системного и инструментального программного обеспечения, которым будут пользоваться остальные. Профессиональными программистами создается инструментальное обеспечение в большом диапазоне – от профессионального до массового.
- Разработка программного продукта с предъявлением особых требований к его качеству и эффективности. Различные требования предъявляются к программам, создаваемым только для себя, и к программам, предназначенным для большого количества пользователей. Во втором случае любая неаккуратность и малейшая небрежность может повториться многократно в работах будущих пользователей.
- Разработка программ на основе подхода открытых систем. Открытая система (open system) – система, которая состоит из компонентов, взаимодействующих друг с другом через стандартные интерфейсы. Общие свойства открытых систем таковы:
- мобильность (переносимость) кода. Мобильность дает возможность легко переносить программное обеспечение на различные архитектурные и операционные платформы;
- интероперабельность. Дает возможность легко осуществить обмен данными и взаимодействие с прикладными задачами в других системах;
- соответствие стандартам. После того как стандарт принят, он становится силой, помогающей двигаться вперед. Как это ни парадоксально, но следование канонам дает новые степени свободы в современном мире.
На наш взгляд, одни из наиболее удачных определений этих понятий принадлежат Бруксу .
Программа – завершенный продукт, пригодный для запуска своим автором на системе, на которой он был разработан.
Программный продукт – программа, которую любой человек может запускать, тестировать, исправлять и развивать. Такая программа должна быть написана в обобщенном стиле, тщательно оттестирована и сопровождена подробной документацией.
Программное средство – это программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией.
Алгоритм - точное и конечное описание того или иного общего метода, основанного на применении исполнимых элементарных тактов обработки.
Компьютер – вычислитель, он не понимает программу, а исполняет ее. Наиболее естественный способ указать компьютеру ход исполнения программы – записать ее в виде алгоритма (на алгоритмическом языке). Современное значение слова “алгоритм” во многом аналогично таким понятиям, как рецепт, процесс, метод, способ. Алгоритм имеет пять важных свойств .
- Конечность. Алгоритм всегда должен заканчиваться после выполнения конечного числа шагов.
- Определенность. Каждый шаг алгоритма должен быть точно определен.
- Наличие входных данных. Алгоритм имеет некоторое число входных данных, задающихся до начала его работы или определяющихся динамически во время его выполнения.
- Наличие выходных данных. Алгоритм имеет одно или несколько выходных данных, имеющих определенную связь с входными данными.
- Эффективность. Алгоритм обычно считается эффективном, если его операторы достаточно просты для того, чтобы их можно было точно выполнить в течение конечного промежутка времени с помощью карандаша и бумаги.
С алгоритмами связаны приведенные ниже области исследований.
Похожие записи
No user прокомментировали сообщение
Оставить комментарий