Структура программы на языке С. Препроцессор. Директивы препроцессора

ОТВЕТЫ на ВОПРОСЫ

на экзамен по курсу

«Высокоуровневые методы информатики и программирования»

по специальности «Прикладная информатика в экономике»

2007-2008 учебный год

1. Проблемы создания программного обеспечения (определения, задачи, проблемы, описание сложности).

Создание ПО включает комплекс задач(2 группы):

1) Первостепенные задачи – моделирование сложных концептуальных структур, составляющих абстрактный программный продукт.

2) Второстепенные задачи – создание представлений этих объектов с помощью ЯП и отображение их машинные языки с учетом ограниченности по памяти и скорости.

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Сложность ПО – это не случайное свойство. Оно определятся, прежде всего, сложностью реальной предметной области, из которой исходит заказ на разработку. Разными представлениями о сущности ПО у Заказчика и Разработчика.

Сложность программных объектов существенно зависит от их размеров, поскольку никакие две части не схожи между собой(если появляются схожие, их объединяют в одну подпрограмму или модуль). В этом отношении программные системы имеют глубокое отличие от других сложных систем, например, ЭВМ и автомобилей, где повторяющиеся элементы и изобилии. Отсюда следует, что увеличение программного объекта – это не просто увеличение в размере, это увеличение числа различных элементов. В большинстве случаев эти элементы взаимодействуют между собой неким нелинейным образом, и сложность целого растёт значительно больше, чем при взаимодействии линейным образом.

Многие классические трудности разработки ПО исходят из сложности сущности и её нелинейного роста при увеличении размера. Сложность сущности служит причинами трудности управления процессом разработки ПО, понимания всех возможных состояний программы(надежности работы), развития(добавление новых модулей), неудовлетворительными способами графического описания структуры ПО.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

2. Проблемы создания программного обеспечения (определения, задачи, проблемы, концептуальная целостность).

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Назначение любой программы – облегчить использование компьютера. Отсюда основная задача разработчиков – создание иллюзии простоты, защита пользователей от сложности описываемого процесса или предмета. Простота и непосредственность исходят из концептуальной целостности, т.е. во всех частях проекта должна найти отражение единая философия и однообразные пропорции между желаемыми целями.

Эффективным способом достижения концептуальной целостности при работе над большими проектами является отделение разработки архитектуры от реализации. Упор на слово «большими» определяется тем, что большие проекты создаются большими коллективами, что оказывает существенное влияние на концептуальную целостность, ибо сколько людей столько и мнений.

Под архитектурой системы понимается полная и подробная спецификация интерфейса пользователя(должны быть перечислены все подробности, на которые необходимо обратить внимание).

Создаваемое ПО должно согласовываться с интерфейсами других программ(операционными системами, СУБД и т.п.).

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

3. Проблемы создания программного обеспечения (определения, задачи, проблемы, изменяемость)

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Программные объекты постоянно подвержены изменениям. Это относится к зданиям, компьютерам и автомобилям. Однако произведенные вещи редко подвергаются изменениям после изготовления, их заменяют новыми моделями. Модификация же ПО – обычное дело.

При этом действуют два процесса. Во-первых, как только обнаруживается польза от программного продукта(ПП), начинаются политики применения его на грани или за пределами первоначальной области. Требование расширения функции исходит от пользователей, которые удовлетворены основным назначением и изобретают для него новые применения.

Во-вторых, удачный ПП живет обычно дольше срока существования машины, для которой он первоначально создавался. Появляется новое оборудование: машины диски мониторы и другие железки, и программы должны быть согласованы с возможностями этого оборудования.

Все это заставляет разработчика создавать такие конструкции и базовые элементы, из которых можно построить элементы более высокого уровня абстракции. Поэтому программные разработки остаются очень сложным делом.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

4. Проблемы создания программного обеспечения (определения, задачи, проблемы, незримость).

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Программный продукт невидим. Геометрические абстракции являются мощным инструментом. План здания помогает архитектору и заказчику оценить пространство, возможности помещения, виды. Становятся очевидными противоречия, можно заметить упущения.

