Лекция
Привет, Вы узнаете о том , что такое виды методологий, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое виды методологий, разработка программного обеспечения, цикл разработки, жизненный цикл программы, анализ требований, sdlc, проектирование, внедрение, сопровождениетестирование, документация, разработка и программирование, lean-разработка , настоятельно рекомендую прочитать все из категории Теоретические основы электротехники.
Разработка программного продукта знает много достойных методологий — иначе говоря, устоявшихся best practices. Выбор зависит от специфики проекта, системы бюджетирования, субъективных предпочтений и даже темперамента руководителя.
Как и другие традиционные инженерные дисциплины, разработка программного обеспечения имеет дело с проблемами качества, стоимости и надежности. Некоторые программы содержат миллионы строк исходного кода, которые, как ожидается, должны правильно исполняться в изменяющихся условиях. Сложность ПО сравнима со сложностью наиболее сложных из современных машин, таких как самолеты.
Термин «жизненный цикл разработки программного обеспечения» восходит к 1950-м годам .
В то время не было никаких других доступных методов или структур.
Был только один метод, описанный как жизненный цикл разработки программного обеспечения - « разработка крупномасштабных функциональных бизнес-систем в эпоху крупномасштабных бизнес-конгломератов. Деятельность информационных систем была сосредоточена на обработке больших объемов данных и сокращении чисел. »
Сегодня определение жизненного цикла разработки программного обеспечения следующее:
Создавайте высококачественное программное обеспечение в кратчайшие сроки, выполнив 7 этапов жизненного цикла разработки программного обеспечения.
В настоящее время существуют различные методологии SDLC, водопад является старейшим и самым популярным из 1960-х годов.
Каждая модель жизненного цикла разработки программного обеспечения отличается от других.
Чтобы выбрать правильный, вам нужно тщательно проанализировать свои процессы разработки. Вам нужно понять, лучше ли вам придерживаться жесткой модели SDLC или придерживаться чего-то более гибкого. И я помогу тебе с этим.
SDLC (Software Development Life Cycle) — жизненный цикл разработки ПО. SDLC подразумевает действия и задачи, которые осуществляются в ходе разработки ПО. В SDLC нет анализа безопасности разрабатываемого продукта. А в SSDLC это учитывается, и добавлен уровень безопасности Secure.
На данный момент только некоторые компании по разработке ПО могут превентивно заниматься безопасностью уже на этапе планирования. Чаще всего о безопасности задумываются, когда жизненный цикл разработки ПО находится на этапе тестирования системы или уже после релиза, что существенно сказывается на стоимости обнаружения и устранения. Бывает, конечно, что о безопасности и вовсе не задумываются.
При разработке безопасного ПО рекомендуется придерживаться Microsoft SDL (Security Development Life cycle) или Cisco SDL (Secure Development Life cycle). Для анализа рисков следует использовать общие методики оценки рисков ISO 27 005, NIST, также можно использовать в оценке типовые ошибки и недоработки ПО CWE.
Процесс разработки ПО по SSDLC должен гарантировать, что действия по обеспечению безопасности, такие как: анализ проекта, анализ архитектуры, проверка кода и тестирование на проникновение являются неотъемлемой частью жизненного цикла разработки. SSDLC помогает интегрировать эти этапы в жизненный цикл продукта. Благодаря этому достигаются:
SSDLC состоит из этапов, каждый из которых может включать несколько процессов:
Рисунок модель SDLC
Рисунок модель SSDLC
Рисунок Переход от предметной области к программированию, или как общаться с заказчиком
Модель – формализованное описание предметной области.
Логическая модель отражает взгляд на предметную область со стороны заказчика
Физическая модель отражает взгляд на предметную область со стороны разработчика
жизненный цикл программы - совокупность взаимосвязанных и следующих во времени этапов, начиная от разработки требований к программе и заканчивая
полным отказом от ее использования
Жизненный цикл программы формально можно рассматривать как переход от логической модели предметной области к физической модели предметной области через промежуточные модели. Каждая из моделей отражает точку зрения на разрабатываемую программу определенного участника процесса разработки.
Рисунок Чего хотел заказчик и как его поняли или как общаться с заказчиком?
Рисунок Информационный процесс с точки зрения программиста
Информационный процесс - это процесс получения, хранения, обработки и передачи информации с помощью компьютерных и других технических средств
Данные - информация любой природы, зафиксированная тем или иным способом
Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Часто универсальным исполнителем алгоритмов является компьютер (операционная система с языком программирования и фреймворком).
Алгоритм – это точное описание последовательности действий над входными данными, выполнение которых исполнителем приводит к
получению выходных данных.
Рисунок Информационный процесс (будущая система) с точки зрения заказчиков
Жизненный цикл разработки ПО начинается со стадии анализа, во время которого участники процесса обсуждают требования, предъявляемые к конечному продукту. Цель этой стадии – определение детальных требований к системе. Кроме этого, необходимо убедиться в том, что все участники правильно поняли поставленные задачи и то, как именно каждое требование будет реализовано на практике.
Зачастую, в обсуждении участвуют также и специалисты по тестированию, которые уже на стадии разработки требований могут вносить собственные пожелания и, при необходимости, корректировать процесс.
В зависимости от выбранной модели разработки, могут отличаться подходы к определению момента перехода с одной стадии на другую. К примеру, в каскадной или V-модели стадия анализа требований закрепляется в документе – спецификации требований к программному обеспечению (Software Requirement Specification, SRS), оформление которого должно быть закончено до перехода на следующую стадию.
Таким образом, этот этап предполагает сбор требований к разрабатываемому программному обеспечению, ихсистематизацию, документирование, анализ, а также выявление и разрешение противоречий.
На стадии проектирования (называемой также стадией дизайна и архитектуры) программисты и системные архитекторы, руководствуясь требованиями, разрабатывают высокоуровневый дизайн системы.
Разнообразные технические вопросы, возникающие в процессе проектирования, обсуждаются со всеми заинтересованными сторонами, включая заказчика. Определяются технологии, которые будут использоваться в проекте, загрузка команды, ограничения, временные рамки и бюджет. В соответствии с уточненными требованиями выбираются наиболее подходящие проектные решения.
Утвержденный дизайн системы определяет перечень разрабатываемых программных компонентов, взаимодействие с третьими сторонами, функциональные характеристики программы, используемые базы данных и многое другое. Дизайн, как правило, закрепляется отдельным документом – дизайн-спецификацией (Design Specification Document, DSD).
На этом этапе для упрощения визуализации процесса проектирования используются так называемые нотации – схематическое выражение характеристик разрабатывемой системы. Основные используемые нотации:
– Блок-схемы;
– ER-диаграммы;
– UML-диаграммы;
– Макеты – например, нарисованный в фотошопе прототип сайта.
После того как требования и дизайн продукта утверждены, происходит переход к следующей стадии жизненного цикла – непосредственно разработке. Здесь начинается написание программистами кода программы в соответствии с ранее определенными требованиями.
Системные администраторы настраивают программное окружение, front-end программисты разрабатывают пользовательский интерфейс программы и логику ее взаимодействия с сервером.
Кроме того, программисты пишут Unit-тесты для проверки правильности работы кода каждого компонента системы, проводят ревью написанного кода, создают билды и разворачивают готовое ПО в программной среде. Этот цикл повторяется до тех пор, пока все требования не будут реализованы.
Программирование предполагает четыре основных стадии:
1) Разработка алгоритмов – фактически, создание логики работы программы;
2) Написание исходного кода;
3) Компиляция – преобразование в машинный код;
4) Тестирование и отладка – речь, главным образом, о юнит-тестировании.
4. документация
Этот этап выделяют достаточно условно, поскольку, как мы видели, те или иные документы создаются на всех стадиях жизненного цикла программы. Тем не менее, помимо проектной документации и сопровождающих разработку записей, существуют также и другие текстовые документы, описывающие, например, функции программы и способы ее использования.
Всего существует четыре уровня документации:
– Архитектурная (проектная) – например, дизайн-спецификация. Это документы, описывающие модели, методологии, инструменты и средства разработки, выбранные для данного проекта.
– Техническая – вся сопровождающая разработку документация. Сюда входят различные документы, поясняющие работу системы на уровне отдельных модулей. Как правило, пишется в виде комментариев к исходному коду, которые впоследствии структурируются в виде HTML-документов.
– Пользовательская – включает справочные и поясняющие материалы, необходимые конечному пользователю для работы с системой. Это, к примеру, Readme и Userguide, раздел справки по программе.
– Маркетинговая – включает рекламные материалы, сопровождающие выпуск продукта. Ее цель – в красочной форме представить функциональность и конкурентные преимущества продукта.
Причем некторые сокращают и используют сециальные типы документирования - Требования, Бриф, ТЗ, Спецификация и по ним работают
5. Тестирование
Основные этапы тестирования мы уже рассматривали ранее, в разделе Фундаментальный процесс тестирования
Тестировщики занимаются поиском дефектов в программном обеспечении и сравнивают описанное в требованиях поведение системы с реальным.
В фазе тестирования обнаруживаются пропущенные при разработке баги. При обнаружении дефекта, тестировщик составляет отчет об ошибке, который передается разработчикам. Последние его исправляют, после чего тестирование повторяется – но на этот раз для того, чтобы убедиться, что проблема была исправлена, и само исправление не стало причиной появления новых дефектов в продукте.
Тестирование повторяется до тех пор, пока не будут достигнуты критерии его окончания.
Виды, методы и техники тестирования мы подробно рассмотрим дальше .
6. внедрение и сопровождение
Когда программа протестирована и в ней больше не осталось серьезных дефектов, приходит время релиза и передачи ее конечным пользователям.
После выпуска новой версии программы в работу включается отдел технической поддержки. Его сотрудники обеспечивают обратную связь с пользователями, их консультирование и поддержку.
В случае обнаружения пользователями тех или иных пост-релизных багов, информация о них передается в виде отчетов об ошибках команде разработки, которая, в зависимости от серьезности проблемы, либо немедленно выпускает исправление (т.н. hot-fix), либо откладывает его до следующей версии программы.
Кроме того, команда технической поддержки помогает собирать и систематизировать различные метрики – показатели работы программы в реальных условиях.
Если серьезно рассмотреть этапы жизненного цикла разработки программного обеспечения, скорее всего, вы получите выдающийся продукт. Ваши разработчики создадут программное обеспечение, о котором ваши пользователи с удовольствием расскажут и порекомендуют.
Это потому, что программисты в вашей команде будут иметь исчерпывающую документацию для работы (документы DDS и SRS). Они также получат обратную связь от менеджеров по продукту и заинтересованных сторон. Все будут на одной странице. Таким образом, вы сможете разработать продукт, который превзойдет конкурентов в большинстве случаев.
Однако, если обратная связь с конечным пользователем не проводится должным образом, не ожидайте, что получите большую отдачу от затраченных средств.
Поэтому убедитесь, что ваш исследовательский процесс сделан правильно. Если вы в состоянии понять, чего действительно хотят ваши пользователи, вы можете:
Многие документы могут усложнить процесс SDLC и замедлить его.
Поэтому вам нужно найти баланс между скудным документом и полным документом, чтобы ваша команда была максимально продуктивной.
существует множество методологий жизненного цикла разработки программного обеспечения.
Исходя из потребностей и предпочтений проекта, некоторые методологии SDLC будут более подходящими для вас, чем другие.
Сегодня мы остановимся на самых популярных методах SDLC. И мы также поможем вам выбрать правильный вариант для вашей команды.
Методы разработки программного обеспечения:
Одна из самых старых, подразумевает последовательное прохождение стадий, каждая из которых должна завершиться полностью до начала следующей. В модели Waterfall легко управлять проектом. Благодаря ее жесткости, разработка проходит быстро, стоимость и срок заранее определены. Но это палка о двух концах. Каскадная модель будет давать отличный результат только в проектах с четко и заранее определенными требованиями и способами их реализации. Нет возможности сделать шаг назад, тестирование начинается только после того, как разработка завершена или почти завершена. Продукты, разработанные по данной модели без обоснованного ее выбора, могут иметь недочеты (список требований нельзя скорректировать в любой момент), о которых становится известно лишь в конце из-за строгой последовательности действий. Стоимость внесения изменений высока, так как для ее инициализации приходится ждать завершения всего проекта. Тем не менее, фиксированная стоимость часто перевешивает минусы подхода. Исправление осознанных в процессе создания недостатков возможно, и, по нашему опыту, требует от одного до трех дополнительных соглашений к контракту с небольшим ТЗ.
С помощью каскадной модели мы создали множество проектов «с нуля», включая разработку только ТЗ. Проекты, о которых было уже написано : средний — рентгеновский микротомограф, мелкий — автообновление службы Windows на AWS.
Будучи самой старой и популярной, модель Waterfall заслуживает первого места в нашем списке.
Это восходит к 1960-ым , и люди все еще используют это сегодня.
Название «Водопад» происходит от последовательного порядка, в котором задачи выполняются. Выход первого назначения служит входом для второго (инкрементальный подход). И этот процесс повторяется до тех пор, пока весь продукт не будет полностью разработан.
Что хорошо в модели SDLC Waterfall, так это то, что она относительно проста в использовании.
Опираясь на большое количество планирования и документации, модель Waterfall позволяет наметить каждый шаг процесса разработки.
Командное общение также очень эффективно, так как на этом пути не так много препятствий.
Модель SDLC Waterfall имеет те же 7 этапов жизненного цикла разработки программного обеспечения - планирование, требования, проектирование, внедрение, тестирование, развертывание и обслуживание .
При использовании метода «Водопад» обычно требуется много планирования, поскольку вам необходимо составить точное изображение конечного продукта.
Разработка документов SRS и DDS практически одинакова. Вы разрабатываете все функции, которые необходимо разработать, затем тщательно описываете их и предоставляете заинтересованным сторонам документы для получения одобрения.
Этап реализации занимает от 3 до 12 месяцев, иногда даже больше.
Это на самом деле считается недостатком, потому что конечный пользователь не может увидеть работающий продукт до поздней стадии разработки.
Подумайте о Windows . Они выпускают новую версию каждые пару лет. Это означает, что они используют модель водопада.
После того, как продукт разработан, он должен быть протестирован. Если ошибки появляются, их следует удалить. И тогда вы готовы к развертыванию.
После развертывания вы должны наблюдать за тем, как рынок реагирует на ваш продукт. Затем внесите изменения, чтобы улучшить программное обеспечение и порадовать своих конечных пользователей. Таким образом, вы легко узнаете о своем продукте.
В общем, с водопадом все сделано просто и понятно.
Недостаток методологии Waterfall в том, что изменения могут быть чрезвычайно дорогостоящими или даже невозможными. Это потому, что каждый шаг должен быть выполнен последовательно. Поэтому, если вы пропустили запись какой-либо функции в своем бэклоге, у вас будет трудное и дорогое время, чтобы полностью отменить весь процесс.
Мы уже упоминали о Windows и о том, как они используют модель Waterfall.
Эта методология основана на долгосрочных проектах, которые могут занять у вас более года, как Windows 7, 8, 10 и т. Д.
В противном случае вы можете обратиться к другим моделям SDLC, таким как Agile, Scrum и XP, которые будут обсуждаться ниже.
В процессе создания программного обеспечения используются семь основных видов жизненных циклов. Типичный цикл разработки программного обеспечения называется «каскадным» и выглядит следующим образом.
01 | Подготовка | Сбор и обработка требований. Предварительное планирование этапов работ, сроков, ресурсов и стоимости. | |
02 | Проектирование | Получение технических заданий, разработка спецификаций. Партнер получает документальное изложение своих требований и планы проведения работ. | |
03 | Создание |
|
|
04 | Поддержка |
|
Унаследовала структуру «шаг за шагом» от каскадной модели. V-образная модель применима к системам, которым особенно важно бесперебойное функционирование. Например, прикладные программы в клиниках для наблюдения за пациентами, интегрированное ПО для механизмов управления аварийными подушками безопасности в транспортных средствах и так далее. Особенностью модели можно считать то, что она направлена на тщательную проверку и тестирование продукта, находящегося уже на первоначальных стадиях проектирования. Стадия тестирования проводится одновременно с соответствующей стадией разработки, например, во время кодирования пишутся модульные тесты.
Пример нашей работы на основе V-методологии — мобильное приложение для европейского сотового оператора, который экономит расходы на роуминг во время путешествий. Проект выполняется по четкому ТЗ, но в него включен значительный этап тестирования: удобства интерфейса, функционального, нагрузочного и в том числе интеграционного, которое должно подтверждать, что несколько компонентов от различных производителей вместе работают стабильно, невозможна кража денег и кредитов.
Метод SDLC V является в основном улучшенной версией модели Waterfall. Вы работаете на одной фазе за раз. И только когда вы закончите задачу, вы можете перейти к следующей.
Название происходит от параллельной структуры V, за которой следует эта модель.
Тестирование жизненного цикла разработки программного обеспечения проводится на каждом этапе - и в этом главное отличие этого метода от модели Waterfall.
Методология V состоит из 9 различных фаз SDLC - анализ требований, проектирование системы, проектирование архитектуры, проектирование модулей, кодирование, модульное тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование .
Стоит отметить, что здесь есть две части уравнения - Проверка (планирование и сборка) и Проверка (тестирование и улучшение).
Этапы от анализа требований до разработки модуля находятся на этапе проверки. Принимая во внимание, что этапы от модульного тестирования до приемочного тестирования переводятся в фазу проверки.
Только фаза кодирования является нейтральной - она участвует в обоих.
Давайте начнем с ...
Вот где происходит волшебство.
Ваши разработчики должны поддерживать постоянную связь между менеджерами продукта и заинтересованными сторонами. Это поможет им разработать выдающийся продукт .
Разработчики выбирают идеальный язык кодирования в зависимости от типа создаваемого вами продукта. Разработчики постоянно пересматривают код и следят за тем, чтобы все сводилось к науке.
Этап модульного тестирования - на этом этапе код тестируется и оптимизируется. Все ошибки и ошибки, возникающие на этом пути, удаляются. Разработчики прилагают все усилия, чтобы гарантировать, что они поставляют безупречный код.
продолжение следует...
Часть 1 Все виды методологий разработки программного обеспечения . Цикл разработки ПО
Часть 2 3. «Incremental Model» (инкрементная модель) - Все виды методологий разработки
Часть 3 8. Скрам методология - Все виды методологий разработки программного обеспечения
Часть 4 Юмор - Все виды методологий разработки программного обеспечения . Цикл
Исследование, описанное в статье про виды методологий, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое виды методологий, разработка программного обеспечения, цикл разработки, жизненный цикл программы, анализ требований, sdlc, проектирование, внедрение, сопровождениетестирование, документация, разработка и программирование, lean-разработка и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Теоретические основы электротехники
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Теоретические основы электротехники
Термины: Теоретические основы электротехники