Разное

Технология программирования включает в себя этапов: Основные этапы развития технологии программирования — Студопедия

Содержание

ОПИСАНИЕ ЭТАПОВ РАЗРАБОТКИ ПРОГРАММНОГО





Стр 1 из 2Следующая ⇒

Содержание

Введение
1 Описание этапов разработки программного продукта
2 Анализ поставленных задач и определение основных функций программы
3 Обзор и выбор технологии и средств программирования
4 Разработка структурной схемы и функциональных диаграмм
5 Разработка пользовательского интерфейса
6 Разработка программного кода функционирования модулей программы
7 Тестирование программного продукта
8 Составление программной документации
Приложение А техническое задание
Приложение Б код программы
Список использованных источников
 

 

ВВЕДЕНИЕ

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

Для разработки компьютерных программ нужен язык программирования — формальная знаковая система. Примеры универсальных языков программирования: С++, Java, Delphi и т.д.

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

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

ОПИСАНИЕ ЭТАПОВ РАЗРАБОТКИ ПРОГРАММНОГО


ПРОДУКТА


Постановка задачи

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

Проектирование

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



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

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

Тестирование и отладка

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

Внедрение и сопровождение

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

АНАЛИЗ ПОСТАВЛЕННЫХ ЗАДАЧ И ОПРЕДЕЛЕНИЕ ОСНОВНЫХ ФУНКЦИЙ СИСТЕМЫ

Цель работы: разработка обучающей системы по С#

Для достижения поставленной цели необходимо решить следующие задачи:

— Изучить язык программирования C#;

— Изучить создание контекстной справки chm;

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

— Выбрать среду для реализации обучающей системы;

— Разработать пользовательский интерфейс;

— Разработать структуру и функциональные схемы обучающей системы;

— Программирование, тестирование и отладка;

— Разработать документацию;

Информационная система (ИС) в целом — автоматизированная система, предназначенная для организации, хранения, пополнения, поддержки и представления пользователям информации в соответствии с их запросами.

Таким образом можно определить следующие функции разрабатываемой системы:

— Должна предоставлять работу только в режиме пользователя

— Дать фундаментальные знания по языку C#

— Объяснить принципы работы в среде Visual Studio

— Должна состоять из совокупности разделов, каждый из которых состоит из практической и теоретической части

— Предоставить сборники задач для языка C#

— Корректно презентовать информацию.

На основании данного анализа было составлено техническое задание, которое находится в приложении А.

 

ОБЗОР И ВЫБОР ТЕХНОЛОГИЙ И СРЕДСТВ


ПРОГРАММИРОВАНИЯ

 

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




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

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

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

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

К основным технологиям программирования относятся:

1) Объектно-ориентированное программирование– основными концептами, в котором являются понятия объектов и классов.

2) Структурное программирование– разработка программных комплексов, основанных на следующих принципах:

— алгоритмы можно разработать из базовых структур

— декомпозиция

К основным средствам программирования относят:

а) Java –это объектно-ориентированный язык программирования, созданный компанией Sun ‘Microsystems и предназначенный для написания клиентских приложений и серверного программного обеспечения

б) PHP 5– это мощный кросплатформенный набор средств, который располагается на сервере и предназначается для обработки кода, встраимого в HTML-документы

в) Python– это объектно-ориентированный, императивный, функциональный, аспектно-ориентированный язык программирования, который используется во всех сферах программирования, в том числе и web.

г) Borland C++— компилируемый строго типизированный язык общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную, наибольшее внимание уделено поддержке объектно-ориентированного программирования.

д) HTML– стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.

е) C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework.

 

Для создания информационной системы был выбран язык HTML.

В качестве технологии программирования было выбрано структурное программирование, основанное на принципах программирования «сверху-вниз».

 

 

 

Разработка структурной схемы и функциональных диаграмм программного продукта

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

Выбор раздела
Наименование раздела
Обзор теоретической части
Запуск приложения

Рисунок 1 — Функциональный алгоритм программы

 

Приложение А

(Обязательное)

Министерство образования и науки Российской Федерации

ГОУ СПО «Уральский государственный колледж им. И.И. Ползунова»

Кафедра автоматизации и информационных технологий

 

  УТВЕРЖДАЮ
