Основные этапы программирования кратко

Обновлено: 03.07.2024

4. Проблемы, возникающие при разработке сложных программных систем.

5. Блочно-иерархический подход к созданию сложных систем.

6. Жизненный цикл и этапы разработки программного обеспечения. Кратко охарактеризуйте основные этапы.

7. Постановка задачи, анализ требований и определение спецификаций.

8. Проектирование, реализация и сопровождение.

9. Модели жизненного цикла программного обеспечения.

11. Технология RAD.

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

13. Использование CMM при оценке качества процессов создания программного обеспечения.

14. Использование стандартов ISO 9000 и SPICE при оценке качества процессов создания программного обеспечения.

15. Понятие технологичности программного обеспечения.

16. Модули и их свойства.

17. Сцепление модулей.

18. Связность модулей.

19. Нисходящая и восходящая разработка программного обеспечения.

20. Структурное программирование.

21. Средства описания структурных алгоритмов.

22. Стиль оформления программы.

23. Эффективность и технологичность программного обеспечения.

25. Сквозной структурный контроль.

26. Классификация программных продуктов по функциональному признаку.

27. Эксплуатационные требования к программным продуктам.

28. Предпроектные исследования предметной области.

29. Техническое задание. Основные разделы.

30. Архитектура программного обеспечения.

31. Тип пользовательского интерфейса.

32. Выбор языка и среды программирования.

33. Спецификация программного обеспечения при структурном подходе.

34. Язык описания разработки программных продуктов UML.

35. Тестирование программного обеспечения.

Технология программирования. Основные этапы ее развития. (и 2 вопрос тут же)

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

· указание последовательности выполнения технологических операций;

· перечисление условий, при которых выполняется та или иная операция;

· описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т.п.

Определяет способ описания проектир системы,те модели,использ на конкретн .этапе разработки.

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

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

4этап –компонентный подход иCASE-технологии (с сер. 90-х годов XX в. до нашего вр).Компонентный подход - построение ПО из отдельных компонентов – физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.

Отличительной особенностью современного этапа развития технологии программирования, кроме изменения подхода, является создание и внедрение автоматизированных технологий разработки и сопровождения программного обеспечения, .которые были названы CASE-технологиями (Computer-Aided Software/System Engineering - разработка программного обеспечения/программных систем с использованием компьютерной поддержки). На сегодня существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.

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

Этапы развития технологии программирования. (см. пункт первый)

Технологии COM и CORBA.

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

Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM – распределенная СОМ).

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

Кроме того, классы СОМ поддерживают наследование интерфейсов, но не поддерживают наследования реализации, т. е. не наследуют код методов, хотя при необходимости объект класса-потомка может вызвать метод родителя.

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

· внутренний сервер – реализуется динамическими библиотеками, которые подключаются к приложению-клиенту и работают в одном с ними адресном пространстве – наиболее эффективный сервер, кроме того, он не требует специальных средств;

· локальный сервер – создается отдельным процессом (модулем, ехе), который работает на одном компьютере с клиентом;

· удаленный сервер – создается процессом, который работает на другом компьютере.

Технология CORBA, реализует подход, аналогичный СОМ, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех основных аппаратных и программных платформ и потому эту технологию можно использовать для создания распределенного ПО в гетерогенной (разнородной) вычислительной среде. Организация взаимодействия м/у объектами клиента и сервера осуществляется с помощью спец посредника, названного VisiBroker, и другого спец-го ПО.

ИНФОРМАТИКА- НАУКА, ИЗУЧАЮЩАЯ СПОСОБЫ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ, ХРАНЕНИЯ, ОБРАБОТКИ, ИСПОЛЬЗОВАНИЯ, ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ.

ИНФОРМАЦИЯ – ЭТО НАБОР СИМВОЛОВ, ГРАФИЧЕСКИХ ОБРАЗОВ ИЛИ ЗВУКОВЫХ СИГНАЛОВ, НЕСУЩИХ ОПРЕДЕЛЕННУЮ СМЫСЛОВУЮ НАГРУЗКУ.

ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНАЯ МАШИНА (ЭВМ) ИЛИ КОМПЬЮТЕР (англ. computer- -вычислитель)-УСТРОЙСТВО ДЛЯ АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ИНФОРМАЦИИ. Принципиальное отличие использования ЭВМ от всех других способов обработки информации заключается в способности выполнения определенных операций без непосредственного участия человека, но по заранее составленной им программе. Информация в современном мире приравнивается по своему значению для развития общества или страны к важнейшим ресурсам наряду с сырьем и энергией. Еще в 1971 году президент Академии наук США Ф.Хандлер говорил: "Наша экономика основана не на естественных ресурсах, а на умах и применении научного знания".

