본문 바로가기
IT 이야기

좋은 소프트웨어란?

by 준샤인 2022. 7. 4.
반응형

   컴퓨터 프로그래밍을 하고 싶은 또는 취업을 하고자 하는 비전공자들이 기본적으로 알아야 하는 소프트웨어공학에 대해 기초부터 살펴보고자 합니다.

 

1. 프로그램(program)이란?

  : 논리적, 산술적 그리고 신속하게 처리되어야 될 기능들을 프로그램밍 언어로 구현한 명령어 및 관리 데이터의 집합

 

2. 소프트웨어(software)란?

   : 하드웨어(컴퓨터를 구성하는 기계 장치의 몸체를 통틀어 이르는 말) 에서 작동되는 프로그램의 동적행위

 

 

** 프로그램이 하드웨어에 의해서 수행되고 사용자와 상호작용을 일으킬 때 비로서 소프트웨어로 변신하게 됨.

 

** 프로그램은 단순히 계산결과를 프로그래밍언어로 구현한 제품이지만 소프트웨어는 인간과의 밀접한 관게를 인식하여 소프트웨어 개발에 관련된 분석, 설계기술, 도구 등을 이용하여 현실세계에 있는 모든 사물을 추상적인 존재로 표현하여 가공 처리하여 관련된 정보를 제공하는 상품이라고 할 수 있음.

 

 

   그러면 좋은 소프트웨어란 무엇일까요?

 

1. 기존의 인식 측면

   첫째. 사용자(user)의 요구사항이 정확하게 반영되어 있을 것

   둘째. 소프트웨어에 포함되어 있는 잠재적인 에러가 가능한 한 적을 것

   셋째. 견적된 개발 비용이내 일 것

   넷째. 운영하기 쉬울 것

   다섯째. 안전성이 높을 것

 

2. 처리 효율 측면

   첫째. 시간효율이 좋을 것

            일괄처리(batch processing)에서는 TAT(Turn around time)

            실시간처리(read time processing)에서는 RT(response time) 등..

 

   둘째. 자원효율이 좋을 것

            프로그램의 보조기억영역을 최대한 축소집약 하거나 CPU 메모리 영역을 최적화 시키는 프로그램 구조

 

3. 이해도 측면(알기 쉬운 소프트웨어)

   첫째. 소프트웨어의 구성이나 설계 구조가 쉬울 것

   둘째. 검사하기 쉬울 것

   셋째. 보수하기가 쉬울 것

   넷째. 고품질의 다큐먼트(명세서, 사양서, 테스트 조건 명세서 등)가 있을 것

      

 

** 소프트웨어공학의 연구 범주에서 좋은 소프트웨어는

좋은 분석설계, 좋은 개발 프로세스로부터 그리고 진화하는 소프트웨어의 조립으로

 

1. 모델화 : 개발대상이 되는 소프트웨어가 가지는 특성을 구성의 본질 그대로 추출하여 표현하고, 그들을 일정한 규칙에 따라서 개념적으로 조작할 수 있는 표현 방식에 대한 연구

 

2. 소프트웨어 아키텍처 : 미리 처리해야 될 문제에 적합한 도구를 준비하여 분석, 설계에 있어서 모델링 작업이나 보수 작업에 임하는 부담을 줄이는 것이 목적으로 하는 연구

 

3. 관리 . 정량화 : 소프트웨어 특성에 의존하여 소프트웨어 그 자체의 구성관리나 팀 작업의 관리, 품질예측이나 공정 및 규모예측 등의 정량화와 평가 등에 관한 연구 (소프트웨어가 소정의 요구를 정확하게 만족하는지의 검증이론도 여기에 속함)

 

4. 프로세스 모니터링 : 개발 프로세스를 관측하여 데이터를 수집하는 의미에서 프로세스 모니터링에 관한 연구 (실험과 관찰, 이론 설정, 예측 주기를 취함)

 

 

*** 소프트웨어 공학의 정의

 

: 소프트웨어의 재사용과 소프트웨어 개발의 적시성제공하기 위하여, 소프트웨어의 부품화, 분산화, 통합화 그리고 개방화지원하며, 이질적인 소프트웨어 컴포넌트들을 효과적으로 분류, 유통, 조립하는 기술과 관련 있는 기술적이고 관리적인 원리

 

728x90

'IT 이야기' 카테고리의 다른 글

프로그래밍 용어3  (0) 2022.07.11
프로그래밍 용어2  (0) 2022.07.10
프로그래밍 용어1  (0) 2022.07.08
객체지향과 컴포넌트웨어  (0) 2022.07.07
소프트웨어 생명주기 & 프로세스 모델  (0) 2022.07.05

댓글