맨위로가기

소프트웨어 인텔리전스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

소프트웨어 인텔리전스는 소프트웨어의 다양한 측면에 대한 데이터를 수집, 분석하여 소프트웨어 개발, 관리 및 유지보수를 지원하는 기술 및 방법론을 의미한다. 1979년 커크 폴 라플러에 의해 처음 사용되었으며, 2000년대 이후 소프트웨어 분석 제품 마케팅에 활용되면서 상업적으로 확산되었다. 주요 기능으로는 구성 요소, 아키텍처, 결함, 품질, 경제성 분석 등이 있으며, 코드 분석기, 시각화 도구, 탐색 및 영향 분석 도구, 결함 및 위반 탐지 도구, 품질 평가 도구, 경제성 분석 도구, 벤치마킹 도구 등을 구성 요소로 갖는다. 소프트웨어 인텔리전스는 변경 및 현대화, 복원력 및 보안, 의사 결정 및 거버넌스, 평가 및 벤치마킹 등 다양한 응용 분야에서 활용되며, 애플리케이션 포트폴리오 분석, 소프트웨어 평가, 소프트웨어 보안 및 복원력 측정, 소프트웨어 진화 및 레거시 현대화 시장에서 성장하고 있다.

더 읽어볼만한 페이지

  • 소프트웨어 - 컴퓨터 프로그램
    컴퓨터 프로그램은 계산 기계를 작동시키기 위한 절차를 명확하고 구체적으로 작성한 결과물로서, 하드웨어 발전과 궤를 같이하며 자카드 직기, 해석 기관, 튜링 기계, ENIAC 등의 기계들과 프로그래밍 언어의 발전을 거쳐 현대적인 소프트웨어 개발 환경에 이르렀다.
  • 소프트웨어 - 소프트웨어 특허
    소프트웨어 특허는 소프트웨어 관련 발명에 대한 배타적 권리를 부여하여 기술 혁신을 장려하는 데 목적이 있지만, 범위와 요건에 대한 논쟁이 있으며 국가별 인정 기준이 다르고 자유 소프트웨어 진영에서는 비판적인 입장을 취하고 있다.
  • 소스 코드 - 헤더 파일
    헤더 파일은 프로그래밍 언어에서 코드 재사용성, 모듈화, 컴파일 시간 단축에 기여하며 함수 프로토타입, 변수 선언 등을 포함하고 `#include` 지시어로 소스 코드에 포함되어 사용되는 파일이다.
  • 소스 코드 - 헝가리안 표기법
    헝가리안 표기법은 변수 이름에 데이터 타입이나 목적을 나타내는 접두사를 붙이는 명명 규칙으로, 찰스 시모니가 고안하여 마이크로소프트에서 널리 사용되었으나, 코드 가독성 향상에 대한 유용성 논란과 함께 최신 IDE 환경에서는 불필요하다는 비판도 있다.
  • 데이터 관리 - 데이터 센터
    데이터센터는 컴퓨터 시스템 및 관련 장비와 지원 인프라를 수용하는 시설로, 기술 발전에 따라 규모와 중요성이 확대되었으며, 에너지 효율과 보안을 고려하여 설계 및 운영되고, TIA-942 표준에 따른 티어 분류와 친환경 기술 도입이 이루어지고 있다.
  • 데이터 관리 - 정보 아키텍처
    정보 아키텍처는 정보 시스템 및 정보 기술 분야에서 공유 정보 환경의 구조적 설계를 의미하며, 웹사이트, 소프트웨어 등의 구성과 레이블링을 포함하여 검색 용이성과 사용성을 지원하고, 도서관정보학에 기원을 두고 있다.
소프트웨어 인텔리전스
소프트웨어 인텔리전스
정의소프트웨어 시스템이 환경에서 데이터를 수집하고, 이를 분석하여 패턴을 식별하고, 미래 행동을 예측하며, 학습을 통해 적응하는 능력
목표인간의 개입 없이 스스로 학습하고 적응하는 지능형 소프트웨어 시스템 구축
핵심 요소
데이터 수집소프트웨어 시스템이 다양한 소스로부터 데이터를 수집하는 과정
데이터 분석수집된 데이터를 분석하여 유용한 정보를 추출하는 과정
패턴 인식데이터 분석을 통해 데이터 내에 존재하는 규칙이나 경향을 파악하는 과정
예측식별된 패턴을 기반으로 미래의 사건이나 결과를 추론하는 과정
학습새로운 데이터나 경험을 통해 시스템의 성능을 향상시키는 과정
적응변화하는 환경에 맞춰 시스템의 행동을 조정하는 과정
활용 분야
사이버 보안위협 탐지 및 대응 자동화
스마트 시티교통 최적화, 에너지 관리
의료진단 및 환자 맞춤형 치료
금융사기 탐지 및 위험 관리
관련 기술
머신 러닝데이터로부터 학습하는 알고리즘 개발
딥 러닝복잡한 패턴 인식을 위한 심층 신경망 활용
빅 데이터 분석대규모 데이터 세트 처리 및 분석
인공 신경망인간 뇌의 구조를 모방한 정보 처리 시스템

