본문 바로가기

프로그래밍/개인공부저장용

(4)
[TOPCIT Essence] 02 소프트웨어 개발 방법론 소프트웨어 개발 방법론의 특징은 개발 단계를 각각 정의하고 각 단계별 수행활동, 산출물, 검증절차, 완료 기준을 정의하고, 개발 계획, 분석, 설계 및 구현 단계에 대해 정형화된 방법과 절차, 지원 도구를 정의한다. 소프트웨어 개발 방법론의 필요성1. 개발 경험의 축적 및 재활용을 통한 개발 생산성을 향상2. 효과적인 프로젝트 관리3. 공식 절차와 산출물을 제시하고 표준용어 통일하여 의사소통 수단 제공4. 각 단계별 검증과 승인된 종료를 통해 일정 수준의 품질 보증 소프트웨어 개발 방법론 비교구분구조적 방법론정보공학 방법론객체 지향 방법론CBD 방법개요업무 활동 중심의 방법론데이터 중심의 방법론객체, 클래스 간의 관계를 식별하여 설계 모델로 변환하는 방법론재사용이 가능한 컴포넌트의 개발/상용 컴포넌트를 ..
[TOPCIT Essence] 01 소프트웨어 공학의 배경과 목적 5/18일 TOPCIT까지 2주간 달리기 시작 1) 소프트웨어 공학이란?다기능화 및 대규모화 된 소프트웨어 개발을 위해서 요구사항 분석부터 유지보수까지의 과정에 발생하는 어려움을 해결하기 위한 체계적인 관리와 효율적 업무 수행을 지원해주는 기술 효과적인 소프트웨어 공학 기술 적용을 위해서는 체계적인 업무 방식 및 흐름의 정의와 이를 적용할 수 있는 프로세스(Process), 전문적 지식을 갖춘 조직 및 인력(People), 정의된 업무 방식과 조직 인력이 효율적으로 운영되기 위한 기반 인프라 기술(Technology)이 3가지 핵심 요소를 갖춰야 한다.  2) 소프트웨어 공학 배경소프트웨어 공학의 변천사는 다음과 같다. 1950년대에 소프트웨어 개발 프로젝트를 위해 하드웨어 공학과 유사한 소프트웨어 공학..
지금까지 써본 언어 중 가장 어지러운 언어 [Arm Assembly] 간단?한 hello world 출력 예제인데.. hello world 출력하는 코드가 아래랑 같다..text_start: .global _start @ sys_write ( fd, pstr, len ) @ r7=4 r0 r1 r2 mov r0, #1 @fd  천천히 코드를 하나하나 뜯어보자, 일단 큼지막하게 .text, _start, .global, msg:, .end로 나눠보자. 섹션크게 데이터 섹션과 코드 섹션으로 나눌 수 있고, 각각 .data, .text로 나뉜다.데이터 섹션에는 프로그램에서 사용하는 데이터 (변수, 상수, 배열, 문자열 등)이 포함되고, .data 혹은 .section .data와 같은 지시문으로 정의된다. 이 섹션에 선언..
KMP 완전히 이해해보기 - 1 KMP 알고리즘에 대해 개인적으로 완전히 이해해보려고 한다. 일단 GET PI 함수 부터 구현하고 직접 고민해보며 이해해보기로 했다. 싸지방 컴퓨터는 껐다 키면 다 날아가므로 코드나 고민한 내용들을 적어보았다. from collections import deque def getprefix(s): prefix=[] print(s,"'s prefix is") for i in range(len(s)): prefix.append(s[i]) print(''.join(prefix)) print() def getsuffix(s): suffix=[] print(s,"'s suffix is") for i in range(len(s)): suffix.append(s[~i]) print(''.join(suffix[::-1]..