Challenges/정보처리기사

[정보처리기사]1. 소프트웨어 설계/애플리케이션 설계/소프트웨어 아키텍쳐

뚱요 2021. 8. 9. 00:00
반응형

 

 SW 아키텍쳐

SW  구성 요소 간의 관계 표현하는 시스템, 구조/구조체

- 사용자의 비기능적 요구사항으로 나타난 제약 반영

- 기능적 요구사항을 구현하는 방법을 찾는 해결 과정

- 개발할 SW 기본 틀을 만드는 것, 복잡한 SW 개발 과정을 체계적으로 접근하기 위한 밑그림

 소프트웨어 아키텍처 4+1뷰 : 유스케이스 , 논리 , 프로세스 , 구현  배포 뷰

 

기본 원리 4가지                  #모추단정

1) 모듈화(Modularity)/ 서브 시스템, 서브루틴,work unit

- 시스템 기능들을 모듈 단위로 나눠 소프트웨어의 성능 및 재사용성을 향상시키는 것

- 모듈의 크기 多: 모듈 개수 적음 | 모듈 간 통합 비용 적음 | 모듈 하나의 개발 비용 큼

- 모듈의 크기 小: 모듈 개수 많음 | 모듈 간 통합 비용 큼

 

2) 단위 모듈 구현의 원리

  • 데이터 추상화(Data Abstraction) 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐 
  • 분할과 정복(Divide & Conquer) 복잡한 문제를 분해, 모듈 단위로 문제 해결
  • 정보 은닉(Information Hiding) 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
  • 모듈 독립성(Module Inpendency) 낮은 결합도와 높은 응집도

 

2.1) 추상화(Abstraction)

- 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시키는 것(불필요한 부분 생략)

- 과정 추상화: 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악

- 데이터 추상화: 데이터의 세부적인 속성/용도를 정의하지 않고, 데이터 구조를 대표 표현으로 대체

- 제어 추상화: 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표하는 표현으로 대체

 

2.2) 단계적 분해(Stepwise Refinement)

- Niklaus Wirth에 의해 제안된 하향식 설계 전략

- 추상화의 반복에 의해 세분화

- 소프트웨어 기능에서부터 시작해 절차적으로 구체화

- 상세한 내역은 가능한 한 뒤로 미루어 진행

 

2.3) 정보 은닉(Information Hiding)

- 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법

- 정보 은닉을 통한 독립적 모듈 수행 가능 (고려되지 않은 영향(side effect) 최소화)

- 모듈 변경 시 영향을 받지 않아 수정, 시험, 유지보수 용이

 

3)설계 단계   20년 4회 필기

(1) 상위설계 : 아키텍처/예비 설계

시스템의 전체적인 구조(아키텍처), DB, 인터페이스 를 설계한다.

 

(2) 하위설계: 모듈/상세 설계

컴포넌트, 자료 구조, 알고리즘과 같은 시스템 내부 구조 및 행위를 설계한다.

 

4) 협약(contract) 20년 3회 필기

협약에 의한 설계는 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세

명세에 포함할 3가지 조건

1) 선행 조건: 컴포넌트 오퍼레이션 사용 전에 참이 되어야함

2) 결과 조건: 사용 후 만족되어야함

3) 불변 조건: 오퍼레이션이 실행되는 동안 항상 만족되어야 함

 

[정보처리기사] 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

 

반응형