Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

CS 이론(1) 소프트웨어 공학 본문

CS이론

CS 이론(1) 소프트웨어 공학

코드와이 2021. 6. 16. 16:14

 

모든 고급 개발 지식과 업무의 기본 근간은 알게 모르게 우리가 배웠던 cs기본 지식으로 연결된다.

 

 

[소프트웨어 프로세스 모델]

 

1. 폭포수 모델

   - 사용자의 니즈가 크지 않았기 때문에 사용할 수 있었던 모델

   - 프로세스 중 수정해야할 부분들이 계속해서 늘어났기 때문에 나중엔 사용하기 부담스러워진 모델 

 

2. 나선형 모델

   - 설계 단계에서 '어 여긴 나중에 고칠수도 있겠는데?' 하는 부분들을 미리 계산해 놓는다.

 

3. 프로토타입 모델

   - 당신이 원하는게 이겁니까?’ 하고 물어보고 평가를 통해 다음 프로세스가 결정된다.

 

4. 통합프로세스 모델

 

5. 애자일 프로세스 모델

  • 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방법론
  • 프로세스와 도구 중심이 아닌, 상호 소통 중시
  • 문서 중심이 아닌, 실행 가능한 소프트웨어 중시
  • 계약과 협상 중심이 아닌, 고객과의 협력
  • 계획 중심이 아닌, 변화에 대한 민첩한 대응

 

 

[아키텍처 모델]

1. 데이터 중심의 모델

  • 주요 데이터가 repository에서 중앙 관리
  • repository와 여기에 접근하는 서브시스템으로 구성
  • 데이터가 한군데에 모여 있기 때문에 데이터를 모순되지 않고 일관성 있게 관리 가능
  • 새로운 서브시스템의 추가 용이
  • repository의 병목 현상 발생 가능
  • 서브시스템과 repository 사이의 강한 결합 - repository 변경 시 서브 시스템에 영향을 줌

 

2. client-server- 모델

  • 네트워크를 이요하는 분산 시스템 형태
  • 데이터와 처리 기능을 클라이언트와 서버에 분할하여 사용
  • 서버 : 클라이언트(서브시스템)에 서비스 제공
  • 클라이언트 : 서버가 제공하는 서비스를 요청(호출)하는 서브시스템

 

3. LayerIng 모델

  • 기능을 몇 개의 계층으로 나누어 배치
  • 구성 : 하위 계층은 서버, 상위 계층은 클라이언트 역할

 

4. Model / View / Controller 모델

  • 같은 모델의 서브시스템에 대하여 여러 뷰 서브시스템을 필요로 하는 시스템에 적합
  • 장점
    • 데이터를 화면에 표현하는 디자인과 로직을 분리함으로써 느슨한 결합 가능
    • 구조 변경 요청 시 수정 용이
  • 단점
    • 기본 기능 설계로 인한 클래스 수의 증가로 복잡도 증가
    • 속도가 중요한 프로젝트에 부적합

      

 

'CS이론' 카테고리의 다른 글

[CS 이론] 운영체제(4)  (0) 2021.08.07
CS 이론(3)  (0) 2021.06.22
CS 이론(2) 프로그래밍  (0) 2021.06.17