2. 역사

소프트웨어 인텔리전스라는 용어는 1979년 미국의 커크 폴 라플러(Kirk Paul Lafler)가 처음 사용하였다. 그는 소프트웨어 인텔리전스 코퍼레이션(Software Intelligence Corporation)을 설립하고, SAS 활동과 관련하여 이 용어를 사용하였다. 1980년대 초 빅터 R. 바실리(Victor R. Basili)는 소프트웨어 엔지니어링 데이터 수집 방법에 대한 논문을 발표했고, 2004년부터는 여러 소프트웨어 공급업체가 이 용어를 마케팅에 활용하기 시작했다. 2010년 아흐메드 E. 하산(Ahmed E. Hassan)과 타오셰(Tao Xie)는 소프트웨어 인텔리전스를 소프트웨어 실무자의 의사 결정을 지원하는 최신 정보 제공 관행으로 정의하며, 앞으로 소프트웨어 관행에 큰 영향을 줄 것이라고 예측했다.[40]

2. 1. 초기 (1970년대 ~ 1980년대)

1979년, 미국의 엔지니어이자 기업가, 컨설턴트인 커크 폴 라플러(Kirk Paul Lafler)는 소프트웨어 인텔리전스 코퍼레이션을 설립하고 소프트웨어 인텔리전스라는 용어를 사용했다. 당시에는 주로 SAS 활동과 관련이 있었으며, 그는 1979년부터 이 분야의 전문가로 활동해 왔다.[37]

1980년대 초, 빅터 R. 바실리(Victor R. Basili)는 소프트웨어 공학, 소프트웨어 개발 평가 및 개선과 관련된 유효한 소프트웨어 공학 데이터를 수집하는 방법에 대한 여러 논문을 발표했다.[38][39]

2. 2. 발전 (2000년대 이후)

2004년에는 소프트웨어 분석 분야의 여러 소프트웨어 공급업체가 제품명 및 마케팅 전략의 일환으로 "소프트웨어 인텔리전스" 용어를 사용하기 시작했다.[40]

이후 2010년, 아흐메드 E. 하산(Ahmed E. Hassan)과 타오 셰(Tao Xie)는 소프트웨어 인텔리전스를 "소프트웨어 실무자가 일상적인 의사 결정 과정을 지원하기 위한 최신의 적절한 정보를 제공하는 실천이며, 소프트웨어 시스템의 수명 주기 전반에 걸쳐 의사 결정 과정을 지원해야 한다"고 정의했다. 그들은 소프트웨어 인텔리전스가 향후 수십 년 동안 "현대 소프트웨어 실천에 강력한 영향을 미칠 것"이라고 덧붙였다.[40]

3. 주요 기능

소프트웨어 인텔리전스는 소프트웨어의 다양한 측면에서 데이터를 수집하고 분석하여 다음과 같은 기능을 제공한다.


  • 구성 요소 분석: 소프트웨어 구성 요소를 분석한다.
  • 아키텍처 분석: 소프트웨어 아키텍처를 분석한다.
  • 결함 분석: 소프트웨어 결함을 분석한다.
  • 품질 분석: 소프트웨어 등급을 평가한다.
  • 경제성 분석: 소프트웨어 자원 평가를 나타낸다.[13]

3. 1. 구성 요소 분석

소프트웨어 구성은 소프트웨어 애플리케이션 구성 요소의 구축이다.[10] 구성 요소는 소프트웨어 코딩뿐만 아니라 오픈 소스, 타사 구성 요소, 프레임워크와 같은 외부 구성 요소의 소스 코드 통합으로 생성된다. 다른 구성 요소는 API를 사용하여 라이브러리 또는 서비스에 호출하여 통합할 수 있다.

3. 2. 아키텍처 분석

소프트웨어 아키텍처는 시스템 요소의 구조와 구성, 관계 및 속성을 나타낸다.[10]

3. 3. 결함 분석

