본문 바로가기
728x90

대학공부/소프트웨어공학10

Software Fault-Tolerance 하드웨어의 경우: TMR(Triple Modular Redundancy), RAID 등 Recobery block: alternative의 적합성 여부를 Acceptance test로 검사 실패한 경우 후보가 있으면 alternative 실행 실패하는 경우를 대비한 checkpoint estabilish / restore 문제점 acceptance test에서 문제가 발생하는 경우 fail-tolerance 불가능. 비교적 시간이 걸리므로 domain dependent(실시간 sw에 영향을 미침). acceptance test와 alternative간의 근본적인 차이가 없음. alternative간의 common mode failure를 피하기 어렵고 우선순위 설정 어려움. 지원하는 언어가 없고 chec.. 2023. 10. 6.
Software Testing Test를 pass하는 기준은 expected output: 테스팅을 통해 알 수 있는 것은 expected output과 actual output이 같다는 것 테스팅이 어려운 이유 실제 사용되는 환경에서 검증하기 어려움 소프트웨어가 처리해야 하는 모든 입력값의 범위 및 조합에 대한 테스팅이 현실적으로 불가능 오작동이 입력값외에 환경에 영향을 받을 수 있음 multithread 프로그램인 경우 소프트웨어의 행위 및 출력이 수행할 때마다 달라짐 프로그래밍 언어에 따라 다른 테스팅 기법 적용 결함이 없다고 보장 불가능 Combinatorial testing: 시스템에 대한 입력 매개변수에 대해 모든 가능한 개별 조합을 테스트 Random testing: random possible input을 생성, 모든 .. 2023. 10. 6.
Software Metric: Cost Estimation, COCOMO, Function Point Software Cost Estimation: 프로젝트 비용 예측. 프로젝트 관리를 위해 기본적인 데이터가 필요. 요구사항과 개발 환경의 변화가 없다면 일정과 비용에 미치는 영향에 대한 양적인 측정이 가능. Cost Estimation 접근들: Rules of thumb(과거 프로젝트로부터의 짐작), Top-down/Bottom-up estimating, Algorithmic models (COCOMO, Function Point 등) COCOMO(Constructive Cost Model): 데이터를 수집하여 만든 개발 기간과 프로젝트 크기 간의 관계 개발 노력(SM) = 2.4(a) * (프로그램 규모=라인 수)^1.05(b) 개발 기간(TDEV) = 2.5(c) * (SM)^0.38(d) 적정 투입.. 2023. 10. 6.
소프트웨어 개발방법론 Waterfall model 소프트웨어 개발 프로세스 각 단계를 체계적(순차적)으로 거쳐가는 모델 각 단계마다 review와 approval 필요. 필요하다면 "loop-back" 가능 Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance - 장점: 관리와 실행이 간단, 고정된 비용의 프로젝트에 적합, 전체 프로젝트에 대한 예산과 일정 추정이 쉬움 - 단점: 완전한 요구사항을 추출하기 위해서 많은 시간이 필요, 제품이 실패할 확률이 높음(21%), 정적인 시장에만 적합함, 기술적 어려움으로 고객의 예상과 다를 .. 2023. 10. 6.
SPI, CMMI, 기타 용어 Software Process Improvement(SPI, 프로세스 개선): 개발 속도 향상/제품 품질 향상/비용 절감 등의 특정 목표를 달성하기 위해 개선 활동을 계획하고 구현하기 위한 일련의 작업, 도구 및 기술. 미국 국방성은 소프트웨어 개발프로세스를 개선하고 조직의 역량 및 성숙도를 측정하는 모델인 CMM을 발표 SW-CMM(=CMM, 성숙도 모델)에서 통합모델 CMMI으로 확장 CMMI 조직의 성숙도를 1단계에서 5단계로 정의하고 각 단계마다 만족해야 하는 핵심역량을 Key Process Area(KPA)로 정의 Level 1 Initial: 아무런 인증 x Level 2 Repeatable: 소프트웨어 프로젝트의 기본적인 핵심역량을 갖추었는지 판단하는 것이 목적 기타 용어 Software c.. 2023. 10. 6.
Formal Methods 정형 기법 - 수학적인 이론에 기반하여 소프트웨어와 하드웨어 시스템의 명세, 개발, 형식 검증을 위한 기술 - 안전/보안이 중요한 소프트웨어 및 시스템에서 사용됨 - 명확하고 정형적으로 정의된 semantics를 기반으로 함 - 자동화된 분석이 가능함 (시뮬레이션, 테스트케이스 생성, 정형 검증 등) 장점: 에러를 빨리 발견 가능, 제품 품질 향상 단점: 비용이 많이 들고 어려움 정형 명세(Formal Specification): 수리, 논리를 이용하여 시스템의 기능, 행위, 동작 환경을 기술하는 것. 모호함을 없애는 것이 목적 요구사항 간 inconsistency를 없애고 설계가 요구사항을 만족하는지 증명 가능 Finite State Machine, Statechart, Petri Net 등이 해당됨 정형 검증(.. 2023. 10. 6.