2024/10/14 3

Lecture 08: 설계 - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어 설계(Design)란? 설계개발될 제품에 대한 의미있는 공학적 표현프로그램 구현에 들어가기 전에 소프트웨어를 구성하는 뼈대를 정의해 구현의 기반을 만드는 것설계자는 다양한 제약 조건을 만족시킬 수 있는 최적의 설계안을 만들고, 설계를 평가할 기준도 정량적으로 명시해야 한다. 좋은 설계가 되기 위한 조건'설계서'는 '요구분석 명세서'의 내용을 모두 포함해야 한다.유지보수가 용이하도록 추적이 가능해야 한다.변화에 쉽게 적응할 수 있어야 한다. ex) 새로운 함수와의 연동시스템 변경으로 인한 영향이 최소화되도록 국지적(한정적)이어야 한다. ex) 모듈화'설계서'는 읽기 쉽고 이해하기 쉽게 작성되어야 한다.설계만 잘 되면 구현..

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..

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..