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

소프트웨어 공학 첫 시간 : 개요

by 맑은청이 2020. 9. 2.
728x90
반응형

선배들과 주변에서 워낙 재미없는 수업라고 하길래 걱정을 많이 했는데 첫 시간이라서 그런가 아직은 괜찮았다. 

(2배속으로 돌리긴 했다)

자료들이 거의 과거거라서 좀 아쉬웠다. 

 

Success or Failure of Software Projects 

소프트웨어 프로젝트는 실패하는 경우도 많고 규모가 커질 수록 더 그런다.

버그로 인해 일어난 사건사고들에 대해 언급했다. 요새 읽고 있는 '역사 속 소프트웨어 오류' 책에 나온 내용도 많아서 좀 흥미로웠다.

 

Software Crisis, 소프트웨어 위기

이를 해결하고자하는 게 소프트웨어 공학의 목표이다.

즉 developing(개발), Operating(운영) and Maintaining(유지보수) 에 있어 quality, cost, time 을 좋게 내는 거다.

 

소프트웨어 공학은 점차 중요해지고 있다. 과거보다 소프트웨어의 비중이 커지고 이에 따른 개발 비용도 커지고 있다. (자동차 자율 주차 프로그램)

 

 

소프트웨어 공학에 영향을 주는 요인

- 소프트웨어의 특성

- 소프트웨어 개발 프로젝트의 특성

- 소프트웨어의 종류

- 소프트웨어의 크기

- 제작과 습득 모드

COTS(Commercial off-the-shelf, 만들어져 있는거 조립) vs Custom-built(코드 한줄 한줄 제작) 

 

 

 

- 소프트웨어의 특성

: Schedule, Cost, Quality, Management -> 보이지 않기 때문에 이해가 어려움 

- 소프트웨어 개발 프로젝트의 특성

:에러가 코딩으로 날 거 같지만 그렇지만도 않다.

설계할 때 오류가 유지 보수가 될 때 심해진다. 빨리 발견할수록 비용이 적게 든다. 

 

 

- 소프트웨어의 종류

: 이에 따라 규모와 복잡도가 달라진다. 

시스템 소프트웨어인가 실시간(Real-Time) 소프트웨어 등등인가에 따라 달라짐

실시간 소프트웨어는 strict time constraints , 엄격한 시간이 요구 되기 때문에 어렵다. 

임베디드 소프트웨어는 대부분 실시간 소프트웨어이다. 

 

- 소프트웨어의 크기

버전에 따라 크기 커지기도 함 

SLOC(Source Lines of Code) 을 측정하는 방식에는 두 가지가 있다. 

 

Physical : 물리적인 수로 주석까지 포함해 다 센다고 생각하면 된다.  

Logical : 기능 수를 세는 거

 

- 제작과 습득 모드

 

소프트웨어 공학은 다양한 측면을 고려해야한다.

V&V(Verification and Validation) 

Quality assurance (품질 보증)

Projct management 

Configuration management (버전 관리)

CASE(IDE,Modeling tools, Testing tools,,,,) 다양한 활동을 지원하는 도구 

등등 

 

소프트웨어 오해

- 테스트 전에는 평가가 필요하지 않다(x)

- 다양한 메뉴얼이 필요하다.( 관리, 요구사항, 설계, 사용자 메뉴얼 등등)

- 요구사항은 그때 그때 말하면 된다(x) -> 처음부터 상세히 말해서 구체화해야한다. 

- 소프트웨어는 변경이 쉽다 -> 하드웨어보단 괜찮지만 돈이 많이 든다. .

등등

 

조금 지루한 수업이 될 거 같지만 전공 필수니깐 열심히 해야겠다!

오늘은 전반전으로 소프트웨어 프로젝트에 관한 이야기를 나눴다. 

그럼 다음 수업도 열심히 듣자.

 

728x90
반응형

'공부 > 소프트웨어공학' 카테고리의 다른 글

Use Case 과 Actor  (0) 2020.09.28