
- •2.Этапы развития технологии программирования.
- •4.Блочно-иерархический подход к созданию сложных систем.
- •5.«Тяжелые» и «легкие» процессы разработки программного обеспечения Тяжелое программирование
- •6.Понятие унифицированного процесса разработки по. Фазы проекта по rup.
- •9.Понятия ошибки в по.Понятие надежности по
- •10.Основные понятия и принципы тестирования по, методы тестирования.
- •11.Понятие сложности программной системы. Оценка размера и сложности по.
- •12.Качество программного обеспечения, его характеристики и атрибуты.
- •13.Управление процессом разработки программного обеспечения: задачи , особенности.
- •15.Структура организации-исполнителя программного проекта.Структура организации и сполнителя проекта
- •17.Виды ресурсов при проектировании по. Оценка затрат ресурсов.
- •18.Методы определения стоимости программного обеспечения.
- •19.Принципы разработкипользовательских интерфейсов.
1.Понятие «технологии программирования». цель изучения дисциплины.
Технология программирования - это совокупность методов и средств, используемых в процессе разработки программного обеспечения. Другое ее название - "программная инженерия" (software engineering).Интерес к инженерным вопросам программирования, деталям процесса изготовления программного продукта, к формированию промышленной культуры программирования обусловлен увеличение и трудоемкости и стоимости программного продукта, которая в настоящее время в несколько раз превосходит стоимость ЭВМ.
Потребность контролировать процесс разработки ПО, прогнозировать и гарантировать стоимость разработки, сроки и качество результатов привела к необходимости перехода от кустарных к индустриальным способам создания ПО.
Производство ПО сегодня -крупнейшая отрасль мировой экономики, в которой занято около трех миллионов специалистов.Между тем качество ПО зачастую оставляет желать лучшего. Так, например, в 1998г. компания Standish Group проанализировала работу нескольких сотен американских корпораций и итоги выполнения более 20 тыс. проектов,связанных с разработкой ПО, и сделала следующие выводы.
Только 26% проектов завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности; 46% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме; 28% проектов были аннулированы до завершения.
Целью нашей с вами работы является изучение принципов, с помощью которых Вы с могли бы стать хорошим программистом, который пишет хорошие программы.Следует напомнить, что как программист Вы всегда будете работать на того, кто Вас нанимает. Как программист Вы всегда будете делать все необходимое для того, чтобы заставить компьютер выполнять определенные полезные операции.
2.Этапы развития технологии программирования.
Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения.
Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих:-указание последовательности выполнения технологических операций;
-перечисление условий, при которых выполняется та или иная операция;
-описания самих операций,где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты,критерии и методы оценки и т.п.В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупиость методов, используемых на разных этапах разработки , или методологию.Первый этап - «стихийное» программирование.Этот этап охватывает период момента появления первых вычислительных машин до середины 60-х годов 20 в. В этот период практически отсутствовали сформулированные технологии, и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из собственно программ на машинном языке и обрабатываемых ею данных. Сложность программ в машинных кодах ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программировании.
Второй этап - структурный подход к программированию (60-70-е годы 20в.)
Структурный подход к программированию представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения. В основе структурного подхода лежит декомпозиция (разбиение на части) сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм. С появлением других принципов декомпозиции (объектного, логического и т.д.) данный способ получил название процедурной декомпозиции.
Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования.Одновременно со струкгурным программированием появилось огромное количество языков, базирующихся на других концепциях, но большинство из них не выдержало конкуренции.
Дальнейший рост сложности и размеров разрабатываемого программного обеспечения потребовал развития структурирования данных. В результате появилась и начала развиваться технология модульного программирования.Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм), например, модуль графических ресурсов, модуль подпрограмм вывода на принтер. Третий этап -обьективный подход к программированию (с середины 80-хдо конца 90-х г 20в.
Обьектно-ориентированное программирование определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов,каждый из которых являются экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств [10, 24, 29]. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений. Основным достоинством объективно-ориентированного программирования по сравнению с модульным программированием является «более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку.
Недостатки: 1. фактически отсутствуют стандарты компоновки двоичных результатов компиляции объектов в единое целое даже в пределах одного языка программирования;
2. изменение реализации одного из программных обьектов, как минимум, связано с перекомпиляцией соответствующего модуля и перекомпоновкой всего программного обеспечения, использующего данный объект. Четвертый этап - компонентный подход CASE-технологии (с середины 90-х годов 20 в. до нашего времени).
Компонентный подход предполагает построение программного обеспечения из отдельных компонентов - физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличии от обычных объектов обьекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходныхтекстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию. 3.Жизненный цикл программного обеспечения. Основные этапы и моделиЖЦ ПО.
Под жизненным циклом ПО понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замыела ПС и кончая прекращением всех видов его использования. Жизненный цикл включает все процессы создания и использования ПС. Различают каскадную, модель с промежуточным контролем и спиральную. Каскадная модель- она предполагает, что переход на следующую стадию осуществляется после того,как полностью будут завершены проектные операции предыдущей стадии и получены все исходные данные для следующей стадии. Достоинства:получение в конце каждой стадии законченного набора проектной документации, отвечающего требованиям полноты и согласованности; простота планирования процесса разработки.
Однако данная схема оказалась применимой только к созданию систем, для которых в самом начале разработки удавалось точно и полно сформулировать все требования.
Модель с промежуточным контролем.Схема, поддерживающая итерационный характер процесса разработки, была названа схема с промежуточным контролем. Контроль, который выполняется по данной схеме после завершения каждого этапа, позволяет при необходимости вернуться на любой уровень и внести необходимые изменения, основная опасность использования такой схемы связана с тем, что разработка никогда не будет завершена, постоянно находясь в состоянии уточнения и усовершенствования
Спиральная модель.
- ПО создается не сразу, а итерационно с использованием метода прототипирования. Прототипом называют действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого ПО. На первой итерации, как правило, специфицируют, проектируют, реализуют и тестируют интерфейс пользователя.На второй - добавляют некоторый ограниченный набор функций. на последующих этапах этот набор расширяют,наращивая возможности данного продукта. Основным достоинством данной схемы является то, что начиная с некоторой итерации, на которой обеспечена определенная функциональная полнота, продукт можно предоставить пользователю. Основной проблемой использования спиральной модели является определение моментов перехода на следующие стадии. Для ее решения обычно ограничивают сроки прохождения каждой стадии,основываясь на экспертных оценках.