대규모 프로그래밍 및 소규모 프로그래밍
Programming in the large and programming in the small![]() |
프로그래밍 패러다임 |
---|
소프트웨어 공학에서 대규모 프로그래밍과 소규모 프로그래밍은 쓰기 소프트웨어의 두 가지 다른 측면, 즉 작은 부분으로 구성된 대규모 시스템을 설계하는 것과 프로그래밍 언어로 코드 행을 작성하여 이러한 작은 부분을 작성하는 것을 각각 참조한다.조건은 프랭크 DeRemer과 한스 Kron으로 그들은 그 둘은 근본적으로 서로 다른 활동이라고 주장한다 그들의 1975년 종이"Programming-in-the-large 대programming-in-the-small"[1]고 전형적인 프로그래밍 언어들, 구조적 프로그래밍하는 관습은 후자를 쪽에 좋은 지원 제공한 있었다..
이것은 시스템 프로그래밍 언어(컴포넌트용)와 스크립트 언어(컴포넌트용 글루 코드, 연결 컴포넌트용)를 구별하는 후기의 Ousterhout의 이분법과 비교될 수 있습니다.
묘사
Fred Brooks는 개별 프로그램이 생성되는 방식과 프로그래밍 시스템 제품이 [2]생성되는 방식이 다르다는 것을 확인했습니다.전자는 비교적 간단한 한 가지 작업을 잘 수행할 수 있습니다.아마도 한 명의 엔지니어가 코드화하고 그 자체로 완전하며 개발된 시스템에서 실행할 준비가 되어 있을 것입니다.간단한 작업이 빠르고 쉽게 완료되기 때문에 프로그래밍 활동은 상당히 짧았을 것입니다.이것은 DeRemer와 Kron이 소규모 프로그래밍이라고 표현한 노력입니다.
Brooks가 식별한 프로그래밍 시스템 프로젝트와 관련된 활동을 다시 한 번 비교해 보십시오.이러한 프로젝트는 중간 규모 또는 대규모 산업팀이 수개월에서 수 년 동안 프로젝트를 수행하는 것이 특징이다.이 프로젝트는 위에서 설명한 개별 프로그램과 유사한 복잡성을 가진 여러 또는 수백 개의 개별 모듈로 분할될 수 있습니다.단, 각 모듈은 주변 모듈에 대한 인터페이스를 정의합니다.
Brooks는 프로그래밍 시스템 프로젝트가 일반적으로 업계의 베스트 프랙티스를 따르는 공식 프로젝트로 운영되는 방식을 설명합니다. 테스트, 문서화 및 지속적인 유지보수 활동뿐만 아니라 제품이 개발 시스템 이외의 시스템에서도 일반화될 수 있도록 보장하는 활동을 포함합니다.그 토대 위에서 만들어졌어요.
대규모 프로그래밍
소프트웨어 개발에서 대규모 프로그래밍에는 대규모 사용자 그룹 또는 장기간에 [2]걸쳐 소규모 그룹에 의한 프로그래밍이 포함될 수 있습니다.이러한 조건 중 어느 쪽이든 유지관리자가 이해하기 어려운 대규모, 즉 복잡한 프로그램을 초래할 수 있습니다.
대규모 프로그래밍을 통해 코딩 관리자는 작업을 정확하게 지정된 상호 작용을 가진 모듈로 분할하는 데 중점을 둡니다.이를 위해서는 신중한 계획과 신중한 문서화가 필요합니다.
대규모 프로그래밍에서는 프로그램 변경이 [2]어려워질 수 있습니다.모듈 경계를 넘어 변경이 이루어지는 경우 많은 사용자가 다시 수행해야 할 수 있습니다.따라서 대규모 프로그래밍의 한 가지 목표는 변경 가능성이 있는 경우 변경할 필요가 없는 모듈을 설정하는 것입니다.이는 높은 응집력과 느슨한 결합을 갖도록 모듈을 설계함으로써 실현됩니다.
대규모 프로그래밍에는 추상화 생성 [citation needed]기술이 필요합니다.모듈이 구현될 때까지 추상화된 상태로 남아 있습니다.이러한 추상화를 종합하면 변경이 [citation needed]필요 없을 것 같은 아키텍처를 구축할 수 있습니다.정확하고 정확한 상호 작용을 정의해야 한다.
대규모 프로그래밍에는 관리 기술이 필요합니다.추상화를 구축하는 과정은 효과가 있는 것을 묘사하는 것뿐만 아니라 그것을 가능하게 하는 사람들의 노력을 지시하는 것을 목표로 한다.
이 개념은 Frank DeRemer와 Hans Kron이 1975년 발표한 논문 "Programming-in-the-Large vs-Programming-in-the-Small", IEE Trans. on Soft에서 소개되었습니다.제2(2)호
컴퓨터 과학 용어로, 대규모 프로그래밍은 시스템의 [dubious ]높은 수준의 상태 전이 로직을 나타내는 프로그래밍 코드를 참조할 수 있습니다.이 로직은 메시지를 기다리는 시간, 메시지를 보내는 시간, 실패한 ACID 이외의 트랜잭션을 보정하는 시간 등의 정보를 인코딩합니다.
대규모 프로그래밍을 명시적으로 지원하도록 설계된 언어는 BPEL입니다.
소규모 프로그래밍
소프트웨어 개발에서 소규모 프로그래밍은 작은 프로그램을 작성하는 활동을 나타냅니다.소규모 프로그램은 소스 코드 크기가 작고 지정이 용이하며 코딩이 빠르며 일반적으로 한 가지 또는 몇 가지 매우 밀접하게 관련된 작업을 매우 잘 수행하는 것이 특징입니다.
소규모 프로그래밍에는 단기간에 개인 또는 소규모 그룹에 의한 프로그래밍이 수반될 수 있으며, 형식적인 연습(문서 작성이나 테스트에 대한 강조가 적음), 도구 및 프로그래밍 언어(예를 들어 엄격하게 입력된 프로그래밍 언어보다 느슨하게 입력된 스크립트 언어 선택)가 수반될 수 있습니다.소규모 프로그래밍은 또한 프로토타입 소프트웨어를 만드는 접근법 또는 안정성이나 정확성보다 신속한 애플리케이션 개발이 더 중요한 방법을 설명할 수 있습니다.
컴퓨터 과학 용어로, 소규모 프로그래밍은 단기간 프로그램 동작을 다루며, 종종 단일 ACID 트랜잭션으로 실행되며 파일, 데이터베이스 [dubious ]등의 로컬 로직 및 리소스에 액세스할 수 있습니다.
레퍼런스
- ^ DeRemer, Frank; Kron, Hans (April 1, 1975). "Programming-in-the large versus programming-in-the-small". Proceedings of the international conference on Reliable software -. Vol. 10. Association for Computing Machinery. pp. 114–121. doi:10.1145/800027.808431. S2CID 1022671 – via ACM Digital Library.
- ^ a b c 브룩스, 프레드릭 P. 주니어(1982)The Tar Pit (타르 피트), 신화적 인간-월-기념일 판에 출판되었습니다.ISBN 0-201-83595-9
추가 정보
- DeRemer, Frank; Kron, Hans (1975). "Programming-in-the large versus programming-in-the-small". Proceedings of the international conference on Reliable software. Los Angeles, California: Association for Computing Machinery. pp. 114–121. doi:10.1145/800027.808431.