전체 글
![[소프트웨어 공학] 순차 다이어그램(Sequence Diagram)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fy7hBT%2FbtrMkSJlRmx%2FAAAAAAAAAAAAAAAAAAAAAH0sFZDlLMRWT3lVOxxj4WbPssPWPj-424aw9H9Jyzae%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DeS%252FR%252BPQw6g1nu6N9V0ge0HIzA5A%253D)
[소프트웨어 공학] 순차 다이어그램(Sequence Diagram)
순차 다이어그램(Sequence Diagram) 시스템의 동적 흐름 서비스 제공 과정 표현 모델 서비스 객체 정의 -> 객체 간 메시지 송수신 과정을 시간 순서에 따라 정의 " 객체명: 클래스명 " 형식으로 맨 위에 객체 표시 ex) youngk: Person 왼쪽에서 오른쪽으로 객체 나열 객체 간의 송수신 메시지 형식 [시퀀스 번호][가드] : 리턴 값 := 메시지명(인자..) 위에서 아래 방향으로 시간(시퀀스) 진행 가드: 메시지 송신 조건 프레임: 다이어그램을 특정하는 wrapper 왼쪽 위 모서리에 다이어그램 타입과 이름 기입 sd: sequence diagram(순차) ud: usecase diagram(유스케이스) cd: class diagram(클래스) 하나의 시나리오 단위로 표시 다이어그램..
![[소프트웨어 공학] 패키지 다이어그램](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbjiMBP%2FbtrMt3vzxWP%2FAAAAAAAAAAAAAAAAAAAAAFlKqfGFMsg3nCAzxqvm-3Zs2AKFmQcLZQVGCm0C6KPa%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DdZA1jLojwqQRhBBWe0b5yKRvSP4%253D)
[소프트웨어 공학] 패키지 다이어그램
패키지 다이어그램 패키지란? 관련 있는 모델 요소의 그룹화 패키지 내에 다른 패키지 포함 가능 구성 요소는 하나의 패키지에만 포함됨 패키지는 하나의 네임 스페이스 구성 패키지 제거 시 패키지 내의 모델 요소도 제거됨 패키지의 의존관계 B패키지 없이 A패키지의 단독 재사용 불가능 B패키지의 변경은 A패키지에 영향을 줄 수 있음 패키지 설계의 일반 원칙 응집도 높이고, 결합도는 낮춤 응집도: 패키지 내 클래스의 목적 수행 정도 결합도: 패키지 간의 상호 의존 정도 패키지 설계 원칙(응집도) REP Reuse Release Equivalence Priciple(재사용 릴리즈 등가 원칙) 재사용, 릴리즈의 단위는 패키지 CPR Common-Reuse Priciple(공통 재사용 원칙) 패키지 내의 클래스는 함께..
[백준 BOJ] BOJ -2309 일곱 난쟁이
#2309 일곱 난쟁이 문제 정리 9개의 Int 배열에서 2개를 뺐을 때 합이 100이 되는 경우를 찾는 문제입니다. 풀이 import Foundation var heights: [Int] = [] var output: [Int] = [] var sum: Int = 0 // 일곱 난쟁이가 아닌 사람들의 키 var a: Int = 0 var b: Int = 0 // 엔터로 입력 받기 for _ in 0..
[백준 BOJ] BOJ-1018 체스판 다시 칠하기
#1018 체스판 다시 칠하기 문제 정리 풀이 import Foundation // 정답 체스판 경우의 수 var correctBoard1: [[Character]] = [] var correctBoard2: [[Character]] = [] for _ in 0..
[백준 BOJ] BOJ-8393 합
#8393 합 문제 정리 풀이 import Foundation let n = readLine()!.split(separator: " ").map { Int($0)! } var sum = 0 for i in 1...n[0] { sum += i } print(sum) 1 부터 n까지 for문으로 sum 구하기 풀고나서 알게된 것 reduce 쓰면 숏코딩도 가능할 것 같은데 아직 실력이 모자라다ㅜㅜ
[백준 BOJ] BOJ-7568 덩치
#7568 덩치 문제 정리 풀이 import Foundation let n = Int(readLine()!)! var persons = [(weight: Int, height: Int)]() // 입력 받기 for _ in 0..
[백준 BOJ] BOJ-1920 수 찾기
#1920 수 찾기 문제 정리 풀이 import Foundation let n: Int = Int(readLine()!)! let numList: Set = Set(readLine()!.split(separator: " ").map { Int($0)! }) let m: Int = Int(readLine()!)! let findList: [Int] = readLine()!.split(separator: " ").map { Int($0)! } findList.forEach { print(numList.contains($0) ? 1 : 0) } set.contains() 를 활용하여 값이 numList에 들어있는지 비교 시간복잡도는 O(n) 풀고나서 알게된 것
[백준 BOJ] BOJ-1059 좋은 구간
#1059 좋은 구간 문제 정리 풀이 import Foundation let l = Int(readLine()!)! let s = Set(readLine()!.split(separator: " ").map { Int($0)! }) let n = Int(readLine()!)! var min = 1 var max = 1000 // 0. n이 집합 S에 속하는 경우 if s.contains(n) { min = n max = n } else { // 0. n-1 방향으로 진행하면서 집합 S와 일치하는 값이 있으면 직후의 값을 min에 저장 for i in stride(from: n, through: 1, by: -1) { if s.contains(i) { min = i+1 break } } // 0. n+1 ..
[백준 BOJ] BOJ-1010 다리 놓기
#1010 다리 놓기 문제 정리 풀이 import Foundation let t = Int(readLine()!)! var nm: [[Int]] = [] for _ in 0.. Double { return factorial(n) / (factorial(n - r) * factorial(r)) } func factorial(_ n: Int) -> Double { return (1..
[백준 BOJ] BOJ-1008 A/B
#1008 A/B 문제 정리 정수끼리의 나눗셈은 / 사용 시 나머지를 제외한 정수부분만 나오고 % 사용 시 나머지만 나오게 된다. 어떻게 소숫점까지 출력할 지가 관건인 문제였다. 풀이 import Foundation let input = readLine()!.split(separator: " ").map { Double($0)! } print(input[0] / input[1]) 실수끼리의 나눗셈은 소숫점까지 나온다는 점을 이용해 풀었다. 풀고나서 알게된 것 map을 통한 형변환은 신이다..
![[소프트웨어공학] 클래스 다이어그램](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FnjeDu%2FbtrL8TV3GjK%2FAAAAAAAAAAAAAAAAAAAAAMnP0tHQ0tWE8ZWUIEmfoIoa38LgyDTzXFERL9FVMz-r%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DwAWzoTK8Ph3j2f%252FLG2puZHiXZG4%253D)
[소프트웨어공학] 클래스 다이어그램
클래스 다이어그램 시스템의 정적 구조 시스템을 구성하는 클래스와 그들 간의 관계 표현 클래스 이름, 속성, 연산 속성과 연산의 접근 제어자 + (public), - (private), # (protected), ~ (package) 속성의 표현 static은 밑줄 [+ or - or # or ~] 이름: 타입[다중성 정보][=초기값] 연산의 표현 static은 밑줄 [+ or - or # or ~] 이름(인자1: 타입1, ..., 인자n: 타입n): 반환타입 표현식이 Swift 같네요 public func someFunc(num: Int, name: String) -> String 이런 느낌 제약 조건 { } 또는 노트 심볼 이용 다중성 클래스의 관계 연관, 일반화, 실체화, 집합, 의존 관계 클래스의 ..
![[소프트웨어공학] 모델링, UML, 유스케이스 다이어그램](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fz2Q3z%2FbtrLTWjISOr%2FAAAAAAAAAAAAAAAAAAAAANHvCItoxS_4SI18vrue2wnouzmJhIWudv4894ygweuF%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DQIJYnXMUU%252BAN%252FzVcybqozwia6AA%253D)
[소프트웨어공학] 모델링, UML, 유스케이스 다이어그램
1. 소프트웨어 개발과 모델링 모델링 해석의 공유 및 타당성 검토 개발할 시스템 구체화 / 가시화 시스템의 구조와 행위 명세 시스템 구축 틀 제공 2. UML UML이란? 대표적인 시스템 모델링 언어(unified modeling language) 시스템을 상호작용하는 객체들로 모델링 분석 모델(문제 영역)과 설계 모델(해결 영역)이 동일 다이어그램(diagram) 종류 행위 다이어그램: 활동, 상태 머신, 유스케이스(UseCase) 구조 다이어그램: 클래스, 객체, 복합체 구조, 배치, 컴포넌트 패키지 상호작용 다이어그램: 순차, 상호작용 개요, 통신, 타이밍 유스케이스 다이어그램 사용자 관점에서 시스템 사용 목적 기술 목적 달성을 위한 사용자와 시스템 간의 상호작용 시스템의 기능 서비스 정의, 시스템..