본문 바로가기

분류 전체보기251

[소프트웨어 공학] Verification, Validation and Testing Fundamentals of SW Test Verification: 잘 만들고 있는가? Are we builing the product right? Validation: 잘 만들었는가? Are we building the right product? Testing: 실행 결과를 확인한다. Testing vs. Debugging Testing: bug로 인해 발생한 문제를 찾는다. (by. tester) Debugging: bug를 발생시킨 문제를 찾고, 코드를 고친다. (by. developer) Confirm testing: failure가 해결되었음을 다시 확인한다. (by. tester) Test Process Unit test: 개발자가 자신이 구현한 부분을 테스트한다. Integration tes.. 2024. 2. 19.
[소프트웨어 공학] UML(Unified Modeling Language), OOP(Object-Oriented Development Process), Modeling Engineering UML(Unified Modeling Language) Use Case Diagram: actor와 use case의 관계를 도식화한다. 모든 유스케이스를 취합하면 시스템의 모습이 된다. Class Diagram: 클래스 또는 클래스들과 그들의 관계를 표시한다. Sequence Diagram: 시간 경과에 따라 객체 간의 교류 과정을 표현한다. Communication Diagram: 객체 간의 상호관계를 표현한다. Activity Diagram State Chart Component Diagram Deployment Diagram OOP(Object-Oriented Development Process) Inception: 기존 시스템을 업데이트하거나, 새로운 시스템을 개발하기 위한 business ca.. 2024. 2. 19.
[소프트웨어 공학] 소프트웨어 프로세스, 요구 공학 소프트웨어 아키텍처 디자인 소프트웨어 공학이란? : 초기 구상 단계부터 시스템 사용 이후 발생하는 유지보수까지 포함하는 소프트웨어 생산의 모든 관점과 관련한 공학적인 학문 분야이다. 소프트웨어 공학은 고품질 소프트웨어 시스템의 비용 효율적인 개발에 중점을 둔다. 소프트웨어 공학에서의 비용(cost): 개발 + 테스트 비용 소프트웨어 프로세스 소프트웨어 명세화(specification): 시스템을 개발하기 위해 어떤 서비스가 필요한지 이해하고 정의하며, 시스템의 운영/개발에 대한 제약사항을 찾아내는 프로세스 소프트웨어 설계(design) 및 구현(implementation) : 명세를 실현하는 소프트웨어 구조를 설계하고, 소프트웨어 구조를 실행 가능한 프로그램으로 변환한다. 아키텍처 설계: 시스템의 전체 구조, 주요 컴포넌트, 이들.. 2024. 2. 19.
[C++] 15. STL과 람다식 15.1 이번 장에서 만들어 볼 프로그램 15.2 표준 템플릿 라이브러리(STL: Standard Templete Library) : 프로그래머들이 공통적으로 사용하는 자료구조와 알고리즘을 구현한 클래스 컨테이너: 자료를 저장하는 창고와 같은 역할을 하는 구조 - 배열, 연결리스트, 벡터, 집합, 사전, 트리 등 반복자(iterator): 컨테이너의 요소를 가리키는 데 사용된다. 알고리즘 탐색(find): 컨테이너 안에서 특정한 자료를 찾는다. 정렬(sort): 자료들을 크기순으로 정렬한다. 반전(reverse): 자료들의 순서를 역순으로 한다. 삭제(remove): 조건이 만족되는 자료를 삭제한다. 변환(transform): 컨테이너의 요소들을 사용자가 제공하는 변환 함수에 따라서 변환한다. 15.3 .. 2024. 2. 17.
[어서와 C++는 처음이지!] CH8 Exercise 1 #include using namespace std; int main() { int n; cout > n; int* p; // 포인터 선언 p = new int[n]; // 동적 메모리 할당 for (int i = 0; i p[i]; // 동적 메모리에 정수 저장 } cout 2024. 2. 12.
[C++] 8. 포인터와 동적객체 생성 8.1 이번 장에서 만들어 볼 프로그램 8.2 포인터란? int n = 10; // 변수 정의 int *p; // 포인터 선언 p = &n; // 변수 n의 주소를 포인터 p에 저장 #include using namespace std; int main() { int n = 10; int* p = &n; // 포인터 p에 변수 n의 주소 저장 cout 2024. 2. 12.
[어서와 C++는 처음이지!] CH6 Exercise 1 벡터 크기 설정 #include #include using namespace std; int main() { int n; cout > n; vector v(n); for (auto& e : v) { cout > e; } int max = v[0]; int min = v[0]; for (auto& e : v) { if (e > max) max = e; if (e < min) min = e; } cout 2024. 1. 30.
[C++] 6. 객체 배열과 벡터 6.1 이번 장에서 만들어 볼 프로그램 6.2 객체 배열 : 객체들이 모여 있는 컨테이너 #include #include using namespace std; class Circle { public: int x, y; int radius; Circle() { x = 0; y = 0; radius = 0; } Circle(int _x, int _y, int r) { x = _x; y = _y; radius = r; } void print() { cout 2024. 1. 30.
[어서와 C++는 처음이지!] CH5 Exercise 1 #include using namespace std; class Book { public: string title; string author; // 생성자 Book(string t, string a) { title = t; author = a; } }; int main() { Book myBook("Great C++", "Bob"); cout 2024. 1. 29.