Файл: Программа, комплекс программ, программное средство, программное обеспечение, программный продукт. Концепция программного изделия непосредственная производительная сила,.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 874
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
-
Программа, комплекс программ, программное средство, программное обеспечение, программный продукт. Концепция программного изделия: непосредственная производительная сила, промышленная технология проектирования программ, стандарты и сборочное программирование, контроль и управление качеством программ, экономика программных средств, подготовка специалистов по всем этапам жизненного цикла программ, разделение труда специалистов в проектных организациях.
а исходные данные храниться в оперативной памяти или в файлах.Программное обеспечение — наряду с аппаратными средствами, важнейшая составляющая информационных технологий, включающая компьютерные программы и данные, предназначенные для решения определённого круга задач и хранящиеся на машинных носителях.Критерии качества программного изделия. Программа является правильной, если она работает в соответствии с техническим заданием (ТЗ - документ, которым завершается постановка задачи). Программа является точной, если выдаваемые ею числовые данные имеют допустимые отклонения от аналогичных результатов, полученных с помощью идеальных математических зависимостей. Программа является совместимой, если она работает должным образом не только автономно, но и как часть программной системы.Программа является надежной, если она при всех входных данных обеспечивает полную повторяемость результатов. Программа является универсальной, если она правильно работает при любых допустимых вариантах исходных данных. В ходе разработки программ предусматриваются специальные средства защиты от ввода неправильных данных, обеспечивающие целостность системы. Программа является защищенной, если она сохраняет работоспособность при возникновении сбоев (режим реального времени, программа большого времени выполнения). Программа является полезной, если задача, которую она решает, представляет практическую ценность. Программа является эффективной, если объем требуемых для ее работы ресурсов ЭВМ не превышает допустимого предела. Программа является проверяемой, если ее качества могут быть продемонстрированы на практике (проверка правильности и универсальности). Существуют формальные математические методы проверки и неформальные (прогоны программы с остановками в контрольных точках, обсуждение результатов заинтересованными пользователями). Программа является адаптируемой, если она допускает быструю модификацию с целью приспособления к изменяющимся условиям функционирования.
-
Технология программирования, основные этапы развития: «стихийное» программирование, структурное программирование, объектно-ориентированное программирование, компонентное программирование.
Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Как любая другая технология, технологияпрограммирования представляет собой набор технологических инструкций, включающих:• указание последовательности выполнения технологических операций;• перечисление условий, при которых выполняется та или иная операция;• описания самих операций, где для каждой операции определены исходные данные,результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.Кроме набора операций и их последовательности, технология также определяет способописания проектируемой системы, точнее модели, используемой на конкретном этапе разработки.Различают технологии, используемые на конкретных этапах разработки или для решенияотдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процессразработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход,определяющий совокупность методов, используемых на разных этапах разработки, илиметодологию.Основные этапы развития программирования, как науки.Первый этап - «стихийное» программирование. Этот этап охватывает период от момента появления первых вычислительных машин до середины 60-х годов XX в. В этот периодпрактически отсутствовали сформулированные технологии, и программирование фактически былоискусством. Первые программы имели простейшую структуру. Они состояли из собственнопрограммы на машинном языке и обрабатываемых ею данных (рис. 1.2). Сложность программ вмашинных кодах ограничивалась способностью программиста одновременно мысленноотслеживать последовательность выполняемых операций и местонахождение данных припрограммировании.Появление ассемблеров позволило вместо двоичных или 16-ричных кодов использоватьсимволические имена данных и мнемоники кодов операций. В результате программы стали более«читаемыми».Создание языков программирования высокого уровня, таких, как FORTRAN и ALGOL,существенно упростило программирование вычислений, снизив уровень детализации операций.
Это, в свою очередь, позволило увеличить сложность программ.Революционным было появление в языках средств, позволяющих оперировать подпрограммами.Подпрограммы можно было сохранять и использовать в других программах. В результате былисозданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобностивызывались из разрабатываемой программы.Типичная программа того времени состояла из основной программы, области глобальныхданных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данныхили их части.Слабым местом такой архитектуры было то, что при увеличении количества подпрограммвозрастала вероятность искажения части глобальных данных какой-либо подпрограммой.Например, подпрограмма поиска корней уравнения на заданном интервале по методу деленияотрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотретьвосстановления первоначального интервала, то в глобальной области окажется неверное значениеинтервала. Чтобы сократить количество таких ошибок, было предложено в подпрограммахразмещать локальные данные.Сложность разрабатываемого программного обеспечения при использовании подпрограммс локальными данными по-прежнему ограничивалась возможностью программиста отслеживатьпроцессы обработки данных, но уже на новом уровне. Однако появление средств поддержкиподпрограмм позволило осуществлять разработку программного обеспечения несколькимпрограммистам параллельно.В начале 60-х годов XX в. разразился «кризис программирования». Он выражался в том, что фирмы, взявшиеся за разработку сложного программного обеспечения, такого, как операционные системы, срывали все сроки завершения проектов. Проект устаревал раньше, чем был готов к внедрению, увеличивалась его стоимость, и в результате многие проекты так никогда и не были завершены.Объективно все это было вызвано несовершенством технологии программирования. Преждевсего стихийно использовалась разработка «снизу-вверх» - подход, при котором вначалепроектировали и реализовывали сравнительно простые подпрограммы, из которых затем пыталисьпостроить сложную программу. В отсутствии четких моделей описания подпрограмм и методов
их проектирования создание каждой подпрограммы превращалось в непростую задачу,интерфейсы подпрограмм получались сложными, и при сборке программного продуктавыявлялось большое количество ошибок согласования. Исправление таких ошибок, как правило,требовало серьезного изменения уже разработанных подпрограмм, что еще более осложняло ситуацию, так как при этом в программу часто вносились новые ошибки, которые также необходимо было исправлять. В конечном итоге процесс тестирования и отладки программ занимал более 80% времени разработки, если вообще когда-нибудь заканчивался. На повестке дня самым серьезным образом стоял вопрос разработки технологии создания сложных программных продуктов, снижающей вероятность ошибок проектирования.Анализ причин возникновения большинства ошибок позволил сформулировать новый подход к программированию, который был назван «структурным».Второй этап - структурный подход к программированию (60-70-е годы XX в.).Структурный подход к программированию представляет собой совокупность рекомендуемыхтехнологических приемов, охватывающих выполнение всех этапов разработки программногообеспечения. В основе структурного подхода лежит декомпозиция (разбиение на части) сложныхсистем с целью последующей реализации в виде отдельных небольших (до 40 - 50 операторов)подпрограмм. С появлением других принципов декомпозиции (объектного, логического и т. д.)данный способ получил название процедурной декомпозиции.В отличие от используемого ранее процедурного подхода к декомпозиции, структурныйподход требовал представления задачи в виде иерархии подзадач простейшей структуры.Проектирование, таким образом, осуществлялось «сверху вниз» и подразумевало реализациюобщей идеи, обеспечивая проработку интерфейсов подпрограмм. Одновременно вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, атакже специальный метод проектирования алгоритмов - метод пошаговой детализации.Поддержка принципов структурного программирования была заложена в основу такназываемых процедурных языков программирования. Как правило, они включали основные«структурные» операторы передачи управления, поддерживали вложение подпрограмм,локализацию и ограничение области «видимости» данных. Среди наиболее известных языков этой