본문 바로가기

소프트웨어공학론26

Client-Server architecture -Client-Server architecture 설명 1) 여러 서버로 서비스를 제공함, 여러 클라이언트가 자기가 원하는 서비스를 사용함. 2) 인터넷 네트워크를 통해서 클라이언트와 서버가 연결되어있음 예시 : Web (ex. 영화, 비디오/DVD, 웹툰, SNS, ...) 사용 상황 1) 여러 지역에서 공유 데이터베이스를 사용할 때 ex) YouTube : 전세계 모든 사람들이 서비스를 사용. 2) 시스템 부하가 가변적이고 복제 서버를 둘 수 있을 때 : 서버를 여러개 둬서 접속을 분산시킴 장점 1) 네트워크로 서버들을 분산 배치할 수 있는 구조 2) 모든 사용자가 서비스를 받을 수 있다 단점 1) 각 서비스는 서비스 거부 공격(DOS)이나 서버 다운에 취약 2) 성능은 컴퓨터 시스템 뿐만 아니라 네.. 2023. 4. 27.
Architectural Patterns - Layered architecture -Architectural Patterns 1. Layered architecture 2. Client-server architecture 3. Model-View-Controller (MVC) 4. Event-driven control 5. Repository architecture 6. Pipe and filter architecture 1. Layerd architecture 설명 1) 시스템을 계층적으로 구성하고 각 계층에 연관된 기능을 배치 2) 각 계층은 그 위 계층에 서비스를 제공, 아래 계층의 서비스를 사용, 가장 아래 계층은 핵심 서비스를 표현 예시 : Windows, Linux 운영체제, Android 플랫폼 사용 상황 1) 이미 있는 시스템 위에 새로운 기능을 쌓을 때 ex) 안드로이.. 2023. 4. 27.
Representation 6.2 Architectural Representation -아키텍처 표현하는 방법 1. Package Diagram *package : 같은 일을 하는, 같은 그룹에 속하는 여러 클래스, sub package를 모아놓은 것. 1) 표기법 박스+왼쪽 작은 박스 : 패키지 화살표 : 왼쪽 어떤 클래스가 오른쪽 어떤 클래스를 사용한다. 상속, 의존, ... 관계 표시 2) 특징 a) Hierarchical Decomposition(계층적 분할)을 표현할 수 있다. ex) Clerk User Interface 패키지 안에 Customer, RentalUI 클래스가 포함되어 있다. 그리고 패키지 안에 Business System Client 라는 sub패키지도 들어있다. 즉 패키지 안에 패키지가 들어있다. b).. 2023. 4. 26.
Design architecture -Software Architecture 요구사항 분석에서 설계 단계로 가는 것은 그 반대와는 다르게 많은 창의성을 요구한다. -정의 1) 설계유형(설계도) : 구조, 동작, 상호작용, 비기능적 속성 2) 설계 결정의 집합 : 분석에서 수집한 요구사항 목록, 모델은 큰 방향은 결정해주지만 빠진 부분들이 많다. 어떻게 채울 것인가-> 의사결정이 필요 설계할 때 하는 의사결정들의 집합. -SA 예시1 : Windows MFC Layered Architecture (계층 아키텍처) : 박스를 층층이 쌓아 놓은 것 Layered Architecture (계층 아키텍처)의 특징 : 바로 위,아래 박스로만 서로 호출, 리턴할 수 있는 관계 -SA예시2 : Android Apps Component architectu.. 2023. 4. 26.
UML tools and functions -StarUML -ArgoUML -Enterprise Architect -IBM Rational Software Architect -Rhapsody -Tau -Visual Paradigm -Magic Draw -UML Tool들의 주요 기능 1) class, state, sequence, ... 다이어그램들을 그릴 수 있다. 2) 문서 생성 3) Forward Engineering : 다이어그램을 그리면 C++, Java 코드를 작성해준다. Backward Engineering : 소스코드에서 다이어그램으로 만들어준다. 한줄씩 읽기에는 코드가 너무 방대해서 UML 다이어그램으로 그려주면 전체적인 그림을 이해할 수 있게 해준다. 4) Audit : 검사 5) Traceability 2023. 4. 26.
States diagram -State diagram 상태(state), 전환(전이), 초기 상태, 최종 상태가 핵심 요소이다. 상태들 간의 전환 관계를 diagram으로 표현한 것. state, 전환을 발생시키는 event가 중요. 원 : state ex) Empty, In Between, Full 검은 원 : 시작 state 검은 원에 바깥 원 : 종료 state 화살표 : 트랜지션 이벤트, 조건 push [size=max-1]/add, size++ : 트랜지션이 무조건 일어나는 것이 아니라 특정 이벤트, 조건을 만족시켜야 하는 경우 ex) push 이벤트, [size=max-1] 조건이 충족되어야 add, size++트랜지션 발생. 2023. 4. 26.