Реальность ПО не встраивается естественным образом в пространство, у него нет готового геометрического представления. Попытка географически представить структуру программы показывает, что требуется не один, а несколько неориентированных графов, наложенных один на другой. Несколько графов могут представлять управляющие потоки, потоки данных, схемы зависимостей, временных последовательностей, соотношений пространства имён. На практике одним из способов установления концептуального контроля над такой структурой является обрезание связей до тех пор, пока один или несколько факторов не станут иерархическими.

Несмотря на прогресс, достигнутый в ограничении и упрощении структур ПО, они остаются невизуализируемыми по своей природе. Этот недостаток затрудняет не только процесс проектирования, но и общение между разработчиками.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

5. Технологии программирования (определения, направления, «стихийное» программирование).

«Стихийная» технология программирования имела место с первого появления ЭВМ до середины 60-х годов прошлого века(XX).

Структура первых программ была следующей:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №1 - открытая онлайн библиотека

Архитектура программ с глобальной областью данных выглядела так:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №2 - открытая онлайн библиотека

Архитектура программы, использующей подпрограммы с локальными значениями:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №3 - открытая онлайн библиотека

Сформулированных технологий не существовало. Программы состояли из команд, данных, и писались только на двоичных кодах.

После появления Ассемблера программа стала удобочитаемой. Язык высокого уровня снижает уровень детализации программы.

Революционный шаг – появление подпрограмм. В этот период появляются библиотеки программ. При увеличении количества подпрограмм возрастает вероятность искажения глобальных данных. Для исключения таких ошибок появились локальные данные. После этого только появляются коллективы программистов. Кризис -> проект программного обеспечения устаревал раньше, чем создавался. Архитектура с локальными и глобальными данными разрабатывалась снизу вверх, все это было осложнено кривым сложным интерфейсом и кучей ошибок и нестыковок.

Программирование – это процесс составления программы или плана действия.

Программирование - дисциплина, изучающая методы и приемы составления программ для ВМ. Ни одно из этих определений не исключает другого.

6. Структурный подход к программированию (определения, направления, характеристика).

Модульное программирование.

Архитектура программы, состоящей их модулей.(рисунок потом нарисую)

Структурный подход – совокупность технологических приёмов, охватывающих выполнение всех этапов разработки ПО, и основанные на декомпозиции сложной системы.

Проектирование осуществляется сверху вниз. Появляется метод пошаговой детализации. Появляются базовые структуры алгоритмов: следование, развилка, цикл. Далее потребовалось структурирование данных. Появились пользовательские типы данных(производные). Модульное программирование ограничило использование глобальных данных. Оно предполагает выделение групп программ, использующих одни и те же глобальные данные в отдельно компилируемые модули. Связи между модулями при использовании такой технологии осуществляется через специальный интерфейс и доступ к этим программам не превышает 100 тысяч операторов. Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только тогда, когда программа выполняется в целом.

Раньше сформулированных технологий не существовало. Программы состояли из команд, данных, и писались только на двоичных кодах.

После появления Ассемблера программа стала удобочитаемой. Язык высокого уровня снижает уровень детализации программы.

Революционный шаг – появление подпрограмм. В этот период появляются библиотеки программ.

Программирование – это процесс составления программы или плана действия.

Программирование - дисциплина, изучающая методы и приемы составления программ для ВМ.

В модульном программировании программа представляет собой совокупность взаимосвязанных модулей. При этом необходимо определить модули, которые будут использоваться, и разделить программу на модули так, чтобы её данные были скрыты в этих модулях. В действительности вся эта модель переносит все основные акценты на организацию данных, а не на алгоритм, по которому они обрабатываются. Модулем(в модульном программировании) называется множество взаимосвязанных процедур вместе м данными, которые эти процедуры обрабатывают. Основной целью данного направления является скрытие данных в модулях.

Процедурный же подход может оказаться очень проблематичным для больших программных продуктов из-за того, что очень трудно или невозможно учесть все возможные глобальные имена и общие данные. В этом случае гораздо проще поручить конкретному программисту некоторую самостоятельную часть программы(модуль). Он будет отвечать за конструирование всех необходимых процедур. Коллективу разработчиков при таком подходе необходимо договориться об интерфейсе модулей. Доступ к модулю будет осуществляться только через интерфейс, что исключает случайное изменение данных и ошибки в программе.

