* 기출 

디자인 패턴의 의미? 사용자 ~~~ 

결합도, 응집도. 

자료 사전, 

품질 표준. 

 

소프트웨어 공학 

전체 구조 ( 계획 -> 분석 -> 설계 - > 구현 -> 테스트 -> 인수/유지보수 )  
1. 계획 : 비용 계획(COCOMO, 기능점수) , 일정계획(CPM), 조직 계획
2. 분석 : 기능적/ 비기능적 분석  
           유형 A : 구조적 분석( 자료흐름도, 자료사전, 소단위 테스트) 
           유형 B : 객체지향적 분석( USE-CASE Diagram )
3. 설계 :                         상위 설계 -------->  하위 설계 
유형 A (구조적설계)     상)fan-in , fan-out  하) 모듈(결합도)     
유형 B (객체지향적설계)     디자인 패턴            class( 응집도)  
                                  UML-sequence
                      ( 대표적 class diagram이 있음)   
4. 구현  
유형 A : 구조적 C언어.
유형 B : 객체지향적 Java. 
5. 테스트 ( *유형 A,B 둘다 해당 )
정적 -> 동적( 블랙 박스 , 화이트 박스)
*단위테스트 -> 인터페이스테스트 -> 시스템테스트 -> 인수테스트 .
*형상관리 , 품질관리
6. 인수/ 유지보수
유지보수 ( 수정, 적응, 예방, 완전 ) 

 

프로젝트 관리 3대 요소 : 사람, 문제, 프로세스

* SW개발 중 가장 비용이 많이 드는 곳: 유지 보수 

 

계획 단계

비용 면

1. LOC 기법 - 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
2. COCOMO 기법 - 개발할 소프트웨어의 규모를 예측한 후 이를 소프트웨어 종류에 따라 다르게 책정

 

일정 계획면, 조직 면 

 

1. 브룩스(Brooks) 법칙 : 진행 중 새로운 인력을 투입 시키면 더욱 지연되고 혼란을 가져온다.
2. PERT/CPM : 최단시간 내 계획 완성을 위한 프로젝트 일정 방법

3. 

 

품질 표준. 

 

1. 정확성(Correctness) : 사용자의 요구한대로 충족시키는 것. 
2. 신뢰성(Reliability) : 정확하고 일관된 결과를 얻기 위해 요구된 기능을 오류 없이 수행하는 정도.

3. 효율성 : 요구되는 기능을 수행하기 위한 필요한 자원의 소요정도. 

 

분석 단계

1. 럼바우(Rumbaugh) 방법 : 객체 모델, 동적 모델, 기능 모델
2. 부치(Booch) 방법 : 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 분석 방법

 

럼바우. 

1. 객체 모델 : 정보 모델링이라고도 하며, 객체 관계를 객체 다이어그램으로 표현한 것.
2. 동적 모델링 : 상태도를 이용하여 시간의 흐름에 따른 동적인 행위 표현
3. 기능 모델링 : 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리과정 표현

구조적 분석 (C)

자료흐름도(DFD)
- 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
- 프로세스 : 원
- 자료 흐름 : 화살표
- 자료 저장소 : 두 줄
- 단말(정보의 생산자와 소비자): 네모

자료 사전(DD)

- 자료 흐름도 상에 있는 자료를 더 자세히 정의하고 기록한 것이며, Meta Data라고 한다.
- = : 자료의 정의
- + : 자료의 연결
- () : 자료의 생략
- [ | ] : 자료의 선택 또는 or
- { } : 자료의 반복
- * * : 자료의 주석

설계 단계

결합도(Coupling)  - 결합하는 절차가 있고 응집하는 객체가 있다. / 결석하는 자슥 제외시키고 공부나 해 
- C 언어라고 생각하면 좋음 / 모듈 간의 결합하는 정도 C니까 절차지향 즉, 낮아야 좋다.
- 자료 < 스탬프 < 제어 < 외부 < 공통< 내용 순으로 결합도가 높다.
 

응집도(Cohesion)
- Java라고 생각하며 좋음 / 모듈간 응집도가 높으면 좋다.
- 우연적 < 논리적 < 시간적 < 절차적 < 교환적 < 순차적 < 기능적 순으로 응집도가 높다.

 

테스트 단계 

화이트 박스 테스트  (코드)
- 기초 경로 검사
- 조건 검사
- 루프 검사
- 데이터 흐름 검사

 

블랙 박스 테스트 (겉)

- 동치 분할 검사 : 입력 자료에 초점을 맞춰 검사 사례를 만들고 검사하는 방법
- 경계값 분석
- 원인 - 효과 그래프 검사
- 오류 예측 검사
- 비교 검사 

 

테스트 단계 : 단위 -> 인터페이스 -> 시스템 -> 인수 테스트 ( 알파: 개발자 , 베타: 개발자 사용자 )

 

소프트웨어의 재사용

- 이미 개발된 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것
- 문제점 : 새로운 방법론 도입하기 어렵다, 재사용을 위한 관리 및 지원이 부족하다, 기존 소프트웨어에 재사용 소프트웨어 추가 어려움

소프트웨어 재공학

- 기존에 있던 소프트웨어를 파기하지 않고 새로운 요구에 맞도록 기존 시스템을 이용하여 기존 소프트웨어를 수정 보완하거나 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
- 역공학 : 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 과정

 

CASE
- 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화한 것
- 소프트웨어 생명 주기의 전체 단계를 연결해 주고 자동화해 주는 통합된 도구를 제공해주는 기술
- 이점 : 개발 기간 단축 및 비용 절감, 품질 향상, 유지보수 용이, 생산성 향상, 재사용성 향상 등.

 

소프트웨어 생명주기 모형

1. 폭포수 모형
 - 개발 순서 : 타당성 검토 -> 계획 -> 요구 분석 -> 설계 -> 구현 -> 시험 -> 유지보수

2. 프로토타입 모형
 - 개발 순서 : 요구 수집 -> 빠른 설계 -> 프로토타입 구축 -> 고객 평가 -> 프로토타입 조정 -> 구현

3. 나선형 모형 (대규모에 적합) 
 - 계획 및 정의 -> 위험 분석 -> 공학적 개발 -> 고객 평가

'CS > SW공학' 카테고리의 다른 글

SW공학 흐름도  (0) 2020.01.10

 

 

'CS > SW공학' 카테고리의 다른 글

SW공학_CS( 전체 틀 )  (0) 2020.01.15

+ Recent posts