Руководитель
курсового проекта
______Л.Н.Бойбородина
“___”______2010г.
 

 

 

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

На разработку программного продукта

«Разработка обучающей системы по C#»

Разработал

Студент гр.ПО-306

Оловянников И.В.

 

 

Екатеринбург 2013

 

 

ВВЕДЕНИЕ

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

ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ


1.1

Программа разрабатывается на основе задания на курсовое проектирование по дисциплине «Технология разработки программных продуктов», утверждённый на заседании кафедры «Автоматизации и информационных технологий» протокол №7 от 7 февраля 2013 года

1.2

Наименование работы: «Разработка обучающей системы по C#».

1.3

Исполнитель: Оловянников Иван Владимирович

 

НАЗНАЧЕНИЕ

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

 

ТРЕБОВАНИЯ К ПРОГРАММЕ И ПРОГРАММНОМУ ИЗДЕЛИЮ


Требования к функциональным характеристикам

Функции информационной системы:

— Должна предоставлять работу только в режиме пользователя

— Дать фундаментальные знания по языку C#

— Объяснить принципы работы в среде Visual Studio

— Должна состоять из совокупности разделов, каждый из которых состоит из практической и теоретической части

— Предоставить сборники задач реализованных на языке C#

— Корректно презентовать информацию.

 

Требования к надёжности

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

Требования к составу и параметрам технических средств

Система должна работать на всех IBM-совместных компьютерах.

 

Минимальная конфигурация:

а) Любая ОС Windows, кроме Win95, Win98, WinME;

б) Процессор PentiumII 400 МГц;

в) ОЗУ 96 МБ;

г) Требуемое место на жестком диске: ~5 ГБ

д) Установленный .NET FrameWork не ниже версии 2.0

 

Рекомендуемая конфигурация:

а) Windows XP Home Edition SP2;

б) Процессор PentiumIII 1 МГц;

в) ОЗУ 256 МБ

г) Требуемое место на жестком диске: ~5 ГБ

д) Установленный .NET FrameWork 3.5

 

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

Система должна работать под управлением семейства операционных систем Win 32 за исключением следующих ОС:

— Microsoft Windows 95

— Microsoft Windows 98

— Microsoft Windows Millennium Edition

— Microsoft Windows NT Server

— Windows NT Workstation

— Windows NT Server Enterprise Edition

— Microsoft Windows 2000 Professional

— Windows 2000 Server

— Windows 2000 Advanced Server

— Windows 2000 Datacenter Server

— Windows Server 2003, Enterprise Edition для операционных систем на платформе Itanium

— Windows Server 2003, Datacenter Edition для операционных систем на платформе Itanium

 

ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

4.1Логические блоки программы должны быть самодокументированы, т.е. должны содержать все необходимые комментарии.

4.2Информационная система должна включать справочную информацию о работе в среде Visual Studio

4.3В состав сопровождающей документации должны входить:

а) пояснительная записка, содержащая описание разработки;

б) руководство пользователя.

в) руководство программисту(код программного продукта)

 

Приложение Б

(Обязательное)

Исходный код всей программы

 

 

Содержание

Введение
1 Описание этапов разработки программного продукта
2 Анализ поставленных задач и определение основных функций программы
3 Обзор и выбор технологии и средств программирования
4 Разработка структурной схемы и функциональных диаграмм
5 Разработка пользовательского интерфейса
6 Разработка программного кода функционирования модулей программы
7 Тестирование программного продукта
8 Составление программной документации
Приложение А техническое задание
Приложение Б код программы
Список использованных источников
 

 

ВВЕДЕНИЕ

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

Для разработки компьютерных программ нужен язык программирования — формальная знаковая система. Примеры универсальных языков программирования: С++, Java, Delphi и т.д.

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

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

ОПИСАНИЕ ЭТАПОВ РАЗРАБОТКИ ПРОГРАММНОГО


ПРОДУКТА


Постановка задачи

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

Проектирование

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











Вопрос 5 Технологии программирования

Вопрос
5 Технологии программирования. Процедурное,
объектно-ориентированное и логическое
программирование.

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

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

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

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

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

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

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

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