Языком модульного программирования является Модула 2. Алгоритмический язык FPS 4.0 также поддерживает идею модульного программирования. Реализованная в языке C++ концепция классов позволяет работать с модулями.

В действительности концепции процедурного и модульного программирования дополняют друг друга.

Следующий шаг в направлении абстракции данных привел к появлению новой технологии программирования.

7. Объектный подход к программированию (определения, направления).

С середины 80-х годов до конца 90-х годов XX века

Архитектура программы при объектно-ориентированном программировании(рисунок нарисую потом)

Программирование – это процесс составления программы или плана действия.

Программирование - дисциплина, изучающая методы и приемы составления программ для ВМ.

ООП – это метод построения программ в виде множества взаимодействующих объектов. Базовыми понятиями являются объекты и классы. Объект определяется через его свойства: идентифицируемость(объект имеет имя), состояние, поведение.

Состояние объекта выражается всеми компонентами этого объекта(статическими) и текущими значениями этих компонентов(динамическими). Поведение объекта определяет как объект изменяет свои состояния и взаимодействует с другими объектами, т.е. выражает динамику объекта и его реакцию на поступающие сообщения.

Идентификация объекта – это свойство, которое позволяет отличить объект от других объектов того же или другого класса.

Класс – это множество объектов, имеющих общую структуру и общее поведение. Базовыми правилами ООП являются: определение классов, определение всех необходимых операций для каждого класса, обеспечение расширяемости(открытости) классов с использованием принципа наследования.

В отличие от процедурного, ООП представляет программы в виде набора взаимодействующих между собой объектов. Взаимодействие объектов осуществляется через сообщения.

ООП определяется как технология создания системного ПО, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса.

Основное достоинство – «более естественная декомпозиция(разбиение) программы». Данные локализуются в соответствии с объектом. Объектный подход предполагает новые способы реализации программы.

Недостатки этого подхода:

1) Фактически отсутствуют стандарты компоновки результатов компиляции объектов в единое целое, даже в пределах одного языка программирования.

2) Изменение реализации одного из программных объектов как минимум связано с перекомпоновкой соответствующего модуля.

8. Компонентный подход к программированию (определения, направления).

Активно развивался в 90-х годах XX века.

Компонентный подход(с середины 90-х годов XX века) предлагает построение ПО из отдельных компонентов – физически отдельно существующих частей ПО, которые взаимодействуют между собой через стандартные двоичные интерфейсы.

Технология COM(component object model – компонентная модель объектов) фирма Microsoft. Является развитием технологии OLE(object linking and embedding – связывание и внедрение объектов). Использовалась в ранних версиях Windows. Определяет общую парадигму программ любых типов(библиотеки, ОС, приложения).

DCOM(distributed COM – распределенная компонентная модель объектов).

OLE automation – технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса - специального интерфейса, облегчающего вызов функции объекта.

ActiveX – технология, построенная на бае OLE automation, предназначена для создания как локального, так и сетевого ПО.

MTS(Microsoft transaction server – сервер управления транзакциями) – технология, обеспечивающая безопасность и стабильную работу сетевых приложений при больших объемах передаваемых данных.

MIDAS(multitier distributed application server – сервер много задачных распределённых приложений) – технология, организующая доступ к данным разных компьютеров с учетом балансировки нагрузки сети.

Технология CORBA(Common Object Broker Architecture – общая архитектура с посредником обработки запросов объектов), разработанная группой компаний OMG(Object Management Group – группа внедрения объектной технологии программирования), реализует подход на базе объектов и интерфейсов CORBA.

Программное ядро CORBA реализовано на всех аппаратных и программных платформах. Используется в разнородной вычислительной среде. Организация взаимодействия между объектами клиента и сервера осуществляется с помощью специализированного ПО.

Программирование – это процесс составления программы или плана действия.

Программирование - дисциплина, изучающая методы и приемы составления программ для ВМ.

ОТВЕТЫ на ВОПРОСЫ

на экзамен по курсу

«Высокоуровневые методы информатики и программирования»

по специальности «Прикладная информатика в экономике»

2007-2008 учебный год

