SlideShare una empresa de Scribd logo
1 de 64





5.1. Этапы решения задач на компьютерах
5.2. Структурное программирование.
Модульный принцип программирования.
Подпрограммы. Принципы проектирования
программ сверху-вниз и снизу-вверх
5.3. Объектно-ориентированное
программирование
Технологическая цепочка решения задач на
компьютере:
1.
2.
3.
4.
5.
6.

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

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





выделить предположения, на которых будет
основываться математическая модель;
определить, что считать исходными данными
и результатами;
записать математические соотношения,
связывающие результаты с исходными
данными






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

выбор языка программирования;
уточнение способов организации данных;
запись алгоритма на выбранном языке
программирования.






синтаксическая отладка;
отладка семантики и логической структуры;
тестовые расчеты и анализ результатов
тестирования;
совершенствование программы.


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



доработка программы для решения
конкретных задач;
составление документации к решенной
задаче, к математической модели, к
алгоритму, к программе, к набору тестов, к
использованию.
1.
2.
3.
4.
5.
6.

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













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

Следование
Ветвление
Повторение
Структура следование состоит из двух команд
с указанной очередностью их выполнения и
имеет вид:
<команда – предшественник>;
<команда – преемник>.



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

if <условие>
then <команда, выполняемая при выполнении
условия>
else <команда, выполняемая при невыполнении
условия>;.
if (х>y)
then у := х
else x := y;


Структура повторения (цикл) служит для
компактной записи одного и того же набора
команд, повторяемых для различных
значений параметров команд.
while <условие продолжения повторения> do
<повторяемая команда>;
или
while <условие продолжения повторения> do
begin
<повторяемая команда номер 1>;
<повторяемая команда номер 2>;
. . .
<повторяемая команда номер N>
end;.
for <переменная> := <начальное значение
переменной> to <конечное ее значение> do
<команда>;
или
for <переменная> := <начальное значение
переменной> to <конечное ее значение> do
begin
<повторяемая команда номер 1>;
<повторяемая команда номер 2>;
. . .
<повторяемая команда номер N>
end;.
Блок-схемой называют
графическое
представление
алгоритма, в котором он
изображается в виде
Последовательности
связанных между собой
функциональных блоков,
каждый из которых
соответствует
выполнению
одного или нескольких
действий.





Нисходящее
Восходящее
Модульное
Структурное


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

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

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

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

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

Модуль – это некоторый алгоритм
или некоторый его блок, имеющий
конкретное наименование, по
которому его можно выделить и
актуализировать.
= Подалгоритм
= Процедура
= Подпрограмма
5.2. СТРУКТУРНОЕ
ПРОГРАММИРОВАНИЕ
Цели и задачи структурного
программирования:
Суть структурного программирования состоит в
ряде ограничений и правил
программирования, которые обеспечивают
соответствие программы очень строгому
образцу, исключая тем самым бессистемность,
не удобочитаемость и запутанность, которые
порождают ошибки и затрудняют тестирование
и сопровождение.
5.2. СТРУКТУРНОЕ
ПРОГРАММИРОВАНИЕ
Цели и задачи структурного
программирования:
• Уменьшение трудностей тестирования
• Более высокая производительность
программистов
• Ясность и читабельность программ
• Эффективность
ТЕОРИЯ И МЕТОДЫ СТРУКТУРНОГО
ПРОГРАММИРОВАНИЯ
Три основных составляющих блока:
1.Функциональный блок.
2.Конструкция обобщенного цикла.
3.Конструкция принятия двоичного, или
дихотомического, решения.
РЕАЛИЗАЦИЯ СТРУКТУРНОГО
ПРОГРАММИРОВАНИЯ
все операции в программе должны представлять собой либо
непосредственно исполняемые в линейном порядке выражения
(например, обычные арифметические операторы), либо одну из
следующих трех управляющих конструкций:
1.Вызовы процедур, подпрограмм и функций—любое допустимое
обращение к замкнутой подпрограмме с одним входом и одним
выходом. Заметим, что подпрограммы не являются абсолютно
необходимым условием возможности реализации структурного
программирования.
2.Вложенные на произвольную глубину операторы IF-THEN-ELSE.
3.Некоторые циклические структуры. Чаще всего в таком качестве
используются конструкции DO-LOOP.
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
Модульная программа — это такая
программа, в которой любую часть
логической структуры можно изменить, не
вызывая изменений в остальных частях
программы
МОДУЛЬ ХАРАКТЕРИЗУЮТ:
•
•
•
•