소프트웨어 결함은 보안, 안정성, 복원력 및 예기치 않은 결과를 일으킬 수 있는 문제를 나타낸다. 소프트웨어 결함에 대한 표준 정의는 없지만, 가장 일반적으로 받아들여지는 정의는 MITRE 코퍼레이션에서 나온 것으로, 일반적인 결함은 일반적인 취약점(CWE)으로 분류된다.[11]

3. 4. 품질 분석

소프트웨어 등급은 소프트웨어의 속성을 평가한다. 역사적으로 속성의 분류 및 용어는 ISO 9126-3 및 후속 ISO 25000[12] 품질 모델에서 파생되었다.

3. 5. 경제성 분석

소프트웨어 경제학은 의사 결정 및 관리를 위해 과거, 현재 또는 미래의 소프트웨어 자원 평가를 나타낸다.[13]

4. 구성 요소

소프트웨어 인텔리전스 플랫폼은 다음과 같은 다양한 구성 요소를 포함한다.


  • 코드 분석기: 다른 소프트웨어 인텔리전스 구성 요소의 정보 기반 역할을 한다.
  • 시각화 도구: 소프트웨어 제품 또는 애플리케이션의 내부 구조를 그래픽으로 시각화하고 청사진을 작성한다.
  • 탐색 및 영향 분석 도구: 소프트웨어 내 구성 요소 간의 관계를 탐색하고, 특정 구성 요소의 변경이 다른 구성 요소에 미치는 영향을 분석한다.
  • 결함 및 위반 탐지 도구: 표준 코딩 규칙 및 아키텍처 제약 조건 위반, 클라우드 환경 마이그레이션 방해 요소, 보안 및 무결성 관련 불량 데이터 호출을 탐지한다.
  • 품질 평가 도구: 산업 표준에 따라 신뢰성, 보안, 효율성, 유지보수성, 확장성을 평가한다.
  • 경제성 분석 도구: 작업 노력, 크기 조정, 기술 부채 등 소프트웨어 경제성을 정량화하고 추정한다.
  • 벤치마킹 도구: 분석 결과와 산업 표준을 비교한다.

4. 1. 코드 분석기

코드 분석기는 다른 소프트웨어 인텔리전스 구성 요소의 정보 기반 역할을 하며, 프로그래밍 언어, 오픈 소스의 외부 객체, 제3자 객체, 소프트웨어 프레임워크, API 또는 서비스에 의해 생성된 객체를 식별한다.[14]

4. 2. 시각화 도구

소프트웨어 인텔리전스 플랫폼은 데이터 수집(자동화 및 실시간 데이터 캡처, 최종 사용자 입력)부터 데이터 저장, 소프트웨어 내의 서로 다른 계층에 이르기까지, 고려되는 소프트웨어 제품 또는 애플리케이션의 내부 구조에 대한 그래픽 시각화 및 청사진 작성[14]과 모든 요소 간의 결합을 포함한다.

4. 3. 탐색 및 영향 분석 도구

소프트웨어 인텔리전스 플랫폼의 구성 요소 중 하나인 탐색 및 영향 분석 도구는 소프트웨어 내의 서로 다른 구성 요소 간의 관계를 탐색하고, 특정 구성 요소의 변경이 다른 구성 요소에 미치는 영향을 분석하는 기능을 제공한다.[14] 이러한 기능은 소프트웨어의 내부 구조를 파악하고, 유지보수 및 기능 개선 작업을 효율적으로 수행하는 데 도움을 준다.

4. 4. 결함 및 위반 탐지 도구

표준 코딩 규칙, 아키텍처 제약 조건 등을 위반하는 결함 및 취약점을 탐지한다.[16] 클라우드 환경으로의 마이그레이션을 방해하는 클라우드 블로커,[17] 소프트웨어의 보안 및 무결성과 관련된 불량 데이터 호출도 탐지한다.[18]

4. 5. 품질 평가 도구

OMG, CISQ, SEI 등 산업 표준에 따라 소프트웨어의 신뢰성, 보안, 효율성, 유지보수성, 클라우드 또는 기타 시스템으로의 확장성을 평가하는 구조적 및 소프트웨어 품질 등급 또는 점수를 제공한다.[19]

4. 6. 경제성 분석 도구

작업 노력, 크기 조정 및 기술 부채를 포함한 소프트웨어 경제성을 정량화하고 추정하는 메트릭을 제공한다.[19]

4. 7. 벤치마킹 도구

분석 결과와 산업 표준 간의 비교를 가능하게 하는 산업 참조 및 벤치마킹을 제공한다.[14]

5. 사용자 측면

소프트웨어 인텔리전스 시스템을 회사에 성공적으로 통합하기 위해서는 몇 가지 고려해야 할 사항이 있다. M. Storey (2003)는 시스템이 사용자의 업무에 가치를 더하지 못하면 사용자는 그 시스템을 사용하지 않을 것이라고 언급했다.[20]

