소프트웨어 기능![]() ![]() 기능 또는 피처(feature)는 강(Kang) 외의 여러 저자에 따르면 "소프트웨어 시스템의 두드러지거나 특징적인 사용자 가시적 측면, 품질 또는 특성"으로 정의된다.[1] 구현 수준에서, 아펠(Apel) 외 여러 저자에 따르면 "이해관계자의 요구 사항을 충족하고, 설계 결정을 구현 및 캡슐화하며, 구성 옵션을 제공하기 위해 주어진 소프트웨어의 구조를 확장하고 수정하는 구조"로 정의된다.[2] 맥락'기능(feature)'이라는 용어는 모든 종류의 시스템에서와 마찬가지로 소프트웨어에서도 동일한 의미를 갖는다. 예를 들어, 영국 왕립 해군의 HMS 드레드노트 (1906년)는 드레드노트급 이전 전함에는 없었던 고급 기능들 때문에 해군 기술의 중요한 이정표로 여겨졌다.[3] 기능은 컴퓨터 하드웨어에도 적용된다. 컴퓨터의 초기 역사에서, 디지털 이큅먼트 코퍼레이션의 PDP-7 미니컴퓨터(1964년 제작)와 같은 장치들은 많은 기능들을 가지고 있다는 점으로 유명했다. 예를 들어, PDP 미니컴퓨터 시리즈 중 처음으로 와이어 랩을 사용했으며, 같은 해에 발명된 독점적인 DEC 플립칩 모듈을 처음으로 사용했다는 점 등이 있다.[4][5] 기능은 프로그래밍 언어와 같은 개념에도 적용된다. 파이썬 프로그래밍 언어는 서로 다른 코드 블록을 나타내기 위해 중괄호 대신 공백 문자(공백 및 탭)를 사용하는 기능으로 잘 알려져 있다.[6] 또 다른 유사한 고급 객체 지향 프로그래밍 언어인 루비는 "@"와 "$" 기호를 사용하여 다른 변수 스코프를 강조하는 것으로 유명하며, 개발자들은 이것이 코드 가독성을 향상시킨다고 주장한다. 개발자들은 또한 루비의 중요한 기능 중 하나가 높은 유연성이라고 주장한다.[7] 전기전자공학자협회 (IEEE)는 (폐지된) 소프트웨어 테스트 문서 표준인 IEEE 829에서 기능을 "소프트웨어 항목의 특징적인 특성(예: 성능, 이식성 또는 기능)"으로 정의한다.[8] 기능은 일반적으로 소프트웨어 시스템의 긍정적인 측면에 사용되지만, 소프트웨어 버그 또한 부정적인 가치를 가진 기능이다. 예시Xterm 단말 에뮬레이터는 X 윈도 시스템과의 호환성, ANSI 색상을 사용하여 VT220 및 VT320[9] 터미널을 에뮬레이트하는 능력, 컴퓨터 마우스 또는 기타 유사 장치를 사용하여 이스케이프 시퀀스를 입력하는 능력, 그리고 여러 다른 유닉스 계열 운영 체제(예: 리눅스, AIX, BSD, HP-UX)에서 실행되는 능력 등 많은 주목할 만한 기능들을 가지고 있다.[10] 피처 리치와 피처 크립기능이 풍부하다는 것을 뜻하는 '피처 리치(Feature-rich)'는 것은 소프트웨어 시스템이 많은 옵션과 기능을 가지고 있음을 의미한다. 사용자에게 기능이 풍부한 소프트웨어를 소개하는 한 가지 메커니즘은 단계적 공개 개념이다. 이는 한꺼번에 많은 기능을 표시하여 발생할 수 있는 잠재적 혼란을 줄이기 위해 필요에 따라 기능을 점진적으로 도입하는 기술이다.[11] 때로는 기능이 풍부하다는 것이 부정적인 속성으로 간주되기도 한다. 피처 크리프, 소프트웨어 블롯, 피처리티스(featuritis)라는 용어는 기능이 지나치게 풍부한 소프트웨어를 지칭한다.[12] 이러한 과도한 기능 포함은 경우에 따라 위원회에 의한 디자인의 결과이다.[13] 소프트웨어 개발자들이 불필요한 기능을 추가하는 경향에 대응하기 위해, 1970년대 켄 톰프슨과 데니스 리치와 같은 벨 연구소 직원들이 유닉스 운영 체제 작업을 하면서 유닉스 철학이 개발되었다. 이 철학은 소프트웨어 프로그램은 일반적으로 하나의 주요 작업만 완료해야 하며 "작은 것이 아름답다"는 것으로 요약될 수 있다.[14][15] 같이 보기각주
외부 링크 |
Portal di Ensiklopedia Dunia