티스토리 뷰
소프트웨어 공학적으로 더 바람직한 프로그램을 짜려고 노력해보자. 이런 내용은 소프트웨어 공학이나, 객지프에서 더 자세히 배울 예정이다.
우리가 어떤 기계 부품을 만들 때 설계를 하고 물건을 만든다. 기존의 전통적인 기계공학의 설계 방법은 많이 연구되었는데, 소프트웨어에서도 체계적 설계를 해서 효율적인 소프트웨어를 만들자고 시작되었다.
설계는 '코딩 하기 전에' 소프트웨어가 어떻게 만들어져야 하는지를 구상하고 그 후 코딩을 하는 것이다.
설계에는 high-level 설계, low-level 설계가 있다. high-level은 추상화된 설계이고 low-level은
high level)어떤 컴포넌트, 어떤 DB... ->구조설계, DB설계, 인터페이스 설계
low level) 좀 더 구체적으로! -> 컴포넌트 설계, 자료구조 설계, 알고리즘 설계
대표적인 low level) procedural(C언어), object-oriented(C++, java)
procedural : 업무의 처리절차 중심으로, 함수 중심
object-oriented: 객체지향에서 배움. 객체=대상, '캘린더', '스케줄'
설계원리
-추상화(abstraction)
-단계적 분해(stepwise refinement)
-모듈화(modulize)
모듈화에서는 '정보 은닉'이 중요하다.
정보은닉은 추상화와 비슷한데, 디테일을 숨기고 추상화된 기능을 알아보기 쉽도록 만드는 것이다.
구현을 위한 디테일은 되도록 숨긴다.
코딩 스타일!
=한줄에 한문장만 써라 (i++;같은거여도 한문장은 한문장이다)
=선언문과 실행문을 구분하라
=단락을 구분하자
=이름 의미있게, 의미잃지 않는 부분에서 짧게
Naming Convention
'그 외 > 소프트웨어공학' 카테고리의 다른 글
[소공] 함수형 프로그래밍 (0) | 2019.01.21 |
---|