В развитых странах большинство работающих заняты не в сфере производства, а в той или иной степени занимаются обработкой информации. Поэтому философы называют нашу эпоху постиндустриальной. В 1983 году американский сенатор Г.Харт охарактеризовал этот процесс так: "Мы переходим от экономики, основанной на тяжелой промышленности, к экономике, которая все больше ориентируется на информацию, новейшую технику и технологию, средства связи и услуги.."

2. КРАТКАЯ ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.

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

В вычислительных машинах первого поколения основными элементами были электронные лампы. Эти машины занимали громадные залы, весили сотни тонн и расходовали сотни киловатт электроэнергии. Их быстродействие и надежность были низкими, а стоимость достигала 500-700 тысяч долларов.

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

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

История ЭВМ четвертого поколения началась в 1970 году, когда ранее никому не известная американская фирма INTEL создала большую интегральную схему (БИС), содержащую в себе практически всю основную электронику компьютера. Цена одной такой схемы (микропроцессора) составляла всего несколько десятков долларов, что в итоге и привело к снижению цен на ЭВМ до уровня доступных широкому кругу пользователей.

СОВРЕМЕННЫЕ КОМПЬТЕРЫ- ЭТО ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ, В КОТОРЫХ ИСПОЛЬЗУЮТСЯ БОЛЬШИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.

90-ые годы ХХ-го века ознаменовались бурным развитием компьютерных сетей, охватывающих весь мир. Именно к началу 90-ых количество подключенных к ним компьютеров достигло такого большого значения, что объем ресурсов доступных пользователям сетей привел к переходу ЭВМ в новое качество. Компьютеры стали инструментом для принципиально нового способа общения людей через сети, обеспечивающего практически неограниченный доступ к информации, находящейся на огромном множестве компьюторов во всем мире - "глобальной информационной среде обитания".

6.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ И ЕЕ ОБЪЕМ.

ЭТО СВЯЗАНО С ТЕМ, ЧТО ИНФОРМАЦИЮ, ПРЕДСТАВЛЕННУЮ В ТАКОМ ВИДЕ, ЛЕГКО ТЕХНИЧЕСКИ СМОДЕЛИРОВАТЬ, НАПРИМЕР, В ВИДЕ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ. Если в какой-то момент времени по проводнику идет ток, то по нему передается единица, если тока нет- ноль. Аналогично, если направление магнитного поля на каком-то участке поверхности магнитного диска одно- на этом участке записан ноль, другое- единица. Если определенный участок поверхности оптического диска отражает лазерный луч- на нем записан ноль, не отражает- единица.

ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО ИЗ ДВУХ СИМВОЛОВ-0 ИЛИ 1, НАЗЫВАЕТСЯ 1 БИТ (англ. binary digit- двоичная единица). 1 бит- минимально возможный объем информации. Он соответствует промежутку времени, в течение которого по проводнику передается или не передается электрический сигнал, участку поверхности магнитного диска, частицы которого намагничены в том или другом направлении, участку поверхности оптического диска, который отражает или не отражает лазерный луч, одному триггеру, находящемуся в одном из двух возможных состояний.

Итак, если у нас есть один бит, то с его помощью мы можем закодировать один из двух символов- либо 0, либо 1.

Если же есть 2 бита, то из них можно составить один из четырех вариантов кодов: 00 , 01 , 10 , 11 .

Если есть 3 бита- один из восьми: 000 , 001 , 010 , 100 , 110 , 101 , 011 , 111 .

1 бит- 2 варианта,

2 бита- 4 варианта,

3 бита- 8 вариантов;

Продолжая дальше, получим:

4 бита- 16 вариантов,

5 бит- 32 варианта,

6 бит- 64 варианта,

7 бит- 128 вариантов,

8 бит- 256 вариантов,

9 бит- 512 вариантов,

10 бит- 1024 варианта,

N бит - 2 в степени N вариантов.

В обычной жизни нам достаточно 150-160 стандартных символов (больших и маленьких русских и латинских букв, цифр, знаков препинания, арифметических действий и т.п.). Если каждому из них будет соответствовать свой код из нулей и единиц, то 7 бит для этого будет недостаточно (7 бит позволят закодировать только 128 различных символов), поэтому используют 8 бит.

