모델링의 종류
- 럼바우 (Rumbaugh) 모델링
- 가장 일반적
- Object Modeling - 객체다이어그램
- Dynamic Modeling - 상태다이어그램
- Function Modeling - 자료흐름도
- Booch 모델링
- 미시적(Micro) 개발 프로세스, 거시적(Macro) 개발 프로세스 모두사용
- 절차지향 프로그램으로 개발하려면 "동사"에 밑줄 긋고, 객체지향 프로그램으로 개발하려면" 명사"에 밑줄 그어라.
- Jacobson 모델링
- Use Case를 강조
- Wirfs-Brock 모델링
- 분석 설계간 구분이 없음
- 고객명세서를 평가하여 설계작업까지 한큐!
- Coad와 Yourdon 모델링
- E-R 다이어그램을 사용하여 개체활동 모델링
LOC기법
각 기능의 원시코드라인의 비관치/낙관치/기대치를 측정/예측
OMA (Object Management Architecture) 레퍼런스 모델의 구성요소
- ORB (객체요구매개자)
- Object Service (객체서비스)
- Common Facilities (공통기능)
- Domain Interface (도메인 인터페이스)
- Application Interface (응용 인터페이스)
유지보수의 유형
- Corrective: 수정 보수
- Adaptive: 환경변화를 반영하기위한 변경
- Perfective: 기능의 개선이나 추가
- Preventive: 예측, 예방을위한 변경
자료사전 표기기호
- = : is composed of
- + : 연결 (AND)
- ( ) : Optional
- | : 선택 (OR)
- { } : 반복
CASE (Computer Aided Software Engineering)의 종류
- Upper CASE
- Lower CASE
- Integrate CASE
HIPO Chart
- 시스템의 기능을 여러개의 고유모듈들로 분할, 이들간의 인터페이스를 계층구조로 표현한 도형 또는 도면
- 종류
- 가시적 도표: 시스템 전체 기능과 흐름을 보여주는 Tree 구조도 (도식목차)
- 총체적 도표: 프로그램 기능들을 기술한 것으로 입력, 출력, 처리에 대한 전반적인 정보를 제공하는 도표 (총괄도표, 개요도표)
- 세부적 도표: 총체적 도표에 기술된 기능의 세부 구성요소들을 상세히 기술 (상세도표)
소단위명세서(Mini-Spec)
세분화된 자료 흐름도에서 최하위단계 프로세스의 처리절차를 기술한 것으로 작성툴에는 서술문장, 구조적언어, 의사결정나무, 의사결정표, 그래프 등이있다.
결합도(Coupling) - 모듈간 의존도
- Data Coupling: 인수로 변수를 전달(자료만 공유)
- Stamp Coupling: 인수로 배열, 구조체를 전달(구조를 공유)
- Control Coupling: Handler나 Exception 같은 경우(다른 모듈로 제어신호를 전달)
- External Coupling: 전역변수 참조(다른모듈에서 선언된 전역변수를 공유하는 경우)
- Common Coupling: 공유메모리 참조
- Content Coupling: 다른모듈 기능을 참견, 개입
응집도(Cohesion) - 모듈의 독립성
- Function (기능적): 모듈내 요소들이 단일문제에 연관되어 수행
- Sequential (순차적): 하나의 행동이 다음 행동의 입력이 되는 경우
- Communication (교환적): 동일 입출력에 의존하는 요소들이 모임
- Procedural (절차적): 다수 관련요소가 순차수행될 경우
- Temporal (시간적): 특정 시간에 처리되는 요소들이 모임
- Logical (논리적): 유사한 성격, 분류의 요소들이 모임
- Coincidental (우연적): 서로 관련없는 요소들이 모임
화이트박스와 블랙박스
- 화이트박스
- 모든경로를 검사
- 원시코드 따라다니며 직접 확인
- 전체를 최소한번이상 돌려봄
- Basic path testing, Condition testing, Loop testing, Data flow testing.
- 블랙박스
- 기능별 테스트
- 정해진 입력에 대한 출력을 검증
- Equivalence partitioning testing: 동치분할검사
- 입력자료에 중점을 두고 검사사례를 만들어 검사
- Boundary value Analysis: 경계값 분석
- Cause-Effect Graphing testing: 원인-효과 그래프 검사
- 입력데이터간의 관계와 출력에 미치는 영향을 체계적으로 분석하여 검사사례 선정
- Fault Based testing: 오류예측검사
- 과거경험, 확인자의 감각에 의한 검사
- Comparison testing: 비교검사
- 여러버전의 프로그램에 동일한 검사자료를 제공해 결과검증
각종 용어설명
- Class: 하나이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화
- Method: 객체상태 참조/변경의 수단. (Operation)
- Inheritance: 부모의 속성을 물려받음
- Message: 객체들간 상호작용시 사용되는 수단. 외부요구사항.
- Encapsulation: 데이터, 속성, 처리함수를 하나로 묶는 것.
- Information Hiding: 캡슐화에서 가장 중요한 개념, 자신의 정보를 숨기고 자신의 연산만을 통해 접근 허용
- Abstraction: 추상화. (객체 속성 중 중요한 것에 중점을 두어 모델화)
- Polymorphism: 메세지에 의해 객체가 연산을 수행할때 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
- Component: 객체들의 모임, 대규모 재사용 단위 White-Box Wrapping을 적용하여 내부처리과정을 조사하고 코드를 수정함.
- Stub: 하향식 통합 테스트 수행을 위해 일시적으로 필요한 조건만 가지고 임시로 제공되는 시험용 모듈
소프트웨어 재공학의 주요활동
- 분석(Analysis): 명세서 확인 → 동작이해 → 재공학 대상선정
- 재구성(Restructuring): 추상적 수준에서 표현만이 바뀜(외형 변화 없음)
- 역공학(Reverse Engineering): 기존코드를 복구하는 방법, 분석 및 설계정보를 재발견하거나 다시 만들어내는 작업
- 이식(Migration): 기존 소프트웨어를 다른 환경에 이식
Bottom-Up Integration Test 과정
낮은 수준 모듈들을 Cluster로 결합 → Driver 작성 → Cluster 검사 → Driver 제거 → Cluster 상위결합N-S차트
- 박스를 기본요소로 하여 연속, 선택, 반복을 표현
- GOTO나 화살표가 없다.
- 복합조건 처리를 시각화하여 명확히 식별하는데 적합
- 이해는 쉬우나 작성이 어렵고, 코드변환이 용이
- 총체적 구조표현이 어려움
- 단일 입구와 단일출구로 표현
COCOMO 모형
- Boehm이 제안한, LOC(원시코드라인수)에 의한 비용산정기법
- 개발 소프트웨어의 규모(LOC)를 예측한 후 비용산정 공식을 대입
- 같은 규모의 프로그램이라도 성격에 따라 비용산정이 달라짐
- 프로젝트 모드
- 조직형(Organic Mode: 5만라인,50KDSI 이하)
- 반분리형(Semi-detached Mode: 30만라인, 300KDSI 이하)
- 내장형(Embedded Mode: 30만라인, 300KDSI 이상)
댓글 없음:
댓글 쓰기