소프트웨어는 비용, 일정, 품질과 같은 변수를 중요하게 여기는데
그 중에 품질
품질은 어떠한 요소가 결정하는지 알아보겠다.
사실 품질은 삼각 균형이라고 해서
기술, 인력, 프로세스가 결정한다. 그렇지만
소프트웨어가 완성된 자체를 따지자면, 다시말해서
국제표준(ISO 9126) 에 근거하여 소프트웨어의 품질에 대하여 말하자면
기능성, 신뢰성, 사용 용이성, 효율성, 유지 보수성, 이식성 까지 6 가지를 말할 수 있다.
#기능성(functionality)
소프트웨어가 사용될 때 원래 정한 또는 내재된 요구를 만족시키는 기능을 제공하는 능력
요구를 다 시켜야 한다는 얘기다.
#신뢰성(reliability)
소프트웨어가 정해진 수준의 성능을 유지할 수 있는 능력
사용자가 많아짐으로 프로그램이 견디지 못했다던가 수행능력의 초과로 문제가 발생했다던가
그러한 문제로 작업을 제대로 수행할 수 없는 경우
#사용용이성(usability)
쉽게 이해되고 배울 수 있고 사용될 수 있는 능력
프로그램이 사용하기 어려우면 고품질, 고성능 프로그램도 쓸 수 없다.
#효율성(efficiency)
사용되는 자원의 양에 따라 적절한 성능을 제공할 수 있는 능력
최적화가 되어있지 않으면 최소 사양이 높아지는 결과를 초래하고
그것은 사용자의 불편을 가져온다.
#유지보수성(maintainability)
정정, 개선, 적응시킬 목적으로 수정될 수 있는 능력
누가 이 프로그램을 뜯어보더라도 어떻게 만들었는지 파악이 가능해서
유지 보수가 가능하게 해야한다.
#이식성(portability)
별도의 작동이나 수단 없이 다양한 환경에서 적응될 수 있는 능력
어떠한 운영체제 내에서만 작동하면, 그 외의 컴퓨터는 쓸 수 없다.
접근성이 떨어진다.
뭐 6가지에서 더 세부적으로 나눌 수도 있다.
예를 들어 유지보수성은 변경용이성, 시험용이성, 확장성으로 나눌 수 있다.
그것이 중요한 것이 아니라
6가지나 있는만큼 소프트웨어의 품질은 하나의 숫자로 표현할 수 없는 특성을 가졌고
소프트웨어의 목적마다 6가지 속성의 비중이 다르기 때문에 정확하게 표현할 수 없다
다만 일반적으로는 신뢰성을 소프트웨어 품질의 기준으로 삼는다.
++++++ 소프트웨어는 물리적구조를 가지고 있지 않아서 마모가 되지 않음에도 점점 품질이 낮아지는 이유는 무엇인가?
많은 변경으로 인하여 컴포넌트의 상호작용에 오류가 생기는 이유가 있다.
SW는 잦은 변경이 잘 관리되기 어렵고 구조화하기 어려워서 영향받는 범위가 커지고 그것이 손쓸 수 없게 되버리는 경우가 있다.
'컴퓨터(Computer Science) > 소프트웨어공학(Software engineering)' 카테고리의 다른 글
프로세스와 프로세스 모델 [소프트웨어 공학] (0) | 2020.04.15 |
---|---|
소프트웨어공학을 배웠다면 대답이 가능한 질문들 (0) | 2020.04.07 |
소프트웨어공학(4) 개발자가 알아야 하는 지식체계(SWEBOK) (0) | 2020.04.07 |
소프트웨어공학(3) 소프트웨어 개발 접근 방법(단계적 개발 프로세스) (0) | 2020.04.07 |
소프트웨어공학(1) 필요성과 특징 (1) | 2020.03.29 |