ДЛЯ КОДИРОВАНИЯ ОДНОГО ПРИВЫЧНОГО ЧЕЛОВЕКУ СИМВОЛА В КОМПЬЮТЕРЕ ИСПОЛЬЗУЕТСЯ 8 БИТ, ЧТО ПОЗВОЛЯЕТ ЗАКОДИРОВАТЬ 256 РАЗЛИЧНЫХ СИМВОЛОВ.

СТАНДАРТНЫЙ НАБОР ИЗ 256 СИМВОЛОВ НАЗЫВАЕТСЯ ASCII ( произносится "аски", означает "Американский Стандартный Код для Обмена Информацией"- англ. American Standart Code for Information Interchange).

ОН ВКЛЮЧАЕТ В СЕБЯ БОЛЬШИЕ И МАЛЕНЬКИЕ РУССКИЕ И ЛАТИНСКИЕ БУКВЫ, ЦИФРЫ, ЗНАКИ ПРЕПИНАНИЯ И АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ И Т.П.

A - 01000001, B - 01000010, C - 01000011, D - 01000100, и т.д.

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

Набор ASCII был разработан в США Американским Национальным Институтом Стандартов (ANSI), но может быть использован и в других странах, поскольку вторая половина из 256 стандартных символов, т.е. 128 символов, могут быть с помощью специальных программ заменены на другие, в частности на символы национального алфавита, в нашем случае - буквы кириллицы. Поэтому, например, передавать по электронной почте за границу тексты, содержащие русские буквы, бессмысленно. В англоязычных странах на экране дисплея вместо русской буквы Ь будет высвечиваться символ английского фунта стерлинга, вместо буквы р - греческая буква альфа, вместо буквы л - одна вторая и т.д.

ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО СИМВОЛА ASCII НАЗЫВАЕТСЯ 1 БАЙТ.

Очевидно что, поскольку под один стандартный ASCII-символ отводится 8 бит,

Остальные единицы объема информации являются производными от байта:

1 КИЛОБАЙТ = 1024 БАЙТА И СООТВЕТСТВУЕТ ПРИМЕРНО ПОЛОВИНЕ СТРАНИЦЫ ТЕКСТА,

1 МЕГАБАЙТ = 1024 КИЛОБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 500 СТРАНИЦАМ ТЕКСТА,

1 ГИГАБАЙТ = 1024 МЕГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ,

1 ТЕРАБАЙТ = 1024 ГИГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2000 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ.

Обратите внимание, что в информатике смысл приставок кило- , мега- и других в общепринятом смысле выполняется не точно, а приближенно, поскольку соответствует увеличению не в 1000, а в 1024 раза.

СКОРОСТЬ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ЛИНИЯМ СВЯЗИ ИЗМЕРЯЕТСЯ В БОДАХ.

1 БОД = 1 БИТ/СЕК.

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

7. СЖАТИЕ ИНФОРМАЦИИ НА ДИСКЕ

ИНФОРМАЦИЮ НА ДИСКЕ МОЖНО ОБРАБОТАТЬ С ПОМОЩЬЮ СПЕЦИАЛЬНЫХ ПРОГРАММ ТАКИМ ОБРАЗОМ, ЧТОБЫ ОНА ЗАНИМАЛА МЕНЬШИЙ ОБЪЕМ.

Существуют различные методы сжатия информации. Некоторые из них ориентированы на сжатие текстовых файлов, другие - графических, и т.д. Однако во всех них используется общая идея, заключающаяся в замене повторяющихся последовательностей бит более короткими кодами. Например, в романе Л.Н.Толстого "Война и мир" несколько миллионов слов, но большинство из них повторяется не один раз, а некоторые- до нескольких тысяч раз. Если все слова пронумеровать, текст можно хранить в виде последовательности чисел - по одному на слово, причем если повторяются слова, то повторяются и числа. Поэтому, такой текст (особенно очень большой, поскольку в нем чаще будут повторяться одни и те же слова) будет занимать меньше места.

Сжатие информации используют, если объем носителя информации недостаточен для хранения требуемого объема информации или информацию надо послать по электронной почте

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

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

Этапы разработки программы

Зачем нужно проектировать программу и соблюдать этапы разработки?

Вы можете спросить, зачем нужно соблюдать какие-то там этапы, ведь разработка программы — это просто сел и написал код. Однако это не так, с таким подходом создать нормальное приложение не получится.

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

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

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

