Какие браузеры вы используете чаще всего
 
Эволюция программных систем

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

Исторически сложилось так, что существует четкая "демаркационная линия" между процессом разработки системы и процессом ее совершенствования, точнее, процессом сопровождения системы. Разработка системы рассматривается как творческий процесс, начиная с этапа выработки общей концепции системы и заканчивая получением рабо­тающего программного продукта. Сопровождение системы — это внесение изменений в систему, которая уже находится в эксплуатации. И хотя стоимость сопровождения мо­жет в несколько раз превышать стоимость разработки, все равно процесс сопровождения считается менее творческим и ответственным, чем процесс первоначального создания системы.

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

Автоматизированные средства разработки ПО

Аббревиатура CASE (Computer-aided Software Engineering—автоматизированная разра­ботка ПО) обозначает специальный тип программного обеспечения, предназначенного для поддержки таких процессов создания ПО, как разработка требований, проектирование, ко­дирование и тестирование программ. Поэтому к CASE-средствам относятся редакторы про­ектов, словари данных, компиляторы, отладчики, средства построения систем и т.п.

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

1. Разработка графических моделей системы па этапах создания спецификации и проектирования,

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

3. Генерирование пользовательских интерфейсов на основе графического описания интерфейса, создаваемого в диалоговом режиме.

4. Отладка программ на основе информации, получаемой в ходе выполнения про­граммы.

5. Автоматическая трансляция программ, написанных на устаревших языках про­граммирования (например, COBOL), в программы, написанные на современных языках.

В настоящее время подходящие CASE-технологии существуют для большинства процессов, выполняемых в ходе разработки ПО. Это ведет к определенному улучшению качества созда­ваемых программ и повышению производительности труда разработчиков программного обеспечения. Вместе с тем эти достижения значительно уступают тем ожиданиям, которые присутствовали при зарождении CASE-технологий. Тогда считалось, что стоит только вне­дрить CASE-средства— и можно получить весьма значительное повышение и качества про­грамм, и производительности труда. Фактически это повышение составляет примерно 40% . Хотя и это повышение весьма значительно, CASE-технологии не совершили революции в инженерии программного обеспечения, как ожидалось.