ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.07.2024
Просмотров: 1378
Скачиваний: 2
§ограничения по срокам и точности выходной информации;
§состав и форма представления выходной информации;
§источники входной информации для решения задачи;
§пользователи задачи (кто осуществляет ее решение и пользуется результатами решения). Выходная информация по задаче может быть представлена в виде документов (типа листинга или
машинограммы), сформированных кадров – видеограммы на экране монитора, файла базы данных, выходного сигнала устройству управления (рис. 8.2).
Рис. 8.2. Схема взаимосвязи входной и выходной информации для решения задачи
Входная информация по задаче определяется как данные, поступающие на вход задачи и используемые для ее решения. Входной информацией служат первичные данные документов ручного заполнения, информация, хранимая в файлах базы данных (результаты решения других задач, нормативно-справочная информация – классификаторы, кодификаторы, справочники), входные сигналы отдатчиков (см. рис. 8.2).
Обычно постановка задач выполняется в едином комплексе работ по созданию структуры внутримашинной базы данных, проектированию форм и маршрутов движения документов, изменению организации управления в рамках предметной области.
Алгоритм - система точно сформулированных правил,
определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.
Алгоритм решения задачи имеет ряд обязательных свойств:
§дискретность – разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;
§определенность алгоритма – однозначность выполнения каждого отдельного шага преобразования информации;
§выполнимость – конечность действий алгоритма решения задач, позволяющая получить желаемый результат при допустимых исходных данных за конечное число шагов;
§массовость – пригодность алгоритма для решения определенного класса задач.
Валгоритме отражаются логика и способ формирования результатов решения с указанием
необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика
применяемых методов проектирования алгоритмов и используемых при этом инструментальных средств разработки программ может повлиять на форму представления и содержание алгоритма обработки данных.
Примечание. Для решения задач могут использоваться алгоритмы,
242
заложенные в готовых программных продуктах – пакетах прикладных программ (ППП) функционального назначения (см. дальше). Также могут использоваться типовые модели и методы решения задач, представленные в методо-ориентированных ППП. В этом случае осуществляется адаптация
ППП к условиям конкретного применения, во всех остальных случаях
разрабатываются оригинальные алгоритмы и программы реализации комплекса задач.
Программирование (programming) – теоретическая и практическая деятельность, связанная с созданием программ.
Программирование является собирательным понятием и может рассматриваться и как наука, и как искусство, на этом основан научно-практический подход к разработке программ.
Программа – результат интеллектуального труда, для которого характерно творчество, а оно, как известно, не имеет четких границ. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Программирование базируется на комплексе научных дисциплин, направленных на исследование, разработку и применение методов и средств разработки программ (специализированного инструментария создания программ). При разработке программ используются ресурсоемкие и наукоемкие технологии, высококвалифицированный интеллектуальный труд.
Программирование – это развитая отрасль хозяйственной деятельности, связанная со значительными затратами материальных, трудовых и финансовых ресурсов. По данным зарубежных источников, в середине 90-х годов в мире было занято программированием до 2% трудоспособного населения.
Совокупный оборот в сфере создания программных средств достигает нескольких сот миллиардов долларов в год.
В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий программирования и их перевода на промышленную основу. Это означает:
§стандартизованность, тиражируемость и воспроизведение различными разработчиками методов программирования;
§внедрение прогрессивных инструментальных средств разработки программ;
§использование специальных методов и приемов организации работ по разработке программ.
Категории специалистов, занятых разработкой и эксплуатацией программ
Основная категория специалистов, занятых разработкой программ, – это программисты (programmer). Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности. Наиболее часто программисты делятся на системных и прикладных.
Системный программист (system / software programmer, toolsmith) занимается разработкой,
эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ, обеспечивающих реализацию функциональных задач.
Прикладной программист (application programmer) осуществляет разработку и отладку программ для решения функциональных задач.
Вусловиях создания больших по масштабам и функциям обработки программ появляется новая квалификация – программист-аналитик (programmer-analyst), который анализирует и проектирует комплекс взаимосвязанных программ для реализации функций предметной области.
Впроцессе создания программ на начальной стадии работ участвуют и специалисты – постановщики задач.
Большинство информационных систем основано на работе с базами данных (БД). Если база данных является интегрированной, обеспечивающей работу с данными многих приложений, возникает проблема организационной поддержки базы данных, которая выполняется а д м и н и с т р а т о р о м
базы данных.
243
Основным потребителем программ служит конечный пользователь (end user), который, как правило, относится к категории пользователей-непрограммистов. Конечный пользователь не является специалистом в области программирования, т. е. не владеет методами и технологией проектирования и создания программ, но имеет элементарные знания и навыки работы с вычислительной техникой. Такая
квалификационная характеристика пользователя программного обеспечения в значительной степени влияет на спецификацию требований к создаваемым программам, интерфейсам, формам машинных документов, технологии решения задач на ЭВМ.
Возможна эксплуатация программ квалифицированными программистами или специально обученными техническими работниками – o n e p a m о р а м и Э В М.
Взаимодействие специалистов различного вида, участвующих в разработке и эксплуатации программ, показано на рис. 8.3. В ряде случаев один специалист совмещает несколько видов деятельности.
Администратор базы данных и системный программист осуществляют подготовку информационных и программно-технических условий для работы программ. Пунктирные линии означают участие специалиста в качестве консультанта.
Рис. 8.3. Схема взаимодействия специалистов, связанных с созданием и эксплуатацией программ
ХАРАКТЕРИСТИКА ПРОГРАММНОГО ПРОДУКТА
Все программы по характеру использования и категориям пользователей можно разделить на два класса (рис.8.4) – утилитарные программы и программные продукты (изделия).
Рис. 8.4. Классификация программ по категориям пользователей
Утилитарные программы ("программы для себя") предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные программы выполняют роль сервиса в технологии обработки данных либо являются программами решения функциональных задач, не предназначенных для широкого распространения.
Программные продукты (изделия) предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи.
В настоящее время существуют и другие варианты легального распространения программных продуктов, которые появились с использованием глобальных или региональных телекоммуникаций:
244
§freeware – бесплатные программы, свободно распространяемые, поддерживаются самим пользователем, который правомочен вносить в них необходимые изменения;
§shareware – некоммерческие (условно-бесплатные) программы, которые могут использоваться, как правило, бесплатно. При условии регулярного использования подобных продуктов осуществляется взнос определенной суммы.
Ряд производителей использует ОЕМ-программы (Original Equipment Manufacturer), т.е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с вычислительной техникой.
Программный продукт должен быть соответствующим образом подготовлен к эксплуатации, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя, а также желательно наличие кода государственной регистрации. Только при таких условиях созданный программный комплекс может быть назван программным продуктом.
Программный продукт – комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса,
подготовленный к реализации как любой вид промышленной продукции.
Путь от "программ для себя" до программных продуктов достаточно долгий, он связан с изменениями технической и программной среды разработки и эксплуатации программ, с появлением и развитием самостоятельной отрасли – информационного бизнеса, для которой характерны разделение труда фирм – разработчиков программ, их дальнейшая специализация, формирование рынка программных средств и информационных услуг.
Программные продукты могут создаваться как:
§индивидуальная разработка под заказ;
§разработка для массового распространения среди пользователей.
При индивидуальной разработке фирма-разработчик создает оригинальный программный продукт, учитывающий специфику обработки данных для конкретного заказчика.
При разработке для массового распространения фирма-разработчик, с одной стороны, должна обеспечить универсальность выполняемых функций обработки данных, с другой стороны, гибкость и настраиваемость программного продукта на условия конкретного применения. Отличительной особенностью программных продуктов должна быть их системность - функциональная полнота и законченность реализуемых функций обработки, которые применяются в совокупности.
Программный продукт разрабатывается на основе промышленной технологии выполнения проектных работ с применением современных инструментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств. На создание программных продуктов затрачиваются значительные ресурсы – трудовые, материальные, финансовые; требуется высокая квалификация разработчиков.
Как правило, программные продукты требуют сопровождения, которое осуществляется специализированными фирмами – распространителями программ (дистрибьютерами), реже – фирмами- разработчиками. Сопровождение программ массового применения сопряжено с большими трудозатратами – исправление обнаруженных ошибок, создание новых версий программ и т.п.
Сопровождение программного продукта – поддержка работоспособности программного продукта, переход на его новые версии, внесение изменений, исправление обнаруженных ошибок и т.п.
Программные продукты в отличие от традиционных программных изделий не имеют строго регламентированного набора качественных характеристик, задаваемых при создании программ, либо эти характеристики невозможно заранее точно указать или оценить, так как одни и те же функции обработки, обеспечиваемые программным средством, могут иметь различную глубину проработки.
Даже время и затраты на разработку программных продуктов не могут быть определены с большой степенью точности заранее.
245
Основными характеристиками программ являются:
§алгоритмическая сложность (логика алгоритмов обработки информации);
§состав и глубина проработки реализованных функций обработки;
§полнота и системность функций обработки;
§объем файлов программ;
§требования к операционной системе и техническим средствам обработки со стороны программного средства;
§объем дисковой памяти;
§размер оперативной памяти для запуска программ;
§тип процессора;
§версия операционной системы;
§наличие вычислительной сети и др.
Программные продукты имеют многообразие показателей качества, которые отражают следующие аспекты:
§насколько хорошо (просто, надежно, эффективно) можно использовать программный продукт;
§насколько легко эксплуатировать программный продукт;
§можно ли использовать программный продукт при изменении условия его применения и др.
Дерево характеристик качества программных продуктов представлено на рис. 8.5.
Рис. 8.5. Дерево характеристик качества программного продукта
Мобильность программных продуктов означает их независимость от технического комплекса системы обработки данных, операционной среды, сетевой технологии обработки данных, специфики предметной области и т.п. Мобильный (многоплатформный) программный продукт может быть установлен на различных моделях компьютеров и операционных систем, без ограничений на его эксплуатацию в условиях вычислительной сети. Функции обработки такого программного продукта пригодны для массового использования без каких-либо изменений.
Надежность работы программного продукта определяется бессбойностью и устойчивостью в работе программ, точностью выполнения предписанных функций обработки, возможностью диагностики возникающих в процессе работы программ ошибок.
Эффективность программного продукта оценивается как с позиций прямого его назначения – требований пользователя, так и с точки зрения расхода вычислительных ресурсов, необходимых для его эксплуатации.
Расход вычислительных ресурсов оценивается через объем внешней памяти для размещения программ и объем оперативной памяти для запуска программ.
Учет человеческого фактора означает обеспечение дружественного интерфейса для работы конечного пользователя, наличие контекстно-зависимой подсказки или обучающей системы в составе программного средства, хорошей документации для освоения и использования заложенных в программном средстве функциональных возможностей, анализ и диагностику возникших ошибок и др.
246