[SE] 소프트웨어 공학 기본개념
Updated:
소프트웨어 공학
- 기본적인 소프트웨어 공학개발 과정
-
요구사항분석 -> 요구사양서
-
설계 -> 기본 설계서 , 상세 설계서
-
구현 -> 프로그램
-
테스팅 / 검증 -> 프로그램 동작
-
유지보수
-
분할통치
- 다루기 어려운 대규모 문제를 여러 소규모 문제로 분할
- 각각의 소규모 문제들에 대한 답을 구함
- 각각의 문제에 답을 모아서 원래의 문제에 대한 정답을 구함.
구조화
- 대규모 문제를 여러 개의 작은 요소들로 분할한 후에, 각각의 요소들 사이의 관계를 이해하여 쉽게 정리하는 행위
- 여러 함수로 클래스를 작성하는 수준의 프로그래밍 개념
추상화 와 모델링
- 추상화
-
- 대상물로부터 본질적이지 않은 부분은 제거하고 공통적인 부분을 추출하는 것. (주택을 예로 들자면, 많은 주택은 공통적으로 현관, 벽, 창문 지붕이 있다. )
- 모델
-
- 추출한 부분을 표현(가시화, 도식화)한 것.
- 모델링
-
- 모델을 작성하는 작업
-
- 모델링을 통해 대규모 복잡한 시스템에 대하여 복잡함에 얽메이지 않고 모델을 토대로 수월하게 비교/검토작업을 진행할 수 있다.
- EX - 어떤 SW를 개발해야 하는가? , 어떻게 SW를 개발해야 하는가? , 이용자가 어떻게 이용할 수 있도록 해야하는가?
요구사항 분석
- 개발하려는 시스템에 어떤 제약사항이 있는지, 어떤 서비스를 제공해야 하는지를 규정한 것.
- 개발전에 요구사항을 상세하겍 기술하는것은 힘든 일임.
-
- 시스템의 제약사항/서비스를 찾아내서 분석하고 문 서화하여 검토하는 긴밀하고 체계적인 작업 필요
- 요구사항을 통해 무엇을 만드는지 (기본기능) , 어떤 구조로 할 것인지 (기본구조) , 어떻게 사용할지 (기본조작) 을 정해야함.
추적 가능성
- 일관성있게 시스템을 개발하기 위 하여, “어떤 판단을 내렸나?”, “왜 그 런 방식을 선택했나?” 등을 명확한 문서로 남겨서, 나중에 추적가능하 도록
경험의 축적과 재이용
- 대부분의 업무들은 메뉴얼화 되어있기 때문에 후에 비슷한 구조의 개발을 한다면 이전에 생성된 메뉴얼을 활용할 수 있다.
체계적인 평가와 관리
- 대규모 SW에 대한 체계적/효율적인 오류 경감 방법과 기법 필요
- 개발에 필요한 비용 산정, 세밀한 계획 수립 필요 프로젝트 관리기술 필요 -> 프로젝트 진행상황 조사/평가/대책 수립/시행
Leave a comment