주제에 대한 새 업데이트 프로토 타이핑
Table of Contents
Software prototyping – Wikipedia Update
Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing.. A prototype typically simulates only a few aspects …
Read more
소프트웨어 응용 프로그램의 프로토타입을 만드는 활동
소프트웨어 프로토타이핑은 소프트웨어 응용 프로그램의 프로토타입, 즉 개발 중인 소프트웨어 프로그램의 불완전한 버전을 만드는 활동입니다
이것은 소프트웨어 개발에서 발생할 수 있는 활동이며 기계 공학이나 제조와 같은 다른 분야에서 알려진 프로토타이핑과 비슷합니다
프로토타입은 일반적으로 최종 제품의 몇 가지 측면만 시뮬레이션하며 완전히 다를 수 있습니다
프로토타이핑에는 몇 가지 이점이 있습니다
소프트웨어 설계자와 구현자는 프로젝트 초기에 사용자로부터 귀중한 피드백을 얻을 수 있습니다
클라이언트와 계약자는 만들어진 소프트웨어가 소프트웨어 프로그램이 구축된 소프트웨어 사양과 일치하는지 비교할 수 있습니다
또한 소프트웨어 엔지니어는 초기 프로젝트 견적의 정확성과 제안된 기한 및 이정표가 성공적으로 충족될 수 있는지 여부에 대한 통찰력을 얻을 수 있습니다
1970년대 초에 제안된 이후로 프로토타이핑에 사용된 기술과 완성도의 정도가 개발되고 논의되었습니다.[1]
개요 [ 편집 ]
프로토타입의 목적은 소프트웨어 사용자가 설명을 기반으로 디자인을 해석하고 평가할 필요 없이 실제로 시도하여 최종 제품의 디자인에 대한 개발자의 제안을 평가할 수 있도록 하는 것입니다
소프트웨어 프로토타이핑은 소프트웨어의 기능과 잠재적 위협 또는 문제에 대한 이해를 제공합니다.[2] 프로토타이핑은 또한 최종 사용자가 고려되지 않은 요구 사항을 설명하고 증명하는 데 사용할 수 있으며, 이는 개발자와 클라이언트 간의 상업적 관계에서 핵심 요소가 될 수 있습니다.[3] 특히 인터랙션 디자인은 그 목표를 위해 프로토타입을 많이 사용합니다
이 프로세스는 전체 프로그램을 먼저 빌드한 다음 디자인과 구현 사이의 불일치를 해결하여 더 높은 소프트웨어 비용을 초래하는 1960년대 및 1970년대 모놀리식 개발 주기와 대조됩니다
시간과 비용에 대한 잘못된 추정
[인용 필요] 모놀리식 접근 방식은 소프트웨어 디자이너와 개발자가 단독으로 전체 용을 죽여야 하는 단일 영웅이라고 가정하기 때문에 “(소프트웨어) 드래곤 죽이기” 기술이라고 불립니다프로토타이핑은 또한 완성된 소프트웨어 제품을 변경해야 하는 막대한 비용과 어려움을 피할 수 있습니다.
프로토타이핑의 관행은 Frederick P
Brooks가 1975년 책 The Mythical Man-Month와 그의 10주년 기념 기사 ” No Silver Bullet”.
대규모 소프트웨어 프로토타이핑의 초기 예는 Ada 프로그래밍 언어에 대한 NYU의 Ada/ED 변환기 구현이었습니다.[4] 속도와 효율성보다 디자인과 사용자 인터페이스의 명확성을 강조하는 Ada 언어에 대한 실행 가능한 의미론적 모델을 생성하려는 의도로 SETL에서 구현되었습니다
NYU Ada/ED 시스템은 1983년 4월 11일에 인증된 최초의 검증된 Ada 구현이었습니다.[5]
개요 [ 편집 ]
프로토타이핑 프로세스에는 다음 단계가 포함됩니다.[인용 필요]
기본 요구 사항 식별 원하는 입력 및 출력 정보를 포함하여 기본 요구 사항을 결정합니다
보안과 같은 세부 사항은 일반적으로 무시할 수 있습니다
초기 프로토타입 개발 사용자 인터페이스만 포함하는 초기 프로토타입이 개발됩니다
(아래 수평 프로토타입 참조) 검토 최종 사용자를 포함한 고객이 프로토타입을 검토하고 잠재적인 추가 또는 변경 사항에 대한 피드백을 제공합니다
프로토타입 수정 및 향상 피드백을 사용하여 사양과 프로토타입 모두를 개선할 수 있습니다
계약/제품의 범위 내에 있는 것에 대한 협상이 필요할 수 있습니다
변경 사항이 도입되면 3단계와 4단계를 반복해야 할 수 있습니다.
치수 [ 편집 ]
Nielsen은 그의 책 Usability Engineering:에서 프로토타입의 다양한 차원을 요약합니다
수평 프로토타입 [ 편집 ]
사용자 인터페이스 프로토타입의 일반적인 용어는 수평 프로토타입입니다
데이터베이스 액세스와 같은 저수준 시스템 기능보다 사용자 상호 작용에 중점을 두어 전체 시스템 또는 하위 시스템에 대한 광범위한 보기를 제공합니다
수평 프로토타입은 다음에 유용합니다
사용자 인터페이스 요구 사항 및 시스템 범위 확인
사업체로부터 바이인(buy-in)을 얻기 위한 시스템의 데모 버전
개발 시간, 비용 및 노력에 대한 예비 추정치를 개발합니다
수직 프로토타입 [ 편집 ]
수직 프로토타입은 단일 하위 시스템 또는 기능의 향상된 완전한 정교화입니다
다음과 같은 이점이 있는 주어진 기능에 대한 세부 요구 사항을 얻는 데 유용합니다
정제 데이터베이스 디자인,
네트워크 크기 조정 및 성능 엔지니어링을 위한 데이터 볼륨 및 시스템 인터페이스 요구 사항에 대한 정보를 얻습니다
실제 시스템 기능으로 드릴다운하여 복잡한 요구 사항을 명확히 합니다
유형 [ 편집 ]
소프트웨어 프로토타이핑에는 많은 변형이 있습니다
그러나 모든 방법은 어떤 면에서 두 가지 주요 형태의 프로토타입을 기반으로 합니다
폐기 프로토타입 및 진화적 프로토타입.
폐기 프로토타입 [ 편집 ]
폐쇄형 프로토타이핑이라고도 합니다
폐기 또는 신속한 프로토타이핑은 최종 제공 소프트웨어의 일부가 되기보다는 결국 폐기될 모델의 생성을 의미합니다
사전 요구 사항 수집이 완료되면 시스템의 간단한 작업 모델이 구성되어 사용자에게 완성된 시스템으로 구현될 때 요구 사항이 어떻게 보일지 시각적으로 보여줍니다
또한 Rapid prototyping의 한 형태입니다.
Rapid prototyping은 비교적 짧은 조사 후 매우 초기 단계에서 시스템의 다양한 부분에 대한 작업 모델을 만드는 것을 포함합니다
그것을 구축하는 데 사용되는 방법은 일반적으로 매우 비공식적이며 가장 중요한 요소는 모델이 제공되는 속도입니다
그러면 이 모델은 사용자가 기대치를 재검토하고 요구 사항을 명확히 할 수 있는 출발점이 됩니다
이 목표가 달성되면 프로토타입 모델은 ‘폐기’되고 시스템은 식별된 요구 사항을 기반으로 공식적으로 개발됩니다.[6]
폐기 프로토타이핑을 사용하는 가장 분명한 이유는 신속하게 수행할 수 있기 때문입니다
사용자가 요구 사항에 대한 빠른 피드백을 얻을 수 있다면 소프트웨어 개발 초기에 개선할 수 있습니다
개발 수명 주기 초기에 변경하는 것은 그 시점에서 다시 실행할 것이 없기 때문에 매우 비용 효율적입니다
상당한 양의 작업이 완료된 후 프로젝트가 변경되는 경우 소프트웨어 시스템에는 많은 종속성이 있으므로 작은 변경에도 구현하는 데 많은 노력이 필요할 수 있습니다
제한된 시간과 돈으로 폐기될 프로토타입에 거의 지출할 수 없기 때문에 일회용 프로토타입을 구현하는 데 속도가 중요합니다
일회용 프로토타이핑의 또 다른 장점은 사용자가 테스트할 수 있는 인터페이스를 구성할 수 있다는 것입니다
사용자 인터페이스는 사용자가 시스템으로 보는 것이며, 사용자 앞에서 보면 시스템이 어떻게 작동하는지 파악하기가 훨씬 쉽습니다
..
혁신적인 래피드 프로토타이핑이 보다 효과적인 방법이라고 주장됩니다
사용자 요구 사항 관련 문제를 처리하므로 전반적인 소프트웨어 생산성이 크게 향상됩니다
진화 가능성, 유지 관리 가능성 및 소프트웨어 구조 문제를 무시할 때 요구 사항을 훨씬 빠르고 저렴하게 식별, 시뮬레이션 및 테스트할 수 있습니다
이는 결과적으로 요구 사항의 정확한 사양과 기존 소프트웨어 개발 모델을 통해 사용자의 관점에서 유효하고 사용 가능한 시스템의 후속 구성으로 이어집니다.[7]
프로토타입은 외관, 상호 작용 및 타이밍 측면에서 실제 제품과 얼마나 유사한지에 따라 분류할 수 있습니다
저충실도 일회용 프로토타입을 만드는 한 가지 방법은 종이 프로토타이핑입니다
프로토타입은 종이와 연필로 구현하여 실제 제품의 기능을 모방하지만 전혀 닮지 않았습니다
충실도가 높은 폐기용 프로토타입을 쉽게 구축하는 또 다른 방법은 GUI 빌더를 사용하여 목표 시스템처럼 보이지만 기능을 제공하지 않는 프로토타입인 클릭 더미를 만드는 것입니다
스토리보드, 애니메이션 또는 그림의 사용은 정확하지 않습니다
일회용 프로토타이핑과 동일하지만 확실히 같은 제품군에 속합니다
이것들은 기능적이지 않은 구현이지만 시스템이 어떻게 보일지 보여줍니다
요약: 이 접근 방식에서 프로토타입은 폐기되고 최종 시스템이 처음부터 구축된다는 아이디어로 구성됩니다
이 접근 방식의 단계는 다음과 같습니다
예비 요구사항 작성 프로토타입 디자인 사용자 경험/프로토타입 사용, 새로운 요구사항 지정 필요 시 반복 최종 요구사항 작성
진화하는 프로토타이핑[편집]
진화적 프로토타이핑(브레드보드 프로토타이핑이라고도 함)은 폐기 프로토타이핑과 상당히 다릅니다
진화적 프로토타입을 사용할 때의 주요 목표는 구조화된 방식으로 매우 강력한 프로토타입을 구축하고 지속적으로 개선하는 것입니다
이 접근 방식의 이유는 진화적 프로토타입이 구축될 때 새 시스템의 핵심을 형성하고 개선 및 추가 요구 사항이 구축될 것이기 때문입니다
진화적 프로토타입을 사용하여 시스템을 개발할 때 시스템은 지속적으로 개선되고 재구축됩니다
“…진화적 프로토타이핑은 우리가 모든 요구 사항을 이해하지 못한다는 것을 인정하고 잘 이해된 것만 구축합니다.”[8] 이 기술을 통해 개발 팀은 요구 사항 및 설계 단계에서 생각할 수 없었던 기능을 추가하거나 변경할 수 있습니다
시스템이 유용하려면 의도한 운영 환경에서 사용을 통해 발전해야 합니다
제품은 결코 “완성”되지 않습니다
사용 환경이 변화함에 따라 항상 성숙해집니다
우리는 현재 우리에게 가장 친숙한 참조 프레임을 사용하여 시스템을 정의하려고 자주 시도합니다
우리는 비즈니스가 수행되는 방식과 비즈니스가 구현될 기술 기반에 대해 가정합니다
기능을 개발하기 위한 계획이 수립되고 조만간 구상한 시스템과 유사한 것이 제공됩니다.[9]
진화형 프로토타입은 기능적 시스템이라는 점에서 일회용 프로토타입보다 이점이 있습니다
사용자가 계획한 모든 기능을 갖추지 못했을 수도 있지만 최종 시스템이 제공될 때까지 잠정적으로 사용할 수 있습니다.
“프로토타이핑 환경에서 사용자가 초기 프로토타입을 실용화하는 동시에 사용자가 초기 프로토타입을 구현하는 것은 드문 일이 아닙니다
더 개발된 버전을 기다리는 중…사용자는 ‘결함이 있는’ 시스템이 시스템이 없는 것보다 낫다고 결정할 수 있습니다.”[6]
진화적 프로토타이핑에서 개발자는 전체 시스템을 개발하는 대신 자신이 이해하는 시스템의 일부를 개발하는 데 집중할 수 있습니다
위험을 최소화하기 위해 개발자는 제대로 이해되지 않은 기능을 구현하지 않습니다
부분 시스템은 고객 사이트로 전송됩니다
사용자가 시스템을 사용하면서 새로운 기능에 대한 기회를 감지하고 이러한 기능에 대한 요청을 개발자에게 제공합니다
그런 다음 개발자는 이러한 향상 요청을 자신의 것과 함께 받아 건전한 구성 관리 방식을 사용하여 소프트웨어 요구 사항 사양을 변경하고, 디자인을 업데이트하고, 다시 코딩하고, 다시 테스트합니다.[10]
증분 프로토타이핑[편집]
최종 제품은 별도의 프로토타입으로 제작됩니다
결국, 개별 프로토타입이 전체 디자인에 병합됩니다
점진적 프로토타이핑의 도움으로 사용자와 소프트웨어 개발자 사이의 시간 간격이 줄어듭니다.
익스트림 프로토타이핑 [ 편집 ]
개발 프로세스로서의 익스트림 프로토타이핑은 특히 웹 애플리케이션 개발에 사용됩니다
기본적으로 웹 개발을 세 단계로 나눕니다
각 단계는 이전 단계를 기반으로 합니다
첫 번째 단계는 주로 HTML 페이지로 구성된 정적 프로토타입입니다
두 번째 단계에서는 시뮬레이션된 서비스 계층을 사용하여 화면이 프로그래밍되고 완전히 작동합니다
세 번째 단계에서는 서비스가 구현됩니다.
“프로세스의 두 번째 단계에 주의를 끌기 위해 프로세스를 Extreme Prototyping이라고 합니다
여기서 모든 기능의 UI는 계약 이외의 서비스는 거의 고려하지 않고 개발됩니다.”[ 11]
장점[편집]
소프트웨어 개발에서 프로토타이핑을 사용하면 많은 이점이 있습니다
일부는 유형적이고 일부는 추상적입니다.[12]
시간 및 비용 감소: 프로토타이핑은 개발자에게 제공되는 요구사항 및 사양의 품질을 향상시킬 수 있습니다
변경 사항은 개발 후반에 감지될 때 구현하는 데 기하급수적으로 더 많은 비용이 들기 때문에 사용자가 진정으로 원하는 것을 조기에 결정하면 더 빠르고 저렴한 소프트웨어를 얻을 수 있습니다.[7]
사용자 참여 개선 및 증가: 프로토타입 제작에는 사용자 참여가 필요하며 프로토타입을 보고 상호 작용할 수 있으므로 더 우수하고 완전한 피드백과 사양을 제공할 수 있습니다.[6] 사용자가 검사하는 프로토타입의 존재는 양측이 상대방이 자신이 말한 내용을 이해했다고 믿을 때 발생하는 많은 오해와 오해를 방지합니다
사용자는 개발 팀의 누구보다 문제 영역을 더 잘 알고 있기 때문에 상호 작용이 증가하면 유형 및 무형 품질이 더 우수한 최종 제품이 생성될 수 있습니다
최종 제품은 모양, 느낌 및 성능에 대한 사용자의 욕구를 충족시킬 가능성이 더 큽니다.
단점 [ 편집 ]
프로토타입을 사용하거나 오용하는 경우에도 단점이 있을 수 있습니다.
불충분한 분석: 제한된 프로토타입에 초점을 맞추면 개발자가 전체 프로젝트를 적절하게 분석하는 데 방해가 될 수 있습니다
이로 인해 더 나은 솔루션을 간과하거나 불완전한 사양을 준비하거나 제한된 프로토타입을 유지 관리하기 어려운 제대로 엔지니어링되지 않은 최종 프로젝트로 전환할 수 있습니다
또한 프로토타입은 기능에 제한이 있기 때문에 프로토타입을 최종 결과물의 기초로 사용하면 잘 확장되지 않을 수 있습니다
개발자가 프로토타입을 모델로 구축하는 데 너무 집중하면 알아차리지 못할 수 있습니다
프로토타입에 대한 사용자 혼란 그리고 완성된 시스템: 사용자는 버려야 하는 프로토타입이 실제로는 마무리하거나 다듬기만 하면 되는 최종 시스템이라고 생각할 수 있습니다
(예를 들어, 프로토타입에는 없는 오류 검사 및 보안 기능을 추가하는 데 필요한 노력을 인식하지 못하는 경우가 많습니다.) 이는 프로토타입이 최종 시스템의 성능을 정확하게 모델링하지 않을 때 프로토타입이 최종 시스템의 성능을 정확하게 모델링할 것으로 기대하게 만들 수 있습니다
개발자의 의도
사용자는 고려를 위해 프로토타입에 포함되었다가 최종 시스템의 사양에서 제거된 기능에 연결할 수도 있습니다
사용자가 제안된 모든 기능을 최종 시스템에 포함하도록 요구할 수 있는 경우 충돌이 발생할 수 있습니다.
사용자 목표에 대한 개발자의 오해: 개발자는 광범위한 상업적 문제를 이해하지 않고 사용자가 목표를 공유한다고 가정할 수 있습니다(예: 시간과 예산 내에서 핵심 기능을 제공하기 위해)
예를 들어, 엔터프라이즈 소프트웨어(예: PeopleSoft) 이벤트에 참석하는 사용자 대표는 이 기능에 추가 코딩이 필요하고 종종 더 많은 하드웨어가 필요하다는 말을 듣지 않고 “트랜잭션 감사”(변경 사항이 기록되고 다른 그리드 보기에 표시됨)의 데모를 보았을 수 있습니다
추가 데이터베이스 액세스를 처리합니다
사용자는 모든 분야에서 감사를 요구할 수 있다고 생각할 수 있지만 개발자는 사용자 요구 사항의 범위에 대해 가정했기 때문에 이것이 기능 크리프라고 생각할 수 있습니다
개발자가 사용자 요구 사항을 검토하기 전에 전달을 약속했다면, 특히 사용자 관리가 요구 사항을 구현하지 못한 데서 약간의 이점을 얻는 경우 개발자는 바위와 어려운 위치 사이에 있습니다.
프로토타입에 대한 개발자 애착: 개발자는 프로토타입에도 애착이 될 수 있습니다
그들은 생산하는 데 많은 노력을 기울였습니다
이것은 적절한 기본 아키텍처가 없을 때 제한된 프로토타입을 최종 시스템으로 변환하려고 시도하는 것과 같은 문제로 이어질 수 있습니다
(이는 진화적 프로토타입보다 폐기 프로토타입을 사용해야 함을 시사할 수 있습니다.) 프로토타입의 과도한 개발 시간: 프로토타입 제작의 핵심 속성은 신속하게 완료되어야 한다는 사실입니다
개발자가 이 사실을 놓치면 너무 복잡한 프로토타입을 개발하려고 할 수 있습니다
프로토타입이 폐기되면 프로토타입 개발에 소요된 시간을 만회할 만큼 생산성이 충분히 향상되지 않을 수 있습니다
사용자는 프로토타입의 세부 사항에 대한 논쟁에 갇힐 수 있고, 개발 팀을 보류하고 최종 제품을 지연시킬 수 있습니다.
프로토타입 구현 비용: 프로토타입에 중점을 둔 개발 팀을 구성하는 초기 비용이 높을 수 있습니다
많은 기업이 개발 방법론을 가지고 있으며, 이를 변경하면 재교육, 도구 개편 또는 둘 다를 의미할 수 있습니다
많은 회사에서 직원을 재교육하는 데 신경을 쓰지 않고 프로토타입 제작을 시작하는 경향이 있습니다
프로토타이핑 기술을 채택할 때 공통적으로 발생하는 문제는 학습 곡선 뒤에서 노력이 부족하고 생산성에 대한 높은 기대치입니다
프로토타이핑 기술 사용에 대한 교육 외에도 기술을 지원하기 위해 기업 및 프로젝트별 기본 구조를 개발해야 할 필요성이 종종 간과됩니다
이 기본 구조가 생략되면 생산성이 저하되는 경우가 많습니다.[13]
적용 가능성[편집]
어떤 형태로든 프로토타이핑을 항상 사용해야 한다고 주장해 왔습니다
그러나 프로토타이핑은 사용자와 많은 상호 작용이 있는 시스템에서 가장 유용합니다
프로토타입은 온라인 시스템의 분석 및 설계, 특히 화면 대화 상자를 사용하는 트랜잭션 처리에 매우 효과적이라는 것이 밝혀졌습니다
훨씬 더 많은 증거가 있습니다
컴퓨터와 사용자 간의 상호 작용이 클수록 빠른 시스템을 구축하고 사용자가 이를 사용하여 얻을 수 있는 이점이 더 커집니다.[6]
일괄 처리 또는 대부분 계산을 수행하는 시스템과 같이 사용자 상호 작용이 거의 없는 시스템은 프로토타이핑의 이점이 거의 없습니다
때로는 시스템 기능을 수행하는 데 필요한 코딩이 너무 집약적일 수 있으며 프로토타이핑이 제공할 수 있는 잠재적인 이득이 너무 작습니다.[6]
프로토타이핑은 우수한 인간-컴퓨터 인터페이스를 설계하는 데 특히 좋습니다
“현재까지 신속한 프로토타이핑의 가장 생산적인 용도 중 하나는 반복적인 사용자 요구 사항 엔지니어링 및 인간-컴퓨터 인터페이스 설계를 위한 도구였습니다.”[7] 동적 시스템 개발 방법 [ 편집 ]
DSDM(Dynamic Systems Development Method)[14]은 핵심 기술로서 프로토타이핑에 크게 의존하는 비즈니스 솔루션을 제공하기 위한 프레임워크이며 자체적으로 ISO 9001 승인을 받았습니다
프로토타입에 대한 가장 잘 알려진 정의를 확장합니다
DSDM에 따르면 프로토타입은 다이어그램, 비즈니스 프로세스 또는 생산에 배치된 시스템일 수 있습니다
DSDM 프로토타입은 단순한 형태에서 보다 포괄적인 형태로 진화하는 점진적인 목적이 있습니다
DSDM 프로토타입은 때로 폐기되거나 진화할 수 있습니다
진화적 프로토타입은 수평(폭 다음 깊이) 또는 수직(각 섹션은 후속 섹션을 자세히 설명하는 추가 반복으로 자세히 작성됨)으로 진화할 수 있습니다
진화하는 프로토타입은 결국 최종 시스템으로 발전할 수 있습니다.
DSDM에서 권장하는 프로토타입의 네 가지 범주는 다음과 같습니다
비즈니스 프로토타입 – 자동화되는 비즈니스 프로세스를 설계하고 시연하는 데 사용됩니다
– 자동화되는 비즈니스 프로세스를 설계하고 시연하는 데 사용됩니다
사용성 프로토타입 – 사용자 인터페이스 디자인 사용성, 접근성, 모양과 느낌을 정의, 수정 및 시연하는 데 사용됩니다
– 사용자 인터페이스 디자인의 사용성, 접근성, 모양과 느낌을 정의, 수정 및 시연하는 데 사용됩니다
성능 및 용량 프로토타입 – 시스템이 최대 부하에서 어떻게 수행되는지 정의, 시연 및 예측하고 시스템의 기타 비기능적 측면(트랜잭션 속도, 데이터 저장 볼륨, 응답 시간 등)을 시연 및 평가하는 데 사용됩니다
– 시스템이 최대 부하에서 어떻게 수행되는지 정의, 시연 및 예측하고 시스템의 기타 비기능적 측면(트랜잭션 속도, 데이터 저장 용량, 응답 시간 등)을 시연 및 평가하는 데 사용됩니다
기능/기술 프로토타입 – 설계 접근 방식이나 개념을 개발, 시연 및 평가하는 데 사용됩니다
프로토타입의 DSDM 수명 주기는 다음과 같습니다
프로토타입 식별 계획에 동의 프로토타입 생성 프로토타입을 검토합니다
운영 프로토타이핑[편집]
운영 프로토타이핑은 폐기 및 진화 프로토타이핑을 기존 시스템 개발과 통합하는 방법으로 Alan Davis가 제안했습니다
“빠르고 지저분한 개발 세계와 기존 개발 세계의 장점을 합리적인 방식으로 제공합니다
디자이너는 잘 이해되지 않는 기능을 실험하기 위해 폐기 프로토타이핑을 사용하면서 진화적 기준을 구축할 때 잘 이해된 기능만 개발합니다.”[ 8]
Davis는 두 가지 접근 방식을 결합하려고 할 때 “빠른 프로토타입에 품질 개선”을 시도하는 것이 올바른 방법이 아니라고 생각합니다
그의 아이디어는 진화적 프로토타이핑 방법론에 참여하고 각 진화 후에 시스템의 기능을 신속하게 프로토타이핑하는 것입니다
특정 방법론은 다음 단계를 따릅니다
[8]진화하는 프로토타입은 잘 이해된 요구 사항만 지정 및 구현하는 기존 개발 전략을 사용하여 구성되고 기준선으로 만들어집니다
기준선의 사본은 훈련된 프로토타입과 함께 여러 고객 사이트로 전송됩니다.
각 사이트에서 프로토타입 작성자는 시스템에서 사용자를 감시합니다
사용자가 문제에 직면하거나 새로운 기능 또는 요구 사항을 생각할 때마다 프로토타입 작성자는 이를 기록합니다
이렇게 하면 사용자가 문제를 기록할 필요가 없고 계속 작업할 수 있습니다
사용자 세션이 끝난 후 프로토타입 작성자는 기준 시스템 위에 폐기 프로토타입을 구성합니다
사용자는 이제 새 시스템을 사용하고 평가합니다
새로운 변경 사항이 적용되지 않으면 프로토타입 작성자는 이를 제거합니다
사용자가 변경 사항을 좋아하면 프로토타입 작성자는 기능 향상 요청을 작성하여 개발 팀에 전달합니다.
개발 팀, 모든 변경 요청을 손에 그런 다음 기존의 방법을 사용하여 새로운 진화적 프로토타입을 생성합니다
분명히 이 방법의 핵심은 사용자 사이트로 이동할 수 있도록 잘 훈련된 프로토타입을 확보하는 것입니다
운영 프로토타이핑 방법론은 복잡하고 사전에 알려진 요구 사항이 거의 없는 시스템에서 많은 이점을 제공합니다.
진화 시스템 개발[편집]
진화 시스템 개발은 공식적으로 진화 프로토타이핑을 구현하려는 방법론의 한 종류입니다
Systemscraft라는 특정 유형은 John Crinnion이 그의 책 Evolutionary Systems Development에서 설명했습니다
Systemscraft는 구현된 특정 환경에 맞게 수정 및 조정되어야 하는 ‘프로토타입’ 방법론으로 설계되었습니다
Systemscraft는 설계되지 않았습니다
개발 프로세스에 대한 엄격한 ‘요리책’ 접근 방식으로
이제 좋은 방법론은 모든 종류의 환경과 상황에 맞게 조정할 수 있을 만큼 충분히 유연해야 한다는 것이 일반적으로 인식되고 있습니다…[6]
진화적 프로토타이핑과 다르지 않은 Systemscraft의 기본은 초기 요구 사항에서 작업 시스템을 만들고 일련의 개정판에서 이를 기반으로 구축하는 것입니다
Systemscraft는 시스템 개발 전반에 걸쳐 사용되는 전통적인 분석에 중점을 둡니다
진화하는 급속한 개발 [ 편집 ]
ERD(Evolutionary Rapid Development)[15]는 DARPA(Defense Advanced Research Projects Agency) 정보 기술 사무소의 기술 개발 및 통합 에이전트인 Software Productivity Consortium에서 개발했습니다
ERD의 기본은 소프트웨어 시스템을 구성하는 개념입니다
구성 요소 재사용, 소프트웨어 템플릿 사용 및 아키텍처 템플릿을 기반으로 합니다
변화하는 사용자 요구와 기술에 대한 신속한 대응으로 시스템 기능의 지속적인 진화는 솔루션 클래스를 나타내는 진화 가능한 아키텍처에 의해 강조됩니다
프로세스는 소프트웨어 및 시스템 엔지니어링 분야를 통합하는 소규모 장인 기반 팀의 사용에 중점을 두고 있으며, 종종 고객과의 상호 작용이 빈번한 병렬 단기 타임박스를 여러 개 작업합니다
ERD 기반 프로젝트의 성공 열쇠는 병렬 탐색 분석 및 개발입니다
기술, 시장 또는 고객 요구 사항의 변화에 신속하게 대응할 수 있도록 하는 첨단 기술을 채택한 기능, 인프라 및 구성 요소.[9]
고객/사용자 입력을 유도하기 위해 이해 관계자와 정기 및 임시/즉석 회의를 자주 개최합니다
설계/구현 결정이 확정되기 전에 피드백을 받기 위해 시스템 기능 시연이 열립니다
시스템이 사용자와 고객의 요구를 더 잘 지원할 수 있는 방법에 대한 통찰력을 제공하기 위해 자주 릴리스(예: 베타)를 사용할 수 있습니다
이것은 시스템이 기존 사용자의 요구를 충족하도록 진화한다는 것을 보장합니다
시스템의 설계 프레임워크는 기존의 게시된 표준 또는 사실상의 표준을 기반으로 합니다
시스템은 성능, 용량 및 기능에 대한 고려 사항을 포함하는 일련의 기능을 발전시킬 수 있도록 구성됩니다
아키텍처는 서비스 및 해당 구현(예: COTS 애플리케이션)을 캡슐화하는 추상 인터페이스 측면에서 정의됩니다
아키텍처는 시스템의 단일 인스턴스 이상의 개발을 안내하는 데 사용되는 템플릿 역할을 합니다
여러 응용 프로그램 구성 요소를 사용하여 서비스를 구현할 수 있습니다
변경될 가능성이 없는 핵심 기능 세트도 식별 및 설정됩니다.
ERD 프로세스는 이해 관계자가 필요와 기대치를 전달할 수 있는 방법으로 종이 제품보다 입증된 기능을 사용하도록 구성되어 있습니다
이러한 신속한 전달 목표의 핵심은 “타임박스” 방법을 사용하는 것입니다
타임박스는 특정 작업(예: 기능 세트 개발)을 수행해야 하는 고정된 기간입니다
모호한 목표 세트를 충족하기 위해 시간을 확장하는 대신 시간이 고정되고(역주 및 인시 시간 모두) 이러한 제약 조건 내에서 현실적으로 달성할 수 있는 목표 세트가 정의됩니다
개발이 “무작위 실행”으로 퇴보하는 것을 방지하기 위해 반복을 안내하는 장기 계획이 정의됩니다
이러한 계획은 전체 시스템에 대한 비전을 제공하고 프로젝트의 경계(예: 제약)를 설정합니다
프로세스 내의 각 반복은 이러한 장기 계획의 맥락에서 수행됩니다.
아키텍처가 설정되면 소프트웨어가 매일 통합되고 테스트됩니다
이를 통해 팀은 진행 상황을 객관적으로 평가하고 잠재적인 문제를 신속하게 식별할 수 있습니다
소량의 시스템이 한 번에 통합되기 때문에 결함 진단 및 제거가 빠릅니다
시스템은 일반적으로 항상 연습할 준비가 되어 있기 때문에 사용자 데모는 짧은 시간에 열릴 수 있습니다
프로토타이핑을 효율적으로 사용하려면 조직에 적절한 도구와 해당 도구를 사용하도록 훈련된 직원이 필요합니다
프로토타이핑에 사용되는 도구는 래피드 프로토타이핑에 사용되는 4세대 프로그래밍 언어와 같이 개별 도구에서 복잡한 통합 CASE 도구까지 다양할 수 있습니다
Visual Basic 및 ColdFusion과 같은 4세대 비주얼 프로그래밍 언어는 저렴하고 잘 알려져 있으며 비교적 사용하기 쉽고 빠르기 때문에 자주 사용됩니다
요구 사항 엔지니어링 환경(아래 참조)과 같은 요구 사항 분석을 지원하는 CASE 도구는 군대나 대규모 조직에서 개발하거나 선택하는 경우가 많습니다
GE 연구 개발 센터의 LYMB와 같은 객체 지향 도구도 개발 중입니다
사용자는 스프레드시트에서 응용 프로그램의 요소를 직접 프로토타이핑할 수 있습니다.
웹 기반 응용 프로그램의 인기가 계속 높아짐에 따라 이러한 응용 프로그램의 프로토타이핑 도구도 있습니다
Bootstrap, Foundation 및 AngularJS와 같은 프레임워크는 개념 증명을 신속하게 구성하는 데 필요한 도구를 제공합니다
이러한 프레임워크는 일반적으로 개발자가 웹 응용 프로그램의 프로토타입을 빠르게 만들 수 있도록 하는 일련의 컨트롤, 상호 작용 및 디자인 지침으로 구성됩니다
화면 생성 프로그램도 일반적으로 사용되며 프로토타입 작성자가 작동하지 않는 사용자 시스템을 표시할 수 있지만 화면이 표시되는 것을 표시할 수 있습니다
처럼 보일 수 있습니다
사용자에게 인터페이스는 본질적으로 시스템이기 때문에 휴먼 컴퓨터 인터페이스 개발은 개발 노력의 중요한 부분이 될 수 있습니다
소프트웨어 공장은 바로 사용할 수 있는 모듈식 구성 요소를 결합하여 코드를 생성할 수 있습니다
이 접근 방식은 최소한의 수동 코딩으로 원하는 동작으로 프로그램을 신속하게 제공할 수 있기 때문에 응용 프로그램 프로토타이핑에 이상적입니다
응용 프로그램 정의 또는 시뮬레이션 소프트웨어[ 편집 ]
응용 프로그램 정의 또는 시뮬레이션 소프트웨어라고 하는 새로운 종류의 소프트웨어를 사용하면 사용자가 코드를 작성하지 않고도 다른 컴퓨터 프로그램의 가벼운 애니메이션 시뮬레이션을 빠르게 구축할 수 있습니다
응용 프로그램 시뮬레이션 소프트웨어를 사용하면 기술 사용자와 비기술 사용자 모두 시뮬레이션된 프로그램을 경험, 테스트, 협업 및 검증할 수 있으며 주석, 스크린샷 및 회로도와 같은 보고서를 제공합니다
솔루션 사양 기술로서 Application Simulation은 종이 기반 프로토타이핑이라고도 하는 위험은 낮지만 제한적인 텍스트 또는 도면 기반 목업(또는 와이어프레임)과 시간이 많이 소요되는 고위험 코드 기반 프로토타입 사이에 속합니다
소프트웨어 전문가는 개발이 시작되기 전에 요구 사항과 설계 선택을 조기에 검증합니다
그렇게 함으로써 소프트웨어 구현과 관련된 위험과 비용을 크게 줄일 수 있습니다.[16]
응용 프로그램을 시뮬레이션하기 위해 컴퓨터 기반 교육, 데모 및 스크린캐스팅 소프트웨어와 같은 고객 지원을 위한 실제 소프트웨어 프로그램을 시뮬레이션하는 소프트웨어를 사용할 수도 있습니다
이러한 영역은 밀접하게 관련되어 있습니다
요구 사항 엔지니어링 환경 [ 편집 ]
“1985년부터 Rome Laboratory에서 개발 중인 REE(Requirements Engineering Environment)는 복잡한 시스템의 중요한 측면에 대한 모델을 신속하게 표현, 구축 및 실행하기 위한 통합 도구 세트를 제공합니다.”[17] 요구 사항 엔지니어링 환경은 현재 미 공군에서 시스템을 개발하는 데 사용됩니다
그것은:
시스템 분석가가 시스템 구성 요소의 기능, 사용자 인터페이스 및 성능 프로토타입 모델을 신속하게 구축할 수 있도록 하는 통합 도구 세트입니다
이러한 모델링 활동은 복잡한 시스템을 더 잘 이해하고 시스템 개발 프로세스 동안 부정확한 요구 사항 사양이 비용 및 일정에 미치는 영향을 줄이기 위해 수행됩니다
모델은 실행 중인 모델의 특정 행동 측면에 따라 다양한 수준의 추상화 또는 세분성으로 쉽게 구성할 수 있습니다.[17]
REE는 세 부분으로 구성됩니다
proto라고 하는 첫 번째 도구는 신속한 프로토타이핑을 지원하도록 특별히 설계된 CASE 도구입니다
두 번째 부분은 사용자 인터페이스 생성을 용이하게 하는 도구 모음인 RIP(Rapid Interface Prototyping System)라고 합니다
REE의 세 번째 부분은 RIP 및 proto에 대한 사용자 인터페이스로 그래픽이며 사용하기 쉽도록 설계되었습니다
REE의 개발자인 Rome Laboratory는 내부 요구 사항 수집 방법론을 지원하기 위해 의도했습니다
그들의 방법에는 세 가지 주요 부분이 있습니다
다양한 소스(사용자, 다른 시스템에 대한 인터페이스)에서 추출, 사양 및 일관성 검사
다양한 사용자들의 니즈가 상충되지 않고 기술적으로나 경제적으로 실현 가능하다는 분석
이렇게 파생된 요구 사항이 사용자 요구 사항을 정확하게 반영하는지 확인합니다.[17]
1996년 Rome Labs는 “요구 사양, 시뮬레이션, 사용자 인터페이스 프로토타이핑, 하드웨어 아키텍처에 대한 요구 사항 매핑 및 코드 생성…”을 지원하는 상용 품질 REE를 만들기 위해 REE를 더욱 향상시키기 위해 SPS(Software Productivity Solutions)와 계약했습니다.[18 ] 이 시스템의 이름은 고급 요구 사항 엔지니어링 워크스테이션 또는 AREW.
비관계형 환경[ 편집 ]입니다
데이터의 비관계형 정의(예: Caché 또는 연관 모델 사용)는 시뮬레이션의 모든 반복에서 데이터를 정규화할 필요를 지연하거나 방지함으로써 최종 사용자 프로토타이핑의 생산성을 높이는 데 도움이 될 수 있습니다
이것은 요구 사항이 대상 생산 시스템에서 기술적으로나 경제적으로 실현 가능한지 구체적으로 확인하지는 않지만 비즈니스 요구 사항을 더 일찍/더 명확하게 나타낼 수 있습니다
PSDL [ 편집 ]
PSDL은 실시간 소프트웨어를 설명하기 위한 프로토타입 설명 언어입니다.[19] 관련 도구 세트는 CAPS(Computer Aided Prototyping System)입니다.[20] 타이밍 제약으로 인해 구현 및 하드웨어 종속성이 발생하기 때문에 엄격한 실시간 요구 사항이 있는 소프트웨어 시스템의 프로토타이핑은 어렵습니다
PSDL은 선언적 타이밍 제약을 포함하는 제어 추상화를 도입하여 이러한 문제를 해결합니다
CAPS는 이 정보를 사용하여 코드 및 관련 실시간 일정을 자동으로 생성하고, 프로토타입 실행 중 타이밍 제약을 모니터링하고, 매개변수화된 하드웨어 모델 세트에 비례하여 실시간으로 실행을 시뮬레이션합니다
또한 불완전한 프로토타입 설명의 실행을 가능하게 하는 기본 가정을 제공하고, 효율적인 구현을 신속하게 실현하기 위해 프로토타입 구성을 소프트웨어 재사용 저장소와 통합하고, 요구 사항 및 디자인의 빠른 발전을 지원합니다.[21]
#6 프로토타이핑 집에서 함께 공부해요 – 어도비 XD 강좌 Update
주제에 대한 새로운 정보 프로토 타이핑
프로토 타이핑주제 안의 사진 몇 장

Google Books 업데이트
Im weltweit umfassendsten Index für Volltextbücher suchen. Meine Mediathek. Verlag Info Datenschutzerklärung Nutzungsbedingungen Hilfe Info Datenschutzerklärung Nutzungsbedingungen Hilfe
figma로 프레젠테이션 제작하는 방법ㅣ프로토타입핑 Part 1/4 New
주제에 대한 새로운 업데이트 프로토 타이핑
프로토 타이핑주제 안의 멋진 사진을 볼 수 있습니다

주제에 대한 추가 정보 보기 프로토 타이핑
Updating
주제와 관련된 검색 프로토 타이핑
Updating
이 스레드를 봐주셔서 감사합니다 프로토 타이핑