본문 바로가기

프로그래밍

(107)
3. Agile software development Plan-driven 방식의 소프트웨어 개발 프로세스는 개발과정도중 요구사항의 변화나 요구사항의 문제에 대해서 빠르게 대처하지 못하는 문제점이 있다. 빠르게 변화하는 환경속에서, 빠르게 요구사항에 발맞추어 개발을 하기 위해 Agile 개발 프로세스가 도입되었다. Agile방식의 특징은 다음과 같다. 1) Interleaved specification, design, implementation, minimized fomal documentation 2) Development in series of increment 3) Extensive tool support for development process 3.1 Agile methods 대규모의 시스템이 아닌 빠르게 요구사항이 변화하는 중소규모의 시스템 개발..
2. Software processes 앞서 Introduction에서 보았듯이, software engineering은 software processes로 볼 수 있으며, 과정은 다음과 같다. 1) Specification -> Development -> Validation -> Evolution 2.1 Software process models software process model은 간단하게 모델화된 프로세스 표현이며, 다음과 같이 분류될 수 있다. 1) The waterfall model 2) Incremental development model 3) Integration and configuration 2.1.1 The waterfall model 하나의 phase에서 다음 phase로 단계적으로 cascading되는 특성 때문에,..
1. Introduction Software System 은 추상적이고, 물리적엔 제약이 구속받지 않는다. 따라서, 적용에 한계가 없으며 시간이 지날수록 복잡해지는 특성을 가지고 있다. 많은 Software Engineering이 실패하는 이유는 크게 다음과 같은 2가지 이유가 있다. 1) Increasing system complexity 2) Failure to use software engineering methods 1.1 Professional software development SE(Software Engineering)는 개발자를 위한 것이 아닌, 그것을 사용하는 일반적인 사람들을 위한 것이다. software는 program뿐만 아니라, documentation, libraries, support websites, ..
10. 객체 지향(object-oriented) 개념 10.2 string class - 문자열 처리는 배열에 '\0'을 사용하는 C-문자열 또는 string클래스로 가능함 - string class를 쓰는 것이 프로그래밍하기 편함 - 문자열 추가 함수 : append - 문자열 대입 함수 : assign - at, clear, erase, empty // 검색, 제거, 삭제, 비었는지 확인 - length, size, capacity, c_str // 길이, 크기, 용량, c-문자열로 반환 - 문자열 비교 : compare - 부문 문자열 : substr - 문자열 검색 : find - 문자열 삽입 및 교체 : insert, replace - 문자열 연산자 사용가능 ex) =, +등 ex1) string s1 = "Welcome"; //argument없이..
9. 객체(object)와 클래스(class) 9.2 객체(object)와 클래스(class) 정의 - 객체지향 프로그래밍(Object-Oriented Programming)에서는 객체(object)를 사용함 - 명확하게 구별되는 실제세계의 개체(요소)임 ex)책상, 원, 버튼 등 - 이러한 요소를 만들어 내기 위해 정의된 틀이 있음, 그것이 class임, 즉 객체 생성을 위한 설계도 - class에는 객체가 가지는 데이터 필드, 생성자 함수, 객체 함수에 대한 것이 정의되어 있음 - 함수와 데이터필드를 객체의 member라고 함 ex) class Circle{ //프로그래머가 만든 클래스는 첫분자 대문자 public: //공용으로 쓸 수 있음을 의미 double radius; // 객체의 데이터 필드 Circle(){ radius = 1; } //..
7, 8. 1차원 Array, C-문자열, 다차원 Array 7.6 함수에서 배열 인수 보호 - 함수로 배열이 전달될 때, 배열이 변경 불가능하도록 하기 위해 const키워드를 쓸 수 있음 - const로 받은 배열을 함수 내에서 또 다른 함수로 전달 할 때는, 똑같이 const를 써주어야 함 ex) void p(const int list[] int arraySize){ ... f(list, size); } void f2(const int list[] int size){ ... } //함수 p가 const를 받았으므로, 함수 f도 const로 받아야함 7.11 C-문자열 - C-문자열이란, 문자열의 끝이 '\0'로 끝나는 배열을 말함 - cin, cout을 이용하여 입출력가능 - strcpy, strncpy로 문자열 복사 - strcat, strncat로 문자열 ..
6. 함수(function) - 함수는 코드를 재사용하고, 조직화하고 간략화 하기위해 사용함 6.3 함수 호출 - 함수는 호출 될 때마다 argument와 variable을 저장하는 activation record(= activate frame)을 생성하고, 그것을 call stack에 저장함 - main함수가 max함수를 호출했다면, main함수의 activation recore가 stack에 저장되고, 그 위에 max함수의 것이 저장됨 (LIFO구조) 6.7 함수 오버로딩(function overloading) - 함수 이름은 같지만, 매개변수가 다른 함수를 작성하는 것(반환유형만 다른경우x) - 실행시 오버로딩된 함수들 중 가장 가까운 함수를 호출함 - 두 함수중 어느것을 호출해야할지 compiler가 결정하지 못할 경우 am..
4. 수학함수, 문자, 문자열 4.2 수학함수 - header는 다양한 수학함수를 포함하고 있음 - sin, cos, tan, asin, acos, atan //삼각함수 - exp, log, log10, pow, sqrt //지수함수 - ceil, floor //올림, 내림 - min, max, abs 4.6 문자함수 - header는 문자를 테스트하고 변환하는 함수를 포함하고 있음 - isdigit, isapha, isalnum, is lower, isupper, isspace, tolower, toupper 4.8 string형 - string형은 primitive type이 아닌 object type이며, 문자열을 표현함 - string object를 생성하기 위한 class는 header에 정의되어 있음 - instance f..