설계는 불명확한 문제
호스트 리텔과 멜빈 웨버는 "불명확한"문제란 전체 혹은 일부를 해결해야만 정의할 수 있는 문제라고 정의했다.
본질적으로 이 역설적인 말은 문제를 명확하게 정의하려면 문제를 한 번 "해결"해야 하며, 작동하는 솔루션을 만들기 위해서 다시 문제를 해결해야 한다는 의미를 담고 있다. 이러한 프로세스는 소프트웨어 개발에서 수십 년 동안 내려온 오랜 관습이다.
설계는 엉성한 프로세스
설계는 절충과 우선순위의 문제
설계에는 제약이 따름
설계는 비결정적
설계는 발견적 학습 과정
설계는 창발적
바람직한 설계
다익스트라는 현대 컴퓨터 프로그램을 보관할 수 있을 정도의 큰 두뇌를 가진 사람은 아무도 없다고 했다.
즉 한 번에 한 부분을 제대로 집중할 수 있게 프로그램을 구성하도록 노력해야한다는 뜻이다.
- 객체를 신중하게 정의함으로써 한 번에 하나의 기능에만 집중할 수 있도록 작업
복잡성 최소화, 유지보수의 편리함, 느슨한 결합
확장성, 재사용성
높은 팬인(fan-in) - 특정 클래스를 사용하는 클래스의 수가 많다는 것
낮은 팬아웃(fan-out) - 특정 클래스가 다른 클래스를 적게 사용하는 것
간결성, 계층화, 표준 기법
'개발자 > v0' 카테고리의 다른 글
웹 프로그래밍 하면서 참고할 사항들 (0) | 2020.12.10 |
---|---|
git 사용법 (gitlab, github) (0) | 2020.11.07 |
2. 소프트웨어 개발의 이해를 돕기 위한 비유 (0) | 2020.10.14 |
1. 소프트웨어 구현이란 무엇인가? (0) | 2020.10.14 |
운영체제 OS - 가상 메모리 Virtual memory, Non-continuous Memory Allocation, Paging System (0) | 2020.09.09 |