Главная страница
Навигация по странице:

  • Служебное ПО

  • Инструментальное программное обеспечение

  • Преимущества : Полная и согласованная документация на каждом этапе; Легко определить сроки и затраты на проект. Недостатки

  • 1.2.

  • 1.3. Использование инкапсуляции в ООП.

  • 1.4. Использование наследования объектов в ООП.

  • 1.5. Использование полиморфизма в ООП.

  • 2. МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ. 2.1. ЛОГИЧЕСКИЕ ОПЕРАЦИИ. ТАБЛИЦЫ ИСТИННОСТИ.

  • ГОС. Программирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства


    Скачать 0.72 Mb.
    НазваниеПрограммирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства
    АнкорГОС.docx
    Дата12.07.2018
    Размер0.72 Mb.
    Формат файлаdocx
    Имя файлаГОС.docx
    ТипРешение
    #21372
    страница1 из 9
      1   2   3   4   5   6   7   8   9


    1. ПРОГРАММИРОВАНИЕ.

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

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

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

    ПО распределяется на несколько уровней. Каждый вышележащий уровень повышает функциональность системы

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

    2. Системное ПО – переходный. Программы обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением (драйверы). Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.

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

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

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

    Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера. Состав этапов зависит от задачи.

    1. Постановка задачи:

    • сбор информации о задаче;

    • формулировка условия задачи;

    • определение конечных целей решения задачи;

    • определение формы выдачи результатов;

    • описание данных (их типов, диапазонов величин, структуры и т. п.).

    1. Анализ и исследование задачи, модели:

    • анализ существующих аналогов;

    • анализ технических и программных средств;

    • разработка математической модели;

    • разработка структур данных.

    1. Разработка алгоритма:

    • выбор метода проектирования алгоритма;

    • выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

    • выбор тестов и метода тестирования;

    • проектирование алгоритма.

    1. Программирование:

    1. Тестирование и отладка:

    • синтаксическая отладка;

    • отладка семантики и логической структуры;

    • тестовые расчеты и анализ результатов тестирования;

    • совершенствование программы.

    1. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

    2. Сопровождение программы:

    • доработка программы для решения конкретных задач;

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

    ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО

    1. каскадная модель (70-85 г.г.);

    2. спиральная модель (86-90 г.г.).

    Каскадная модель.

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

    Преимущества:

    • Полная и согласованная документация на каждом этапе;

    • Легко определить сроки и затраты на проект.

    Недостатки:


    Спиральная модель.



    Цель – быстрее показать пользователю работоспособный продукт.

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

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

    На каждой итерации оцениваются:

    • риск превышения сроков и стоимости проекта;

    • необходимость выполнения ещё одной итерации;

    • степень полноты и точности понимания требований к системе;

    • целесообразность прекращения проекта.

    1.2. Характеристика объектно-ориентированного программирования.

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

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


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

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

    Класс — это тип, описывающий устройство объектов. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

    Четыре кита ООП.

    1. Абстрагирование – это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция – это набор всех таких характеристик.

    2. Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

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

    4. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.


    1.3. Использование инкапсуляции в ООП.

    Инкапсуляция(лат. incapsula, в коробочке) в объектно-ориентированном программировании - сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.

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

    Реализация в Delphi.

    В Delphi для создания скрытых полей или методов их достаточно объявить в секции private.

    TMyClass = class

    private

    FMyField: Integer;

    procedureSetMyField(const Value: Integer);

    functionGetMyField: Integer;

    protected

    public

    propertyMyField: Integer read GetMyField write SetMyField;

    end;

    Для создания интерфейса доступа к скрытым полям в Delphi введены свойства

    Private.Данные, описанные в этом разделе, могут обрабатываться только путём вызова методов внутри класса. За пределами класса все его частные элементы неизвестны и считаются несуществующими.

    Public. Данные доступны для всех классов.

    Proteced. Данные доступны только для потомков класса.
    1.4. Использование наследования объектов в ООП.

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

    Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса.

    Типы наследования:

    1. Простое наследование.

    Класс, от которого произошло наследование, называется базовым или родительским (англ. baseclass). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derivedclass).

    В некоторых языках используются абстрактные классы. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вуза», от которого наследуются классы «аспирант», «профессор» и т. д.

    1. Множественное наследование.

    При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости. Множественное наследование реализовано в C++.

    Множественное наследование — потенциальный источник ошибок, которые могут возникнуть из-за наличия одинаковых имен методов в предках. В языках, которые позиционируются как наследники C++ (Java, C# и др.), от множественного наследования было решено отказаться в пользу интерфейсов.

    В ряде языков программирования все классы явно или неявно наследуются от некого базового класса. Smalltalk был одним из первых языков, в которых использовалась эта концепция. К таким языкам относятся Java (java.lang.Object), C# (System.Object), Delphi (TObject) и др.
    1.5. Использование полиморфизма в ООП.

    Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию.

    Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

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

    Примером полиморфизма является различная реализация методов отображения геометрических фигур на экране, различная реализация методов чтения\записи в классах-потоках, и др.

    Виды полиморфизма.

    1. Полиморфизм переопределения. При наследовании дочерний объект переопределяет метод или атрибут родителя.

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

    // Перегрузка

    int max(int num_1,int num 2);

    double max(double num_1,double num 2);

    int max (double num_1,double num 2);

    {

    If (num_1>num_2)

    Return num_1;

    Else Return num_2;

    }

    double max (double num_1,double num 2);

    {

    If (num_1>num_2)

    Return num_1;

    Else Return num_2;

    }

    // Шаблон

    template T max(T num_1,T num 2);

    {

    If (num_1>num_2)

    Return num_1;

    ElseReturnnum_2;

    }


    2. МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ.

    2.1. ЛОГИЧЕСКИЕ ОПЕРАЦИИ. ТАБЛИЦЫ ИСТИННОСТИ.

    Высказывание – повествовательное предложение, о котором можно сказать истинно оно или ложно (На улице идёт дождь–высказывание, какая хорошая погода – не высказывание).

    Высказывания А и В равносильны тогда и только тогда, когда истинностные значения А и В совпадают ().

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

    Логические операции над высказываниями.

    1. Отрицание. . Не а. Унарная операция.

      a



      0

      1

      1

      0

    2. Конъюнкция. . aИb. (логическое умножение)

      a

      b



      1

      1

      1

      1

      0

      0

      0

      1

      0

      0

      0

      0

    3. Дизъюнкция. . aИЛИ b. (логическое сложение)

      a

      b



      1

      1

      1

      1

      0

      1

      0

      1

      1

      0

      0

      0

    4. Импликация. . ЕСЛИ a, ТО b. a– посылка (гипотеза), b – заключение (вывод).

      a

      b



      1

      1

      1

      1

      0

      0

      0

      1

      1

      0

      0

      1

    5. Эквиваленция. . ТОГДА И ТОЛЬКО ТОГДА

    a

    b



    1

    1

    1

    1

    0

    0

    0

    1

    0

    0

    0

    1

    Если х делится на 4, то x делится на 2.

    А: х делится на 4.

    B: х делится на 2.



    Формулы.

    1. Снятие импликации

    2. Снятие эквиваленции

    3. Переместительный (коммуникативный) закон ,

    4. Сочетательный (ассоциативный) закон ,

    5. Распределительный (дистрибутивный) закон , .

    6. Законы Де Моргана,

    7. Законы поглощения , .

    8. Законы идемпотентности , .

    9. Законы нуля и единицы , , ,

    10. Закон исключающего третьего

    11. Закон противоречия

    12. Закон двойного отрицания

      1   2   3   4   5   6   7   8   9


    написать администратору сайта