Понедельник, 06 Май 2024, 17:23
Uchi.ucoz.ru
Меню сайта
Форма входа

Категории раздела
Учителю физики [224]
Учителю химии [112]
Учителю биологии [744]
Учителю информатики [147]
Учителю математики [110]
Учителю русского языка [250]
Учителю астрономии [437]
Учителю иностранного языка [182]
Учителю истории (открытые уроки) [151]
Учителю обществознания [53]
Учителю истории [354]
Учителю труда [14]
Учителю ОБЖ [2]
Учителю искусствоведения [0]
Изо
Учителю белорусского языка и литературы [1]
Учителю допризывной и медицинской подготовки [0]
Учителю географии [9]
Учителю МХК [1]
Учителю музыки [3]
Учителю физкультуры [15]
Учителю черчения [0]
Новости
Чего не хватает сайту?
500
Статистика
Зарегистрировано на сайте:
Всего: 51635


Онлайн всего: 6
Гостей: 6
Пользователей: 0
Яндекс.Метрика
Рейтинг@Mail.ru

Каталог статей


Главная » Статьи » По предмету » Учителю информатики

Программные средства как продукт технологии программирования.
Программа - формализованное описание процесса обработки данных. Программное средство.
Целью и сущностью программирования является описание процессов обработки данных (в дальнейшем  просто процессов). Данные (data)  это представление фактов и идей в формализо-ванном виде, пригодном для передачи и переработке в некоем процессе, а информация (informa-tion)  это смысл, который придается данным при их представлении. Обработка данных (data processing)  это выполнение систематической последовательности действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, исполь-зуемых при какой-либо обработке данных, будем называть информационной средой (data medium). Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть со-стоянием этой информационной среды. Процесс можно определить как последовательность сме-няющих друг друга состояний некоторой информационной среды.
Описать процесс  это, значит, определить последовательность состояний заданной информа-ционной среды. Если мы хотим, чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализо-ванным. Такое описание называется программой. С другой стороны, программа должна быть по-нятной и человеку, так как и при разработке программ, и при их использовании часто приходится выяснять, какой именно процесс она порождает. Поэтому программа составляется на удобном для человека формализованном языке программирования, с которого она автоматически переводится на язык соответствующего компьютера с помощью другой программы, называемой транслято-ром. Человеку (программисту), прежде чем составить программу на удобном для него языке про-граммирования, приходится проделывать большую подготовительную работу по уточнению по-становки задачи, выбору метода ее решения, выяснению специфики применения требуемой про-граммы, прояснению общей организации разрабатываемой программы и многое другое. Исполь-зование этой информации может существенно упростить задачу понимания программы челове-ком, поэтому весьма полезно ее как-то фиксировать в виде отдельных документов (часто не формализованных, рассчитанных только для восприятия человеком).
Обычно программы разрабатываются в расчете на то, чтобы ими могли пользоваться люди, не участвующие в их разработке (их называют пользователями). Для освоения программы пользова-телем помимо ее текста требуется определенная дополнительная документация. Программа или логически связанная совокупность программ на носителях данных, снабженная программной до-кументацией, называется программным средством (ПС). Программа позволяет осуществлять не-которую автоматическую обработку данных на компьютере. Программная документация позволя-ет понять, какие функции выполняет та или иная программа ПС, как подготовить исходные дан-ные и запустить требуемую программу в процесс ее выполнения, а также: что означают получае-мые результаты (или каков эффект выполнения этой программы). Кроме того, программная доку-ментация помогает разобраться в самой программе, что необходимо, например, при ее модифика-ции.

