요구사항 명세의 원칙정확성 (Correctness)시스템 구현 시, 기능의 필요성이 분명히 드러나도록 정확히 명세.명확성 (Clarity) ★기능이 일관되게 이해되고 오해 없이 해석될 수 있도록 작성하여 중의적 해석을 피함.완전성 (Completeness)시스템 구현에 필요한 모든 사항을 누락 없이 명시하여 요구사항을 충족.일관성 (Consistency)공통 기능 간 상호 충돌을 방지하며 일관되게 작성.추적성 (Traceability)요구사항의 출처, 관련 시스템 및 기능 간의 관계를 추적할 수 있도록 작성하여 변경이나 검토 시 용이하게 함.재사용 (Reuse)의 규모별 분류함수와 객체 수준의 재사용컴포넌트 수준의 재사용애플리케이션 수준의 재사용
결합도(Coupling)정의: 모듈 간의 상호 의존 정도 또는 모듈 사이의 연관 관계를 의미하며, 결합도가 낮을수록 독립적인 모듈이 되어 좋은 구조를 형성.순서: 결합도가 낮은 순서대로 내공외제스자 (높은 결합도에서 낮은 결합도로 나열)결합도 종류내용 결합도 (Content Coupling)한 모듈이 다른 모듈의 내부 기능 또는 자료를 직접 참조하거나 수정할 때 발생하는 결합도.공통 결합도 (Common Coupling)여러 모듈이 공유되는 공통 데이터 영역을 사용하는 경우 (예: 전역 변수).외부 결합도 (External Coupling)한 모듈의 데이터가 외부의 다른 모듈에서 참조되는 경우의 결합도 (순차적 데이터 의존성).제어 결합도 (Control Coupling)한 모듈이 다른 모듈의 내부 논리..
객체지향 프로그래밍(OOP)은 데이터와 행동을 중심으로 구조화된 프로그래밍 패러다임입니다. OOP의 주요 요소는 객체, 클래스, 인스턴스, 메서드, 메시지, 캡슐화, 상속, 다형성 등으로 구성됩니다.객체 (Object)정의: 독립적으로 식별 가능한 이름을 가진 단위로, 각 객체는 상태와 행위를 가짐.특징:객체의 상태(State)는 시간에 따라 변할 수 있음.다른 객체와의 관계 형성이 가능하며, 기억 장소(메모리)를 차지함.메시지에 반응하는 메서드(Method)를 통해 특정 행동을 수행.클래스 (Class)정의: 유사한 객체를 묶어 공통된 속성과 연산(행위)을 정의하는 틀.특징:객체를 추상화하여 공통된 속성과 연산을 정의.슈퍼 클래스(Super Class): 특정 클래스의 상위(부모) 클래스.서브 클래스(..
소프트웨어 설계는 사용자의 비기능적 요구사항을 기반으로 제약을 반영하며, 기능적 요구사항을 구현할 구체적인 방법을 찾는 해결 과정입니다.모듈화 (Modularity)정의: 시스템 기능을 모듈 단위로 분리하여 소프트웨어 성능과 재사용성을 높이는 기법모듈 크기큰 모듈: 모듈 수가 적고 통합 비용이 낮지만, 개별 모듈의 개발 비용이 큼작은 모듈: 모듈 수가 많아져 통합 비용이 높아질 수 있음장점: 모듈 단위의 관리가 가능해 성능 향상 및 유지보수가 용이함추상화 (Abstraction)정의: 큰 개념을 설계한 후 이를 점차 구체화해 세부적인 설계로 발전시키는 방법유형과정 추상화: 전체 흐름만을 파악하고 수행 절차를 세세하게 정의하지 않음데이터 추상화: 데이터의 세부 속성을 생략하고 대표 표현으로 대체제어 추상화..