Программный интеллект - Software intelligence

Программный интеллект понимание структурного состояния программного обеспечения активы, созданные программным обеспечением, предназначенным для анализа база данных структура, программная среда и исходный код лучше понимать и контролировать сложные программные системы в Информационные технологии среды.[1] Аналогично Бизнес-аналитика (BI) Software Intelligence производится с помощью набора программных инструментов и методов для интеллектуальный анализ данных и внутренняя структура программного обеспечения. Конечные результаты - это информация, используемая заинтересованными сторонами в бизнесе и программном обеспечении для принятия обоснованных решений.[2], измерять эффективность организаций, занимающихся разработкой программного обеспечения, сообщать о состоянии программного обеспечения, предотвращать программные катастрофы.[3]

Возможности

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

  • Композиция программного обеспечения - это построение компонентов программного приложения.[4] Компоненты являются результатом программирования программного обеспечения, а также интеграции исходного кода из внешних компонентов: компонентов с открытым исходным кодом, сторонних компонентов или фреймворков. Другие компоненты можно интегрировать с помощью интерфейс прикладного программирования звонок в библиотеки или службы.
  • Архитектура программного обеспечения относится к структуре и организации элементов системы, отношений и свойств между ними.
  • Недостатки программного обеспечения указывают на проблемы, которые могут вызвать безопасность, стабильность, отказоустойчивость и неожиданные результаты. Стандартного определения недостатков программного обеспечения не существует, но наиболее распространенным является Корпорация МИТЕР где общие недостатки занесены в каталог как Перечень общих слабых мест.[5]
  • Оценки программного обеспечения оценивают атрибуты программного обеспечения. Исторически классификация и терминология атрибутов были выведены из ISO 9126-3 и последующий ISO 25000: 2005[6] качественная модель.
  • Экономика программного обеспечения относится к оценке ресурсов программного обеспечения в прошлом, настоящем или будущем для принятия решений и управления.[7]

Составные части

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

  • Анализатор кода служить информационной базой для других компонентов Software Intelligence, определяющих объекты созданные языком программирования, внешние объекты из Открытый исходный код, объекты третьих лиц, рамки, API, или же Сервисы
  • Графическая визуализация и разработка внутренней структуры рассматриваемого программного продукта или приложения[8] включая зависимости, от сбора данных (автоматический сбор данных в реальном времени, ввод данных для конечных пользователей) до хранения данных, различные уровни[9] в программном обеспечении, а связь между всеми элементами.
  • Возможности навигации по компонентам и функции анализа ударов
  • Список недостатков, архитектурных нарушений и нарушений кодирования в сравнении со стандартными передовыми методами,[10] облачный блокировщик, предотвращающий миграцию в облачную среду,[11] и мошеннический вызов данных, влекущий за собой безопасность и целостность программного обеспечения [12]
  • Оценки или баллы структурных и качество программного обеспечения соответствует отраслевым стандартам, например мой Бог, CISQ или же SEI оценка надежности, безопасности, эффективности, ремонтопригодности и масштабируемости до облака или других систем.
  • Метрики для количественной оценки и оценки экономики программного обеспечения, включая трудозатраты, размеры и технический долг[13]
  • Отраслевые ссылки и сравнительный анализ, позволяющие сравнивать результаты анализа и отраслевые стандарты

Пользовательский аспект

Необходимо учесть некоторые соображения, чтобы успешно интегрировать использование Программный интеллект системы в компании. В конечном итоге система Software Intelligence должна быть принята и использована пользователями, чтобы она приносила пользу организации. Если система не добавляет ценности миссии пользователей, они просто не используют ее, как заявил М. Стори в 2003 году.[14]

На уровне кода и представления системы системы Software Intelligence должны обеспечивать другой уровень абстракций: абстрактное представление для проектирования, объяснения и документирования и подробное представление для понимания и анализа программной системы.[15]

