분류 전체보기 56

Lecture 08: Instructions - Language of the Computer - 5

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Translating and Starting a ProgramTranslation hierarchy for C language (번역 계층)▶ Translation hierarchy for C language 어셈블러는 0과 1로 단순히 변환하는데,이때 파일을 obj 파일이라고 한다. (0과 1로 이루어진 파일) 그리고 이러한 obj 파일을 여러 개 연결하여 하나의 소프트웨어, 실행 가능한 exe 파일을 링커가 만들고,이렇게 만들어진 exe를 더블 클릭해서 사용자가 사용하겠다고 하면, 로더는 이 파일을 메모리 (RAM)에 올려 놓는다. 1. CompilerHigh-level language code -> assembly languag..

CS/컴퓨터 구조 2024.10.14

Lecture 07: Instructions - Language of the Computer - 4

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Compilde MIPS Code ExamplesCompiling steps1. Allocate registers to program variables변수마다 레지스터를 할당한다. 2. Produce code for the body of the procedure함수의 코드를 직접 컴파일, 즉 assembly code를 작성한다. 3. Preserve registers across the procedure invocation(호출)레지스터 보존 여부, 즉 callee로 가기 전, 레지스터에 저장된 값을 메모리에 저장할지 말지를 결정한다.ex) 레지스터 보존 - $s0, $ra▶ Compiling stepsCompilde MIPS Cod..

CS/컴퓨터 구조 2024.10.14

Lecture 07: 요구분석 - 2

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.(2) 요구사항 분석유스케이스 (Use Case) 다이어그램가장 중요한 분석 기법 툴로, 시스템 개발자와 고객 사이에 요구를 한눈에 이해하는 수단이 된다. (요구분석 명세서 작성의 기반)또한, 예외적인 케이스 (ex) 확장)를 개발자에게 주지시키며, 대략적인 계획을 위해 기능의 수준을 파악하는 데 용이하다. 구성시스템액터유스케이스 (Use case)관계※ 액터는 사람 뿐만 아니라 외부 시스템이 될 수도 있다. ex) 시스템 - 외부 시스템: 은행 - 보▶ Use case diagram ※ Use case diagram에는 비기능적 요소는 들어있지 않고, 나중에 명세서 작성시 추가적으로 작성한다. 특징시스템의 사용자에게 서비스를 제..

Lecture 06: 요구분석 - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어 요구(Requirements)란?요구시스템이 무엇을 해야 하는지, 어떤 특성을 가져야 하는지를 기술한 것어떻게(How)가 아니라 무엇을(What)솔루션이 아니라 문제를▶ 분석 vs 설계 즉, 구축할 것이 뭔지를 나타낸 것이다. 요구분석의 목적이해(Understanding): 소프트웨어가 무엇을 위하여 필요한지 정확히 이해전달(Communicating): 이해한 것을 다른 개발자에게 정확히 전달컨트롤(Control): 시스템이 명세에 맞도록 제품 개발을 컨트롤요구분석소프트웨어 개발에서의 요구분석사용자를 직접 만나는 단계로,의뢰자(사용자)가 현행 시스템의 입출력 화면, 문제점, 산출물, 새로운 요구사항 등을 분석가에게 전달..

Lecture 06: Instructions - Language of the Computer - 3

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Explanation of 32 Registers32 Registers$zero: contains 0 value$a0 ~ $a3: function argument, 함수를 호출할 때 전달하는 인자$v0, $v1: return values, 최종 결과값을 전달할 때 사용$t0 ~ $t9: temporary register (do not have to preserve), 덮어쓰기 가능 (메모리에 저장 X)$s0 ~ $s7: saved registers (preserve), 덮어쓰기 불가능 (메모리에 저장)$gp: global pointer (to access static data ex) constant value)$sp: stack po..

CS/컴퓨터 구조 2024.10.08

