'재사용'에 해당되는 글 2건
- 2011/10/01 소프트웨어공학의 3R(Reverse-Engineering, Re-Engineering, Re-Use)에 대하여
- 2007/06/12 소스를 모두 다 만들려고 하지 마라.
프로젝트 수행을 하다보면 많은 Know-How가 쌓이게 됩니다.
그래서인지 가끔 이런 이야기를 듣기도 합니다.
이 부분은 지난번에 만든 것과 비슷하잖아. 그대로 가져다가 사용하면 금방 하겠네!소프트웨어공학적으로는 분명히 맞는 이야기이지만 현실적으로는 쉽지 않은 것이 사실입니다.
바로 소프트웨어의 재사용성(Re-Use)에 대한 고려 없이 프로젝트를 진행하기 때문인데요.
프로젝트 수행 기간의 단축에 따른 충분한 설계 없이 개발에 들어가는 현실 때문인 것 같기도 합니다.
소프트웨어 3R의 정의
- 완성된 소프트웨어 프로그램을 기반으로 역공학(Reverse-Engineering), 재공학(Re-Engineering), 재사용(Re-Use)를 통해 소프트웨어의 생산성을 극대화 하는 기법
소프트웨어 3R의 필요성
- 소프트웨어 유지보수 효율성 향상 및 비용 절감
- 소프트웨어 개발 생산성 향상
- 소프트웨어 이해, 변경, 테스트 용이
- 소프트웨어 변경 요구사항에 대한 신속한 대응
- 소프트웨어 위기 (소프트웨어 개발 대형화, 복잡화, Life-Cycle 감소) 극복
소프트웨어 3R의 개념도
소프트웨어 3R 구성
1) 역공학 (Reverse-Engineering)
- 기존 개발된 시스템을 CASE를 이용하여 사양서, 설계서 등의 문서로 추출하는 작업
- 개발 단계를 역으로 올라가 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 작업
2) 재공학 (Re-Engineering)
- 기존 시스템을 널리 사용되는 프로그래밍 표준에 맞추거나 고수준의 언어로 재구성하거나 타 하드웨어에서 사용할 수 있도록 변환하는 작업
3) 재사용 (Re-Use)
- 이미 개발되어 기능, 성능, 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용
- 다른 시스템에 이용되고 있는 소프트웨어를 파악하고 재구성하여 새로운 시스템에 적용하기 위한 작업
소프트웨어 3R의 활성화 방안
1) 재사용에 대한 비전 공유
- 경영자, 관리자, 개발자 간의 공통된 이해 필요
- 재사용의 필요성 및 장점에 대한 비전 제시
- 재사용 가능한 모듈을 회사의 자산으로 인식할 수 있도록 노력
2) 재사용 Infrastructure 구성
- 재사용을 위한 공동 Repository, Matrix, 활용 시스템 구축
- 재사용 프로세스의 구축 및 활용 관리
- 체계적이고 지속적인 교육 실시 및 CBD, 객체지향방법론을 활용
역공학(Reverse Engineering)과 코드 난독화(Code Obfuscation)의 관계
역공학이라고 하면 우선 떠오르는 것이 다른 사람이 만든 프로그램에서 소스 코드를 생성해서 여기에 악성코드를 추가하는 것을 생각하기 쉬울 것 같습니다.
역공학의 이러한 문제점을 방지하기 위해 코드 난독화라는 기법이 있는데요.
역공학을 했을 때, 소스코드를 거의 해석하기 어려운 상태로 만드는 방법이 바로 코드 난독화(Code Obfuscation) 입니다.
여기에서 이야기하는 3R과는 차이가 있지만 실제 자바나 닷넷의 경우, 이런 코드 난독화 기법을 사용해서 프로그램을 변환합니다.
'컴퓨터공학 > 소프트웨어공학' 카테고리의 다른 글
| 소프트웨어공학의 3R(Reverse-Engineering, Re-Engineering, Re-Use)에 대하여 (0) | 2011/10/01 |
|---|---|
| Agile 이야기 (0) | 2010/06/28 |
| ITSM(IT Service Managment)에 대하여 (0) | 2010/06/25 |
| 소프트웨어 개발 생명주기(SDLC)에 대하여 (2) | 2009/05/13 |
Trackback 0 And
Comment 0
요즘~ 필요하다고 생각하는 소스는 공개되어 있는 것도 많고
또.. 컴포넌트 단위로 저렴하게 구입할 수 있는 것도 많습니다.
그러므로 모든 소스를 직접 구현하겠다는 생각은 굉장히 위험한 것이라고 생각합니다.
비록 프로그래밍 코딩에 자신도 있고, 알고리즘 구현도 잘 한다고 할지라도
이미 만들어진 것을 구현하는데 들어갈 노력을...
더 나은 사용자 환경 구축이나 최적화 등에 힘쓰는 것이 바람직 하다고 생각합니다.
더 나아가 본인 스스로나 팀 내부에서 작성한 소스들도 재사용이 가능하도록 정리하려는 노력이 필요합니다.
경우에 따라, 같은 프로젝트에 동일한 일을 하는 소스가 여러군데 존재하기도 하더라구요~
그러한 경우를 막기 위해서 재사용하기 쉽게 만들어야 합니다.
팀 프로젝트에서 소스 코드의 중복이야말로 추후 문제 해결을 어렵게 만드는 원인이 되기도 하니까요~
참고로 스마트플레이스에 올라온 소프트웨어 개발자를 위한 컴포넌트 판매 사이트 글을 보니,
예전에 많이 보던 컴포넌트 판매 사이트들이 나오더군요..
component source.. 오랜만에 들어보는 이름이네요. ^^
공개된 소스로는 코드그루나 코드프로젝트 등이 유명했었죠..
'프로젝트관리론 > 프로젝트지침' 카테고리의 다른 글
| 요구사항을 수집하지 말고 채굴하라 (0) | 2007/07/19 |
|---|---|
| 상습적인 야근을 자제하자~ (2) | 2007/07/10 |
| 소스를 모두 다 만들려고 하지 마라. (0) | 2007/06/12 |
| 소스코드 버전관리를 활용하라. (2) | 2007/06/01 |
| 프로토타입을 통해 학습하라. (0) | 2007/05/21 |
| 실패를 축하하라 (0) | 2007/05/19 |
Trackback 0 And
Comment 0


