목차
1. 서 론
2. 객체지향 프로그래밍에 대한 기본 원리
3. OOP에 의한 경계요소법
3.1 기본 클래스
3.2 특별한 문제의 BEM 솔루션을 위한 클래스
3.3 문제의 해결
4. 결 론
참 고 문 헌
2. 객체지향 프로그래밍에 대한 기본 원리
3. OOP에 의한 경계요소법
3.1 기본 클래스
3.2 특별한 문제의 BEM 솔루션을 위한 클래스
3.3 문제의 해결
4. 결 론
참 고 문 헌
본문내용
해 결과를 출력한다.
BEM_Object에서 키워드인 "protected"와 "public"는 억세스 지정자이다. 단지, 이 클래스 자체나 자식 클래스는 "protect"라고 기록된 속성과 함수를 억세스 할 수 있다. 그래서 캡슐화의 체계를 보장한다. "public"으로 기록된 함수는 다른 클래스에서 참조될 수 있다. 키워드 "virtual"에서 그 키워드에 선언된 멤버함수는 그것이 불려지는 상황에 관계없이 멤버함수의 적절한 버젼이 사용되도록 한다. 이와 같은 정의로 다형화가 성취되어 증식 루틴들이 구현될 수 있다.
3D 문제에서 3D 클래스는 쉽게 클래스 BEM_Object로부터 파생될 수 있으며 바로 BEM_Object에 대한 가상함수의 증식을 실행한다. 새로운 클래스는 이 클래스의 전체 속성을 계승할 수 있으며 부모 클래스를 억세스 한다. 이것이 일종의 다형화이다. 이 클래스에서 사용된 다른 클래스는 Point, Matix, MaterialCh, BitCard이다. Point는 Carstesian 시스템에서 리얼 포인트를 나타내도록 설계하며, MaterialCh는 재료의 형을 나타내고, Matrix는 수학적인 행렬에 대한 객체 명이다. BitCard는 단지 컴퓨터 메모리에서 한 바이트 길이를 가진다는 것을 정의하며 경계 형을 기록하는데 사용한다. 두 개의 중요한 멤버함수에 대한 소스코드가 그림4와 그림5에 나타나 있다.
3.3 문제의 해결
BEM의 절차는 위의 클래스의 정의처럼 매우 간결하다. 먼저, 설계된 BEM 클래스 데이터 형으로 하나의 객체를 정의한다. 그때 선택 메시지에 따라 명시된 활동을 실행한다. C++코드로 작성된 주요 프로그램이 그림6에서 보여주고 있다. 클래스의 소스코드는 헤드 파일에 포함되어 있다.
# include
# include
# include
# include
# include
# include
# include "matrix.h"
# include "pointm.h"
# include "const.h"
# include "basic.h"
# include "bem.h"
//main
void main()
{
BEM_Object thisProblem;
thisProblem.InitialOut();
thisProblem.Assembler();
thisProblem.EquationSolve();
thisProblem.Results();
}
그림 6. Source code of main program.
4. 결 론
BEM의 기본 개념을 OOP로 표현하였다. 데이터에 대한 모듈러 절차(서브루틴)가 집중하는 절차 지향 프로그램과 비교해서, BEM에 대한 OOP의 주요 작업은 어떻게 실제 문제를 가정하여 객체를 설계하느냐 하는 것이다. 계승, 캡슐화, 다형화와 같은 OOP의 특징은 다른 체계의 문제들을 다루는 일반적인 BEM 소프트웨어에 사용하는데 매우 효과적이다. 먼저, 우리는 일반적인 BEM 속성과 활동(함수)에 대한 데이터 추상화를 시작하고 기본 클래스를 설계한다. 둘째로, 다른 문제들에 대한 클래스는 기본 클래스로부터 파생될 수 있으며, 그것은 기본 클래스에 대한 부분 속성이나 전체 속성, 활동을 계승하게 된다. 파생된 클래스의 부가적인 특징은 OOP의 다형화에 유용할 것이다. 마지막으로, 명시된 문제의 객체는 그 문제의 메시지와 함께 정의한다. 그래서 객체는 위에서 주어진 절차에 따라 활동하며 문제를 해결한다. OOP로 작성된 BEM의 코드는 매우 간결하며, 읽고, 다시 쓰고, 유지하기가 쉽다. 반면에, OOP 언어 그 자체는 다른 응용 소프트웨어보다 시스템 소프트웨어로 사용할 수 있다. 그래서, 뛰어난 컴퓨터 인터페이스를 갖는 BEM 소프트웨어를 작성할 수 있다.
참 고 문 헌
1. Shriver B. Wenger P. Research directions in object-oriented programming. Cam-
bridge,MA:MIT Press,1987.
2. Stroutstrup B. The C++programming language. Reading,MA:Addison-Wesely, 1982.
3. Dubois-PelerinY,Zimmermann T. Object-oriented finite element programming. III An efficient implementation in C++. Computing Methods and Applied Mechanical Engineering 1993;108:165-83.
4. Mackie RI. Object oriented programming of the finite element. International Journal of Numerical Methods Engineering 1992;35:425-36.
5. Abdalla JA, Yoon CJ. Object oriented finite element and graphics data translation facility. ASCE Journal of Computing in Civil Engineering 1992;6:302-22.
6. Forde BWR, Foschi RB, Stiemer SF. Objec-oriented finite element analysis, Computing and Structures 1990;34:353-74.
7. Zeglinski GW, Han RPS. Object oriented matrix classes for use in a finite element code using C++. International Journal of Numerical in Methods Engineering 1994;37:3921-37.
8. Brabbia CA, Telles JCT, Wrobel LC. Boundary element techniques; theory and applications in engineering. Berlin:Springer Verlag,1984.
BEM_Object에서 키워드인 "protected"와 "public"는 억세스 지정자이다. 단지, 이 클래스 자체나 자식 클래스는 "protect"라고 기록된 속성과 함수를 억세스 할 수 있다. 그래서 캡슐화의 체계를 보장한다. "public"으로 기록된 함수는 다른 클래스에서 참조될 수 있다. 키워드 "virtual"에서 그 키워드에 선언된 멤버함수는 그것이 불려지는 상황에 관계없이 멤버함수의 적절한 버젼이 사용되도록 한다. 이와 같은 정의로 다형화가 성취되어 증식 루틴들이 구현될 수 있다.
3D 문제에서 3D 클래스는 쉽게 클래스 BEM_Object로부터 파생될 수 있으며 바로 BEM_Object에 대한 가상함수의 증식을 실행한다. 새로운 클래스는 이 클래스의 전체 속성을 계승할 수 있으며 부모 클래스를 억세스 한다. 이것이 일종의 다형화이다. 이 클래스에서 사용된 다른 클래스는 Point, Matix, MaterialCh, BitCard이다. Point는 Carstesian 시스템에서 리얼 포인트를 나타내도록 설계하며, MaterialCh는 재료의 형을 나타내고, Matrix는 수학적인 행렬에 대한 객체 명이다. BitCard는 단지 컴퓨터 메모리에서 한 바이트 길이를 가진다는 것을 정의하며 경계 형을 기록하는데 사용한다. 두 개의 중요한 멤버함수에 대한 소스코드가 그림4와 그림5에 나타나 있다.
3.3 문제의 해결
BEM의 절차는 위의 클래스의 정의처럼 매우 간결하다. 먼저, 설계된 BEM 클래스 데이터 형으로 하나의 객체를 정의한다. 그때 선택 메시지에 따라 명시된 활동을 실행한다. C++코드로 작성된 주요 프로그램이 그림6에서 보여주고 있다. 클래스의 소스코드는 헤드 파일에 포함되어 있다.
# include
# include
# include
# include
# include
# include
# include "matrix.h"
# include "pointm.h"
# include "const.h"
# include "basic.h"
# include "bem.h"
//main
void main()
{
BEM_Object thisProblem;
thisProblem.InitialOut();
thisProblem.Assembler();
thisProblem.EquationSolve();
thisProblem.Results();
}
그림 6. Source code of main program.
4. 결 론
BEM의 기본 개념을 OOP로 표현하였다. 데이터에 대한 모듈러 절차(서브루틴)가 집중하는 절차 지향 프로그램과 비교해서, BEM에 대한 OOP의 주요 작업은 어떻게 실제 문제를 가정하여 객체를 설계하느냐 하는 것이다. 계승, 캡슐화, 다형화와 같은 OOP의 특징은 다른 체계의 문제들을 다루는 일반적인 BEM 소프트웨어에 사용하는데 매우 효과적이다. 먼저, 우리는 일반적인 BEM 속성과 활동(함수)에 대한 데이터 추상화를 시작하고 기본 클래스를 설계한다. 둘째로, 다른 문제들에 대한 클래스는 기본 클래스로부터 파생될 수 있으며, 그것은 기본 클래스에 대한 부분 속성이나 전체 속성, 활동을 계승하게 된다. 파생된 클래스의 부가적인 특징은 OOP의 다형화에 유용할 것이다. 마지막으로, 명시된 문제의 객체는 그 문제의 메시지와 함께 정의한다. 그래서 객체는 위에서 주어진 절차에 따라 활동하며 문제를 해결한다. OOP로 작성된 BEM의 코드는 매우 간결하며, 읽고, 다시 쓰고, 유지하기가 쉽다. 반면에, OOP 언어 그 자체는 다른 응용 소프트웨어보다 시스템 소프트웨어로 사용할 수 있다. 그래서, 뛰어난 컴퓨터 인터페이스를 갖는 BEM 소프트웨어를 작성할 수 있다.
참 고 문 헌
1. Shriver B. Wenger P. Research directions in object-oriented programming. Cam-
bridge,MA:MIT Press,1987.
2. Stroutstrup B. The C++programming language. Reading,MA:Addison-Wesely, 1982.
3. Dubois-PelerinY,Zimmermann T. Object-oriented finite element programming. III An efficient implementation in C++. Computing Methods and Applied Mechanical Engineering 1993;108:165-83.
4. Mackie RI. Object oriented programming of the finite element. International Journal of Numerical Methods Engineering 1992;35:425-36.
5. Abdalla JA, Yoon CJ. Object oriented finite element and graphics data translation facility. ASCE Journal of Computing in Civil Engineering 1992;6:302-22.
6. Forde BWR, Foschi RB, Stiemer SF. Objec-oriented finite element analysis, Computing and Structures 1990;34:353-74.
7. Zeglinski GW, Han RPS. Object oriented matrix classes for use in a finite element code using C++. International Journal of Numerical in Methods Engineering 1994;37:3921-37.
8. Brabbia CA, Telles JCT, Wrobel LC. Boundary element techniques; theory and applications in engineering. Berlin:Springer Verlag,1984.
추천자료
[네트워크][네트워크 운영체제][네트워크 보안][네트워크 관리시스템]네트워크의 구성요소, ...
[의료사회사업]의료사회사업의 개념, 의료사회사업의 발달, 의료사회사업의 구성요소, 의료사...
[기술]ERP기술(ERP기술의 정의, ERP기술요소기술), DRM기술(DRM기술의 정의, DRM기술의 요구...
[재상산][생산]생산과 재생산, 단순재생산의 요소, 단순재생산의 결과, 자본주의적 재생산, ...
교육공학의 개념, 교육공학의 발달과정, 교육공학의 연구법, 체제과학의 교육공학적 접근, 미...
[의사소통능력][의사소통능력 신장 사례]의사소통능력의 정의, 의사소통능력의 요소, 의사소...
노르딕의 범위와 형성, 경제모델, 경제발전, 요소, 평가,한계점, 과정, 공통적 특징, 평가, ...
[노동자 정치세력화][정치세력화]노동자 정치세력화의 의미, 노동자 정치세력화의 구성요소, ...
포트폴리오(포트폴리오평가)의 개념, 구성요소, 포트폴리오(포트폴리오평가)의 목적, 장점, ...
2015년 1학기 부동산법제 중간시험과제물 공통(최근 부동산 3법의 개정내용을 설명)
교육의 개념정의, 교육의 기본조건, 교육의 요소