stringtranslate.com

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

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

Методологии

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

Деятельность

Выявление потребности

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

В книге «Великие дебаты о программном обеспечении» Алан М. Дэвис в главе «Требования» утверждает , что в подразделе «Недостающая часть разработки программного обеспечения»

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

Процесс планирования

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

«Хотя на этапе требований прилагается много усилий, чтобы обеспечить полноту и согласованность требований, это случается редко; этап проектирования программного обеспечения остается наиболее влиятельным, когда дело доходит до минимизации последствий новых или изменяющихся требований. Неустойчивость требований является сложной задачей, поскольку они влияют на будущие или уже предпринимаемые усилия по развитию». [5]

Рабочая сила

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

Посмотреть модель

Матрица взглядов и перспектив TEAF

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

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

Моделирование бизнес-процессов и данных

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

Пример взаимодействия бизнес-процесса и моделей данных [7]

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

Модели разрабатываются так, чтобы определять либо текущее состояние процесса (в этом случае конечный продукт называется моделью моментального снимка «как есть»), либо набор идей о том, что должен содержать процесс, в результате чего получается «что можно». -быть» модель. Создание моделей процессов и данных можно использовать для определения того, являются ли существующие процессы и информационные системы надежными и требуют лишь незначительных модификаций или улучшений, или требуется ли реинжиниринг в качестве корректирующего действия. Создание бизнес-моделей — это больше, чем просто способ просмотра или автоматизации вашего информационного процесса. Анализ можно использовать для фундаментального изменения методов ведения деятельности вашего бизнеса или организации. [7]

СЛУЧАЙ

Компьютерная разработка программного обеспечения (CASE) — это научное применение набора программных инструментов и методов для разработки программного обеспечения , позволяющее создавать высококачественные, бездефектные и легко поддерживаемые программные продукты. [8] Это также относится к методам разработки информационных систем вместе с автоматизированными инструментами, которые можно использовать в процессе разработки программного обеспечения. [9] Термин «компьютерная разработка программного обеспечения» (CASE) может относиться к программному обеспечению, используемому для автоматизированной разработки системного программного обеспечения , то есть компьютерному коду. Функции CASE включают анализ, проектирование и программирование. Инструменты CASE автоматизируют методы проектирования, документирования и создания структурированного компьютерного кода на нужном языке программирования . [10]

Двумя ключевыми идеями автоматизированного проектирования программных систем (CASE) являются: [11]

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

Anjuta , IDE для C и C++ для среды GNOME.

Язык моделирования

Язык моделирования — это любой искусственный язык , который можно использовать для выражения информации , знаний или систем в структуре , определяемой последовательным набором правил. Правила используются для интерпретации значения компонентов в структуре. Язык моделирования может быть графическим или текстовым. [12]

Парадигма программирования

Парадигма программирования — это фундаментальный стиль компьютерного программирования , который обычно не диктуется методологией управления проектами (например, каскадной или гибкой). Парадигмы различаются концепциями и абстракциями, используемыми для представления элементов программы (таких как объекты, функции, переменные, ограничения) и шагов, составляющих вычисления (например, присвоения, оценки, продолжения, потоки данных). Иногда концепции, утверждаемые парадигмой, используются совместно при проектировании системной архитектуры высокого уровня; в других случаях область действия парадигмы программирования ограничивается внутренней структурой конкретной программы или модуля. Пример: объектно-ориентированное проектирование (OOD) Грэди Буча , также известное как объектно-ориентированный анализ и проектирование (OOAD). Модель Буча включает шесть диаграмм: класс, объект, переход состояний, взаимодействие, модуль и процесс. [13]

Смотрите также

Роли и отрасль

Рекомендации

  1. ^ DRM Associates (2002). «Глоссарий по разработке новых продуктов». Архивировано из оригинала 13 июля 2018 года . Проверено 29 октября 2006 г.
  2. ^ Методологии разработки систем для электронного бизнеса через Интернет: структура настройки Линда В. Найт (Университет ДеПола, США), Тереза ​​А. Стейнбах (Университет ДеПола, США) и Винс Келлен (Blue Wolf, США)
  3. ^ Джозеф М. Моррис (2001). Бухгалтерский учет в индустрии программного обеспечения . п.1.10
  4. ^ Алан М. Дэвис. Великие дебаты о программном обеспечении (8 октября 2004 г.), стр: 125–128 Wiley-IEEE Computer Society Press
  5. ^ Отеро, Карлос. «Проблемы проектирования программного обеспечения». Повышение производительности ИТ . ООО «Тейлор и Фрэнсис». Архивировано из оригинала 28 октября 2017 года . Проверено 19 октября 2017 г.
  6. ^ Эдвард Дж. Баркмейер и др. (2003). Концепции автоматизации системной интеграции. Архивировано 25 января 2017 года в Wayback Machine NIST 2003.
  7. ^ abcd Пол Р. Смит и Ричард Сарфати (1993). Создание стратегического плана управления конфигурацией с использованием инструментов компьютерной разработки программного обеспечения (CASE). Документ для группы пользователей CAD/CAE Национального Министерства энергетики/подрядчиков и предприятий 1993 года.
  8. ^ Кун, DL (1989). «Выбор и эффективное использование инструмента компьютерной разработки программного обеспечения». Ежегодный компьютерный симпозиум Westinghouse; 6–7 ноября 1989 г.; Питтсбург, Пенсильвания (США); Проект МО.
  9. ^ П. Лукопулос и В. Каракостас (1995). Инженерия системных требований . МакГроу-Хилл.
  10. ^ CASE. Архивировано 18 февраля 2012 г. в определении Wayback Machine. В: Telecom Glossary 2000. Архивировано 22 ноября 2005 г. в Wayback Machine . Проверено 26 октября 2008 г.
  11. ^ К. Робинсон (1992). Внедрение разработки программного обеспечения в CASE . Нью-Йорк: John Wiley and Sons Inc.
  12. ^ Сяо Хэ (2007). «Метамодель для обозначения языков графического моделирования». В: Конференция по компьютерному программному обеспечению и приложениям, 2007. COMPSAC 2007 – Том. 1. 31-й ежегодный международный журнал , том 1, выпуск, 24–27 июля 2007 г., стр. 219–224.
  13. ^ Меркс, Жорж Г.; Норман, Рональд Дж. (2006). Унифицированное программирование с использованием Java. Прентис-Холл, Инк . 201. ИСБН 0130473766.

дальнейшее чтение

Внешние ссылки