정보시스템감리사 시험공부 정리노트 with Gemini
1. CMMI 성숙도 레벨 및 카테고리별 프로세스 영역(PA)성숙도 단계ProjectEngineeringSupportProcessLevel 5(최적화 단계) CAR(원인 분석 및 해결)OPM(조직 성과 관리)Level 4(정량적 관리 단계)QPM (정량적 프로젝트 관리) OPP(조직 프로세스 성과)Level 3(정의 단계)IPM(통합 프로젝트 관리)RSKM(위험 관리)RD(요구사항 개발)TS(기술적 해결책)PI(제품 통합)VER(검증)VAL(확인)DAR(의사결정 분석 및 해결)OPF(조직 프로세스 초점)OPD(조직 프로세스 정의)OT(조직 교육 훈련)Level 2(관리 단계)PP(프로젝트 계획수립)PMC(프로젝트 감시 및 통제)SAM(공급자 계약 관리)REQM(요구사항 관리)CM(형상 관리)PPQA(..
PCE(Phase Containment Effectiveness)는 소프트웨어 개발 공정에서 결함이 발생한 해당 단계(Phase) 내에서 얼마나 많은 결함을 발견하고 제거했는지를 나타내는 지표입니다. 쉽게 말해, "결함이 다음 단계로 넘어가기 전에 제때 잘 잡았는가?"를 측정하는 효율성 지표라고 보시면 됩니다. 1. PCE의 목적 (언제 사용하는가?)PCE는 주로 프로세스 개선과 품질 통제를 위해 다음과 같은 상황에서 사용됩니다.공정 효율성 측정 : 각 개발 단계(요구분석, 설계, 코딩 등)의 검토 및 테스트 프로세스가 얼마나 견고한지 확인하고 싶을 때비용 절감 : 결함이 후반 단계(테스트, 운영)에서 발견될수록 수정 비용이 기하급수적으로 늘어나므로, 이를 조기 차단하기 위한 관리 지표로 활용프로세스 병..
객체지향 설계의 복잡도를 측정하는 대표적인 기준인 CK 메트릭(Chidamber and Kemerer Metrics)은 6가지 주요 지표로 구성됩니다. 이 메트릭은 클래스의 크기, 상속 구조, 결합도 등을 수치화하여 소프트웨어의 유지보수성과 품질을 평가하는 데 사용됩니다. 1. WMC (Weighted Methods per Class)클래스 내 메서드의 가중치 합을 의미합니다.설명 : 클래스에 정의된 모든 메서드의 복잡도를 합산한 값입니다. 보통 각 메서드의 순환 복잡도(Cyclomatic Complexity)를 가중치로 사용합니다.의미 : WMC가 높을수록 해당 클래스는 이해하기 어렵고, 테스트와 유지보수 비용이 많이 발생합니다. 2. DIT (Depth of Inheritance Tree)상속 계층의..
1. JUnit4란 무엇인가요?JUnit(제이유닛)은 자바(Java) 프로그래밍 언어용 단위 테스트(Unit Test) 프레임워크입니다. 우리가 자동차를 만들 때, 자동차 전체를 조립하기 전에 '바퀴가 잘 굴러가는지', '엔진이 잘 돌아가는지' 부품별로 먼저 확인하죠? 프로그래밍에서도 마찬가지로 프로그램의 가장 작은 단위(주로 메서드)가 제대로 동작하는지 확인하는 것을 '단위 테스트'라고 합니다. JUnit4는 이 단위 테스트를 아주 쉽고 규칙적으로 작성하고 실행할 수 있게 도와주는 도구입니다. 현재는 JUnit5가 최신 버전이지만, 실무의 수많은 기존 프로젝트들이 여전히 JUnit4를 사용하고 있어 알아두면 매우 유용합니다. 2. 작동 원리: 어떻게 내 코드를 알아서 테스트할까?JUnit의 핵심 작동 ..
인공신경망(ANN)은 내부 구조가 복잡한 고차원 행렬 연산으로 이루어져 있어, 전통적인 소프트웨어의 코드 커버리지(구문, 결정 등)를 그대로 적용하기 어렵습니다. 따라서 AI 모델의 특성에 맞춘 새로운 커버리지 개념이 등장했습니다.1. 인공신경망의 화이트박스 커버리지 (White-box Coverage)전통적인 화이트박스 테스트가 '코드 라인'을 얼마나 실행했는지 본다면, 인공신경망에서는 '뉴런(Neuron)이 얼마나 활성화되었는지'를 측정합니다. 이를 통해 학습 데이터가 모델의 내부 로직을 충분히 자극했는지 평가합니다.뉴런 커버리지 (Neuron Coverage)가장 기본적인 지표. 전체 뉴런 중 활성화 임계값(Threshold)을 넘는 입력이 한 번이라도 있었던 뉴런의 비율을 측정.$뉴런 커버리지 =..
UML(Unified Modeling Language)에서 스테레오 타입(Stereotype)은 기존의 UML 요소(클래스, 연관 관계 등)의 의미를 구체화하거나 확장할 때 사용하는 메커니즘으로, 주로 길러멧기호(« ») 안에 표기합니다. 클래스 다이어그램의 관계(Relationship), 특히 의존(Dependency)이나 추상화(Abstraction) 관계에서 자주 사용되는 표준 스테레오 타입들을 기능별로 분류하여 빠짐없이 정리해보도록 하겠습니다. 1. 인스턴스 생성 및 소멸 (Creation & Destruction)한 클래스가 다른 클래스의 인스턴스를 생성하거나 없앨 때 사용합니다.스테레오 타입적용 관계설명«create»의존 (Dependency)클라이언트 클래스가 공급자(Target) 클래스의 ..
1. 클래스 형태 표기 (Stereo)가장 표준적인 방식으로, 일반 클래스 상자에 스테레오타입인 «interface»를 표기합니다. 구성 : 상단에 «interface» 키워드와 인터페이스 이름을 작성하고, 아래 칸에 추상 메서드(오퍼레이션) 목록을 나열합니다.구현 연결 : 클래스가 이 인터페이스를 구현할 때는 점선 화살표(빈 삼각형 머리)인 '인터페이스 실현(Realization)' 선으로 연결합니다. 2. 롤리팝 표기법 (Lollipop/Socket)인터페이스를 간결하게 표현할 때 사용하는 아이콘 방식입니다.제공 인터페이스(Provided Interface) : 클래스 끝에 붙은 작은 원(공) 모양으로 표현하며, 해당 클래스가 인터페이스를 구현하고 서비스를 제공함을 의미합니다. (공을 줄께..)요구 ..
ISO/IEC 25023은 소프트웨어 품질 평가 표준인 SQuaRE(System and Software Quality Requirements and Evaluation) 시리즈 중 하나로, 소프트웨어 제품의 품질 측정(Measurement)을 위한 구체적인 지표를 정의한 표준입니다.구분표준 번호부문명 (Division)주요 내용 및 역할2500nISO 2500x품질 관리 (Quality Management)SQuaRE 시리즈 전반에 대한 지침, 용어 정의 및 관리 모델을 제시합니다.2501nISO 2501x품질 모델 (Quality Model)소프트웨어의 8대 품질 특성과 사용성 품질 모델 등 평가의 기준이 되는 모델을 정의합니다. (예: ISO 25010)2502nISO 2502x품질 측정 (Quali..
필립 크루첸(Philippe Kruchten)이 1995년에 제안한 이 모델은, 복잡한 소프트웨어 아키텍처를 단 하나의 관점이 아닌 '서로 다른 4개의 관점'과 이들을 검증하고 연결하는'1개의 핵심 관점(유스케이스)'으로 설명하는 프레임워크입니다.1. 4+1 뷰 모델의 상세 구조아키텍처 문서는 이해관계자(Stakeholder)마다 보고 싶어 하는 정보가 다르므로 이를 만족시키기 위해 뷰를 분리한 것 논리 뷰 (Logical View)핵심 : 시스템이 사용자에게 어떤 기능(Functional Requirements)을 제공하는가?관점 : 최종 사용자(End-User)의 관점내용 : 시스템의 기능적 요구사항을 클래스, 객체, 관계 등으로 추상화하여 표현설계 : 클래스 다이어그램, 시퀀스 다이어그램 등을 주..
관점지향 프로그래밍(Aspect-Oriented Programming, AOP)은 객체지향 프로그래밍(OOP)을 보완하여 소프트웨어의 복잡도를 낮추기 위해 등장한 패러다임.1. 등장 배경: OOP의 한계객체지향 프로그래밍(OOP)은 모듈화를 통해 재사용성을 높였지만, 특정 기능들이 여러 클래스에 걸쳐 중복되는 문제를 완전히 해결하지 못함.코드 중복 (Code Duplication) : 로깅(Logging), 보안(Security), 트랜잭션(Transaction) 처리와 같은 기능은 거의 모든 비즈니스 로직에 공통적으로 필요합니다. 이를 각 객체마다 작성하면 코드가 중복됩니다.흩어진 관심사 (Scattered Concerns) : 공통 기능이 여러 모듈에 흩어져 있어, 코드를 수정할 때 해당 기능이 포함..