Lecture 05: 계획 (프로젝트 관리와 계획) - 2

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.일정 계획5. 일정 계획소프트웨어를 개발하기 위해 어떤 작업이 필요한지 찾은 후, 진행할 순서를 결정하거나, 주어진 개발 기간에 소작업의 개발 개간 및 그들 간의 순서, 필요한 자원 등과 같은 일정을 계획하는 것이다.▶ 일정 계획 ※ 계획은 소프트웨어를 개발하기 위한 것이기에 개발한 이후의 과정인 유지보수 단계는 계획할 필요가 없다.▶ 일정 계획 예시 작업 순서 결정, 소작업의 개발 기간, 순서, 필요한 자원 등의 일정을 계획한다. ※ 소작업을 기능이라고 보면 된다.일정 계획 - 작업 분할 구조도 (WBS)1) 작업 분할 구조도 (Work Breakdown Structure, WBS)Top - down 형식으로, 본격적인 일정 계..

Lecture 04: 계획 (프로젝트 관리와 계획) - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.계획계획누가 무엇을 어느 기간동안 어떻게 개발해야 하는지 예측하는 작업구현해야 할 기능과 요구하는 성능 및 인터페이스 성능에 따라 개발범위를 정함구현할 프로젝트 특징과 자원 및 생산성에 따라 비용을 예측계획의 부재높은 불확실성일정의 차질, 경비 초과, 저품질, 높은 유지보수 비용프로젝트의 실패체계적이고 명확한 계획을 위한 6가지1. 문제 정의2. 타당성 분석3. 소프트웨어 개발 비용 산정4.소프트웨어 개발 비용 산정 기법5. 일정 계획6. 위험 분석 이러한 계획이 완료 되면 산출물로 계획서를 만들게 된다.문제 정의1. 문제 정의소프트웨어 개발의 첫 작업무엇을 개발할 것인지 명확히 정의 ex) 모바일 게임, PC 게임개발 범위 설정..

Lecture 03: 소프트웨어 공학과 개발 프로세스 - 2

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어 개발 생명주기 모델소프트웨어 개발 생명주기 모델Plan and Document선형 순차적 모델 ex) 폭포수 모델, V 모델진화적 프로세스 모델 ex) 프로토타입 모델, 나선형 모델단계적 개발 모델 ex) 점증적 개발 모델일정 중심 설계 모델No Document주먹 구구식 모델애자일 프로세스 모델※ Document는 각각의 단계에서 만든 산출물로, 그 산출물을 보며 잘 됐는지 검토하는 용도이다. 하지만, 애자일 프로세스는 빠르게 사이클을 돌고 사용자와 적극적으로 만나고, 미팅을 자주하는 걸 목적으로 하다보니 속도가 생명이기에 Documnet를 만들지 않는다.주먹 구구식 모델주먹 구구식 모델공식적인 가이드라인이나 프로세스..

Lecture 02: 소프트웨어 공학과 개발 프로세스 - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어의 정의소프트웨어 (Software)soft (부드러운) + ware (제품) 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합으로,그 수행에 필요한 절차, 규칙, 문서 등의 총칭이다. 개발 과정에서 생성되는 모든 산출물(자료 구조, 데이터베이스 구조, 테스트 결과 등)과각 단계에서 만들어지는 문서와 사용자 메뉴얼 등을 포함한다. ※ 프로그램: 프로그래밍한 원시 코드 (Source Code)소프트웨어의 특징소프트웨어의 특징1. 비제조성2. 소모되지 않는 소프트웨어3. 사용자의 요구에 따라 새롭게 생산4. 변경성 (Changeability)5. 복제 가능 (Duplicability)소프트웨어의 특징 (하..

Lecture 05: Instructions - Language of the Computer - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Signed and Unsigned Numbers우리는 10진법을 사용하지만 컴퓨터는 2진법을 사용한다. (0 or 1)▶ base 2 -> base 10▶ MSB - LSBLeast significant bit (LSB): The right most bit in a MIPS word (작다)Most significant bit (MSB): The left most bit in a MIPS word (크다)※ signed bit의 경우, MSB가 0이면 양수, 1이면 음수가 되기에 MSB가 중요하다.Signed and Unsigned Numbers비트만 봐서는 signed bit인지, unsigned bit인지 알 수 없고,unsig..

CS/컴퓨터 구조 2024.09.29