Неконструктивность понятия правильной программы.
Таким образом, можно считать, что продуктом технологии программирования является ПС, со-держащее программы, выполняющие требуемые функции. Здесь под «программой» часто пони-мают правильную программу, т.е. программу, не содержащую ошибок. Однако, понятие ошибки в программе трактуется в среде программистов неоднозначно. Согласно Г. Майерсу будем считать, что в программе имеется ошибка, если она не выполняет того, что разумно ожидать от нее пользо-вателю. «Разумное ожидание» пользователя формируется на основании документации по приме-нению этой программы. Следовательно, понятие ошибки в программе является существенно не формальным. В ПС программы и документация взаимно увязаны, образуют некоторую целост-ность. Поэтому правильнее говорить об ошибке не в программе, а в ПС в целом: будем считать, что в ПС имеется ошибка (software error), если оно не выполняет того, что разумно ожидать от не-го пользователю. В частности, разновидностью ошибки в ПС является несогласованность между программами ПС и документацией по их применению. В литературе выделяется в отдельное понятие частный случай ошибки в ПС, когда программа не соответствует своей функциональной спецификации (описанию, разрабатываемому на этапе, предшествующему непосредственному программированию). Такая ошибка в указанной работе называется дефектом программы. Однако выделение такой разновидности ошибки в отдельное понятие вряд ли оправданно, так как причи-ной ошибки может оказаться сама функциональная спецификация, а не программа.
Так как задание на ПС обычно формулируется не формально, а также из-за того, что понятия ошибки в ПС не формализовано, то нельзя доказать формальными методами (математически) пра-вильность ПС. Нельзя показать правильность ПС и тестированием, тестирование может лишь продемонстрировать наличие в ПС ошибки. Поэтому понятие правильной ПС неконструктивно в том смысле, что после окончания работы над созданием ПС мы не сможем убедиться, что достиг-ли цели.

Надежность программного средства.
Альтернативой правильного ПС является надежное ПС. Надежность (reliability) ПС  это его способность безотказно выполнять определенные функции при заданных условиях в течение за-данного периода времени с достаточно большой вероятностью. При этом под отказом в ПС по-нимают проявление в нем ошибки. Таким образом, надежное ПС не исключает наличия в нем ошибок  важно лишь, чтобы эти ошибки при практическом применении этого ПС в заданных условиях проявлялись достаточно редко. Убедиться, что ПС обладает таким свойством можно при его испытании путем тестирования, а также при практическом применении. Таким образом, фак-тически мы можем разрабатывать лишь надежные, а не правильные ПС.
ПС может обладать различной степенью надежности. Как измерять эту степень? Так же как в технике, степень надежности можно характеризовать вероятностью работы ПС без отказа в тече-ние определенного периода времени. Однако в силу специфических особенностей ПС определе-ние этой вероятности наталкивается на ряд трудностей по сравнению с решением этой задачи в технике.
При оценке степени надежности ПС следует также учитывать последствия каждого отказа. Не-которые ошибки в ПС могут вызывать лишь некоторые неудобства при его применении, тогда как другие ошибки могут иметь катастрофические последствия, например, угрожать человеческой жизни. Поэтому для оценки надежности ПС иногда используют дополнительные показатели, учитывающие стоимость (вред) для пользователя каждого отказа.