Изначально
понятие технологии как таковой — это
60-е годы прошлого столетия — это период
«стихийного» программирования. В
этот период отсутствовало понятие
структуры программы, типов данных и
т.д. Вследствие этого код получался
запутанным, противоречивым. Программирование
тех лет считалось искусством. Конец
60-х — кризис в программирование.

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

Другим
базовым принципом структурного
программирования является использование
при составлении программ только базовых
алгоритмических структур (см. билет 4),
запрет на использование оператора GOTO.

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

Поддержка
принципов структурного программирования
была заложена в основу так называемых
процедурных языков программирования.
Как правило, они включали основные
«структурные» операторы передачи
управления, поддерживали вложение
подпрограмм, локализацию и ограничение
области «видимости» данных. Среди
наиболее известных языков этой группы
стоит назвать PL/1, ALGOL-68, Pascal, С.

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

Модульное
программирование предполагает выделение
групп подпрограмм, использующих одни
и те же глобальные данные, в отдельно
компилируемые модули (библиотеки
подпрограмм), например, модуль графических
ресурсов. Связи между модулями при
использовании данной технологии
осуществляются через специальный
интерфейс, в то время как доступ к
реализации модуля (телам подпрограмм
и некоторым «внутренним» переменным)
запрещен. Эту технологию поддерживают
современные версии языков Pascal и С (C++),
языки Ада и Modula.

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

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

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

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

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

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

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

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

Смысл
и универсальность наследования
заключается в том, что не надо каждый
раз заново («с нуля») описывать
новый объект, а можно указать «родителя»
(базовый класс) и описать отличительные
особенности нового класса. В результате
новый объект будет обладать всеми
свойствами родительского класса плюс
своими собственными отличительными
особенностями.

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

Современная
технология программирования —
компонентный подход, который предполагает
построение программного обеспечения
из отдельных компонентов — физически
отдельно существующих частей программного
обеспечения, которые взаимодействуют
между собой через стандартизованные
двоичные интерфейсы. В отличие от обычных
объектов объекты-компоненты можно
собрать в динамически вызываемые
библиотеки или исполняемые файлы,
распространять в двоичном виде (без
исходных текстов) и использовать в любом
языке программирования, поддерживающем
соответствующую технологию. На сегодня
рынок объектов стал реальностью. Это
позволяет программистам создавать
продукты, хотя бы частично состоящие
из повторно использованных частей, т.е.
использовать технологию, хорошо
зарекомендовавшую себя в области
проектирования аппаратуры.

Компонентный
подход лежит в основе технологий,
разработанных на базе COM (Component Object Model
— компонентная модель объектов), и
технологии создания распределенных
приложений CORBA (Common Object Request Broker Architecture
— общая архитектура с посредником
обработки запросов объектов). Эти
технологии используют сходные принципы
и различаются лишь особенностями их
реализации.

Технология
СОМ фирмы Microsoft является развитием
технологии OLE (Object Linking and Embedding — связывание
и внедрение объектов), которая
использовалась в ранних версиях Windows
для создания составных документов.
Технология СОМ определяет общую парадигму
взаимодействия программ любых типов:
библиотек, приложений, операционной
системы, т. е. позволяет одной части
программного обеспечения использовать
функции (службы), предоставляемые другой,
независимо от того, функционируют ли
эти части в пределах одного процесса,
в разных процессах на одном компьютере
или на разных компьютерах. Модификация
СОМ, обеспечивающая передачу вызовов
между компьютерами, называется DCOM
(Distributed COM — распределенная СОМ).

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

Обсудим
далее то, что, в конечном итоге, является
«кирпичиками», строительным
материалом любой программы — подпрограммы
и варианты их реализации на примере
языка Pascal — процедуры и функции.

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

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

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

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

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

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

При
составлении подпрограмм с параметрами
надо соблюдать следующие правила:

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

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

4

Введение

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

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

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

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

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

    1. Основные этапы развития технологии разработки

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

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

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

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

Рис.1.1.
Структура описания технологической
операции

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

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

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

      1. Первый этап – «стихийное» программирование.

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

Рис. 1.2.
Структура первых программ

Появление ассемблеров
позволило вместо двоичных или 16-ричных
кодов использовать символические имена
данных и мнемоники кодов операций. В
результате программы стали более
«читаемыми».

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

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