На уровне управления принятие пользователями Software Intelligence охватывает различные области, связанные с внутренним функционированием системы, а также с выходными данными системы. Он включает в себя следующие требования:

  • Всесторонний: недостающая информация может привести к неправильному или несоответствующему решению, а также является фактором, влияющим на принятие системы пользователем.[16]
  • Точность: точность зависит от того, как собираются данные, чтобы обеспечить справедливое и неоспоримое мнение и суждение.[17]
  • Точность: точность обычно оценивается путем сравнения нескольких измерений из одного или разных источников.[18]
  • Масштабируемость: отсутствие масштабируемости в индустрии программного обеспечения является критическим фактором, ведущим к отказу.[19]
  • Достоверный: результатам нужно доверять и верить.
  • Возможность развертывания и использования.

Приложения

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

  • Изменение и модернизация: единообразная документация и чертежи всех внутренних компонентов, интегрированный внешний код или вызов внутренних или внешних компонентов программного обеспечения.[20]
  • Отказоустойчивость и безопасность: сравнение с отраслевыми стандартами для диагностики структурных недостатков ИТ-среды.[21] Подтверждение соответствия требованиям безопасности, конкретным правилам или техническим вопросам.
  • принятие решений и управление: предоставление аналитических данных о самом программном обеспечении или заинтересованных сторонах, участвующих в разработке программного обеспечения, например измерение производительности для информирования руководителей бизнеса и ИТ о прогрессе в достижении бизнес-целей.[22] Оценка и сравнительный анализ, чтобы помочь бизнес-лидерам и ИТ-руководителям принимать информированные, основанные на фактах решения о программном обеспечении.[23]

