170 likes | 400 Views
OOP. Department of Computer Engineering WoongJin Han. Reference. 성공과 실패를 결정하는 1% 의 객체 지향 원리 성안당 Akira Hirasawa 저 . Contents. History of Programming Software Crisis 진화 방향. History of Programming. Machine Language Assembly Language High-Level Language Structured Programming OOP.
E N D
OOP Department of Computer Engineering WoongJin Han
Reference • 성공과 실패를 결정하는 1%의 객체 지향 원리 • 성안당 Akira Hirasawa저
Contents • History of Programming • Software Crisis • 진화 방향
History of Programming • Machine Language • Assembly Language • High-Level Language • Structured Programming • OOP
Machine Language • 컴퓨터가 처음 등장한 1940년대 • 2진수 or 16진수 표현 • 예제 • A10010 • 8B160210 • 01D0
Assembly Language • 기계 언어를 기호로 표현 • Assembler • 예제 • MOV AX, X • MOV DX, Y • ADD AX, DX • MOV Z, AX
High-Level Language • 복수의 기계언어를 인간이 알기 쉬운 형식으로 표현 • 서브루틴 (Subroutine) 사용 • Compiler • FORTRAN(1957년), COBOL(1960년) • 예제 • Z = X + Y
“Software Crisis” • NATO 국제회의에서 선언 • 1968년 독일에서 • “소프트웨어 위기” 선언 내용 • 20세기 말에는 세계 총인구가 모두 프로그래머가 되어도 증대하는 소프트웨어의 수요를 따라갈 수 없는 상태가 된다.
Structured Programming 1 • 기본 3구조 (제어문) • 순차 진행 • 조건 분기 : if~else • 반복 : for • GOTO 없는 프로그램 • 스파게티 코드 방지
Structured Programming 2 • 서브루틴 독립성 강화 • 전역변수 문제 • 지역변수 사용 및 인수 전달로 해결 • 대표 언어 • PASCAL • C언어
구조적 프로그래밍의 한계 • 기능 중심적 분석및 설계 • 자료구조의 공유 • 재사용의 어려움
객체지향 프로그래밍 (OOP) • 대상 중심적 분석및 설계 • 자료구조를 클래스 별로 관리 • 재사용 용이
진화 방향 • 높은 생산성 • 유지 보수성 • 재사용성 중시 • PC성능 향상 • 새로운 기술 실현 가능
OOP 1 • Object Oriented Programming • Class • Encapsulation (자료은닉, 블랙박스화) • Polymorphism (다형성) • Inheritance (상속)
OOP 2 • History • 1967년 Simula67 • 당시 H/W성능 부족으로 연구용. • 1980년 Smalltalk • C++로 GUI Library개발 • 대표 언어 • C++ Java C#