Типичная программа
того времени состояла из основной
программы, области глобальных данных
и набора подпрограмм (в основном
библиотечных), выполняющих обработку
всех данных или их части (Рис. 1 .3).

Рис. 1.3.
Принцип работы программ с глобальной
областью данных.

Слабым местом
такой архитектуры было то, что при
увеличении количества подпрограмм
возрастала вероятность искажения части
глобальных данных какой-либо подпрограммой.
Например, подпрограмма поиска корней
уравнения на заданном интервале по
методу деления отрезка пополам меняет
величину интервала. Если при выходе из
подпрограммы не предусмотреть
восстановления первоначального
интервала, то в глобальной области
окажется неверное значение интервала.
Чтобы сократить количество таких ошибок,
было предложено в подпрограммах размещать
локальные данные (Рис. 1 .4).

Рис. 1.4.
Принцип работы программы, использующей
подпрограммы с локальными данными

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

В начале 60-х годов
XXв. разразился «кризис
программирования». Он выражался в том,
что фирмы, взявшиеся за разработку
сложного программного обеспечения,
такого, как операционные системы, срывали
все сроки завершения проектов. Проект
устаревал раньше, чем был готов к
внедрению, увеличивалась его стоимость,
и в результате многие проекты так никогда
и не были завершены.

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

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

НОУ ИНТУИТ | Лекция | Концепции современного программирования

Аннотация: Лекция посвящена истории развития
программирования. Рассматриваются наиболее известные парадигмы
программирования в историческом и современном контекстах.

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

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

Мы рассмотрим историю различных парадигм программирования.
Первоначально программирование начиналось без каких-либо единых
подходов, поскольку программы писались в машинных кодах и
программирование сильно зависело от конкретной машины. Однако с
развитием вычислительной техники и с построением серийных
компьютеров возникли универсальные языки программирования высокого
уровня. Первым известным языком программирования был язык Фортран.
Этот язык, название которого является сокращением от «транслатор
формул», представлял собой уже в определенном смысле новую
парадигму программирования, которую мы назовем парадигмой
языков высокого уровня
. Программирование на языке Фортран
представляет собой написание программ с использованием
формализованных команд, которые в определенном смысле можно
считать математическим текстом. Конечно, для многих классических
математиков некоторые команды вызывали удивление и непонимание.
Например команда присвоения:

вызывала недоумение. Забегая вперед, заметим, что Н. Вирт при
создании языка Паскаль операция присвоения обозначена через
«$:=$». Тем не менее с языка Фортран началось алгоритмическое
программирование, когда появился более-менее стандартный язык для
написания программ. При этом стало возможным писать программы
«впрок», когда при создании программ можно было использовать
ранее созданные тексты программ. Многие часто используемые
подпрограммы стали оформляться в виде специальных библиотек. С
дальнейшим развитием компьютерной техники и расширением сферы
программирования возникла следующая парадигма программирования,
которую мы назовем «парадигма процедурного
программирования»
. Процедурное программирование основано на том,
что при создании больших программных продуктов необходимо
разбивать всю программу на отдельные подпрограммы (процедуры) и
использовать написанные ранее подпрограммы, оформленные в виде
подключаемых библиотек. Именно с этого момента стало возможным
создания сложных программных комплексов. Если первоначально
программы писались одним программистом в каждый момент времени, то
при создании сложных программных комплексов необходимо привлекать
целый коллектив программистов, которые работали одновременно. Это
потребовало изменений в организацию процесса программирования.
Процедурное программирование позволяло разделить процесс
программирования на отдельные задачи, которые можно было выполнять
одновременно разными программистами. При этом вместо написания
большой программы, создавались относительно небольшие
подпрограммы, что позволяло значительно легче отлаживать программы
и модернизировать ранее созданные комплексы.

Если на начальном этапе развития программирования схема создания
программы была следующая:

  1. Построение алгоритма и его формальное описание
  2. Программирование (кодирование алгоритма)
  3. Отладка программы
  4. Использование программы

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