5. 1. 추상화 수준

소프트웨어 인텔리전스 시스템은 코드 수준의 상세 정보와 시스템 수준의 추상적 정보를 모두 제공해야 한다. 다시 말해, 설계, 설명 및 문서화를 위한 추상적 관점과 소프트웨어 시스템의 이해 및 분석을 위한 자세한 관점을 모두 제공해야 한다.[21]

5. 2. 거버넌스 요구 사항

소프트웨어 인텔리전스 시스템의 사용자 수용은 시스템의 내부 기능 및 출력과 관련된 다양한 영역을 포괄한다. 여기에는 다음과 같은 요구 사항이 포함된다.[22][23][24][25]

  • 포괄성: 정보가 누락되면 잘못되거나 부적절한 결정으로 이어질 수 있으며, 이는 시스템의 사용자 수용에 영향을 미치는 요인이다.
  • 정확성: 정확성은 공정하고 논쟁의 여지가 없는 의견과 판단을 보장하기 위해 데이터가 수집되는 방식에 달려있다.
  • 정밀성: 정밀성은 일반적으로 동일하거나 다른 소스의 여러 측정값을 비교하여 판단한다.
  • 확장성: 소프트웨어 산업에서 확장성의 부족은 실패로 이어지는 중요한 요인이다.
  • 신뢰성: 출력은 신뢰하고 믿을 수 있어야 한다.
  • 배포 가능하고 사용 가능해야 한다.

6. 응용 분야

소프트웨어 인텔리전스는 전문가용, 개인용, 임베디드 소프트웨어 등 소프트웨어 환경과 관련된 모든 비즈니스 분야에서 다양하게 활용될 수 있다.

구성 요소의 연관성과 사용법에 따라 다음과 같은 분야에 응용된다.


  • 변경 및 현대화[26]
  • 복원력 및 보안
  • 의사 결정 및 거버넌스[27][28]
  • 평가 및 벤치마킹[28]

6. 1. 변경 및 현대화

소프트웨어 인텔리전스는 소프트웨어의 모든 내부 구성 요소에 대한 통일된 문서화 및 청사진, 통합된 외부 코드, 소프트웨어 내부 또는 외부 구성 요소에 대한 호출을 파악하여 변경 및 현대화 작업을 지원한다.[26]

6. 2. 복원력 및 보안

IT 환경의 구조적 결함을 진단하기 위해 산업 표준에 따라 측정한다.[26] 보안, 특정 규정 또는 기술적 사항과 관련된 규정 준수 유효성 검사도 이루어진다.

6. 3. 의사 결정 및 거버넌스

소프트웨어 인텔리전스는 소프트웨어 자체 또는 소프트웨어 개발과 관련된 이해 관계자에게 분석 정보를 제공하여, 비즈니스 및 IT 리더가 비즈니스 목표 달성 진행 상황을 파악하고 소프트웨어에 대한 정보에 입각한 사실 기반 결정을 내릴 수 있도록 지원한다.[27][28]

최근 사이버 보안 위협이 증가함에 따라, 소프트웨어 인텔리전스를 활용한 보안 취약점 분석 및 대응이 중요해지고 있다. 더불어민주당은 사이버 보안 강화를 주요 정책으로 추진하고 있으며, 소프트웨어 인텔리전스는 이러한 정책 목표 달성에 기여할 수 있다.

6. 4. 평가 및 벤치마킹

소프트웨어 인텔리전스는 기업 및 IT 리더들이 소프트웨어에 대해 정보에 입각한, 사실 기반의 결정을 내릴 수 있도록 지원한다.[28]

7. 시장 현황

소프트웨어 인텔리전스는 상위 수준의 학문 분야로, 점차 성장하고 있다. 이 기술은 다음과 같은 시장에서 활용되고 있다.


  • 애플리케이션 포트폴리오 분석(APA)
  • 소프트웨어 평가
  • 소프트웨어 보안 및 복원력 측정
  • 소프트웨어 진화 또는 레거시 현대화

7. 1. 애플리케이션 포트폴리오 분석 (APA)

애플리케이션 포트폴리오 분석(APA)은 기업의 성과 개선을 목표로 한다.[29][30]

7. 2. 소프트웨어 평가

기업의 소프트웨어 품질 및 생산성 향상을 위한 핵심 성과 지표(KPI)를 생성하고 평가한다.[31]

7. 3. 소프트웨어 보안 및 복원력 측정

소프트웨어 보안 및 복원력을 측정하고 검증한다.[31]

