Понятие технологии разработки ПО. Цели проектирования. — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Понятие технологии разработки ПО. Цели проектирования.

2022-10-29 25
Понятие технологии разработки ПО. Цели проектирования. 0.00 из 5.00 0 оценок
Заказать работу

Понятие технологии разработки ПО. Цели проектирования.

Технология разработки отражает тенденцию к созданию ПО.

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

Целью проектирования является создание системы, которая обладает следующими качествами:

1. Функциональной полнотой

2. Система согласуется с ограничениями по ресурсам

3. Обладает необходимыми эксплуатационными качествами

4. Удовлетворяет требования процесса разработки

5. На всех этапах разработки сложных программных систем используется моделирование

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

1. процедурное

2. объектно-ориентированное

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

Существует два основных подхода к понижению сложности. Они основаны на декомпозиции системы.

1. алгоритмическая декомпозиция, т.е. мы разбиваем систему на отдельные модули (функции).

2. объектно-ориентированная декомпозиция используется в объектно-ориентированном проектировании.

 

 

Роль моделей в проектировании программных систем.

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

Таким образом, ОО проектирование базируется на понятии объектная модель. Само это понятие эволюционирует с развитием языков программирования:

Поколение 1: вычисление по математическим формулам

Поколение 2: объекты модели дополнились такими понятиями как подпрограммы, файлы.

Поколение 3: добавились абстрактные классы.

Поколение 4: используется ОО модель.

Основные принципы объектной модели:

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

- инкапсуляция (ограничение доступа). Объединение как поведения так и состояний объекта. Разделение класса на реализацию и интерфейс.

- модульность – принцип разработки в виде отдельных частей. Классический модуль – функция.

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

 

- типизация – ограничения, накладываемые на свойства объектов и препятствующие взаимозаменяемости абстракции различных типов. Степени типизации:

- жесткая типизация. Язык предоставляет заранее предопределенные типы с известным набором операторов. В С++ - средняя типизация.

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

- устойчивость (сохраняемость)

- и т.д.

 

 

Модели жизненного цикла ПО.

1. Каскадная (водопадная) – это классическая модель.

• модель состоит из последовательно расположенных этапов;

• каждый этап полностью заканчивается до того, как начнется следующий;

• этапы не перекрываются во времени: следующий этап не начинается до тех пор, пока не завершится предыдущий;

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

Критерием появления результата является отсутствие ошибок и точное соответствие продукта первоначальной спецификации.

 

2. поэтапная модель с промежуточным контролем (водоворот).

• модель состоит из последовательно расположенных этапов;

• каждый этап имеет обратную связь с предыдущими этапами;

• исправление ошибок происходит на каждом из этапов, сразу при выявлении проблемы — это промежуточный контроль;

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

• результат появляется только в конце разработки, как и в модели «водопад». Критерием появления результата является приемлемое качество продукта, то есть такое состояние продукта, когда наиболее критические для клиента ошибки устранены

 

3. спиральная – характерно использование эволюционной стратегии. Используется совместно с ОО парадигмой. Отличается снижением затрат за счет оперативного устранения ошибок и многократного использования кодов.

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

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

• исправление ошибок происходит на этапе тестирования на каждом из витков спирали;

 

 

ООП. Принцип иерархичности.

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

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

 

2. агрегация - Отношения, когда один класс в качестве своей составной части (в атрибутах) содержит объекты другого класса, в качестве своих атрибутов.

 

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

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

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

class MY_DIALOG: public CDialog

{

public:

MY_DIALOG (char *DialogName, CWnd *Owner): CDialog(DialogName, Owner) { };

DECLARE_MESSAGE_MAP()

};

BEGIN_MESSAGE_MAP (MY_DIALOG, CDialog)

//<указание типов обрабатываемых сообщений и имен их обработчиков>

END_MESSAGE_MAP()

MY_DIALOG - наследуемый пользовательский класс от класса CDialog, обслуживающий диалоговое окно <ID_имя_диалогового_окна>, как производный от библиотечного класса MFC - CDialog. MY_DIALOG (char *DialogName, CWnd *Owner) - конструктор класса MY_DIALOG, где DialogName - ID-имя диалогового окна, Owner - его владелец (здесь, как правило, текущее окно, т.е. this).

Понятие технологии разработки ПО. Цели проектирования.

Технология разработки отражает тенденцию к созданию ПО.

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

Целью проектирования является создание системы, которая обладает следующими качествами:

1. Функциональной полнотой

2. Система согласуется с ограничениями по ресурсам

3. Обладает необходимыми эксплуатационными качествами

4. Удовлетворяет требования процесса разработки

5. На всех этапах разработки сложных программных систем используется моделирование

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

1. процедурное

2. объектно-ориентированное

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

Существует два основных подхода к понижению сложности. Они основаны на декомпозиции системы.

1. алгоритмическая декомпозиция, т.е. мы разбиваем систему на отдельные модули (функции).

2. объектно-ориентированная декомпозиция используется в объектно-ориентированном проектировании.

 

 


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.02 с.