· 소프트웨어 위기

- 소프트웨어 개발 속도가 하드웨어 개발 속도를 따라가지 못함

- 소프트웨어 개발 기술에 대한 교육 부족

- 성능 및 신뢰성 부족

- 개발 기간의 지연 및 개발 비용의 증가(개발비용감소X)

- 유지보수가 어렵고, 이에 따른 비용 증가

- 소프트웨어의 생산성 저하, 소프트웨어의 품질 저하

(소프트웨어의 개발 도구 부족X / 개발 인력의 급증X / 소프트웨어 수요의 감소X)


· COCOMO 

- 개발할 소프트웨어의 규모를 예측한 후 이를 소프트웨어의 종류에 따라 비용을 다르게 책정

- 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용됨

(COCOMO 방법은 가정과 제약조건이 없어 모든 시스템에 동일하게 적용할 수 있다X)


· 형상 관리

- 소프트웨어 개발 과정에서 소프트웨어의 생산물을 확인하고 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 관리 직업

- 개발과정의 변경사항을 관리하는 것


· 품질 평가 기준 항목

- 정확성 Correctness : 사용자의 요구 기능을 충족시키는 정도

- 신뢰성 Reliability : 요구된 기능을 오류없이 수행하는 정도

- 효율성 Efficiency : 요구된 기능을 수행하기 위한 시스템의 능력. 필요한 자원의 소요 정도

- 무결성 Integrity : 허용되지 않는 사용이나 자료의 변경을 제어하는 정도

- 사용 용이성 Usability : 쉽게 사용할 수 있는 정도

- 유연성 Flexibility : 새로운 요구사항에 맞게 얼마만큼 쉽게 수정할 수 있는가하는 정도

- 이식성 Portability : 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정할 수 있는 정도

- 재사용성 : 이미 만들어진 프로그램을 다른 목적으로 사용할 수 있는가 하는 정도

- 상호 운용성 : 다른 소프트웨어와 정보 교환할 수 있는 정도

(최적화X / 중복성X / 간결성X / 종속성X / 복잡성X)


· 결합도(Coupling) : 의존하는 정도. 결합도가 약할수록 좋음

- 자료(데이터) 결합도 : 데이터에 대한 처리 결과를 돌려줌. 제일 약한 결합도. 제일 좋음

- 스탬프 결합도 : 자료구조 공유 정도

- 제어 결합도

- 외부 결합도

- 공통 결합도

- 내용 결합도 Content Coupling : 내부 기능 공유 정도


· 응집도(Cohesion) : 모듈 내부의 처리 요소들 간의 기능적 연관도. 독립적인 기능으로 정의. 응집도가 강할수록 좋음

- 기능적 응집도(Functional) : 제일 강한 응집도. 제일 좋음

- 순차적 응집도(Sequential)

- 교환(통신적) 응집도(Communication)

- 절차적 응집도(Procedural)

- 시간적 응집도(Temporal)

- 논리적 응집도(Logical)

- 우연적 응집도(Coincidental) : 처리상의 연관이 없는 서로 다른 기능을 수행하는 경우


· 하향식 통합 검사

- 일시적으로 필요한 조건만을 가지는 임시로 제공되는 시험용 모듈 스터브가 필요(상향식 통합 검사는 스터브 필요X)


· 상향식 통합 검사(Bottom-Up Integration Test)

- 낮은 수준의 모듈들을 Cluster로 결합→Driver라는 제어 프로그램의 작성→Cluster 검사→ Driver를 제거하고 Cluster를 상위로 결합


Q. 상향식 통합 검사에 대한 설명으로 틀린 것은? 가

A. 가. 깊이 우선 통합법 또는 넓이 우선 통합법에 따라 스터브를 실제 모듈로 대치함

    나. 검사를 위해 드라이버를 생성

    다. 하위 모듈을 클러스터로 결합

    라. 하위 모듈에서 상위 모듈 방향으로 통합하면서 검사함


Q. 객체지향 기법 중 다음 설명이 의미하는 것은?

객체의 성질을 분해하여 공통된 성질을 추출하여 슈퍼클래스를 선정하는 것이다. 즉, 불필요한 부분을 생략학 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것이다. 예를 들면, 자동차와 말이란 클래스에서 "타는 것"이란 클래스를 만드는 것이다.

A. Abstraction 추상화


Q. 소프트웨어 공학에서 CASE의 효과에 해당하지 않는 것은? 라

A. 가. 소프트웨어 개발 주기의 표준안 확립

   나. 소프트웨어 개발 기법의 실용화

   다. 문서화의 용이성 제공

   라. 시스템 수정 및 유지보수 확대


Q. 소프트웨어 재공학의 중 활동 중 다음 설명에 해당하는 것은?

기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 작업

A. Reverse Engineering

+ Recent posts