Все это делается для того, чтобы не допустить появления ошибок и реализовать тот продукт, который действительно нужен.

Чем раньше будут обнаружены ошибки или выявлен неправильных подход в реализации того или иного действия, тем цена этих ошибок будет меньше. Иными словами, в зависимости от этапа обнаружения ошибки ее цена может меняться от 10 до 100 раз. Например, если на самом начальном этапе цена исправления ошибки будет равняться 100 рублей, то на этапе тестирования она может вылиться в 10000. Поэтому этапы разработки ПО очень важны, и разработчик должен их соблюдать и попытаться донести это видение до менеджеров, которым всегда нужен только результат. Так как они или отводят на это слишком мало времени или и вовсе не считают это необходимым, например, зачем при программировании вырабатывать какие-то требования или что-то там проектировать.

Основные этапы разработки ПО

Вот этапы, которые в большинстве случаев должны соблюдаться при разработке программного обеспечения:

Некоторым может показаться, что это слишком сложный план, но если Вы будете работать над крупным проектом, то столкнётесь со всем этим, и даже более детализированным планом.

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

Этап 1 – Определение проблемы

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

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

Определение проблемы – это фундамент всего процесса программирования!

Этап 2 – Выработка требований

Что такое требования и зачем их нужно выработать?

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

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

Этап 3 – Создание плана разработки

На данном этапе Вы уже должны в формальном виде составить план разработки программного обеспечения с учётом существующей проблемы и выработанных требований. Иными словами, Вы должны составить план того, как Вы будете действовать дальше.

Этап 4 – Разработка архитектуры системы или высокоуровневое проектирование

Архитектура системы – это каркас программы, это высокоуровневое проектирование программы.

Данный этап также очень важный, так как, не имея хорошей архитектуры, Вы можете решать правильную проблему, но прийти к неправильному решению. Хорошая архитектура программы упрощает программирование, а плохая архитектура усложняет его.

Архитектура системы обычно включает:

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

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

Этап 5 – Детальное проектирование

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

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

Но при реализации крупных проектов данному процессу отводится отдельный этап и проектирование в этом случае проводится с очень высокой степенью детальности.

Этап 6 – Кодирование и отладка

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

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

После того как код написан, программисту необходимо отладить этот код, чтобы в нем не было никаких ошибок.

Этап 7 – Тестирование компонентов

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

Этап 8 – Интеграция компонентов

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

В небольших проектах этот этап может заключаться в объединении нескольких классов, на что будет затрачено не больше одного дня, но в крупных проектах этот этап может длиться не один месяц.

Этап 9 – Тестирование всей системы

На данном этапе проводится тестирование всей системы, уже с учётом интеграции всех компонентов. На этом этапе можно выявить проблемы взаимодействия компонентов и устранить их. Также на этом этапе основным предметом тестирования является безопасность, производительность, утечка ресурсов и другие моменты, которые невозможно протестировать на более низких уровнях тестирования.

Этап 10 – Сопровождение, внесение изменений, оптимизация

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

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

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

II этап. Структурное (модульное) программирование

Структурный подход к программированию (60 гг) представляет собой совокупность рекомендованных технологических приёмов, охватывающих выполнение всех этапов разработки ПО. В основе структурного подхода лежит разбиение сложной системы на небольшие подпрограммы. В 60-70 гг развивалось структурное программирование, основанное на программировании сверху вниз. Эта задача стала возможной в связи с появлением структурных языков.

Дальнейший рост сложности и размеров ПО потребовал развития структурированных данных.

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

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

III этап. Объектный подход к программированию (середина 70-х гг – конец 90-х гг).

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

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

IV этап. Компонентный подход и case-технологии (середина 90-х гг – настоящее время).

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

13. Понятие CASE – технологии и ее фундаментальные принципы. Основные составляющие CASE-технологии.

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

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

Преимущества CASE-технологии по сравнению с традиционной технологией оригинального проектирования сводятся к сле­дующему:

• улучшение качества разрабатываемого программного при­ложения за счет средств автоматического контроля и гене­рации;

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

• поддержание адаптивности и сопровождения ЭИС;

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

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

• возможность коллективной разработки ЭИС в режиме реаль­ного времени.

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

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

• мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;

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

• использование специальным образом организованного хранилища проектных метаданных (репозитория).

Интегрированное CASE-средство (или комплекс средств, поддерживающих полный жизненный цикл ПО) содержит следующие компоненты:

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

· графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели информационной системы;

