본문 바로가기
개발/소프트웨어 공학

시스템 공학과 소프트웨어 공학

by re-hwi 2021. 12. 29.
<html> <head> </head> <body> <h1>ㅎㅇ</h1> </body> </html>

음 뭐라고 시작해야 할지 모르겠다 크크크ㅡ크크
이제부터 매일매일 하루에 공부한 것들을 블로그에 작성을 해볼 생각이다.
블로그는 친구 김경모가 알려줘서 쓰는데 되게 재밌는것 같다.
아무튼 이제부터 복습겸 일기겸 블로그를 써보겠다.

첫단원은 "시스템 공학과 소프트웨어 공학" 이라는 단원이다.

이 단원에서는 개발을 처음 시작할 때부터 완성 단계까지의 순서? 와 각 단계에서의 해야할 것들을 주로 배운다.

개발의 순서

 

위 사진은 개발을 할 때의 순서를 그림으로 표현한것이다. 뒤에 각 단계마다 해야 할 것들을 서술해놓았으니 이해가 쉬울것이다.

 

먼저 개발을 시작하기에 앞서 개발자가 고객에게 무언가를 만들어달라고 요청을 받는 순간을 요구사항 분석(what) 이라고 한다.

 

이 단계에서 가장 중요한것은 고객이 원하는 요구를 정확히 인지하는것이 중요하다.

 

물론 당연한 말이라고 생각할 수 있겠지만, 계약을 맺는 상황에서는 고객의 모든 요구사항이 구체적으로 정의되기보단추상적인 시스템의 목적이 담긴 제안서로 일이 시작되는 경우가 많다.

개발자는 '고객이 왜 이러한 일을 하려는가' 와 같은 고객의 불편함에 대해 생각해보는것이 고객의 만족도를 높일 수 있는 방법이며 개발의 방향을 잘 잡는것이다.

 

또한 이 단계에서는 내가 이것을 개발을 함으로서 법적인 문제는 없는지, 비용은 어느정도인지 일정은 얼마나 걸릴지에대한 생각도 이 단계에서 시작한다.

두번째 단계는 설계(how) 라고 한다.

이 설계단계에서는 분석과정에서 모아진 요구사항을 설계도면에 옮기는 과정이자 첫 물리적인 실현을 하는 단계이다.

분석과정에서 무엇을 만들지 정했다면 이제는 어떻게 그 물건을 만들지에 대한 고민을 해야한다.

예를들어 건물에 불이 났다고 치자. 불이 건물을 모두 잿더미로 만들 수 있으니 불을 꺼야한다고 생각하는 것이 분석 과정이다.

 

그러고 나선 119를 부를지 소화기를 뿌릴지 작은 불이라면 발로 밟아서 끄는 방법도 있을 것이다. 이렇게 불을 어떻게 끄는 방법을 생각하는 것이 설계이다.

그 다음 단계는 구현이다. 이 단계는 쉽게말해서 코딩, 프로그래밍을 하는 단계이다.

 

사용자의 요구를 컴퓨터의 언어로 번역해서 컴퓨터가 사용자의 요구를 직접적으로 해결 할 수 있게 만드는 단계이다. 이 단계는 가장 어려우면서 가장 쉬울 수 있는 단계이다.

뭐든지 만들면 테스트를 해봐야하듯이 개발도 마찬가지이다.

 

내가 예상하지 못했던 에러가 생길 수 있고, 여러번 사용을 함으로서 품질도 확인해봐야한다. 이러한 과정을 시험단계 라고 한다.

 

이 단계에서는 내가 직접 테스트를 해볼 수도 있고 고객이 직접 테스트를 해보는 등 여러가지 종류가 있다.

테스트를 끝내면 정식으로 발매를 하는 유지보수 단계이다.

 

이 과정에서는 사용자가 실 사용을 하는 단계이기 때문에 신중히 생각을 해야한다. 잘 설계된 시스템이더라도 유지보수과정에 실 개발과정보다 비용이 더 들어가는 경우도 많다.  

 

따라서 개발을 시작 할 때부터 어떻게 이 프로그램을 잘 유지해야 할지를 미리 예상 해놓는 것도 좋은 개발의 방법이다.

 

이런걸 처음 해봐서 그런지 한단원 쓰는데 시간이 너무 오래걸린다. 빨리 글솜씨좀 늘었으면 좋겠다. 

 

 

 

반응형

댓글