1. Проблемы создания программного обеспечения (определения, задачи, проблемы, описание сложности).

Создание ПО включает комплекс задач(2 группы):

1) Первостепенные задачи – моделирование сложных концептуальных структур, составляющих абстрактный программный продукт.

2) Второстепенные задачи – создание представлений этих объектов с помощью ЯП и отображение их машинные языки с учетом ограниченности по памяти и скорости.

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Сложность ПО – это не случайное свойство. Оно определятся, прежде всего, сложностью реальной предметной области, из которой исходит заказ на разработку. Разными представлениями о сущности ПО у Заказчика и Разработчика.

Сложность программных объектов существенно зависит от их размеров, поскольку никакие две части не схожи между собой(если появляются схожие, их объединяют в одну подпрограмму или модуль). В этом отношении программные системы имеют глубокое отличие от других сложных систем, например, ЭВМ и автомобилей, где повторяющиеся элементы и изобилии. Отсюда следует, что увеличение программного объекта – это не просто увеличение в размере, это увеличение числа различных элементов. В большинстве случаев эти элементы взаимодействуют между собой неким нелинейным образом, и сложность целого растёт значительно больше, чем при взаимодействии линейным образом.

Многие классические трудности разработки ПО исходят из сложности сущности и её нелинейного роста при увеличении размера. Сложность сущности служит причинами трудности управления процессом разработки ПО, понимания всех возможных состояний программы(надежности работы), развития(добавление новых модулей), неудовлетворительными способами графического описания структуры ПО.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

2. Проблемы создания программного обеспечения (определения, задачи, проблемы, концептуальная целостность).

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Назначение любой программы – облегчить использование компьютера. Отсюда основная задача разработчиков – создание иллюзии простоты, защита пользователей от сложности описываемого процесса или предмета. Простота и непосредственность исходят из концептуальной целостности, т.е. во всех частях проекта должна найти отражение единая философия и однообразные пропорции между желаемыми целями.

Эффективным способом достижения концептуальной целостности при работе над большими проектами является отделение разработки архитектуры от реализации. Упор на слово «большими» определяется тем, что большие проекты создаются большими коллективами, что оказывает существенное влияние на концептуальную целостность, ибо сколько людей столько и мнений.

Под архитектурой системы понимается полная и подробная спецификация интерфейса пользователя(должны быть перечислены все подробности, на которые необходимо обратить внимание).

Создаваемое ПО должно согласовываться с интерфейсами других программ(операционными системами, СУБД и т.п.).

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

3. Проблемы создания программного обеспечения (определения, задачи, проблемы, изменяемость)

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Программные объекты постоянно подвержены изменениям. Это относится к зданиям, компьютерам и автомобилям. Однако произведенные вещи редко подвергаются изменениям после изготовления, их заменяют новыми моделями. Модификация же ПО – обычное дело.

При этом действуют два процесса. Во-первых, как только обнаруживается польза от программного продукта(ПП), начинаются политики применения его на грани или за пределами первоначальной области. Требование расширения функции исходит от пользователей, которые удовлетворены основным назначением и изобретают для него новые применения.

Во-вторых, удачный ПП живет обычно дольше срока существования машины, для которой он первоначально создавался. Появляется новое оборудование: машины диски мониторы и другие железки, и программы должны быть согласованы с возможностями этого оборудования.

Все это заставляет разработчика создавать такие конструкции и базовые элементы, из которых можно построить элементы более высокого уровня абстракции. Поэтому программные разработки остаются очень сложным делом.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

4. Проблемы создания программного обеспечения (определения, задачи, проблемы, незримость).

Неотъемлемые свойства трудности современных программных систем является: сложность, согласованность, незримость, концептуальная целостность, изменчивость.

Программный продукт невидим. Геометрические абстракции являются мощным инструментом. План здания помогает архитектору и заказчику оценить пространство, возможности помещения, виды. Становятся очевидными противоречия, можно заметить упущения.

Реальность ПО не встраивается естественным образом в пространство, у него нет готового геометрического представления. Попытка географически представить структуру программы показывает, что требуется не один, а несколько неориентированных графов, наложенных один на другой. Несколько графов могут представлять управляющие потоки, потоки данных, схемы зависимостей, временных последовательностей, соотношений пространства имён. На практике одним из способов установления концептуального контроля над такой структурой является обрезание связей до тех пор, пока один или несколько факторов не станут иерархическими.

