
- •Основные этапы решения задач на эвм
- •Критерии качества программы
- •Постановка задачи и спецификация программы
- •Способы записи алгоритмов
- •Программа на языке высокого уровня.
- •Стандартные типы данных
- •Представление основных структур программирования: итерация, ветвление и процедуры в различ языках программирования.
- •Программирование рекурсивных алгоритмов
- •Способы конструирования программ
- •Модульность в языках программирования
- •Формальные методы доказательства правильности программ и их спецификаций.
- •Классификация программных продуктов
- •Процесс производства
- •Процедурное, логическое, функциональное и объектно ориентированное программирование
- •Методы технология и инструментальные средства программирования
- •Тестирование и отладка программ
- •Документирование программных средств
- •Проектирование программного обеспечения
- •Абстрактные структуры данных
- •Технологический цикл разработки программных систем
- •Коллективная работы по созданию программ
- •Разработка и инструментальные средства поддержки по
- •Система автоматизированного проектирования
Модульность в языках программирования
Модульность в языках программирования — принцип, согласно которому программное средство (ПС, программа, библиотека, веб-приложение и др.) разделяется на отдельные именованные сущности, называемые модулями. Модульность часто является средством упрощения задачи проектирования ПС и распределения процесса разработки ПС между группами разработчиков. При разбиении ПС на модули для каждого модуля указывается реализуемая им функциональность, а также связи с другими модулями.
Роль модулей могут играть структуры данных, библиотеки функций, классы, сервисы и др. программные единицы, реализующие некоторую функциональность и предоставляющие интерфейс к ней.
[править]Модульность программного кода
Программный код часто разбивается на несколько файлов, каждый из которых компилируется отдельно от остальных. Такая модульность программного кода позволяет значительно уменьшить время перекомпиляции при изменениях, вносимых лишь в небольшое количество исходных файлов, и упрощает групповую разработку. Также это возможность замены отдельных компонентов (таких как jar-файлы, so или dll библиотеки) конечного программного продукта, без необходимости пересборки всего проекта (например, разработка плагинов к уже готовой программе).
Стандартом написания модульных программ является объектно-ориентированное программирование. ООП обеспечивает наиболее высокую степень модульности по сравнению с остальными парадигмами благодаря таким свойствам, как инкапсуляция, полиморфизм и позднее связывание.
Формальные методы доказательства правильности программ и их спецификаций.
Традиционные методы анализа ПО связаны с доказательством правильности программ (верификация программ). Начало этому направлению было положено работами П. Наура и Р. Флойда, в которых указана возможность доказательства частичной правильности программы (то есть соответствия друг другу ее предусловия и постусловия).
Формальные методы указывают способ рассуждения о ходе выполнения программ, дают удобную систему комментирования программ и устанавливают взаимосвязи между конструкциями языков программирования и их семантикой.
В более широкой трактовке анализ программ подразумевает доказательство разнообразных свойств программ, позволяет исследовать изменения выходных значений программы, количество операций при выполнении программы, наличие зацикливаний, незадействованных участков программы. В некоторых частных случаях методы верификации могут применяться и для доказуемого обнаружения программных дефектов.
Методы верификации могут применяться для анализа безопасности ПО с существующими ограничениями на размеры и сложности создаваемых программ.
Классификация программных продуктов
Программные продукты можно классифицировать по различным признакам. Основным признаком, по которому классифицируют все программные продукты, является сфера (область) их использования. Поэтому различают следующие классы программных продуктов:
1. Системное программное обеспечение
Предназначено для выполнения различных вспомогательных функций: управление ресурсами ЭВМ; создание копий используемой информации; проверку работоспособности устройств ЭВМ; выдачу справочной информации о компьютере.
В состав системного программного обеспечения можно отнести: операционную систему; антивирусные программы; программы архивирования; программы обслуживания сети и др.
2. Пакеты прикладных программ - непосредственно обеспечивают выполнение необходимых пользователю работ.
Примеры прикладных программ: текстовые редакторы (Microsoft Word); системы машинной графики (учебные, научные, инженерные и др.); электронные таблицы (Microsoft Excel); системы управления базами данных (Microsoft Access); издательские системы; бухгалтерские программы (1С Бухгалтерия, Турбо Бухгалтер и др.); системы автоматизированного проектирования; экспертные системы; системы искусственного интеллекта (проверка орфографии, перевод, распознавание текста); браузеры; обучающие программы и др.
3. Инструментарий технологии программирования (облегчают процесс создания новых программ для ЭВМ на конкретном языке программирования).
Примеры систем программировани: Quck Basic; Turbo Basic; Visual Basic; Pascal; C++; Delphi и др.
Правовая охрана программ и данных введена в РФ Законом «О правовой охране программ для электронных вычислительных машин и баз данных» 20 октября 1992 года.
Предоставляемая настоящим законом правовая охрана распространяется на все виды программ для компьютеров. Для признания и реализации авторского права на компьютерную программу не требуется ее регистрации в какой-либо организации. Авторское право на компьютерную программу возникает автоматически при ее создании.