Технология программирования как технология разработки надежных программных средств.
В соответствии с обычным значением слова «технология» под технологией программирования (programming technology) будем понимать совокупность производственных процессов, приводя-щую к созданию требуемого ПС, а также описание этой совокупности процессов. Другими слова-ми, технологию программирования мы будем понимать здесь в широком смысле как технологию разработки программных средств, включая в нее все процессы, начиная с момента зарождения идеи этого средства, и, в частности, связанные с созданием необходимой программной документации. Каждый процесс этой совокупности базируется на использовании каких-либо методов и средств, например, компьютер (в этом случае будем говорить о компьютерной технологии программирования).
Используется в литературе и близкое к технологии программирования понятие программной инженерии, определяемой как систематический подход к разработке, эксплуатации, сопровождению и изъятию из обращения программных средств.
Главное различие между технологией программирования и программной инженерией как дис-циплинами для изучения заключается в способе рассмотрения и систематизации материала.
В технологии программирования акцент делается на изучении процессов разработки ПС (тех-нологических процессов) и порядке их прохождения  методы и инструментальные средства разра-ботки ПС используются в этих процессах (их применение и образуют технологические процессы). Тогда как в программной инженерии изучаются различные методы и инструментальные средства разработки ПС с точки зрения достижения определен¬ных целей – эти методы и средства могут использоваться в разных технологических процессах (и в разных технологиях программирова¬ния ).
Не следует также путать технологию программирования с методологией программирования. В технологии программирования методы рассматриваются «сверху»  с точки зрения организации технологических процессов, а в методологии программирования методы рассматриваются «снизу»  с точки зрения основ их построения.
Методология программирования определяется как совокупность механизмов, применяемых в процессе разработки программного обеспечения и объединенных одним общим философским подхо-дом.
Имея ввиду, что надежность является неотъемлемым атрибутом ПС, мы будем рассматривать технологию программирования как технологию разработки надежных ПС. Это означает, что
• мы будем рассматривать все процессы разработки ПС, начиная с момента возникновения за-мысла ПС;
• нас будут интересовать не только вопросы построения программных конструкций, но и вопросы описания функций и принимаемых решений с точки зрения их человеческого (неформального) восприятия;
• в качестве продукта технологии принимается надежная (далеко не всегда правильная) ПС.
Такой взгляд на технологию программирования будет существенно влиять на организацию тех-нологических процессов, на выбор в них методов и инструментальных средств.

Технология программирования и информатизация общества.
Технологии программирования играли разную роль на разных этапах развития программирова-ния. По мере повышения мощности компьютеров и развития средств и методологии программи-рования росла и сложность решаемых на компьютерах задач, что привело к повышенному внима-нию к технологии программирования. Резкое удешевление стоимости компьютеров и, в особенности, стоимости хранения информации на компьютерных носителях привело к широкому внедрению компьютеров практически во все сферы человеческой деятельности, что существенно изменило направленность технологии программирования.
 Человеческий фактор стал играть в ней решающую роль.
 Сформировалось достаточно глубокое понятие качества ПС, причем предпочтение стало отдаваться не столько эффективности ПС, сколько удобству работы с ним для пользова-телей (не говоря уже о его надежности).
 Широкое использование компьютерных сетей привело к интенсивному развитию рас-пределенных вычислений, дистанционного доступа к информации и электронного способа обмена сообщениями между людьми.
