ГОС. Программирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства
Скачать 0.72 Mb.
|
1. ПРОГРАММИРОВАНИЕ. 1.1. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства Программа - упорядоченная последовательность команд компьютера для решения задачи. Программное обеспечение (sowtware) – совокупность программ обработки информации и документов, необходимых для их эксплуатации. Программное обеспечение принято по назначению подразделять на базовое, системное, прикладное и инструментальное. ПО распределяется на несколько уровней. Каждый вышележащий уровень повышает функциональность системы
Инструментальное программное обеспечение — программное обеспечение, предназначенное для проектирования, разработки и сопровождения программ. В данную группу ПО можно отнести отладчики, компиляторы, редакторы кода, компоновщики и др. Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера. Состав этапов зависит от задачи.
ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО
Каскадная модель. Каскадная модель жизненного цикла предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков. Преимущества:
Недостатки:
Спиральная модель. Цель – быстрее показать пользователю работоспособный продукт. При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования (создания прототипов с целью проверки пригодности ПО, а также для предоставления программы заказчику на ранних стадиях разработки). Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации. На каждой итерации оцениваются:
1.2. Характеристика объектно-ориентированного программирования. В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого типа (класса), а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений. ООП позволяет вести практически независимую разработку отдельных частей (объектов) программы. Кроме этого, объектный подход предлагает новые технологические средства разработки, такие как наследование, полиморфизм, композиция, наполнение, позволяющие конструировать сложные объекты из более простых. В результате существенно увеличивается показатель повторного использования кодов, появляется возможность создания библиотек объектов для различных применений, и разработчикам предоставляются дополнительные возможности создания систем повышенной сложности. Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы. Класс — это тип, описывающий устройство объектов. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Четыре кита ООП.
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. Использование наследования объектов в ООП. Наследование — один важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса. Типы наследования:
Класс, от которого произошло наследование, называется базовым или родительским (англ. baseclass). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derivedclass). В некоторых языках используются абстрактные классы. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вуза», от которого наследуются классы «аспирант», «профессор» и т. д.
При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости. Множественное наследование реализовано в C++. Множественное наследование — потенциальный источник ошибок, которые могут возникнуть из-за наличия одинаковых имен методов в предках. В языках, которые позиционируются как наследники C++ (Java, C# и др.), от множественного наследования было решено отказаться в пользу интерфейсов. В ряде языков программирования все классы явно или неявно наследуются от некого базового класса. Smalltalk был одним из первых языков, в которых использовалась эта концепция. К таким языкам относятся Java (java.lang.Object), C# (System.Object), Delphi (TObject) и др. 1.5. Использование полиморфизма в ООП. Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Примером полиморфизма является различная реализация методов отображения геометрических фигур на экране, различная реализация методов чтения\записи в классах-потоках, и др. Виды полиморфизма.
// Перегрузка 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 { If (num_1>num_2) Return num_1; ElseReturnnum_2; } 2. МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ. 2.1. ЛОГИЧЕСКИЕ ОПЕРАЦИИ. ТАБЛИЦЫ ИСТИННОСТИ. Высказывание – повествовательное предложение, о котором можно сказать истинно оно или ложно (На улице идёт дождь–высказывание, какая хорошая погода – не высказывание). Высказывания А и В равносильны тогда и только тогда, когда истинностные значения А и В совпадают (). Таблица истинности –таблица, описывающая логическую операцию (или функцию), в ней перечислены все значения логической операции для всех возможных значений аргументов. Логические операции над высказываниями.
Если х делится на 4, то x делится на 2. А: х делится на 4. B: х делится на 2. Формулы.
|