один вход и один выход
функциональная завершенность
логическая независимость
слабые информационные связи с
другими программными модулями
• обозримый по размеру и сложности
программный элемент
ДОВОДЫ В ПОЛЬЗУ МОДУЛЬНОСТИ
•
•

•

Модульные программы легко составлять и отлаживать.
Функциональные компоненты такой программы могут
быть написаны и отлажены порознь.
Модульную программу легче сопровождать и
модифицировать. Функциональные компоненты могут быть
изменены, переписаны или заменены без изменений в
остальных частях.
Руководству легче управлять разработкой модульной
программы. Более сложные модули могут быть переданы
более опытным программистам; простые модули могут
быть написаны младшими программистами. Разбивая
программу на модули, которые могут быть созданы за;
один месяц, руководитель может быть уверен, что ни один
из программистов не окажется слишком перегруженным
сложными элементами программы.
ДОВОДЫ В ПОЛЬЗУ МОДУЛЬНОСТИ
•
•

•

Модульные программы легко составлять и отлаживать.
Функциональные компоненты такой программы могут
быть написаны и отлажены порознь.
Модульную программу легче сопровождать и
модифицировать. Функциональные компоненты могут быть
изменены, переписаны или заменены без изменений в
остальных частях.
Руководству легче управлять разработкой модульной
программы. Более сложные модули могут быть переданы
более опытным программистам; простые модули могут
быть написаны младшими программистами. Разбивая
программу на модули, которые могут быть созданы за;
один месяц, руководитель может быть уверен, что ни один
из программистов не окажется слишком перегруженным
сложными элементами программы.
5.3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ
парадигма программирования, в
которой основными концепциями
являются понятия объектов и
классов (либо, в менее известном
варианте языков с
прототипированием, — прототипов).


это тип, описывающий устройство
объектов. Понятие «класс»
подразумевает некоторое
поведение и способ представления.


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

Первым языком программирования, в котором
были предложены принципы объектной
ориентированности, была Симула. В момент своего
появления (в 1967 году), этот язык
программирования предложил поистине
революционные идеи: объекты, классы,
виртуальные методы и др., однако это всё не было
воспринято современниками как нечто
грандиозное. Тем не менее, большинство
концепций были развиты Аланом Кэйем и Дэном
Ингаллсом в языке Smalltalk. Именно он стал
первым широко распространённым объектноориентированным языком программирования.





Абстракция
Инкапсуляция
Наследование
Полиморфизм


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

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

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

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

Роджер Кинг аргументированно настаивал,
что его кот является объектноориентированным. Кроме прочих своих
достоинств, кот демонстрирует характерное
поведение, реагирует на сообщения,
наделён унаследованными реакциями и
управляет своим, вполне независимым,
внутренним состоянием.


По мнению Алана Кея, создателя языка
Smalltalk, которого считают одним из «отцовоснователей» ООП, объектноориентированный подход заключается в
следующем наборе основных принципов





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





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





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



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

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

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

Устойчивость и управляемость системы
обеспечивается за счёт чёткого разделения
ответственности объектов (за каждое
действие отвечает определённый объект),
однозначного определения интерфейсов
межобъектного взаимодействия и полной
изолированности внутренней структуры
объекта от внешней среды (инкапсуляции).


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




Класс представляет собой объявленный
программистом составной тип данных,
имеющий в составе:
Поля данных
Методы

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

Контроль доступа
Методы доступа
Свойства объекта
КОНТРОЛЬ ДОСТУПА
Модификаторы
public
- открытые члены класса
protected
только из
private

- члены класса, доступные
классов-потомков

- скрытые, доступные только внутри
класса


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

Свойства можно рассматривать как «умные»
поля данных, сопровождающие доступ к
внутренним данным объекта какими-либо
дополнительными действиями

например, когда изменение координаты
объекта сопровождается его перерисовкой
на новом месте


