Сделай Сам Свою Работу на 5

Влияние структурного и объектно-ориентированного программирования





Лекция 5

Введение в процесс разработки программного обеспечения

 

План

1. Введение в процесс разработки программного обеспечения

2. Типичная схема разработки программного обеспечения

3. Становление инженерии программного обеспечения

4. Влияние структурного и объектно-ориентированного программирования

 

Введение в процесс разработки программного обеспечения

 

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

 

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

Автономное:

• устанавливаемое на одиночный компьютер;

• не связано с другим программным и аппаратным обеспечением;



• пример — текстовый редактор.

Встроено:

• часть уникального приложения с привлечением аппаратного обеспечения;

• пример — автомобильный контроллер.

Реального времени:

• должны выполнять функции в течение малого интервала времени, обычно нескольких микросекунд;

• пример — программное обеспечение радиолокатора.

Сетевое:

• состоит из частей, которые взаимодействуют через сеть;

• пример — основанная на сервере-технологии видеоигра.

Разработка встроенных программ и программ реального времени имеет дополнительные аспекты, анализ которых выходит за рамки нашего исследования.

 

Типичная схема разработки программного обеспечения

 

Как же рождаются сложные и пригодные к использованию приложения? Стандартная последовательность шагов такая:

- Понять природу и область применения предлагаемого продукта.

- Выбрать процесс разработки и создать план.

- Собрать требования.

- Спроектировать и собрать продукт.

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



- Выпустить продукт и обеспечить его сопровождение.

 

Прежде всего, необходимо выяснить суть проекта. Это кажется очевидным, однако для того, чтобы понять, чего хочет заказчик, нужный ощутимое время, особенно если заказчик сам не знает достаточно хорошо, чего он в действительности хочет. Нужно сложить представление о масштабах проекта и с этой целью оценить, какие сроки, финансы и персонал мы имеем в своем распоряжении. Если, например, для построения видеоигры нам предоставляется 10 тыс. долларов, один разработчик и один месяц срока, можно говорить разве что о реализации прототипа игры. Если же мы имеем в своем распоряжении бюджет в 5 млн долларов, 20 разработчиками и сроком в 18 месяцев, то речь уже может идти о создании полноценного конкурентоспособного программного продукта и совсем других масштабах производственной деятельности.

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

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



Например, детали плана-графика не могут проработать, пока не будет определенной архитектуры дополнению.

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

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

В зависимости от используемого процесса разработки шаги 3 и 4 могут быть выполнены несколько раз.

 

Становление инженерии программного обеспечения

 

Разработка программного обеспечения является очень молодой областью инженерной науки, которая быстро развивается. Она склонна к постоянным и быстрым изменениям. Да, всего лишь в начале 90-х годов Британское содружество вычислительной техники (British Computer SocietyBritish Computer Society) начало присваивать разработчикам программ звания инженеринженера (Chartered Engineer), а в Соединенных Штатах только в 1998 году стало возможным хоть где-то (а точнее, в штате Техас) регистрироваться как профессиональный инженер программного обеспечения. Но как и раньше, даже в начале двадцать первого века, общепризнанным остается тот факт, что разработке программного обеспечения не достает достаточно развитой научной базы. По некоторым оценкам, 75 % организаций, программ, которые занимаются разработкой, делают это на примитивном уровне. С другой стороны, в этой области сформировалось немало интересных идей, и мы надеемся, что знакомство с ними в рамках настоящей книги вдохновит читателя на собственное исследование.

 

Влияние структурного и объектно-ориентированного программирования

 

С момента зарождения технология разработки программ испытала несколько подъемов в своем развитии. Один из них связан с публикацией листа Едсгера Дійкстри (Edsger Dijkstra) в Ассоциацию вычислительной техники (ACMACM (Association for Computing Machinery) — Association for Computing Machinery), озаглавленного так: «О вреде использования операторов GOTO» [26]. В те времена программы писались с активным использованием операторов безусловного перехода. Обращая внимание на недостатки таких программ, Дійкстра предложил концепцию структурного программирования, что позволяет избежать использования этих операторов. Концепция Дійкстри основывалась на том наблюдении Бема и Якопіні [12], что для записи любой программы в принципе достаточно только трех конструкций управления — последовательного выполнения, ветвления и цикла, то есть что теоретически необходимость в использовании операторов перехода отсутствует.

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

 

Рис. 5.1. Структурное программирование

 

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

На объектно-ориентированной парадигме основаны современные языки и системы программированияпроцесс разработки;языки программирование, такие как Java и CORBA. Отметим, что CORBA позволяет дополнениям использовать функцфункцииии, написанные на разных языках, и выполнять их на разных платформах. Как пример в этом же контексте можно вспомнить Visual BasicVisual Basic и модель COM (Microsoft) фирмы Microsoft.

 

 

Рис. 5.2. Парадигма объектной ориентированности

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.