Компьютерная техника из средства решения отдельных задач все более превращается в средство информационного моделирования реального и мыслимого мира, способное просто отвечать лю-дям на интересующие их вопросы. Начинается этап глубокой и полной информатизации (компьютеризации) человеческого общества. Все это ставит перед технологией программирования новые и достаточно трудные проблемы.
Сделаем краткую характеристику развития программирования по десятилетиям.
В 50-е годы мощность компьютеров (первого поколения) была невелика, а программирование для них велось, в основном, в машинном коде. Решались, главным образом, научно-технические задачи (счет по формулам), задание на программирование содержало, как правило, достаточно точную постановку задачи. Использовалась интуитивная технология программирования: почти сразу приступали к составлению программы по заданию, при этом часто задание несколько раз изменялось (что сильно увеличивало время и без того итерационного процесса составления про-граммы), минимальная документация оформлялась уже после того, как программа начинала рабо-тать. Тем не менее, именно в этот период родилась фундаментальная для технологии программи-рования концепция модульного программирования, ориентированная на преодоления трудностей программирования в машинном коде. Появились первые языки программирования высокого уровня, из которых только ФОРТРАН пробился для использования в следующие десятилетия.
В 60-е годы можно было наблюдать бурное развитие и широкое использование языков про-граммирования высокого уровня (АЛГОЛ 60, ФОРТРАН, КОБОЛ и др.), значение которых в тех-нологии программирования явно преувеличивалась. Надежда на то, что эти языки решат все про-блемы, возникающие в процессе разработки больших программ, не оправдалась. В результате по-вышения мощности компьютеров и накопления опыта программирования на языках высокого уровня быстро росла сложность решаемых на компьютерах задач, в результате чего обнаружилась ограниченность языков, проигнорировавших модульную организацию программ. И только ФОР-ТРАН, бережно сохранивший возможность модульного программирования, гордо прошествовал в следующие десятилетия (все его ругали, но его пользователи отказаться от его услуг не могли из-за грандиозного накопления фонда программных модулей, которые с успехом использовались в новых программах). Кроме того, было понято, что важно не только то, на каком языке мы про-граммируем, но и то, как мы программируем. Это было уже началом серьезных размышлений над методологией и технологией программирования. Появление в компьютерах 2-го поколения пре-рываний привело к развитию мультипрограммирования и созданию больших программных сис-тем. Широко стала использоваться коллективная разработка, которая поставила ряд серьезных технологических проблем.
В 70-е годы получили широкое распространение информационные системы и базы данных. К середине 70-х годов стоимость хранения одного бита информации на компьютерных носителях стала меньше, чем на традиционных носителях. Это резко повысило интерес к компьютерным системам хранения данных. Началось интенсивное развитие технологии программирования, пре-жде всего, в следующих направлениях:
• обоснование и широкое внедрение нисходящей разработки и структурного програм-мирования,
• развитие абстрактных типов данных и модульного программирования (в частности, возникно-вение идеи разделения спецификации и реализации модулей и использование модулей, скрываю-щих структуры данных),
• исследование проблем обеспечения надежности и мобильности ПС,
• создание методики управления коллективной разработкой ПС,
• появление инструментальных программных средств (программных инструментов) поддержки технологии программирования.
80-е годы характеризуются широким внедрением персональных компьютеров во все сферы че-ловеческой деятельности и тем самым созданием обширного и разнообразного контингента поль-зователей ПС. Это привело к бурному развитию пользовательских интерфейсов и созданию чет-кой концепции качества ПС. Появляются языки программирования (например, Ада), учитываю-щие требования технологии программирования. Развиваются методы и языки спецификации ПС. Начинается бурный процесс стандартизации технологических процессов и, прежде всего, доку-ментации, создаваемой в этих процессах. Выходит на передовые позиции объектный подход к разработке ПС. Создаются различные инструментальные среды разработки и сопровождения ПС. Развивается концепция компьютерных сетей.
90-е годы знаменательны широким охватом всего человеческого общества международной ком-пьютерной сетью, персональные компьютеры стали подключаться к ней как терминалы. Это по-ставило ряд проблем (как технологического, так и юридического и этического характера) регули-рования доступа к информации компьютерных сетей. Остро встала проблема защиты компьютер-ной информации и передаваемых по сети сообщений. Стали бурно развиваться компьютерная технология (CASE-технология) разработки ПС и связанные с ней формальные методы специфика-ции программ. Начался решающий этап полной информатизации и компьютеризации общества.
Категория: Учителю информатики | Добавил: Wrecker (30 Июл 2012)
Просмотров: 737 | Рейтинг: 1.0/ 7 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


Для форума (BB-Code)


Прямая ссылка

Профиль
Понедельник
06 Май 2024
17:23


Вы из группы: Гости
Вы уже дней на сайте
У вас: непрочитанных сообщений
Добавить статью
Прочитать сообщения
Регистрация
Вход
Улучшенный поиск
Поиск по сайту Поиск по всему интернету
Наши партнеры
Интересное
Популярное статьи
Портфолио ученика начальной школы
УХОД ЗА ВОЛОСАМИ ОЧЕНЬ ПРОСТ — ХОЧУ Я ЭТИМ ПОДЕЛИТ...
Диктанты 2 класс
Детство Л.Н. Толстого
Библиографический обзор литературы о музыке
Авторская программа элективного курса "Практи...
Контрольная работа по теме «Углеводороды»
Поиск
Главная страница
Используются технологии uCoz