Под структурным программированием мы будем понимать такой метод
разработки программ, который начинается с тщательного
проектирования структуры программы методом «сверху вниз». При
этом каждый блок должен быть спроектирован таким образом, чтобы
его создание и отладка могла быть автономной. Часто под
структурным программированием понимают и использование «правил
хорошего тона», например исключение оператором GOTO, а также
подробное документирование текстов программ. Идеология
структурного программирование имеет своих основных авторов, к
которым относятся такие известные ученые, как Э.В.Дейкстра и
Н.Вирт.

Следующая парадигма программирования — «парадигма объектно-ориентированного программирования» Конечно, слово «следующая» нужно понимать
не в хронологическом порядке, а по распространению. Поскольку,
если структурное программирование было создано в 70-х годах, то
объектно-ориентированное программирование появилось в языке Simula, в 1967 году.
Основы объектно-ориентированного программирования в языке мы рассмотрим
подробно в нашем курсе в других главах. Объектно-ориентированное программирование
явилось новым шагом в технологии программирования и позволило
создавать сложные программные комплексы. В настоящее время подход
объектно-ориентированного программирования является стандартом для промышленного
программирования. Заметим, что, как правило, для реализации объектно-ориентированного подхода необходима соответствующая поддержка со стороны
языковых конструкций. К числу наиболее распространенных объектно-ориентированнных
языков относятся:

  • C++
  • Java
  • C#
  • Delphi
  • VB.NET
  • Perl
  • PHP
  • и многие другие.

Заметим, что объектно-ориентированный подход оказал большое влияние на архитектуру
операционной системы Microsoft Windows. Хотя в начале основным
средством для программирования под Windows был язык C, понятие
«окна» в Windows вполне соответствовало понятию объекта или
класса.

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

Хотя объектов может быть довольно много, но часто рассматриваемые
объекты имеют общие черты. Для того, чтобы не создавать
повторяющегося кода при описании объектов, был придуман механизм
наследования. Допустим, что мы моделируем транспортную сеть, в
которая состоит из автобусов, маршрутных такси, трамваев и
троллейбусов. Соответственно, у нас должно быть четыре объекта:
автобус, такси, трамвай и троллейбус. Каждый объект характеризуется
рядом показателей: положение, скорость, количество пассажиров,
возможность проехать по выбранному маршруту и т.д. Ясно, что
некоторые характеристики присущи всем четырем объектам, далее
часть характеристик (возможность проехать по данной улице) присущи
только трамваю и троллейбусу потому, что для этого транспорта
необходимо заранее проложить провода, а для трамвая и рельсы.
Покажем, как такие объекты следует реализовать на основе объектно-ориентированного подхода.
Первым делом введем объект «транспортное средство», все наши
объекты будут наследниками от этого объекта. Далее введем объекты:
«автотранспорт» и «электротранспорт». Эти объекты будут
наследниками от объекта «транспортное средство». Наконец, введем
объекты: «автобус», «такси», «трамвай» и «троллейбус». При
этом первые два объекта наследники от объекта «автотранспорт», а
последние два от объекта «электротранспорт». При наследовании
объекта нам автоматически будет доступен код, который мы создавали
для родительского класса. Технология полиморфизма позволяет, грубо
говоря, модифицировать созданный ранее код для наследуемого
класса. В следующей главе мы подробно рассмотрим объектно-ориентированное
программирование на примере языка C\#.

А что после объектно-ориентированного программирования? В последнее время набирает
популярность логическое и функциональное программирование.
Функциональное программирование довольно радикально отличается от
рассмотренных ранее парадигм программирования. Если
рассматриваемые до этого парадигмы программирования были основаны
на императивном программировании, то есть пошаговым заданием
операций, то функциональное программирование основано на
вычислениях функций. В программах, написанных с помощью
функционального программирования, нет состояния программы в каждый
момент времени. Считается, что функциональное программирование
намного ближе к математическому мышлению. Действительно,
функциональное программирование основано на -исчислении,
известном в математической логике, посвященной теории
вычислимости. Однако, большинство численных методов, применяемых
на практике основаны на итерационных процедурах, поэтому пока
функциональное программирование находит лишь ограниченное
применение в вычислительной математике. Среди языков
функционального программирования отметим:

Интересно, что язык LISP был разработан в 1958 году, что раньше
таких известных процедурных языков, как ALGOL-60, Pascal, C…
Однако именно сейчас увеличился интерес к функциональным языкам
программирования, что подтверждается поддержкой языка F# в
Microsoft Visual Studio 2010. Наконец отметим, что по выражению
Дмитрия Сошникова функциональное программирование позволяет больше
думать и меньше писать.

Ключевые термины

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

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

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

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

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

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

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

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

1. Анализ : Детальный анализ программного обеспечения выполняется для определения общих требований клиента.Этот шаг необходим для внесения корректировок и обеспечения правильной работы программного обеспечения в конце.

2. Дизайн : После завершения анализа переходят к этапу проектирования, который в основном строит архитектуру проекта. Этот шаг помогает устранить возможные недостатки, устанавливая стандарт и пытаясь его придерживаться.

3. Разработка : Опытные разработчики программного обеспечения начинают собственно процесс разработки программного обеспечения. На этом этапе создаются необходимые компоненты и функции программного обеспечения.

4. Тестирование : Этап тестирования оценивает программное обеспечение на предмет ошибок и документирует ошибки, если таковые имеются.

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

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

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

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

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

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

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

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

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

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

Ищем опытную команду разработчиков программного обеспечения !! Свяжитесь с нами

.

Что такое SDLC (жизненный цикл разработки программного обеспечения) Методологии этапов

Что такое жизненный цикл разработки программного обеспечения (SDLC)? Изучите этапы, методологии, процессы и модели SDLC

Жизненный цикл разработки программного обеспечения (SDLC) — это структура, которая определяет этапы разработки программного обеспечения на каждом этапе. Он охватывает подробный план создания, развертывания и обслуживания программного обеспечения.

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

Процесс жизненного цикла разработки программного обеспечения

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

Соблюдение процесса SDLC ведет к систематической и дисциплинированной разработке программного обеспечения.

Цель:

Целью SDLC является предоставление высококачественного продукта в соответствии с требованиями заказчика.

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

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

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

SDLC Cycle

SDLC Cycle представляет собой процесс разработки программного обеспечения.

Ниже приведено схематическое представление цикла SDLC:

Фазы SDLC

Ниже представлены различные фазы:

  • Сбор и анализ требований
  • Дизайн
  • Реализация или кодирование
  • Тестирование
  • Развертывание
  • Техническое обслуживание

# 1) Сбор и анализ требований

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

Бизнес-аналитик и менеджер проекта назначают встречу с заказчиком, чтобы собрать всю информацию, например, что заказчик хочет построить, кто будет конечным пользователем, какова цель продукта. Перед созданием продукта очень важно понимание или знание продукта.

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

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

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

# 2) Проектирование

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

# 3) Реализация или кодирование

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

# 4) Тестирование

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

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

# 5) Развертывание

После тестирования продукта он развертывается в производственной среде или выполняется первое UAT (пользовательское приемочное тестирование) в зависимости от ожиданий клиента.

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

# 6) Техническое обслуживание

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

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

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

# 1) Модель водопада

Модель водопада — самая первая модель, которая используется в SDLC. Она также известна как линейная последовательная модель.

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

  • Во-первых, выполняется сбор и анализ требований. После того, как требование заморожено, можно начинать только проектирование системы. Здесь созданный документ SRS является выходом для этапа требований и действует как вход для проектирования системы.
  • В архитектуре и дизайне программного обеспечения системного проектирования создаются документы, которые служат исходными данными для следующего этапа, то есть реализации и кодирования.
  • На этапе внедрения выполняется кодирование, и разработанное программное обеспечение является исходным материалом для следующего этапа, то есть тестирования.
  • На этапе тестирования разработанный код тщательно тестируется для выявления дефектов в программном обеспечении. Дефекты регистрируются в средстве отслеживания дефектов и повторно проверяются после исправления. Ведение журнала ошибок, повторное тестирование, регрессионное тестирование продолжается до тех пор, пока программное обеспечение не будет запущено.
  • На этапе развертывания разработанный код перемещается в производство после утверждения клиентом.
  • Любые проблемы в производственной среде решаются разработчиками, которые находятся на обслуживании.

Преимущества модели водопада:

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

Недостатки модели водопада:

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

# 2) V-образная модель

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