Полиморфизм реализуется путём введения в
язык правил, согласно которым переменной
типа «класс» может быть присвоен объект
любого класса-потомка её класса.
Объектно-ориентированное проектирование
состоит в описании структуры и поведения
проектируемой системы, то есть, фактически, в
ответе на два основных вопроса:
Из каких частей состоит система.
В чём состоит ответственность каждой из
частей.
проблема хрупкости базового класса

Más contenido relacionado

La actualidad más candente

TMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingTMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingIosif Itkin
 
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...Iosif Itkin
 
TMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid SystemsTMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid SystemsIosif Itkin
 
Презентация "Алгоритмы"
Презентация "Алгоритмы"Презентация "Алгоритмы"
Презентация "Алгоритмы"Johnny_Lean
 
Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPSergey Nemchinsky
 
Шаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. РефакторингШаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. РефакторингSergey Nemchinsky
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLSergey Nemchinsky
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Michael Karpov
 
Ntc imitayton productsystem
Ntc imitayton productsystemNtc imitayton productsystem
Ntc imitayton productsystemAlexander Dvorak
 
Щаблоны разработки ПО. Антипаттерны
Щаблоны разработки ПО. АнтипаттерныЩаблоны разработки ПО. Антипаттерны
Щаблоны разработки ПО. АнтипаттерныSergey Nemchinsky
 
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...Anna Toropova
 

La actualidad más candente (20)

TMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingTMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant Testing
 
Prez
PrezPrez
Prez
 
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...
TMPA-2013 Matveeva: The Specifics of Test Tools Used in Trading Systems Produ...
 
МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)
 
TMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid SystemsTMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid Systems
 
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)
 
Презентация "Алгоритмы"
Презентация "Алгоритмы"Презентация "Алгоритмы"
Презентация "Алгоритмы"
 
МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)
 
Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASP
 
Шаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. РефакторингШаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. Рефакторинг
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UML
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)
 
Tpo 06
Tpo 06Tpo 06
Tpo 06
 
Magento admin area
Magento admin areaMagento admin area
Magento admin area
 
Ntc imitayton productsystem
Ntc imitayton productsystemNtc imitayton productsystem
Ntc imitayton productsystem
 
Щаблоны разработки ПО. Антипаттерны
Щаблоны разработки ПО. АнтипаттерныЩаблоны разработки ПО. Антипаттерны
Щаблоны разработки ПО. Антипаттерны
 
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
 
Babich Presentation
Babich PresentationBabich Presentation
Babich Presentation
 

Destacado

Destacado (8)

W3 School Selenium 4.2.2013 @ W3 Group Finland, Kerava
W3 School Selenium 4.2.2013 @ W3 Group Finland, KeravaW3 School Selenium 4.2.2013 @ W3 Group Finland, Kerava
W3 School Selenium 4.2.2013 @ W3 Group Finland, Kerava
 
Basculement du monde et géopolitique du monde
Basculement du monde et géopolitique du mondeBasculement du monde et géopolitique du monde
Basculement du monde et géopolitique du monde
 
EMERGENCY EXIT
EMERGENCY EXITEMERGENCY EXIT
EMERGENCY EXIT
 
Actividad 2
Actividad 2Actividad 2
Actividad 2
 
Fibrosis quistica
Fibrosis quisticaFibrosis quistica
Fibrosis quistica
 
Homenagem ao Grupo de Gestores 2013
Homenagem ao Grupo de Gestores 2013Homenagem ao Grupo de Gestores 2013
Homenagem ao Grupo de Gestores 2013
 
MailChimp. Email LowCost
MailChimp. Email LowCostMailChimp. Email LowCost
MailChimp. Email LowCost
 
Jenis – jenis ragam bahasa
Jenis – jenis ragam bahasaJenis – jenis ragam bahasa
Jenis – jenis ragam bahasa
 

Similar a 5 Тема

"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptxssuserd0eb401
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rusMaxim Shaptala
 
Метрики кода программного обеспечения
Метрики кода программного обеспеченияМетрики кода программного обеспечения
Метрики кода программного обеспеченияTatyanazaxarova
 
метод Oracle (45)
метод Oracle (45)метод Oracle (45)
метод Oracle (45)romachka_pole
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложенийKewpaN
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...ITMO University
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptdinarium2016
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
лекция 3
лекция 3лекция 3
лекция 3cezium
 
