본문 바로가기

IT개념/정보처리산업기사

[정처산기] 소프트웨어 아키텍쳐와 분석기법

728x90

소프트웨어 아키텍쳐 유형(어플레케이션 개발모델 유형)

소프트웨어 아키텍처 필요성 : 복잡하고 큰 소프트웨어 개발하려면 구조가 잘 구성되어야함


1) MVC 구조(Model, View, Controller)

개념 및 장점 : 구현 대상을 Model, View, Controller로 나누어 로직과 보이는 시각적 요소를 독립하여 관리를 용이하게 함

Model : 로직요소(데이터처리)
View : 시각적 요소 (정보표시)
Controller : 연결 요소


2) Client/Server 구조

개념 : 네트워크를 이용하는 분산 시스템 형태 모델, 데이터를 요청하는 클라이언트와 제공(응답)하는 서버로 분할,
서버, 서비스 클라이언트로 구성된다.**

장점 : 시스템 확장 용이, 많은 자원 공유


3) 저장소 구조(Repository, 데이터 중심형)

개념 : 저장소에 공동 데이터 보관, 서브시스템이 이 저장소에 접근하여 정보를 활용한다.
대량 데이터를 공유하는 은행 업무에 유용한 모델**

장점 : 데이터가 한군데 모여있어 일관된 관리 가능


4) 계층 구조(Layering)

개념 : 계층 하나를 서브 시스템으로 생각, 하위 계층은 서버, 상위 계층은 클라이언트로 구성
(ex : DB 사용 소프트웨어 : 사용자 계층 - 어플리케이션 계층 - DB 계층)

장점 : 계층 간의 역할 분담 덕에 하여 계층을 필요에 따라 변경 쉽게 가능


5) 데이터 흐름(파이프필터 구조)

개념 : 필터에 해당하는 서브 시스템이 하나의 데이터를 입력받아 처리한 후 그 결과를 서브시스템으로 넘겨주는 방식, 데이터 변환 시스템에 사용

(ex : 이미지 프로세싱(영상 처리) : 영상 취득->영상 처리->영상 출력)
장점 : 필터, 파이프 단위로 나누어 개발하여 동시 개발 가능



소프트웨어 재사용, 재공학, 역공학


### 1) 소프트웨어 재사용 > **개념** : 이미 개발된 것을 다른 개발, 유지에 이용하는 것
장점 : 개발비용, 시간 단축, 품질 향상

2) 소프트웨어 재공학

개념 : 기존 시스템 개선, 기능추가하여 성능 향상시키는 것

장점 : 기즌에 있던 소프트웨어 파기하지 않고 요구사항을 수정하여 비용 절감함


3) 소프트웨어 역공학

개념 : 소프트웨어 분석하여 개발, 데이터 처리과정을 설명하는 분석, 및 설계정보를 추출함

장점 : 분석을 빠르게 도와주고 유지보수를 빠르게 한다.