· средства разработки приложений, включая языки 4GL (4GL – четвёртого поколения) и генераторы кодов;

· средства конфигурационного управления;

· средства управления проектом;

14. Система стандартов ISO 9001.

15. Управление конфигурацией. Case-системы.

Цель конфигурационного управления (КУ) - обеспечить управляемость и контролируемость процессов разработки и сопровождения ПО. Для этого необходима точная и достоверная информация о состоянии ПО и его компонент в каждый момент времени, а также о всех предполагаемых и выполненных изменениях.

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

К таким средствам относятся CASE-средства. CASE-средства являются сравнительно новым направлением в информационных технологиях. Примерами используемых в настоящее время CASE-средств являются: ProKit*WORKBENCH, Design / IDEF, CASE Oracle (Designer / 2000), Power Designer (S-Designor), ERWin, SILVERRUN, ERStudio и другие.

CASE-средства поддерживают концептуальное проектирование, позволяют осуществить логическое и физическое проектирование путем автоматической генерации БД для целевой СУБД. Во многих CASE-системах логической моделью называется ER-модель, а представление логической структуры целевой БД – физической моделью. ER-модели широко используются в практике создания БД. Они применяются при ручном и автоматизированном проектировании с использованием CASE-средств, поддерживающих весь цикл разработки СБД или отдельные его стадии.

При сравнении CASE-систем кроме используемой методологии ER-моделирования, необходимо учитывать специфические критерии, связанные с реализацией функций автоматизированного проектирования:

· число и перечень поддерживаемых целевых СУБД;

· поддержку распределенных БД;

· поддержку коллективной работы при проектировании (управление правами пользователей, ведение репозитория и т. д.);

· построение концептуальной ER-модели по описанию структуры существующей БД – реверс-инжиниринг;

· автоматизируемые функции проектирования и степень их автоматизации;

· качество и жесткость проектных решений (возможность выбора из нескольких альтернативных решений, возможность ручного вмешательства в процесс);

· открытость системы (возможность стыковки с другими средствами);

удобство графического редактора;

· количественные ограничения (общее число сущностей, число уровней вложенности для обобщенной сущности и др.);

· возможность автоматической оценки объема памяти для проектируемой БД;

· возможность автоматической генерации процедур;

· наличие средств моделирования хранилищ данных;

· требования к ресурсам компьютера;

CASE-средства показывают модель с разной степенью детализации:

· только обозначения сущностей и связей между ними;

· сущности + ключи + внешние ключи;

· сущности + все атрибуты.

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

Важной характеристикой CASE-средств является возможность получать подмодели из общей модели и обеспечивать интеграцию фрагментов в единую модель. Эти возможности могут быть полезны не только при коллективной разработке проекта – при обсуждении модели с конечными пользователями очень удобно каждому из них предоставлять только ту часть модели, которая имеет для него интерес. Декомпозиция модели облегчает процесс проектирования.

Еще одним критерием сравнения СASE-средств является степень проверки правильности построенных моделей. Ни одна система автоматизации проектирования не может гарантировать соответствия построенной концептуальной модели реалиям предметной области. Это определяется только квалификацией разработчиков, их пониманием предметной области и умением отобразить ее в модели.

Многие CASE-средства позволяют:

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

§ генерировать программы ведения БД;

§ экспортировать модели в другие системы и, наоборот, импортировать их из других систем.

16. Понятие технологии программирования

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

· указание последовательности выполнения технологических операций;

· перечисление условий, при которых выполняется та или иная операция;

· описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.

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

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

Этапы решения задачи на ЭВМ

I.Постановка задачи – точная формулировка её условий и целей решения. На этом этапе должно быть чётко определено, что дано и что требуется найти, т.е. под постановкой задачи понимается ответ на два вопроса: какие исходные данные известны и что необходимо определить?

постановка задачи включает в себя:

1. Сбор сведений о задаче;

2. Формулировка условий задачи;

3. Определение конечных целей решения;

4. Определения формы вывода результатов.

5. Выбор метода решения. Построение математической модели для решения математических соотношений.

6. Разработка алгоритма по выбранному методу решения. Алгоритм записывается в любой форме.

7. Запись алгоритма на языке программирования.

8. Отладка и тестирование программы на компьютере.

Отладка – процесс нахождения и исправления ошибок в программе. Отладка включает в себя синтаксическую, семантическую, логическую отладку.

Тестирование – проверка конкретных вариантов значений на соответствие фактическим данным.

Читайте также: