Implementation.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

Number Recognizer. Team 이성우 컴퓨터소프트웨어학과 조윤성 전자통신공학과
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
Secure Coding 이학성.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
DICOM Security 디지털정보융합학과 심영복.
Linux/UNIX Programming
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Introduction To Computers
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
컴퓨터 소프트웨어.
Makefile의 이해 ㈜FALinux 박진호.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
작 성 자: 김선영 메 일: sunyzero (at) gmail (dot) com 버 전: 1.30
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
Visual C++ Programming
Computer Architecture
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
1. C++ 시작하기.
C++ Programming: Sample Programs
Geek-OS Project 정영진
ARM Development Suite v1.2
공학컴퓨터프로그래밍 Python 염익준 교수.
Linux/UNIX Programming
건축설계사 임동진.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
From Block To C SW 코딩을 위한 5단계 교육
Method & library.
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Linux/UNIX Programming
27장. 모듈화 프로그래밍.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
OPENGL Project 계획서 (알카포네의 다이어트)
영상처리 실습 인공지능연구실.
Introduction to Programming Language
제1장 Unix란 무엇인가?.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
작은 분야의 일을 훌륭하게 해내는 자그마한 도구들을 개발자들에게 제공하고 개발자들은 이 도구들을 창의적으로 결합하여 사용하자.
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
Linux/UNIX Programming
Operating System Multiple Access Chatting Program using Multithread
7주차 실습 FPGA 보드 사용법.
제1장 정리 컴퓨터소프트웨어과 2-A반 주세호.
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
뇌를 자극하는 Solaris bible.
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 개발환경 설정 아이티즌 기술연구소
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
Flow Diagram IV While.
창의 설계 가이드 (모터 프로그래밍 및 테스트)
Soft computing Laboratory
.Net FrameWork for Web2.0 한석수
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
SNU 컴퓨터의 기초 월 14:00-16:00 43동101호 ropas. snu. ac
A programming environment for Ubiquitous Computing Environment
1장. C Language Synopsis.
소프트웨어 설계 및 실습 강기준.
C프로그래밍 도구 컴퓨터공학과 강성인.
Presentation transcript:

Implementation

소프트웨어 구현 구현단계의 작업 구현단계에서 결정해야 할 사항 설계 문서 => 구현 단계의 출발선 각 모듈에 대한 원시코드의 작성 및 문서화 단위 모듈에 대한 테스트 작업을 포함 구현단계에서 결정해야 할 사항 프로그래밍 언어의 선택 Coding 지침 작성 Coding Style에 대한 표준 확립 모듈 구현 순서의 결정

프로그래밍 언어 프로그래밍 언어의 역할 High Level 프로그래밍 언어의 특징 기계 제어 소프트웨어 구현 및 저장 의사소통 수단 (Logic의 표현, 소프트웨어의 문서화) High Level 프로그래밍 언어의 특징 이해하기 쉽다 =>읽기 쉬움, 디버깅 용이, 오류 가능성 감소 풍부한 표현력 => 응용 분야에 가깝고, 프로그램 작성 용이 높은 이식성 =>낮은 기계 종속성 높은 생산성 프로그래머의 시간 vs. 기계 시간 프로그래밍 언어에 관계없이 코딩 속도가 일정

프로그래밍 언어의 선택(1) 프로그래밍 언어 선택의 중요성 프로그래밍 언어 선택시 고려 사항 코딩 및 테스팅이 수월 유지 보수 용이 ==> 유지보수 비용의 절감 프로그래밍 언어 선택시 고려 사항 프로젝트의 특성 프로그래밍 언어 자체의 특성

프로그래밍 언어의 선택(2) 프로젝트의 특성 사용자의 요구: 특정 언어를 지정 프로그래머의 지식 완료/진행중인 프로젝트에서 사용한 언어 컴파일러의 가용성 및 품질 Target 하드웨어 및 O/S에서 사용 가능 소프트웨어 개발 도구의 지원 editor, debugger, linker cross-reference table, ... 호환성: 다양한 H/W 및 O/S

프로그래밍 언어의 선택(3) 프로그래밍 언어 자체의 특성 표현력에 따른 적합성: 문제 영역에 따라 상이 단순성, 명확성, 직교성(orthogonality) 사용하기 쉬운 문법 Control Mechanism Data Types Constants Procedure & Function Encapsulation, Template, …

Coding 지침 표현 방법: 분명하게 읽기 쉽도록 코드 작성 제어 구조, 자료 구조의 선택에 신중 시스템 장해 대책 수립 예외 상황에 대해 충분히 고려할 것 품질 향상 이해 용이성: 적절한 기호와 주석, 구별하기 쉬운 변수 명 간결성 이식성: 하드웨어나 OS 종속 부분을 명시 유지보수성 테스트 용이성 신뢰성: 정확한 동작, robustness 효율성

Coding Style 좋은 프로그래밍 스타일에 대한 기준 좋은 프로그래밍 스타일을 위한 원칙 Simplicity Readability 좋은 프로그래밍 스타일을 위한 원칙 스타일1 : 명확하게 작성하라 스타일2: 수식의 의미를 간결하고 직접적으로 표현 스타일3: 임시 변수의 사용을 피하라 스타일4: 혼돈을 초래할 수 있는 변수명은 피하라 스타일5: 일관성 있는 변수명을 사용하라 스타일6: 문장 그룹이 명확하도록 {}와 들여쓰기 사용 스타일7: if 다음에 if가 따라오는 구조나 null else는 피하라 스타일8: 문장의 반복은 최소화하라 스타일9: 모듈화하라

구조적 프로그래밍(1) 구조화 프로그램(Structured Program) 프로그램을 기술하기 위한 단계적 세분화 프로그램의 제어 흐름을 sequence, selection, iteration만으로 표현되는 프로그램. 단계적 세분화를 통해 하나의 function node로 부터 유도 가능 프로그램을 기술하기 위한 단계적 세분화 하나의 function node를 기본적인 제어 구조를 갖는 프로그램으로 대치. 프로그램 내부의 function nodes에 대해서도 다시 기본적인 제어 구조를 갖는 프로그램으로 대치 반복.

구조적 프로그래밍(2) c d a b p q s t h g k k h g p k

Make(1) Make Utility that maintains programming projects involving many modules Guarantee the equivalence of source and object modules Create the executable file using a specification of the interdependencies (placed in a Makefile) of the various modules of a program Detect files that are inconsistent and need to be rebuilt using timestamps

Make(2) Example of Makefile Project files : Three C language source files : main.c, iodat.c, dorun.c Assembly language code : lo.s A set of library routines in /hskim/lib/crtn.a If you built program by hand % cc -c main.c % cc -c iodat.c % cc -c dorun.c % as -o lo.o lo.s % cc -o program main.o iodat.o dorun.o lo.o /hskim/lib/crtn.a

Make(3) Description file : Makefile program : main.o iodat.o dorun.o lo.o /hskim/lib/crtn.a cc -o program main.o iodat.o dorun.o lo.o /hskim/lib/crtn.a main.o : main.c cc -c main.c iodat.o : iodat.c <=== dependency line cc -c iodat.c <=== command line dorun.o : dorun.c cc -c dorun.c lo.o : lo.s as -o lo.o lo.s

Make(4) Dependency checking Minimizing rebuilds : minimal set of commands library main.c iodat.c iodat.o dorun.c lo.s main.o dorun.o lo.o program assembler loader compiler

Make(5) Basic rules of syntax tab : 모든 command 앞에 (특히 주의) backslash(\) - continuation mark: at the end of a line pound sign(#) - comment: from it to the end of a line single target can appear on multiple dependency lines file.o : /usr/src/file.c cc -c /usr/src/file.c ..... file.o : global.h defs.h * 단 하나의 dependency line과 command가 결합 targets without prerequisites clean : /bin/rm -f core *.o ==> % make clean

Make(6) Macros macro definitions : name = text string macro references : $(name) or ${name} example LIBES = -lX11 OBJS = draw.o plot_points.o data.o DEBUG_FLAG = -g BINDIR = /usr/local/bin plot : ${OBJS} cc -o plot ${DEBUG_FLAG} ${OBJS} ${LIBES} mv plot ${BINDIR} % make plot cc -o plot -g draw.o plot_points.o data.o -lX11 mv plot /usr/local/bin

Make(7) Make uses five Internal Macros $< : expands to the name of the file that is out of date with respect to the target .c.o : cc -g -c $< $* : expands to the file name without suffix cc -g -c $*.c $@ : expands to the name of target file program : ${OBJS} ${LIB} ${CC} -o $@ ${OBJS} ${LIB} $? : expands to the list of files that are out of date $% : evaluated only when the target file is an archive library member lib(file1.o) $% = file1.o $@ = lib

Source Code 문서화 문서화 ==> 유지보수에 필수 문서화의 형태 Comments for Program header Comments for Module header In-line comments Comment for Program header에 포함 사항 프로그램의 제목, 저작자, 작성일, Version no. 프로그램의 목적 구조 설계 공유변수 및 사용하는 파일 외부 참조: 사용하는 외부 모듈을 나열