관리자 글쓰기

 좋은 소프트웨어란 무엇일까? 보통 사용하기 편리하고, 보기 깔끔하고, 원하는 기능이 모두 포함되어 있는 소프트웨어를 떠올린다. 그리고 아주 틀리지 않았다. 대신 소프트웨어공학에서는 확실한 개념을 제시할 뿐이다. 소프트웨어공학에서 말하는 좋은 소프트웨어의 조건으로는 수용성. 의존성. 효율성. 유지보수성. 4가지를 제시한다.

 

 먼저 수용성은, 소프트웨어를 사용하는 사용자가 소프트웨어에 대해 이해하기 쉽고, 소프트웨어를 사용하기 쉽고, 사용자가 사용하는 다른 시스템과 호환이 가능할 때 수용성이 높다고 한다.

 

 의존성이 높다는 말은, 좀 더 쉽게 말하면 신뢰성/보안성/안정성을 확보했다는 의미다. 시스템과 소프트웨어의 일부에서 실패가 발생하더라도, 전체 시스템에 대한 물리적/경제적 피해가 없거나 적다는 뜻이다.

 

 효율성은, 소프트웨어의 응답/처리 시간이 빠르며 적은 자원으로 최대의 성능을 낼때 그리고 시스템 자원의 낭비가 없을 때 효율성이 높다고 한다.

 

 유지보수성은, 소프트웨어가 작성되기 이전이나 이후에, 변화하는 고객의 요구사항을 충족시킬 수 있는지 여부를 의미한다.

 

그리고 추가적으로 소프트웨어가 일반적인 사용자를 대상으로 할 때엔 Generic한 소프트웨어(예: 워드, 포토샵 등),

특정 사용자를 대상으로 할 때엔 Customized 된 소프트웨어(예: 특정 대학 학생들의 개인 사이트, 공항의 관제 시스템 등)라고 한다.

1. 소프트웨어 = 코딩 인가?

 소프트웨어는 project 도중 만들어지는 documents들도 포함된다. 소프트웨어가 필요한 요구사항들을 정리해둔 문서, 설계 방향에 대한 문서, 어떤 class를 이용해 어떤 method를 만들 것인지에 대한 아주 상세한 문서까지.

 

2. 좋은 소프트웨어가 가져야 할 조건은 무엇인가?

  기능 · 성능 · 유지보수의 용이성 · 의존성 · 사용의 용이성

 

3. 소프트웨어 공학이란?

 소프트웨어 생산과 관련된 모든 공학적 원리를 다루는 학문. 시스템 공학의 일부이다.

 

4. 소프트웨어 공학의 주요 과제는?

 다양성, 개발 시간 단축, 신뢰성 있는 소프트웨어 개발

 

5. 최고의 소프트웨어 공학 기술은?

 없다. 어떤 시스템을 개발하는가에 따라 다양한 기술 및 방법론이 사용된다.