Торговая площадка

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

  • Анализ портфеля приложений (APA), направленный на повышение производительности предприятия[24][25]
  • Оценка программного обеспечения для производства программного обеспечения KPI[26] и улучшить качество и производительность
  • Безопасность программного обеспечения меры обеспечения отказоустойчивости и валидация
  • Эволюция программного обеспечения или модернизация унаследованного программного обеспечения, для которой не требуются ни проектирование программных систем, ни инструменты, улучшающие и упрощающие модификации

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

  1. ^ Домбровски Р. (2012) Об архитектуре складов и программном интеллекте. В: Ким Т., Ли Ю., Фанг В. (ред.) Информационные технологии будущего поколения. FGIT 2012. Lecture Notes in Computer Science, vol 7709. Springer, Berlin, Heidelberg
  2. ^ Бамизаде, Лида и др. «Практическая аналитика требований к программному обеспечению». Международный журнал новейших технологий и инженерии. Том-8, выпуск 5, январь 2020 Дои:10.35940 / ijrte.E5849.018520
  3. ^ Ахмед Э. Хассан и Тао Се. 2010. Программный интеллект: будущее разработки программного обеспечения для добычи данных. В материалах семинара FSE / SDP о будущем исследований в области программной инженерии (FoSER '10). ACM, Нью-Йорк, Нью-Йорк, США, 161–166
  4. ^ Нирстраз, Оскар и Тео Дирк Мейлер. «Направления исследований в композиции программного обеспечения». ACM Computing Surveys 27.2 (1995): 262-264. Дои:10.1145/210376.210389
  5. ^ Канаширо Л. и др. «Прогнозирование дефектов программного обеспечения с помощью моделей низкой сложности на основе данных статического анализа». Журнал инженерии информационных систем и управления 3.2 (2018): 17 Дои:10.20897 / jisem.201817
  6. ^ «ISO 25000: 2005» (PDF). В архиве (PDF) из оригинала 2013-04-14. Получено 2013-10-18.
  7. ^ Бём, Барри В. и Кевин Дж. Салливан. «Экономика программного обеспечения: дорожная карта». Материалы конференции «Будущее программной инженерии». 2000 г. Дои:10.1145/336512.336584
  8. ^ Ренато Новаис, Хосе Амансио Сантос, Маноэль Мендонса, Экспериментальная оценка комбинации нескольких стратегий визуализации для анализа эволюции программного обеспечения, Journal of Systems and Software, Volume 128, 2017, pp. 56–71, ISSN  0164-1212, Дои:10.1016 / j.jss.2017.03.006.
  9. ^ Ролиа, Джером А. и Кеннет С. Севчик. «Метод слоев». Операции IEEE по разработке программного обеспечения 21.8,1995, 689-700,Дои:10.1109/32.403785
  10. ^ Правила программной инженерии по качеству кода. http://it-cisq.org/standards/code-quality-standards/
  11. ^ Балалай, Армин`` Аббас Хейдарнори и Пуйан Джамшиди. «Архитектура микросервисов позволяет DevOps: переход на облачную архитектуру». Ieee Software 33.3, май – июнь 2016 г., стр. 42-52,Дои:10.1109 / MS.2016.64
  12. ^ Q. Feng, R. Kazman, Y. Cai, R. Mo and L. Xiao, «На пути к архитектурно-ориентированному подходу к анализу безопасности», 2016 13-я рабочая конференция IEEE / IFIP по архитектуре программного обеспечения (WICSA), Венеция, 2016, стр. 221-230, Дои:10.1109 / WICSA.2016.41.
  13. ^ Р. Хаас, Р. Нидермайр и Э. Юргенс, «Teamscale: решение проблемы технического долга и контроль качества вашего программного обеспечения», Международная конференция IEEE / ACM по техническому долгу (TechDebt) 2019 г., Монреаль, Квебек, Канада, 2019 г., стр. 55-56, Дои:10.1109 / TechDebt.2019.00016.
  14. ^ Стори М.А. (2003) Разработка инструмента исследования программного обеспечения с использованием когнитивной структуры. В: Чжан К. (ред.) Визуализация программного обеспечения. Серия Springer International в области инженерии и информатики, том 734. Springer, Бостон, Массачусетс.
  15. ^ Сеона Ли, Сунгвон Кан, Какая ситуационная информация может помочь разработчикам при использовании графического рекомендателя кода?, Журнал систем и программного обеспечения, том 117, 2016 г., стр. 199–217, ISSN  0164-1212, Дои:10.1016 / j.jss.2016.02.050.
  16. ^ Линда Г. Уоллес, Стивен Д. Шитц, Принятие программных мер: перспектива модели принятия технологии (TAM), Информация и управление, Том 51, Выпуск 2, 2014 г., стр. 249–259, ISSN  0378-7206, Дои:10.1016 / j.im.2013.12.003
  17. ^ Липперт, С.К., и Форман, Х. (2005). Использование информационных технологий: изучение когнитивных и экспериментальных факторов поведения после усыновления. IEEE Transactions по инженерному менеджменту, 52, 363–381.
  18. ^ Раджив Д. Банкер и Крис Ф. Кемерер (1992). Метрики оценки производительности для разработки информационных систем: модель принципала-агента. Исследования информационных систем, том 3, номер 4, 379–400.
  19. ^ М. Краун, «Почему стартапы программных продуктов терпят неудачу и что с этим делать. Эволюция разработки программных продуктов в начинающих компаниях», IEEE International Engineering Management Conference, 2002, pp. 338–343 vol.1. Дои:10.1109 / IEMC.2002.1038454
  20. ^ Парнас, Дэвид Лорге, Точная документация: ключ к лучшему программному обеспечению, Будущее программной инженерии, 2011, 125–148, Дои:10.1007/978-3-642-15187-3_8
  21. ^ https://www.bcg.com/capabilities/technology-digital/software-intelligence.aspx
  22. ^ LaValle S, Lesser E, Shockley R, Hopkins MS и Kruschwitz N (2011) Большие данные, аналитика и путь от понимания к ценности. MIT Sloan Management Review 52 (2), 21–32.
  23. ^ Янез Прашникар, Жига Дебеляк, Алеш Ахчан (2005) Бенчмаркинг как инструмент стратегического управления, Total Quality Management & Business Excellence, том 16, номер 2, 257–275, Дои:10.1080/14783360500054400
  24. ^ https://www.gartner.com/it-glossary/application-portfolio-analysis
  25. ^ https://www.gartner.com/doc/3812067/effective-strategies-deliver-sustainable-cost
  26. ^ https://www.omg.org/spec/AFP