본문 바로가기
Professional Engineer/SE

좋은 소프트웨어의 조건

by 코드네임피터 2024. 9. 24.
반응형

정의

- 좋은 소프트웨어는 ‘사용자의 요구사항을 만족’하고 ‘정확하게 동작’하며 ‘쉬운 사용방법’과 ‘좋은 코드’로 개발된 소프트웨어

 

메커니즘

 

기술요소

정확성(Correctness)
- 기능적으로 맞게 동작하는가, 표준에 적합한가?
- 요구 분석서의 기능과 일치하는지 점검

 

신뢰성(Reliability)
- 소프트웨어가 주어진 기간 동안 바르게 작동할 확률
- 오류 발생 확률에 반비례
- 정확성 제공하기 위한 필요조건

 

강인성(Robustness) 

- 요구 명세에 표시하지 않은 상황(오류 입력)에서도 제대로 작동하는 성질

 

성능(Performance)
- 수행 속도, 데이터/트랜잭션 처리량
- 알고리즘의 시간 복잡도
- 시뮬레이션, 스트레스 테스트

 

사용 용이성(Usability)
- 시스템을 친근하게 느낄 수 있는 성질
- 사용 대상에 따라 달라질 수 있음
- 사용자 인터페이스, Human factor

 

유지보수성(Maintainability)
- 보수성: 정해진 기간에 소프트웨어 결함을 해결할 수 있는 성질
- 진화성: 잠재적 발전 가능성 (추가 요구사항에 따라 기능이 진화할 수 있어야 함)

 

재사용성(Reusability)
- 소프트웨어 부품(라이브러리, 클래스 등)의 성질
- 확장 가능성(openness)
- 적응성(adaptability)
- 이용 용이성(closeness)

 

요인들

- 프로젝트 관리, 성격

- 의사소통, 프로그래머의 역량

 

반응형

댓글