Программа (program, routine) — упорядоченная последовательность команд (инструкций) компьютера или операторов для решения задачи. При эксплуатации программы выполняется некоторая работа.
Программное обеспечение (software) — совокупность программ обработки данных и необходимых для их эксплуатации документов.
Задача (problem, task) — проблема, подлежащая решению.
Приложение (application) — программная реализация задачи, решенная на компьютере.
Термин «задача» в программировании означает единицу работы вычислительной системы, требующую выделения вычислительных ресурсов (процессорного времени, памяти).
Процесс создания программ можно представить как последовательность следующих действий:
- • постановка задачи;
- • алгоритмизация решения задачи;
- • программирование.
Постановка задачи (problem definition) — это точная формулировка решения задачи на компьютере с описанием входной и выходной информации.
Алгоритм — система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.
Что такое UML за 7 минут: Диаграмма классов, последовательностей, состояний и деятельности
Программирование (programming) — теоретическая и практическая деятельность, связанная с созданием программ.
По отношению к программному обеспечению (ПО) компьютерные пользователи делятся на следующие группы:
- • системные программисты. Занимаются разработкой, эксплуатацией и сопровождением системного программного обеспечения;
- • прикладные программисты. Осуществляют разработку и отладку программ для решения различных прикладных задач;
- • конечные пользователи. Имеют элементарные навыки работы с компьютером и используемыми ими прикладными программами;
- • администраторы сети. Отвечают за работу вычислительных сетей;
- • администраторы баз данных. Обеспечивают организационную поддержку базы данных.
Сопровождение программы — поддержка работоспособности программы, переход ее на новые версии, внесения изменений, исправление ошибок и т. д.
Основные характеристики программ:
- • алгоритмическая сложность;
- • состав функций обработки информации;
- • объем файлов, используемых программой;
- • требования к операционной системе (ОС) и техническим средствам обработки, в том числе объем дисковой памяти, размер оперативной памяти для запуска программы, тип процессора, версия ОС, наличие вычислительной сети и т. д.
Программный продукт — комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции.
Программные продукты (изделия) используются для удовлетворения потребностей пользователей, широкого распространения и продажи. Программная продукция — это программа (программный комплекс, программная система), которую стремятся продать на широком рынке тысячам, миллионам пользователей. Товарное программное обеспечение разрабатывается со специальной целью удовлетворить требованиям максимально большого числа пользователей. Это оказывает влияние на весь жизненный цикл программ, но в наиболь шей степени на начальный этап разработки, на определение требований к системе.
Этапы разработки программ
Программный продукт должен быть соответствующим образом подготовлен к эксплуатации (отлажен), иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы, иметь товарный знак изготовителя, а также наличие кода государственной регистрации. Только при таких условиях программный комплекс может быть назван программным продуктом.
Утилитарные программы («программы для себя») предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные программы имеют сервисное назначение в технологии обработки данных, либо являются программами решения функциональных задач, не предназначенных для широкого распространения.
В настоящее время существуют варианты легального распространения программных продуктов, которые появились с использованием глобальных телекоммуникаций:
- • freeware — бесплатные программы, свободно распространяемые, поддерживаются самим пользователем, который правомочен вносить в них необходимые изменения;
- • shareware некоммерческие (условно-бесплатные) программы, которые могут использоваться, как правило, бесплатно.
Ряд производителей использует OEM-программы (Original Equipment Manufacturer), т. е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с компьютерами.
Технология программирования — совокупность методов и средств, применяемых в процессе разработки программного обеспечения. Или — это система методов, способов и приемов разработки и отладки программ.
На основании анализа различных формулировок (политехнический словарь, энциклопедический словарь и др.) под технологией программирования в широком смысле следует понимать технологию разработки программного средства, как совокупность абсолютно всех технологических процессов его создания — от момента зарождения идеи о данном программном средстве (ПС) до составления необходимой программной документации.
Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих:
- • указание последовательности выполнения технологических операций;
- • перечисление условий, при которых выполняется та или иная операция;
- • описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии, методы оценки и т. п. (рисунок 1.1).
Методические материалы, инструкции, нормативы и стандарты, критерии оценки результатов
Исходные данные в стандартном представлении (документы, рабочие материалы, результаты предыдущей операции)
Результаты в стандартном представлении
программные и технические средства
Рисунок 1.1- Структура описания технологической операции
Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки.
Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупность методов, используемых на разных этапах разработки, или методологию.
Чтобы разобраться в существующих технологиях программирования и определить основные тенденции их развития, целесообразно рассматривать эти технологии в историческом контексте, выделяя основные этапы развития программирования как науки.
Источник: bstudy.net
Процесс создания программного обеспечения
Возможности компьютера связаны с используемым программным обеспечением (программами). Программа – упорядоченная последовательность команд компьютера для решения задачи. Программное обеспечение – совокупность программ обработки данных и необходимых для их эксплуатации документов. Процесс создания программ можно представить как последовательность следующих действий: постановка задачи, алгоритмизация решения задачи и программирование.
Постановка задачи связана с конкретизацией основных параметров ее реализации, определением источников и структуры входной (исходные данные) и выходной (вид документов, сигналы управления) информации.
Алгоритм – система точно сформулированных правил, определяющая процесс преобразования входной информации в выходную информацию за конечное число шагов. В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий и соотношений для контроля достоверности выходных результатов. Алгоритм решения задачи имеет ряд обязательных свойств:
· дискретность – разбиение процесса обработки информации на простые этапы (шаги), выполнение которых компьютером или человеком не вызывает затруднений;
· определенность – однозначность выполнения каждого шага преобразования информации;
· выполнимость – конечность действий алгоритма решения задачи, позволяющая получить желаемый результат за конечное число шагов;
· массовость – пригодность алгоритма для решения определенного класса задач.
Программирование – теоретическая и практическая деятельность, связанная с созданием программ. Все программы можно разделить на два класса – утилитарные программы и программные продукты. Утилитарные программы («программы для себя») предназначены для удовлетворения нужд разработчиков. Чаще всего они играют роль сервиса в технологии обработки данных.
Программные продукты (изделия) предназначены для удовлетворения потребностей пользователей и представляют собой комплекс взаимосвязанных программ для решения определенной задачи массового спроса. Как правило, программные продукты требуют сопровождения, которое осуществляется фирмами-распространителями программ (дистрибьюторами), реже – фирмами-разработчиками. Сопровождение программного продукта – поддержка его работоспособности, переход на его новые версии, внесение изменений, исправление обнаруженных ошибок и т.п.
Источник: studopedia.su
Основные понятия и определения
Основной компонент ПО — программа — упорядоченная в соответствии с некоторым алгоритмом последовательность команд (инструкций) компьютера для решения задачи пользователя. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов).
Пользователь — лицо, заинтересованное в решении некоторой задачи средствами вычислительной техники. По отношению к программному обеспечению компьютерные пользователи делятся на следующие группы:
- *системные программисты, занимающиеся разработкой, эксплуатацией и сопровождением системного программного обеспечения (см. ниже);
- *прикладные программисты. Выполняют разработку и отладку программ решения задач из различных прикладных сфер деятельности пользователей;
- *конечные пользователи. Используют прикладное программное обеспечение для решения задач в своей повседневной деятельности. Различаются по уровню своей подготовки в части знания и использования компьютерной техники;
- *администраторы. Как правило, это высококвалифицированные компьютерные специалисты, отвечающие за работу вычислительной сети, баз данных, корпоративной информационной системы в целом, безопасность и защиту данных. Могут иметь определенную специализацию: управление сетевым каталогом, политикой учетных записей, политикой аудита и т.п.
Задача (problem, task) — проблема, подлежащая решению в интересах пользователя.
Термин «задача» в программировании означает единицу работы вычислительной системы, требующую выделения вычислительных ресурсов (процессорного времени, оперативной и внешней памяти, файлов и т.п.).
Приложение (application) — программная реализация решения задачи на компьютере. Приложение может состоять из одной или нескольких взаимосвязанных и взаимодействующих программ.
Принято (весьма условно) делить программы на небольшие (простые), средней сложности и большие.
Программа считается небольшой как по размерам, так и по другим признакам, если она удовлетворяет следующим признакам:
- 1. решает одну четко поставленную задачу в хорошо известных ограничениях, к тому же, не очень существенную для какой-либо практической или исследовательской деятельности;
- 2. неважно, насколько быстро она работает;
- 3. ущерб от неправильной работы программы — практически нулевой (за исключением возможности обрушения ею системы, в которой выполняются и другие, более важные задачи);
- 4. не требуется дополнять программу новыми возможностями, практически никому не нужно разрабатывать ее новые версии или исправлять найденные ошибки;
- 5. в связи со сказанным выше не очень нужно прилагать к программе подробную и понятную документацию — для человека, который ею заинтересуется, не составит большого труда понять, как ею пользоваться, просто по исходному коду.
Сложные, или большие, программы, называемые также программными системами, программными комплексами, программными продуктами, отличаются от небольших не столько по размерам (хотя обычно они значительно больше), сколько наличием дополнительных факторов. Эти факторы связаны с их востребованностью и готовностью пользователей платить деньги, как за приобретение самой программы, так и за ее сопровождение и даже за специальное обучение работе с ней.
Обычно сложная программа обладает следующими свойствами:
- 1. программа решает одну или несколько связанных задач, зачастую сначала не имеющих четкой постановки, настолько важных для каких-либо лиц или организаций, что те приобретают значимые выгоды от ее использования;
- 2. существенно, чтобы программа была удобной в использовании. В частности, она должна включать достаточно полную и понятную пользователям документацию, возможно, также специальную документацию для администраторов, а также набор документов для обучения работе с программой;
- 3. низкая производительность программы на реальных данных приводит к значимым потерям для пользователей;
- 4. неправильная работа программы наносит ощутимый ущерб пользователям и другим организациям и лицам, даже если сбои происходят не слишком часто;
- 5. для выполнения своих задач программа должна взаимодействовать с другими программами и программно-аппаратными системами и обеспечивать работу на разных платформах;
- 6. пользователи, работающие с программой, приобретают дополнительные выгоды от того, что программа развивается, в нее вносятся новые функции и устраняются ошибки. Необходимо наличие проектной документации, позволяющей развивать ее, возможно, вовсе не тем разработчикам, которые ее создавали, без больших затрат на обратную разработку (реинжиниринг);
- 7. в разработку программы вовлечено значительное количество людей (более 5-ти человек). Большую программу практически невозможно написать с первой попытки, с небольшими усилиями и в одиночку;
- 8. большая программа имеет намного большее количество ее возможных пользователей по сравнению с небольшими программами, и еще больше тех лиц, деятельность которых будет так или иначе затронута ее работой и результатами.
Примером большой программы может служить стандартная библиотека классов Java или C#, соответствующих систем программирования.
Строго говоря, ни одно из указанных свойств не является обязательным для того, чтобы программу можно было считать большой, но при наличии двух-трех из них достаточно уверенно можно утверждать, что она большая. На основании некоторых из перечисленных свойств можно сделать вывод, что большая программа или программная система чаще всего представляет собой не просто код или исполняемый файл, а включает еще и набор проектной и пользовательской документации.
Процесс создания программ можно представить как последовательность следующих действий:
- 1. постановка задачи;
- 2. алгоритмизация решения задачи;
- 3. программирование.
Постановка задачи (problem definition) — это точная формулировка требований (функциональных и нефункциональных), предъявляемых к работе программы, с описанием входной и выходной информации, и, возможно, описание подходов к решению задачи.
Алгоритм — точный набор инструкций, описывающих порядок действий исполнителя (компьютера), от допустимых исходных данных для достижения результата решения задачи за конечное время. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшими независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система.
Программирование (programming) — теоретическая и практическая деятельность, связанная с созданием программ.
Разработка программных систем (ПС), т.е. программирование, имеет ряд специфических особенностей. Прежде всего, следует отметить некоторое противостояние: неформальный характер требований к ПС (постановки задачи) и понятия ошибки в нем, но формализованный основной объект разработки — программы ПС. Тем самым разработка ПС содержит определенные этапы формализации, а переход от неформального к формальному существенно неформален.
Разработка ПС носит творческий характер (на каждом шаге приходится делать какой-либо выбор, принимать какое-либо решение), а не сводится к выполнению некоей последовательности регламентированных действий. Тем самым эта разработка ближе к процессу проектирования сложных устройств, но никак не к их массовому производству. Этот творческий характер разработки ПС сохраняется до самого ее конца.
Следует отметить также особенность продукта разработки. Он представляет собой некоторую совокупность текстов (т.е. статических объектов), смысл же (семантика) этих текстов выражается процессами обработки данных и действиями пользователей, запускающих эти процессы (т.е. является динамическим). Это предопределяет выбор разработчиком ряда специфичных приемов, методов и средств. Продукт разработки имеет и другую специфическую особенность: ПС при своем использовании (эксплуатации) не расходуется и не расходует используемых ресурсов.
Источник: studwood.net