Несмотря на прогресс, достигнутый в ограничении и упрощении структур ПО, они остаются невизуализируемыми по своей природе. Этот недостаток затрудняет не только процесс проектирования, но и общение между разработчиками.

ПО(software) является необходимой составной частью любой ВМ и представляет собой совокупность программ обработки данных и программных документов, необходимых для эксплуатации этих программ.

В настоящее время для различных типов ВМ разработано огромное количество программ, которые разделяются на программы общего и прикладного назначения.

Общее ПО – совокупность управляющих и обрабатывающих программ, предназначенных для планирования и организации вычислительного процесса, автоматизации программирования и отладки прикладных программ. ПО общего назначения включает операционные системы, сервисные программы, инструментальные средства программирования.

Прикладное ПО – это часть ПО, состоящая из отдельных прикладных программ и пакетов прикладных программ, предназначенных для задач, вытекающих из специфических особенностей использования данной ВМ.

Прикладное ПО обращено к пользователям ВМ и, прежде всего, к людям, не умеющим программировать и не знающим устройство машин. Их цель заключается в том, чтобы с помощью ВМ решать свои повседневные задачи, приобретать определённые навыки или проводить свой досуг.

Прикладное ПО можно также разделить на две части: системы широкого применения, специализированное ПО(часть прикладных систем, ориентированная на автоматизацию конкретных видов деятельности).

5. Технологии программирования (определения, направления, «стихийное» программирование).

«Стихийная» технология программирования имела место с первого появления ЭВМ до середины 60-х годов прошлого века(XX).

Структура первых программ была следующей:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №1 - открытая онлайн библиотека

Архитектура программ с глобальной областью данных выглядела так:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №2 - открытая онлайн библиотека

Архитектура программы, использующей подпрограммы с локальными значениями:

Структура программы на языке С. Препроцессор. Директивы препроцессора - №3 - открытая онлайн библиотека

Сформулированных технологий не существовало. Программы состояли из команд, данных, и писались только на двоичных кодах.

После появления Ассемблера программа стала удобочитаемой. Язык высокого уровня снижает уровень детализации программы.

Революционный шаг – появление подпрограмм. В этот период появляются библиотеки программ. При увеличении количества подпрограмм возрастает вероятность искажения глобальных данных. Для исключения таких ошибок появились локальные данные. После этого только появляются коллективы программистов. Кризис -> проект программного обеспечения устаревал раньше, чем создавался. Архитектура с локальными и глобальными данными разрабатывалась снизу вверх, все это было осложнено кривым сложным интерфейсом и кучей ошибок и нестыковок.

Программирование – это процесс составления программы или плана действия.

Программирование - дисциплина, изучающая методы и приемы составления программ для ВМ. Ни одно из этих определений не исключает другого.

6. Структурный подход к программированию (определения, направления, характеристика).

Модульное программирование.

Архитектура программы, состоящей их модулей.(рисунок потом нарисую)

Структурный подход – совокупность технологических приёмов, охватывающих выполнение всех этапов разработки ПО, и основанные на декомпозиции сложной системы.

Проектирование осуществляется сверху вниз. Появляется метод пошаговой детализации. Появляются базовые структуры алгоритмов: следование, развилка, цикл. Далее потребовалось структурирование данных. Появились пользовательские типы данных(производные). Модульное программирование ограничило использование глобальных данных. Оно предполагает выделение групп программ, использующих одни и те же глобальные данные в отдельно компилируемые модули. Связи между модулями при использовании такой технологии осуществляется через специальный интерфейс и доступ к этим программам не превышает 100 тысяч операторов. Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только тогда, когда программа выполняется в целом.

Раньше сформулированных технологий не существовало. Программы состояли из команд, данных, и писались только на двоичных кодах.

После появления Ассемблера программа стала удобочитаемой. Язык высокого уровня снижает уровень детализации программы.

Революционный шаг – появление подпрограмм. В этот период появляются библиотеки программ.

Програм