лекция 3
лекция 3лекция 3
лекция 3cezium
 
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММITMO University
 
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ITMO University
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 

Similar a 5 Тема (20)

алгоритмы и их виды
алгоритмы и их видыалгоритмы и их виды
алгоритмы и их виды
 
алгоритмы и их виды
алгоритмы и их видыалгоритмы и их виды
алгоритмы и их виды
 
информатика лекции 4
информатика лекции 4информатика лекции 4
информатика лекции 4
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptx
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
Метрики кода программного обеспечения
Метрики кода программного обеспеченияМетрики кода программного обеспечения
Метрики кода программного обеспечения
 
метод Oracle (45)
метод Oracle (45)метод Oracle (45)
метод Oracle (45)
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
лекция 5 (2часа)
лекция 5 (2часа)лекция 5 (2часа)
лекция 5 (2часа)
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложений
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.ppt
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
лекция 3
лекция 3лекция 3
лекция 3
 
лекция 3
лекция 3лекция 3
лекция 3
 
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
 
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 

5 Тема

  • 1.    5.1. Этапы решения задач на компьютерах 5.2. Структурное программирование. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх 5.3. Объектно-ориентированное программирование
  • 2. Технологическая цепочка решения задач на компьютере: 1. 2. 3. 4. 5. 6. Постановка задачи. Моделирование (математическая формализация). Построение алгоритма. Программирование. Отладка и тестирование программы. Анализ результатов. Уточнение модели.
  • 3. включает в себя следующие моменты: сбор информации о задаче; формулировку условия задачи; определение конечных целей решения задачи; определение формы выдачи результатов; описание данных (их типов, диапазонов величин, структуры и т. п.).
  • 4.     анализ существующих аналогов; анализ технических и программных средств; разработка математической модели; разработка структур данных.
  • 5.    выделить предположения, на которых будет основываться математическая модель; определить, что считать исходными данными и результатами; записать математические соотношения, связывающие результаты с исходными данными
  • 6.     выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование алгоритма.
  • 7.    выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования.
  • 8.     синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования; совершенствование программы.
  • 9.  Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
  • 10.   доработка программы для решения конкретных задач; составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
  • 11. 1. 2. 3. 4. 5. 6. Постановка задачи. Моделирование. Построение алгоритма. Программирование. Отладка и тестирование программы. Анализ результатов. Уточнение модели.
  • 12. А лгоритм – это упорядоченная совокупность точных (формализованных) и полных команд исполнителю алгоритма (человек, ЭВМ), задающих порядок и содержание действий, которые он должен выполнить для нахождения решения любой задачи из рассматриваемого класса задач.
  • 13.         Конечность (дискретность) команд и выполняемых по ним действий алгоритма. Выполнимость в определенной операционной среде (в определенном классе исполнителей). Результативность отдельных команд и всего алгоритма. Применимость алгоритма ко всем возможным входным данным конкретного класса задач. Определенность (детерминированность) команд и всего алгоритма для всех входных данных. Формализованное, конструктивное описание (представление) команд алгоритма. Минимальная полнота системы команд алгоритм. Непротиворечивость любых команд алгоритма на любом наборе входных данных.
  • 15. Структура следование состоит из двух команд с указанной очередностью их выполнения и имеет вид: <команда – предшественник>; <команда – преемник>. 
  • 16.  Структура типа ветвления в полной форме состоит из некоторого условия, проверяемого на истинность при выполнении структуры, команды, выполняемой при выполнении проверяемого условия, и команды, выполняемой при невыполнении условия. Структура имеет вид: if <условие> then <команда, выполняемая при выполнении условия> else <команда, выполняемая при невыполнении условия>;.
  • 17. if (х>y) then у := х else x := y;
  • 18.  Структура повторения (цикл) служит для компактной записи одного и того же набора команд, повторяемых для различных значений параметров команд.
  • 19. while <условие продолжения повторения> do <повторяемая команда>; или while <условие продолжения повторения> do begin <повторяемая команда номер 1>; <повторяемая команда номер 2>; . . . <повторяемая команда номер N> end;.
  • 20. for <переменная> := <начальное значение переменной> to <конечное ее значение> do <команда>; или for <переменная> := <начальное значение переменной> to <конечное ее значение> do begin <повторяемая команда номер 1>; <повторяемая команда номер 2>; . . . <повторяемая команда номер N> end;.
  • 21. Блок-схемой называют графическое представление алгоритма, в котором он изображается в виде Последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
  • 23.  проектированием алгоритмов "сверху вниз" или методом последовательной (пошаговой) нисходящей разработки алгоритмов называется такой метод составления алгоритмов, когда исходная задача (алгоритм) разбивается на ряд вспомогательных подзадач (подалгоритмов), формулируемых и решаемых в терминах более простых и элементарных операций (процедур).
  • 24.  опираясь на некоторый, заранее определяемый корректный набор подалгоритмов, строят функционально завершенные подзадачи более общего назначения, от них переходит к более общим, и так далее, до тех пор, пока не дойдем до уровня, на котором можно записать решение поставленной задачи.
  • 25.  это принципы формирования алгоритмов из базовых структурных алгоритмических единиц (следование, ветвление, повторение), используя их последовательное соединение или вложение друг в друга с соблюдением определённых правил, гарантирующих читабельность и исполняемость алгоритма сверху вниз и последовательно.
  • 26.  это алгоритм, представленный как следования и вложения базовых алгоритмических структур. У структурированного алгоритма статическое состояние (до актуализации алгоритма) и динамическое состояние (после актуализации) имеют одинаковую логическую структуру, которая прослеживается сверху вниз ("как читается, так и исполняется").
  • 27.  Любой алгоритм может быть эквивалентно представлен структ урированным алгоритмом, состоящим из базовых алгоритмических структ ур.
  • 28.  Модуль – это некоторый алгоритм или некоторый его блок, имеющий конкретное наименование, по которому его можно выделить и актуализировать.
  • 30. 5.2. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ Цели и задачи структурного программирования: Суть структурного программирования состоит в ряде ограничений и правил программирования, которые обеспечивают соответствие программы очень строгому образцу, исключая тем самым бессистемность, не удобочитаемость и запутанность, которые порождают ошибки и затрудняют тестирование и сопровождение.
  • 31. 5.2. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ Цели и задачи структурного программирования: • Уменьшение трудностей тестирования • Более высокая производительность программистов • Ясность и читабельность программ • Эффективность
  • 32. ТЕОРИЯ И МЕТОДЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ Три основных составляющих блока: 1.Функциональный блок. 2.Конструкция обобщенного цикла. 3.Конструкция принятия двоичного, или дихотомического, решения.
  • 33. РЕАЛИЗАЦИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ все операции в программе должны представлять собой либо непосредственно исполняемые в линейном порядке выражения (например, обычные арифметические операторы), либо одну из следующих трех управляющих конструкций: 1.Вызовы процедур, подпрограмм и функций—любое допустимое обращение к замкнутой подпрограмме с одним входом и одним выходом. Заметим, что подпрограммы не являются абсолютно необходимым условием возможности реализации структурного программирования. 2.Вложенные на произвольную глубину операторы IF-THEN-ELSE. 3.Некоторые циклические структуры. Чаще всего в таком качестве используются конструкции DO-LOOP.
  • 34. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ Модульная программа — это такая программа, в которой любую часть логической структуры можно изменить, не вызывая изменений в остальных частях программы
  • 35. МОДУЛЬ ХАРАКТЕРИЗУЮТ: • • • • один вход и один выход функциональная завершенность логическая независимость слабые информационные связи с другими программными модулями • обозримый по размеру и сложности программный элемент
  • 36. ДОВОДЫ В ПОЛЬЗУ МОДУЛЬНОСТИ • • • Модульные программы легко составлять и отлаживать. Функциональные компоненты такой программы могут быть написаны и отлажены порознь. Модульную программу легче сопровождать и модифицировать. Функциональные компоненты могут быть изменены, переписаны или заменены без изменений в остальных частях. Руководству легче управлять разработкой модульной программы. Более сложные модули могут быть переданы более опытным программистам; простые модули могут быть написаны младшими программистами. Разбивая программу на модули, которые могут быть созданы за; один месяц, руководитель может быть уверен, что ни один из программистов не окажется слишком перегруженным сложными элементами программы.
  • 37. ДОВОДЫ В ПОЛЬЗУ МОДУЛЬНОСТИ • • • Модульные программы легко составлять и отлаживать. Функциональные компоненты такой программы могут быть написаны и отлажены порознь. Модульную программу легче сопровождать и модифицировать. Функциональные компоненты могут быть изменены, переписаны или заменены без изменений в остальных частях. Руководству легче управлять разработкой модульной программы. Более сложные модули могут быть переданы более опытным программистам; простые модули могут быть написаны младшими программистами. Разбивая программу на модули, которые могут быть созданы за; один месяц, руководитель может быть уверен, что ни один из программистов не окажется слишком перегруженным сложными элементами программы.
  • 38. 5.3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов).
  • 39.  это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления.
  • 40.  сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции (и связывания) исходного кода на выполнение).
  • 41.  Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектноориентированным языком программирования.
  • 43.  это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция – это набор всех таких характеристик.
  • 44.  это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
  • 45.  это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым или родительским. Новый класс – потомком, наследником или производным классом.
  • 46.  это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
  • 47.  Роджер Кинг аргументированно настаивал, что его кот является объектноориентированным. Кроме прочих своих достоинств, кот демонстрирует характерное поведение, реагирует на сообщения, наделён унаследованными реакциями и управляет своим, вполне независимым, внутренним состоянием.
  • 48.  По мнению Алана Кея, создателя языка Smalltalk, которого считают одним из «отцовоснователей» ООП, объектноориентированный подход заключается в следующем наборе основных принципов
  • 49.    Всё является объектом Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения.
  • 50.    Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. Каждый объект имеет независимую память, которая состоит из других объектов. Каждый объект является представителем (экземпляром) класса, который выражает общие свойства объектов. В классе задаётся поведение (функциональность) объекта.
  • 51.    Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
  • 52.   Таким образом, программа представляет собой набор объектов, имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений.
  • 53.  Естественным образом выстраивается иерархия объектов: программа в целом — это объект, для выполнения своих функций она обращается к входящим в неё объектам, которые, в свою очередь, выполняют запрошенное путём обращения к другим объектам программы.
  • 54.  Естественно, чтобы избежать бесконечной рекурсии в обращениях, на каком-то этапе объект трансформирует обращённое к нему сообщение в сообщения к стандартным системным объектам, предоставляемым языком и средой программирования.
  • 55.  Устойчивость и управляемость системы обеспечивается за счёт чёткого разделения ответственности объектов (за каждое действие отвечает определённый объект), однозначного определения интерфейсов межобъектного взаимодействия и полной изолированности внутренней структуры объекта от внешней среды (инкапсуляции).
  • 56.  Класс в ООП — это в чистом виде абстрактный тип данных, создаваемый программистом. С этой точки зрения объекты являются значениями данного абстрактного типа, а определение класса задаёт внутреннюю структуру значений и набор операций, которые над этими значениями могут быть выполнены.
  • 57.    Класс представляет собой объявленный программистом составной тип данных, имеющий в составе: Поля данных Методы Взаимодействие объектов в абсолютном большинстве случаев обеспечивается вызовом ими методов друг друга.
  • 59. КОНТРОЛЬ ДОСТУПА Модификаторы public - открытые члены класса protected только из private - члены класса, доступные классов-потомков - скрытые, доступные только внутри класса
  • 60.  Поля обычно объявляются скрытыми, а для доступа к находящимся в полях данным используются специальные методы, называемые методами доступа.
  • 61.  Свойства можно рассматривать как «умные» поля данных, сопровождающие доступ к внутренним данным объекта какими-либо дополнительными действиями например, когда изменение координаты объекта сопровождается его перерисовкой на новом месте
  • 62.  Полиморфизм реализуется путём введения в язык правил, согласно которым переменной типа «класс» может быть присвоен объект любого класса-потомка её класса.
  • 63. Объектно-ориентированное проектирование состоит в описании структуры и поведения проектируемой системы, то есть, фактически, в ответе на два основных вопроса: Из каких частей состоит система. В чём состоит ответственность каждой из частей.