목록전체보기 (232)
득이공간

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 6장. 테스트 6-1. 테스트 6-2. 테스트 단계, 방법 6-3. 블랙박스 테스트 6-4. 화이트박스 테스트 6-5. 통합 테스트 6-6. 시스템 테스트 6-7. 인수 테스트 📌 6-1. 테스트 * 테스트 - 잘 안되는 것을 발견하기 위한 작업 * 테스트 중요성 - 소프트웨어 오작동으로 인한 재산/인명 피해를 사전에 예방하기 위함 (1) 결함 예방 (2) 품질과 안정성 보장 (3) 소프트웨어 신뢰성 향상 * 검증과 확인 - 검증(verification): 각 단계의 일들을 잘하고 있는가? - 확인(validation): 만든 결과가 원했던 것인가? * 테스트 기초 - 오류: 소프트웨어..

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 5장. 구현 5-1. 구현 5-2. 코딩 오류 5-3. 표준 코딩 규칙 5-4. 표준 코딩 규칙 종류 📌 5-1. 구현 * 구현 - 설계의 결과(설계서)를 사용자가 이용할 수 있는 모습(원시 코드)으로 변환하는 과정 - 결과물: 컴퓨터 프로그램 - 구현 후 테스트 시 오류가 발생하면? - 일반적으로 분석과 설계의 잘못에 의해 문제가 생긴다. - 설계과정이 완벽하다면 구현은 상대적으로 단순하고 기계적인 과정이다. - 코딩을 하는 개발자들은 정해진 규칙에 따라 코딩(표준 코딩 규칙)해야 한다. * 로드맵 - 코딩 표준 - 메서드 구현: 메서드 내부의 내용을 구현 - 클래스 인스펙션: 구현 ..

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 4장. 설계 4-1. 설계 4-2. 객체 지향 모델링 (UML) 4-3. 정적 모델링 - 클래스 다이어그램 4-4. 동적 모델링 4-5. 동적 모델링 - 순서 다이어그램 4-6. 동적 모델링 - 상태 다이어그램 4-7. 동적 모델링 - 활동 다이어그램 4-8. 절차 지향 모델링 (DFD) 4-9. 설계 요령 4-10. 아키텍처 설계 4-11. UI 설계 📌 4-1. 설계 * 설계 - 개발될 제품에 대한 의미있는 공학적 표현으로, 설계자는 다양한 제약 조건을 만족시킬 수 있는 최적의 설계안을 만들고, 설계를 평가할 기준도 정량적으로 명시해야 한다. - How(어떻게) 관점에서 바라본다. ..

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 3장. 요구분석 3-1. 요구분석 3-2. 요구사항 도출, 분석 3-3. 문서화: 요구분석명세서 3-4. 요구사항 검증 📌 3-1. 요구분석 * 소프트웨어의 요구 - 무엇(문제)을 구축할 것인가를 나타낸다. * 요구분석의 목적 - 이해: 소프트웨어가 무엇을 위해 필요한지 정확하게 이해한다. - 전달: 이해한 것을 다른 개발자에게 정확하게 전달한다. - 컨트롤: 시스템이 명세에 맞도록 제품 개발을 컨트롤한다. * 요구분석의 중요성 - 의사소통시간을 절약하고 다음 단계의 기초가 된다. * 요구분석의 어려움 - 사용자의 계속되는 요구사항 추가, 분석가의 문제 영역 이해 부족, 의사소통 문제 ..

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 2장. 계획 2-1. 계획 2-2. 문제 정의 2-3. 타당성 분석 2-4. 개발 비용 산정 2-5. 개발 비용 산정 기법 2-6. 일정 계획 2-7. 위험 분석 📌 2-1. 계획 * 계획 - 누가 무엇을 어느 기간동안 어떻게 개발해야 하는지 예측하는 작업 * 체계적이고 명확한 계획을 위한 6가지 - 문제 정의 - 타당성 분석 - 개발 비용 산정 - 개발 비용 산정 기법 - 일정 계획 - 위험 분석 📌 2-2. 문제 정의 * 문제 정의 - 무엇을 개발할 것인지 명확히 정의한다. 개발하고자 하는 영역의 배경 지식이 필요하다. 기존에 존재하는 유사 시스템을 사용해보고 분석한다. 📌 2-3...

해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. 소프트웨어 공학과 개발 프로세스 1-1. 소프트웨어 1-2. 소프트웨어 공학 1-3. 소프트웨어 개발 프로세스 1-4. 소프트웨어 개발 생명주기 모델 📌 1-1. 소프트웨어 * 소프트웨어 - 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합 * 소프트웨어 특징 - 비제조성 - 소모되지 않는 소프트웨어 - 사용자의 요구에 따라 새롭게 생산됨 - 변경성 (Changeability) - 복제 가능 (Duplicability) * HW vs SW - HW 제조: 결과물의 차이가 크지 않다. - SW 개발: 개인 능력에 따라 결과물의 차이가 크다. - HW 부품: 오래..

해당 게시물은 조진성 교수님의 '운영체제' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 4장. I/O Device 관리 4-1. Mass-Storage Structure 4-2. I/O Systems 4-3. File System Interface 4-4. FIle System Implementation 4-5. File System Internals 📌 4-1. Mass-Storage Structure * Mass-Storage (secondary storage) - computer I/O 장치 중에 제일 중요한 장치다. - HDD (Hard Disk Drive) : - SSD (Solid State Disk) - RAM disk : 전원을 껐다가 키면 데이터가 다 날라간다...

해당 게시물은 조진성 교수님의 '운영체제' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 3장. Memory 관리 3-1. Main Memory 3-2. Virtual Memory 📌 3-1. Main Memory * Memory Management - To provide a convenient abstraction for programming - To allocate scarce memory resources among competing processes to maximaize performance with minimal overhead - To provide isolation between processes * Memory Management Keypoints 1. 프로세스 ..

10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net #include using namespace std; int Num[2000]; bool DP[2000][2000]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N; for (int i = 0; i > Num[i]; } for (int i = 0; i < N; ++i) { DP[i][i] = true; if (i < N - 1) { DP[i][i + ..

9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net #include #include using namespace std; int DP[1001][1001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string A, B; cin >> A >> B; int N = A.size(); int M = B.size(); for (int i = 1; i 0) { if (DP[i][j] =..