디자인의 바람직한 특징
2024-10-12 14:20:43 0 신고
전체 내용을 보려면 로그인하세요
작성자의 다른 창작물
개요/내용
복잡도 최소화
설계의 주요 목표는 복잡성을 최소화하는 것입니다. "영리한" 설계를 피하십시오. 영리한 설계는 일반적으로 이해하기 어렵습니다. 대신에 "간단하고" "쉽게 이해할 수 있는" 설계를 해야 합니다. 만약 당신의 설계가 특정 부분에 깊이 빠져 있을 때 프로그램의 대부분의 다른 부분을 안전하게 무시할 수 없다면, 그 설계는 제 역할을 하지 못하는 것입니다.
유지보수가 용이함
유지 보수가 용이하다는 것은 유지 보수를 위한 프로그래머를 위해 설계한다는 것을 의미합니다. 유지 보수를 담당하는 프로그래머가 당신이 작성한 코드에 대해 제기할 수 있는 질문들을 끊임없이 상상해보세요. 유지 보수를 담당하는 프로그래머를 당신의 대상으로 생각하고, 그런 다음 시스템을 명확하게 설계하세요.
최소 연결성
최소한의 연결성은 프로그램의 서로 다른 부분들 사이의 연결을 최소화하여 설계하는 것을 의미합니다. 강한 응집력, 느슨한 결합 및 정보 은닉의 원칙을 사용하여 가능한 한 적은 상호 연결을 가진 클래스를 설계하세요. 최소 연결은 통합, 테스트 및 유지 관리 기간의 작업을 최소화합니다.
재사용성
재사용성은 시스템을 설계할 때 그 부분들을 다른 시스템에서도 재사용할 수 있다는 것을 의미합니다.
정밀
린(Lean)은 중복되는 부분이 없도록 시스템을 설계하는 것입니다(Wirth, 1995; McConnell, 1997). 볼테르는 책이 완성되는 이유는 더 이상 아무것도 더할 수 없기 때문이 아니라 더 이상 아무것도 뺄 수 없기 때문이라고 말했습니다. 다른 코드가 수정되는 동안 추가 코드를 개발, 검토, 테스트 및 고려해야 하기 때문에 소프트웨어에서는 특히 그렇습니다. 소프트웨어의 향후 버전은 추가 코드와 역호환성을 유지해야 합니다.
규격화
시스템이 외부 부품에 의존할수록 처음 시도하는 사람에게는 더욱 두려운 느낌을 줍니다. 가능한 표준화된 일반적인 방법을 사용하여 전체 시스템이 친숙한 느낌을 주도록 하십시오.
확장성
확장성은 기초 구조를 손상시키지 않고 시스템을 강화할 수 있다는 것을 의미합니다. 시스템의 일부분을 변경해도 시스템의 다른 부분에 영향을 미치지 않을 수 있습니다. 가장 가능성이 높은 변화는 시스템에 가하는 상처가 가장 작습니다.
고선입
하이 팬인(High Fan-in)이란 특정 클래스를 사용하는 클래스가 다수 존재하는 것을 의미합니다. 높은 팬인(fan-in)은 시스템이 시스템의 하위 수준 유틸리티 클래스를 최대한 활용하도록 설계되었음을 의미합니다.
중저도 팬아웃
중저도 팬아웃이란 어떤 클래스가 중저도의 다른 클래스들을 사용하는 것을 의미합니다. 고 팬아웃(약 7개 이상)은 한 클래스가 많은 다른 클래스들을 사용했음을 의미하며, 따라서 너무 복잡할 수 있습니다. 연구원들은 루틴 내부에서 호출하는 루틴의 수를 고려하든 클래스 내부에서 호출하는 루틴의 수를 고려하든, 저 팬아웃도 원칙이 유익하다는 것을 발견했습니다.
이식성
이식성은 시스템의 설계가 다른 환경으로 이동하기 쉽도록 해야한다는 것을 의미합니다.
계층 설계
계층화 설계란 가능한 한 분해 계층을 유지하여 시스템을 어느 한 계층에서나 볼 수 있게 하며, 일관된 뷰를 얻을 수 있도록 하는 것입니다. 시스템을 설계할 때는 한 계층에서만 살펴볼 수 있으며, 다른 계층으로 깊이 들어갈 필요가 없습니다.
0 댓글
다음 페이지