Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ПЯВУ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
933.33 Кб
Скачать

Тема 1. Основные понятия из области программирования. (6 часов)

Требования к знаниям: студент должен иметь представление о современном состоянии развития основных областей программирования, о систематизации и классификации этих областей; представлять общую структуру и назначение программного обеспечения; знать основные этапы решения задач на ЭВМ, критерии качества программы, жизненный цикл программы и рекомендации по созданию программ; владеть терминологией, сложившейся в данной предметной области.

Содержание учебного материала (дидактические единицы).

Аудиторное изучение:

Программирование как вид деятельности. Взаимосвязь программирования и других областей знания. Подразделы в программировании: теория программирования; методология и технология программирования; инженерия программирования; языки и системы программирования; операционные и архитектурные платформы. Краткая характеристика каждой группы.

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

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

Основное содержание

Программирование как вид деятельности

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

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

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

Основные определения, технология и методология программирования. Программная инженерия.

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

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

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

Программное обеспечение – программный продукт, рассматриваемый как составная часть автоматической информационной системы.

Технология программирования (англ. Programming technology) – совокупность производственных процессов, приводящих к созданию и развитию программного продукта и охватывающее все процессы его цикла.

Жизненный цикл (англ. Software life cycle) – весь цикл: от разработки до эксплуатации, начиная от выработки требований, завершая прекращением его (ПО) использования.

Этапы развития технологии программирования (принципы и методы):

Основной принцип:

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

–Необходимость документирования

Методы:

Основными методами разработки программного продукта является модульное, структурное и объектно-ориентированное программирование. Разработка программного продукта имеет вертикальные и горизонтальные измерения.

–Вертикальные: процессы, этапы (статистическое измерение)

–Горизонтальные: стадии разработки (динамическое измерение)

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

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

Технологический подход определяется конкретным сочетанием стадий и процессов разработки, ориентированных на разные классы ПО и особенности коллектива разработчиков. Например, Windows Forms – технология разработки.

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

Разработка современного сложного программного обеспечения требует участия нескольких разработчиков, в том числе географически удалённых друг от друга. Для современной технологии программирования характерно использование инструментальных средств (CASE-средств – Computer Aided Software Engineering), предназначенных для поддержки жизненного цикла. Например, Shellware – полочное программное обеспечение.

Методология программирования – (англ. Methodology programming) совокупность методов и средств, применяемых на различных стадиях программного продукта и объединённые общим подходом. Технология программирования рассматривается с точки зрения организации технологических процессов.

Методология – основы построения (методы), определяющие какие инструментальные средства и языки программирования будут использоваться при разработке программных продуктов. Например, для функционального программирования, LISP.

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

Технологии программирования:

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

–Классические технологии программирования. Применяются для средних и крупномасштабных проектов с фиксированным объёмом работ.

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