Разработка мобильного приложения это процесс, который мы разбиваем на этапы. У каждого этапа свои функции и понятный результат на выходе. Всего это 7 этапов от предварительной аналитики перед разработкой до технической поддержки после публикации.
1 этап: Аналитика
На этом этапе анализируем бизнес-процессы, детализируем функциональные требования и продумываем пользовательские истории в приложении. Составляем техническое задание с подробным описание того, как будет работать мобильное приложение.
Что получает клиент:
- документы с описанием работы всей системы
- Проект с с этапами работ и предварительной ценой
срок: 2 -4 недели
2 этап: Прототипирование
Прорабатываем пользовательские сценарии и визуализируем общую структуру мобильного приложения на основе технического задания. Продумываем логику переходов между экранами. Создаём концептуальную модель приложения — описываем экраны и элементы. Работаем над объектами — описываем их атрибуты и связь друг с другом. Формируем дизайн-концепцию приложения и создаем интерактивный прототип — показываем визуальный образ приложения и его функциональность.
SDLС — Жизненный цикл разработки программного обеспечения. Подробный разбор этапов разработки.
Источник: dzen.ru
Разбираемся с Product Development — что это такое и с чем его не стоит путать
Изучаем один из главных терминов продакт-менеджмента. Рассказываем, из каких стадий состоит разработка продукта.
Кадр: мультсериал «Рик и Морти»
Кирилл Овчарук
Старший редактор по маркетингу, управлению и бизнесу в Skillbox Media. Десять лет назад настроил «Директ», и всё завертелось…
Product Development, или New Product Development, — термин, которым описывают весь процесс создания нового продукта и вывода его на рынок. На русском языке New Product Development называют разработкой продукта. Иногда термин заменяют на аббревиатуру NPD.
Под продуктом в данном случае понимают товар, сервис или услугу, с помощью которых пользователи удовлетворяют потребности. Product Development — это не всегда создание чего-либо с нуля. Так называют ещё значительную доработку или обновление существующего продукта, а иногда — репозиционирование.
Product Development включает в себя создание идеи, дизайн продукта и маркетинговые исследования. NPD — это деятельность на стыке дизайна, технологий, маркетинга и бизнеса.
Практики, с помощью которых разрабатывают продукты, различаются от компании к компании. Они зависят от многих факторов: например, отрасли, доступных технологий, ресурсов, корпоративной культуры.
Этапы разработки программ
С чем путают и чему противопоставляют Product Development
С разработкой новых продуктов связано много специальной терминологии. В этом разделе мы разберём, как NPD соотносится с несколькими смежными терминами.
В чём разница между Product Development и продакт-менеджментом? Разработка новых продуктов — часть продакт-менеджмента. Последний включает управление продуктом на всех этапах жизненного цикла.
В продакт-менеджмент входят маркетинг, удержание на рынке, отслеживание продуктовых метрик и многое другое. За всё это в компаниях отвечают продакт-менеджеры. Product Development — это первый этап жизненного цикла продукта.
Почему Product Development путают с project-менеджментом? Разработка нового продукта — это проект. Поэтому часто проектные менеджеры получают в управление проекты по созданию новых продуктов. Кажется, что «продакты» и «проджекты» — одни и те же люди.
Кроме того, многие технологии управления проектами выросли из Product Development. Например, Agile — это «гибкая методология разработки», а Scrum появился как фреймворк для создания программных сервисов.
Тем не менее разработка продуктов и управление проектами требуют разных компетенций. Цели многих проектов не имеют отношения к продуктам.
Почему Product Development противопоставляют Customer Development? Customer Development — это концепция разработки новых продуктов от потребностей клиентов. Подробно мы рассказываем о CustDev здесь.
Кратко суть концепции можно объяснить так. Сначала нужно с помощью интервью исследовать проблемы клиентов. Потом — с минимальными затратами создать продукт, который эти проблемы решает. Он называется MVP, или минимально жизнеспособным продуктом. Его выводят на рынок, а в случае коммерческого успеха создают полноценный товар или сервис.
Product Development, как и CustDev, предполагает работу с потребностями клиентов. Более того, Customer Development — это один из подходов, которые могут использовать в ходе NPD.
Customer Development противопоставляют не Product Development, а «продуктоцентристскому» подходу, которому следуют некоторые компании. Они не изучают рынок, а сосредотачиваются на разработке лучшего продукта. Такой же логике следуют некоторые создатели стартапов.
В середине XX века спрос на продукты во многих нишах превышал предложение. По этой причине «продуктоцентристские» практики были распространены. Однако в XXI веке маркетинг — обязательная часть Product Development.
Семь этапов Product Development
Как мы уже говорили, процесс Product Development различается от компании к компании. Однако можно встретить утверждение, что разработка продуктов во многих компаниях проходит в семь этапов.
Семь этапов — модель BAH , разработанная в 1982 году. Это одна из самых популярных моделей в Product Development. Вот какие этапы в неё входят:
- Разработка стратегии продукта. На этом этапе определяют, зачем компании нужен продукт, как его запуск повлияет на бизнес и каких целей нужно достичь с помощью нового товара, услуги или сервиса.
- Генерация идей. Маркетологи, аналитики и разработчики устраивают мозговой штурм и предлагают идеи того, каким должен быть продукт.
- Проверка и оценка идей. На этом этапе из всех найденных идей отбирают жизнеспособные. Для этого их проверяют и тестируют. Например, с помощью SWOT-анализа или PoC — доказательства правильности концепции. В разработку берут ту идею, от которой ожидают наибольшей прибыли.
- Бизнес-анализ. Рассчитывают будущую цену продукта, составляют прогноз объёмов продаж, оценивают ожидаемую прибыль и рентабельность.
- Разработка. На этом этапе от теории переходят к практике — создают продукт, который можно продавать. Производят пока в небольших объёмах, чтобы проверить, будет ли он востребован на рынке.
- Тестирование. Проводят эксперименты в коммерческой среде: продают товар и исследуют реакцию потребителей на него. На этом этапе проверяют не только реакцию рынка, но и то, как работает производство: есть ли трудности, появляется ли брак.
- Коммерциализация. Это заключительный этап — компания запускает массовое производство продукта. Специалисты разрабатывают маркетинговую стратегию и приступают к продвижению. В процессе собирают данные для анализа, чтобы в будущем менять продукт или оптимизировать маркетинг.
Подведём итог
- Product Development — это весь процесс разработки продукта и вывода его на рынок. Разработка продукта — часть продакт-менеджмента.
- Product Development — не то же самое, что проджект-менеджмент: они требуют разных компетенций. Хотя разработка продукта — это проект.
- NPD могут противопоставлять CustDev, но это неверно. CustDev — один из подходов, которые могут использовать в разработке продукта.
- Процесс разработки различается у разных компаний. Тем не менее часто NPD можно разбить на семь этапов: разработка стратегии, генерация идей, проверка и оценка идей, бизнес-анализ, разработка, тестирование, коммерциализация.
Другие материалы Skillbox Media для руководителей
- Стартовый гайд по управлению конфликтами — и стоит ли с ними бороться
- Разбор: что такое бизнес-модель и как с её помощью спасти компанию
- Большой гайд по управлению персоналом: всё, что нужно знать менеджеру
- Разбор: что такое ERP-система и почему она нужна бизнесу
- Советы, как вести себя в токсичном коллективе специалисту и руководителю
Аббревиатура от названия консалтинговой фирмы, предложившей модель, — Booz, Allen and Hamilton.
Источник: skillbox.ru
VII Международная студенческая научная конференция Студенческий научный форум — 2015
СИСТЕМЫ МОДЕЛИРОВАНИЯ ПРОЦЕССОВ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Ткачева А.Ю. 1 , Абрамова О.Ф.
1 ВПИ (филиал) ВолгГТУ
Работа в формате PDF
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF
Программное обеспечение – совокупность программных продуктов, сущность которых направлена на автоматизацию каких-либо процессов. Так же программное обеспечение является неотъемлемой частью других технических сооружений, которые должны реализовать алгоритмы решения предназначенных для них задач. Поэтому на сегодняшний день актуален вопрос о разработке этого программного обеспечения. Для разработчика важно, чтобы продукт был качественным и компактным.
Ведь ещё 15 лет назад люди не могли представить себе фотоаппарат, который может подключиться к беспроводной сети Wi-Fi, телефон без кнопок, с которого можно дозвониться в любую точку мира, телевизор, на котором можно переключать канал взмахом руки, терминалы, электронные деньги и тому подобное. Резкому скачку в техническом прогрессе, по мнению успешных разработчиков, способствовала конкуренция между ними. За идеей одного разработчика рождалась идея другого. Поэтому конкуренция между ними порождала новые процессы разработки программных систем, появился стимул для их совершенствования, который существует по сегодняшний день.
Процесс – вид деятельности, производящийся по определённому алгоритму с целью получения конкретного результата (продукта, услуги и т. п.). Чтобы выполнить процесс разработки программного обеспечения разработчику необходимо:
- Разработать спецификацию требований, которым должна подчиняться система. Программа должна полностью соответствовать предназначенному ей описанию. Требования должны быть сформулированы недвусмысленно, непротиворечиво, обладать такими свойствами как полнота, проверяемость.
- Смоделировать будущее программное обеспечение. Этот шаг может быть осуществлён при помощи CASE средств, таких как MS Project, Power Builder, Rational Rose. На этом этапе создатель системы разрабатывает проект программного средства. Здесь он должен предусмотреть все заданные требования, описание системы, надёжность и безопасность системы, эффективность и удобство использования. В проектировании должны применяться только современные методы разработки
- Кодирование. После моделирования системы с учетом требований заказчика разработчик приступает к кодированию. Правильная реализация данного пункта заключается в том, что в процессе разработки кода должны учитываться установленные стандарты качества кода (способ выбора названий, регистр символов, стиль отступов, расстановки скобок, пробелов, использование комментариев).
- Тестирование системы. На этапе тестирования проводится контроль соответствия требованиям программной системы. Тестирование проводится как отдельных модулей системы, так и всей системы в целом. Результатом тестирования является сравнение текущего состояния системы и ожидаемого. Таким образом, тестирующий выявляет несоответствия программы требованиям и устраняет их.
- Документирование. Самым ответственным шагом разработки системы является именно документирование. Потому что разработчик должен уметь не только изобрести продукт, но и правильно его представить заказчику, сопроводить, чтобы в дальнейшем была возможна профилактика и совершенствование программы. Документацию содержит любой стандартный процесс разработки программного обеспечения. В неё входит спецификация требований, подробное описание системы, анализ осуществимости и анализ рисков, план распределения бюджета и сроков выполнения проекта, варианты использования продукта, объяснение терминов, использованных при описании продукта, а также другие индивидуальные предписания по использованию системы в зависимости от её назначения. Проект должен быть документирован в соответствии со стандартами.
В процессе разработки программного обеспечения ведется контроль выполнения проекта и его улучшение.
Моделированием является способ познания процессов разработки программного обеспечения с использованием объекта-модели. Это создание образов действий, ориентированных на внедрение в процесс современных методов разработки систем. Моделирование процессов позволяет улучшить представление о разработке обеспечения, предусмотреть критические ситуации, провести анализ перспектив будущей системы. Для того чтобы смоделировать какой-либо процесс, потребуется его структурная схема.
Рассмотрим несколько моделей разработки систем:
- Каскадная модель. После анализа последовательности этапов каскадной модели разработки становится видно, что эта модель является стандартным процессом, описанным ранее. Этот способ создания программы не эффективен на сегодняшний день: разработчик, используя данную модель, ограничивает себя в общении с заказчиком. Заказчик, в свою очередь должен четко формулировать требования заранее, а разработчик общается с ним только после выполнения определённого этапа и после завершения процесса должен предоставить конечный продукт с полным пакетом документации.
- Спиральная (циклическая) модель. Смысл этой модели заключается в том, что каждый последующий шаг определяется только после общения с заказчиком. Например, если уже на стадии разработки спецификации требований возникло недопонимание между разработчиком и заказчиком, процесс не будет продвигаться на следующий шаг, пока эти разногласия не будут устранены. Зацикливание может возникнуть на любом этапе процесса разработки. Использование данной модели достаточно эффективно, так как самый главный залог успешного выполнения проекта, постоянное промежуточное консультирование с заказчиком, и есть её основным отличием от других.
Последовательность этапов схожа с порядком шагов в каскадной модели, но на каждом из них кроме разработки также происходит анализ, оценка альтернатив и спецификаций и тестирование. Данная модель требует высоких затрат и нецелесообразна при ограниченных финансах. Но основной проблемой модели является определение момента перехода к следующему этапу. При использовании спиральной модели снижаются риски, что не мало важно при разработке крупных систем.
- Компонентная (пошаговая) модель.Под компонентом программы в узком смысле понимается программный модуль. Компонент имеет возможность поставки и удаления в отрыве от всей программы. Основной задачей модели является тестирование и интеграция. Так как компонентная модель подразумевает сборку продукта из готовых компонентов, то риск системных ошибок значительно снижается. Данная модель позволяет активно использовать прототипы, в чем заключается приоритетность разработки. В процессе разработки рассматривается не только в целом жизненный цикл системы, но и жизненный цикл каждого программного модуля.
- Формальная модель. Принцип данной модели заключается в том, что после спецификации требований разработчик сразу же приступает к трансляции требований в программный код. Этот подход к разработке доступен только опытным разработчикам, так как в результате система будет тестироваться в целом и должна полностью соответствовать спецификации требований.
- Эволюционная модель. Эта модель подразумевает постепенную разработку, но плохую структурированность и документацию. Происходит разработка так называемых под-проектов, что приводит к частичной разработке всей системы. Такой подход обеспечивает постоянный учет требований заказчика.
Итак, системы моделирования процессов разработки строились на качестве выполнения требований к разрабатываемой системе. При анализе каждой модели выявлена эффективность только тех, в которых предусмотрено постоянное общение с заказчиком, наличие, качество и полнота документации.
Моделирование может применяться во всех перечисленных моделях разработки.
Моделирование может производиться и на этапе постановки задачи, как заказчиком, так и разработчиком. Здесь спектр задач моделирования весьма велик. Например, заказчик предъявил особые требования к дизайну сайта и сделал макеты страниц в системе Axure RP Pro. Если есть готовая модель web-страниц, то нет необходимости перечислять требования к дизайну страниц в техническом задании, достаточно просто сослаться на модель.
На этапе анализа требований моделирование – хороший способ обезопасить себя как заказчика, ведь некоторые детали можно уточнить у заказчика. Примером может служить случай, когда дизайн сайта описан в словесной форме и, чтобы уточнить, что именно имел в виду заказчик, можно воспользоваться системой Axure RP Pro 7.0. Также необходимо поступать и с графическим интерфейсом программ, ведь графическая часть плохо описывается словесно. Если предметом разработки является компьютерная игра, то, возможно необходимы 3D модели элементов игры.
Моделирование активно применяется на этапе проектирования программного продукта. Простейшим примером моделирования является составление блок-схемы, которая является модель алгоритма решения задачи. Примером системы для моделирования на этапе проектирования может служить Astah – программа, предназначенная для создания UML диаграмм.
UML (Unified Modeling Language) — унифицированный язык моделирования, активно применяется при объектно-ориентированном анализе. Цель UML наглядное проектирование архитектуры программного продукта. В стандарт UML входят следующие виды диаграмм:
— диаграмма вариантов использования;
— диаграмма компонентов и другие.
Диаграмма вариантов использования (use case diagram) состоит из экторов (англ. Actor) и претендентов. Эктор отражает объект, а претендент – действие. Диаграмма хорошо подходит для моделирования практически любых процессов. Пример диаграммы приведён на рисунке 2. На диаграмме эктором является «человек», а претендентами «идти» и «бежать».
Таким образом, с помощью диаграммы вариантов использования можно показать, что может делать пользователь при работе с программой.
Рисунок 2. Пример диаграммы вариантов использования.
Диаграммы классов применяются только в объектно-ориентированном программировании. Они являются визуальным представлением структуры классов в программе. Диаграммы классов используются гораздо чаще других диаграмм, они позволяют разработчикам правильно спроектировать архитектуру программного продукта.
Диаграмма компонентов – отражает компоненты программной системы взаимодействия между ними.
В процессе тестирования и внедрения также могут использоваться системы моделирования.
Другим известным средством моделирования является BOUML. Оно предназначено для автоматизации построения программного обеспечения, а также для генерации кодов на различных языках и выпуска проектной документации. Принцип его работы заключается в построении диаграмм и далее по ним определять и генерировать код на C + +, Java, PHP, Python и IDL. Эти диаграммы определяют логическую и физическую структуру модели.
Ещё одно средство моделирования Vantage Team Builder (Westmount I-CASE). Этому средству свойственно проектирование диаграмм потоков данных, структур данных , проектирование диаграмм архитектуры системы – SAD, генерация кода программ на языке 4GL целевой СУБД с полным обеспечением программной среды и генерация SQL-кода для создания таблиц БД, индексов, ограничений целостности и хранимых процедур, программирование на языке C со встроенным SQL, управление версиями и конфигурацией проекта, многопользовательский доступ к репозиторию проекта, генерация проектной документации по стандартным и индивидуальным шаблонам.
Среди систем моделирования также числится Designer/2000 компании Oracle. Данный продукт компании Oracle, возможно, наиболее полно поддерживает все этапы создания приложений обработки данных. Однако, следует оговориться, что, в отличие от других средств, он поддерживает практически одну целевую СУБД — Oracle Server (имеется еще возможность генерации скриптов на ANSI SQL). То же самое касается и средств создания пользовательсокго интерфейса. Хотя возможна генерация прототипов программ для языков Visual Basic, C, Java, полностью все возможности Designer/2000 реализуются только при использовании его вместе со средством разработки Oracle Developer/2000.
Таким образом, рассмотрев несколько систем, можно сделать вывод: методы разработки программного обеспечения развиваются и прогрессируют, конкурируя между собой. Системы моделирования предназначены для составления более точной спецификации требований, которая лежит в основе модели продукта и дальнейшего его кодирования. Поэтому системы моделирования играют не маловажную роль в программной инженерии.
Было рассмотрено такое понятие, как системы моделирования процессов разработки программного обеспечения. Были выявлены наиболее эффективные модели разработки процессов по следующим признакам: частота общения с заказчиком, наличие и полнота документации. Был также представлен стандартный процесс разработки программного продукта. Особое внимание концентрировалось на том, что именно моделируют системы моделирования разработки, а также представлен краткий обзор нескольких таких систем.
Список литературы:
- Б. Я. Советов, С. А. Яковлев Моделирование систем: учебник для вузов, 3-е издание перераб. и доп. – М.: Высш. шк., 2001. – 343 стр.:ил.
- Поппендик Мэри, Поппендик Том Бережливое производство программного обеспечения: от идеи до прибыли: Пер. с англ. – М.:ООО «И. Д. Вильямс», 2010. – 256с.:ил. – Парал. тит. англ.
- А. О. Шульгин Особенности жизненного цикла автоматизированной информационной системы ВУЗа.
- Жизненный цикл программного обеспечения (материал из википедии)
Режим доступа: https://ru.wikipedia.org/wiki/%D0%96%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
- Екатерина Лаврищева, Владимир Петрухин, Методы и средства инженерии программного обеспечения
Режим доступа: http://www.intuit.ru/studies/courses/2190/237/lecture/6120?page=3
6. Моделирование процессов разработки ПО и создание сайтов процессов с помощью Rational Method Composer
Режим доступа: http://www.ibm.com/developerworks/ru/library/r-rmc-model/
Ткачева Александра Юрьевна
Источник: scienceforum.ru