a) Этап проверки:

(i) Анализ требований:

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

(ii) Проектирование системы:

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

(iii) Дизайн высокого уровня:

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

(iv) Дизайн нижнего уровня:

Дизайн нижнего уровня определяет архитектуру / дизайн отдельных компонентов.

(v) Кодирование:

На этом этапе выполняется разработка кода.

b) Фаза валидации:

(i) Модульное тестирование:

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

(ii) Тестирование интеграции:

Тестирование интеграции выполняется с использованием тестовых примеров интеграции на этапе проектирования высокого уровня.Интеграционное тестирование — это тестирование интегрированных модулей. Выполняется тестировщиками.

(iii) Тестирование системы:

Тестирование системы выполняется на этапе проектирования системы. На этом этапе тестируется вся система, т. Е. Тестируется вся функциональность системы.

(iv) Приемочное тестирование:

Приемочное тестирование связано с этапом анализа требований и проводится в среде заказчика.

Преимущества V — Модель:

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

Недостатки V-модели:

  • V-образная модель не подходит для текущих проектов.
  • Изменение требований на более позднем этапе будет стоить слишком дорого.

# 3) Модель прототипа

Модель прототипа — это модель, в которой прототип разработан до фактического программного обеспечения.

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

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

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

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

Преимущества модели прототипа:

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

Недостатки прототипа модели:

  • Поскольку заказчик участвует на каждом этапе, заказчик может изменить требования к конечному продукту, что усложняет объем и может увеличить время доставки продукта.

# 4) Спиральная модель

Спиральная модель включает в себя итерационный и прототипный подход.

Фазы спиральной модели отслеживаются в итерациях. Циклы в модели представляют собой этап процесса SDLC, то есть самый внутренний цикл — это сбор и анализ требований, который следует за планированием, анализом рисков, разработкой и оценкой. Следующий цикл — проектирование, за которым следует реализация, а затем тестирование.

Спиральная модель состоит из четырех этапов:

  • Планирование
  • Анализ рисков
  • Инжиниринг
  • Оценка

(i) Планирование:

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

(ii) Анализ рисков:

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

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

(iii) Инжиниринг:

После того, как проведен анализ рисков, написано кодирование и тестирование.

(iv) Оценка:

Заказчик оценивает разработанную систему и планирует следующую итерацию.

Преимущества спиральной модели:

  • Анализ рисков широко проводится с использованием прототипов моделей.
  • Любое улучшение или изменение функциональности может быть выполнено в следующей итерации.

Недостатки спиральной модели:

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

# 5) Итеративная инкрементная модель

Итеративная инкрементная модель делит продукт на небольшие части.

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

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

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

Фазы итеративной и инкрементальной разработки Модель:

  • Начальная фаза
  • Этап разработки
  • Строительная фаза
  • Переходная фаза

(i) Начальная фаза:

Начальная фаза включает требования и объем проект.

(ii) Этап разработки:

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

(iii) Этап строительства:

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

(iv) Этап перехода:

На этапе перехода продукт развертывается в производственной среде.

Преимущества итеративной и инкрементной модели:

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

Недостатки Итеративной и инкрементной модели:

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

# 6) Модель Большого Взрыва

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

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

Преимущества модели Big Bang:

  • Это очень простая модель.
  • Меньше планирования и календарного планирования.
  • Разработчик может создавать собственное программное обеспечение.

Недостатки модели большого взрыва:

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

# 7) Agile Model

Agile Model представляет собой комбинацию итеративной и инкрементной моделей. Эта модель больше ориентирована на гибкость при разработке продукта, чем на требования.

В Agile продукт разбивается на небольшие инкрементальные сборки. Он не разрабатывается как законченный продукт за один раз. Каждая сборка увеличивается с точки зрения функций. Следующая сборка основана на предыдущей функциональности.

В Agile итерации называются спринтами. Каждый спринт длится 2-4 недели. В конце каждого спринта product owner проверяет продукт, и после его утверждения он доставляется заказчику.

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

Преимущества гибкой модели:

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

Недостатки:

  • Отсутствие документации.
  • Agile нужны опытные и высококвалифицированные ресурсы.
  • Если заказчик не понимает, каким именно должен быть продукт, проект потерпит неудачу.