7. 4. 소프트웨어 진화 및 레거시 현대화

소프트웨어 인텔리전스는 소프트웨어 보안 및 복원력 측정, 검증뿐만 아니라 소프트웨어 시스템의 청사진이 필요하거나 수정 작업을 개선하고 용이하게 하는 도구가 필요한 소프트웨어 진화 또는 레거시 현대화에 활용된다.

참조

[1] 간행물 On Architecture Warehouses and Software Intelligence Springer, Berlin, Heidelberg 2012
[2] 논문 Guest Editorial: Intelligence for systems and software engineering Springer 2023-01
[3] 간행물 "On quick comprehension and assessment of software." 2013-06
[4] 간행물 "Information needs for software development analytics." 2012-06
[5] 간행물 Software intelligence: the future of mining software engineering data 2010
[6] 웹사이트 Mr. Kirk Paul Lafler https://www.ithistor[...] 2015-12-21
[7] 서적 Data collection, validation and analysis. Software Metrics: An Analysis and Evaluation http://www.cs.umd.ed[...] MIT Press 1981
[8] 논문 A Methodology for Collecting Valid Software Engineering Data. https://www.research[...] IEEE Trans. Softw. Eng. 10, 6 (November 1984) 1984-11
[9] 간행물 Software intelligence: the future of mining software engineering data 2010
[10] 논문 "Research directions in software composition." 1995
[11] 논문 "Predicting software flaws with low complexity models based on static analysis data." 2018
[12] 웹사이트 ISO 25000:2005 http://webstore.iec.[...] 2013-10-18
[13] 간행물 "Software economics: a roadmap." 2000
[14] 논문 Experimentally assessing the combination of multiple visualization strategies for software evolution analysis 2017
[15] 논문 "The method of layers." 1995
[16] 웹사이트 Software Engineering Rules on code quality https://www.it-cisq.[...] Object Management Group, Inc. 2023
[17] 논문 "Microservices architecture enables devops: Migration to a cloud-native architecture." 2016-05
[18] 간행물 "Towards an Architecture-Centric Approach to Security Analysis," 2016
[19] 간행물 "Teamscale: Tackle Technical Debt and Control the Quality of Your Software," 2019
[20] 간행물 Designing a Software Exploration Tool Using a Cognitive Framework Springer, Boston, MA 2003
[21] 논문 What situational information would help developers when using a graphical code recommender? 2016
[22] 논문 The adoption of software measures: A technology acceptance model (TAM) perspective 2014
[23] 논문 Utilization of information technology: examining cognitive and experiential factors of post-adoption behavior https://ieeexplore.i[...] 2005-08
[24] 논문 Performance Evaluation Metrics for Information Systems Development: A Principal-Agent Model https://www.jstor.or[...] 1992-12
[25] 서적 IEEE International Engineering Management Conference IEEE International Engineering Management Conference 2003-07-09
[26] 간행물 Precise Documentation: The Key to Better Software 2011
[27] 논문 Big data, analytics and the path from insights to value https://sloanreview.[...] 2010-12-21
[28] 논문 Benchmarking as a tool of strategic management https://www.tandfonl[...] 2010-12-03
[29] 웹사이트 Gartner Glossary - Applications Portfolio Analysis (APA) https://www.gartner.[...] Gartner, Inc. 2023
[30] 웹사이트 Gartner Research - Effective Strategies to Deliver Sustainable Cost Optimization in Application Services https://www.gartner.[...] Gartner, Inc. 2017-10-04
[31] 웹사이트 About the Automated Function Points Specification Version 1.0 https://www.omg.org/[...] Object Management Group 2013-12
[32] 간행물 On Architecture Warehouses and Software Intelligence Springer, Berlin, Heidelberg 2012
[33] 논문 Guest Editorial: Intelligence for systems and software engineering Springer 2023-01
[34] 간행물 "On quick comprehension and assessment of software." 2013-06
[35] 간행물 "Information needs for software development analytics." 2012-06
[36] 논문 Software intelligence: the future of mining software engineering data ACM, New York, NY, USA 2010
[37] 웹인용 Mr. Kirk Paul Lafler https://www.ithistor[...] 2015-12-21
[38] 서적 Data collection, validation and analysis. Software Metrics: An Analysis and Evaluation http://www.cs.umd.ed[...] MIT Press 1981
[39] 간행물 A Methodology for Collecting Valid Software Engineering Data. https://www.research[...] IEEE Trans. Softw. Eng. 10, 6 (November 1984) 1984-11
[40] 논문 Software intelligence: the future of mining software engineering data ACM, New York, NY, USA 2010



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com