Заключение

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

У различных моделей жизненного цикла разработки программного обеспечения есть свои плюсы и минусы. Лучшая модель для любого проекта может быть определена такими факторами, как Требования (четкие или неясные), Сложность системы, Размер проекта, Стоимость, Ограничение навыков и т. Д.

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

Модель Waterfall является базовой моделью, и все другие модели SDLC основаны только на ней.

Надеюсь, вы получили огромные знания о SDLC.

.

Фазы и модели жизненного цикла разработки программного обеспечения

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • Database Testing
      • ET
      • Назад
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Назад
      • Центр качества (ALM)
      • Центр качества (ALM)
      • Управление тестированием
      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • Crystal Reports
      • FICO
      • Заработная плата
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Tutorials

      4

    • Web
    • Apache
    • AngularJS
    • ASP.Net
    • C
    • C #
    • C ++
    • CodeIgniter
    • СУБД
    • JavaScript
    • Назад
    • Java
    • JSP
    • Kotlin
    • Linux
    • Linux
    • Kotlin
    • Linux
    • js

    • Perl
    • Назад
    • PHP
    • PL / SQL
    • PostgreSQL
    • Python
    • ReactJS
    • Ruby & Rails
    • Scala
    • SQL
    • 000

    • SQL
    • 000

      0003 SQL

      000

      0003 SQL

      000

    • UML
    • VB.Net
    • VBScript
    • Веб-службы
    • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Business Analyst
      • Создание веб-сайта
      • CCNA
      • Облачные вычисления
      • 00030003 COBOL 9000 Compiler
          9000 Встроенные системы

        • 00030002 9000 Compiler 9000
        • Ethical Hacking
        • Учебники по Excel
        • Программирование на Go
        • IoT
        • ITIL
        • Jenkins
        • MIS
        • Сеть
        • Операционная система
        • Назад
        • Управление проектами Обзоры
        • Salesforce
        • SEO
        • Разработка программного обеспечения
        • VB A
    • Big Data

        • Назад
        • AWS
        • BigData
        • Cassandra
        • Cognos
        • Хранилище данных
        • 00030003

        • HBOps
        • HBOps
        • 0003

        • MicroStrategy

    .

    Что такое разработка программного обеспечения? | Различные этапы и модели SDLC

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

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

    Рис 1

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

    1. Планирование: Анализ планирования и требований — это начальный, жизненно важный и фундаментальный этап в SDLC, который выполняется старшими членами команды при участии клиентов, отдела продаж, отраслевых экспертов, рыночных обзоров в отрасли.Вся эта информация затем накапливается и используется для планирования основного подхода к проекту, проведения технико-экономического обоснования продукта во всех сферах, от экономических, эксплуатационных до технических. Технико-экономическое обоснование открывает множество возможностей для реализации проекта, однако выбор подхода основан на самом высоком факторе качества с минимальным риском.
    2. Определение: Post Requirement Анализ, определение и документирование требований в ясной форме очень важны. Как только это будет сделано, эти задокументированные требования должны быть одобрены клиентами / аналитиками рынка.SRS (Спецификация требований к программному обеспечению) вступает в игру для этого, которая содержит все требования к продукту, которые должны быть спроектированы и разработаны в течение жизненного цикла проекта.
    3. Проектирование: SRS считается эталоном для архитекторов продукта, чтобы предложить лучшую архитектуру для продукта, который будет разработан. На основе установленных требований предлагается более одного подхода к архитектуре продукта. Все это задокументировано в DDS (Design Document Specification).Затем DDS рассматривается и анализируется важными участниками / заинтересованными сторонами на основе различных факторов, таких как рыночные риски, модульность дизайна, бюджетные ограничения, временные ограничения, надежность продукта, лучший подход к дизайну и т. Д. Подход к дизайну несет всю информацию. Об архитектурном модуле продукта в виде схемы потоков данных. Внутренние или внешние, мельчайшие детали должны присутствовать в дизайнерском документе.
    4. Building: Это этап, на котором начинается фактическая разработка продукта и создается продукт.Ссылаясь на схему потока данных в проектном документе, создается программный код. Чем понятнее задокументировано, тем проще генерируется код

    .

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *