소프트웨어 개발 모델이란 무엇이며 일반적인 소프트웨어 개발 모델은 무엇입니까?

青灯夜游
풀어 주다: 2020-12-01 16:22:40
원래의
14637명이 탐색했습니다.

소프트웨어 개발 모델은 모든 소프트웨어 개발 프로세스, 활동 및 작업의 구조적 프레임워크를 나타냅니다. 일반적인 소프트웨어 개발 모델에는 수행 중 변경 모델, 폭포 모델, 신속한 프로토타이핑 모델, 증분 모델, 나선형 모델, 진화 모델, 분수 모델, 지능형 모델, 하이브리드 모델 및 RAD 모델이 포함됩니다.

소프트웨어 개발 모델이란 무엇이며 일반적인 소프트웨어 개발 모델은 무엇입니까?

소프트웨어 개발 모델은 모든 소프트웨어 개발 프로세스, 활동 및 작업의 구조적 프레임워크를 나타냅니다.

소프트웨어 개발에는 요구 사항, 디자인, 코딩 및 테스트 단계가 포함되며 때로는 유지 관리 단계도 포함됩니다. 소프트웨어 개발 모델은 전체 소프트웨어 개발 프로세스를 명확하고 직관적으로 표현할 수 있으며, 완료해야 할 주요 활동과 업무를 명확하게 규정하고, 소프트웨어 프로젝트 작업의 기초로 활용됩니다.

다른 소프트웨어 시스템에 대해 다른 개발 방법을 채택할 수 있고, 다른 프로그래밍 언어를 사용할 수 있으며, 다양한 기술을 가진 인력이 작업에 참여할 수 있고, 다른 관리 방법과 수단을 사용할 수 있으며, 다른 소프트웨어 도구와 다른 소프트웨어를 사용할 수 있습니다. 소프트웨어 엔지니어링 환경을 사용할 수 있습니다.

전형적인 개발 모델

1. Build-and-Fix 모델

안타깝게도 많은 제품이 "Build-and-Fix 모델" 모델을 사용하여 개발됩니다. 이 모델에서는 사양도 디자인도 없으며 소프트웨어는 고객 요구에 따라 계속해서 수정됩니다.

이 모델에서는 개발자가 프로젝트를 받고 요구 사항에 따라 즉시 프로그램을 작성하고 디버깅을 통과한 다음 생성합니다. 소프트웨어의 첫 번째 버전. 사용자에게 제공된 후 프로그램에 오류가 발생하거나 사용자가 새로운 요구사항을 제시하는 경우 개발자는 사용자가 만족할 때까지 코드를 다시 수정합니다.

이것은 워크샵과 같은 개발 방법으로 몇백 줄의 작은 프로그램을 작성하는 데에는 나쁘지 않지만 어떤 규모의 개발에도 만족스럽지 않습니다.

(1) 계획과 부족. 디자인 링크는 지속적인 수정으로 인해 소프트웨어 구조가 악화되어 지속적인 수정이 불가능합니다.

(2) 수요 링크를 무시하면 소프트웨어 개발에 큰 위험이 발생합니다.

( 3) 테스트 및 프로그램의 유지 관리 가능성을 고려하지 않고; , 문서가 없으면 소프트웨어 유지 관리가 매우 어렵습니다.

2. 폭포 모델

폭포 모델에서는 소프트웨어 개발의 다양한 활동이 엄격하게 선형 방식으로 수행됩니다. 현재 활동은 이전 활동의 작업 결과를 수용하고 필요한 작업 내용을 구현합니다. 현재 활동의 작업 결과를 검증해야 하며, 검증에 통과하면 그 결과는 다음 활동의 입력으로 사용되며, 그렇지 않으면 수정을 위해 반환됩니다.

폭포 모델은 문서화의 역할을 강조하며 각 단계에서 신중한 검증이 필요합니다. 그러나 이 모델의 선형 프로세스는 너무 이상적이며 더 이상 최신 소프트웨어 개발 모델에 적합하지 않습니다. 업계에서 거의 포기되었습니다. 주요 문제점은 다음과 같습니다.

(1) 각 단계의 구분이 완전히 고정되어 있습니다. 그리고 단계 사이에 많은 문제가 발생하여 작업량이 크게 증가합니다.

(2) 개발 모델이 선형이므로 사용자는 전체 프로세스가 끝날 때까지만 개발 결과를 볼 수 있으므로 개발 위험이 높아집니다. ;

(3) 초기 오류가 발생할 수 있습니다. 개발 후반 단계의 테스트 단계까지는 발견할 수 없으며 이는 심각한 결과를 초래할 수 있습니다.

우리는 "선형"이 사람들이 능숙하게 숙달하고 적용할 수 있는 가장 쉬운 사고 방식이라는 것을 깨달아야 합니다. 사람들은 복잡한 '비선형' 문제에 직면할 때 항상 최선을 다해 이를 일련의 간단한 선형 문제로 분해하거나 변환한 다음 하나씩 해결하려고 노력합니다. 소프트웨어 시스템 전체는 복잡할 수 있지만 단일 서브루틴은 항상 단순하고 선형 방식으로 구현될 수 있습니다. 그렇지 않으면 작업이 너무 피곤해집니다. 선형성은 일종의 단순함이며 단순성은 아름다움입니다. 선형성의 정신을 이해할 때 우리는 더 이상 선형 모델의 외형을 엄격하게 적용할 것이 아니라 이를 활용해야 합니다. 예를 들어, 증분형 모델은 본질적으로 분할된 선형 모델인 반면 나선형 모델은 연속적인 곡선형 선형 모델입니다. 선형 모델의 그림자는 다른 모델에서도 찾을 수 있습니다.

3. 신속한 프로토타입 모델

신속한 프로토타입 제작 모델의 첫 번째 단계는 고객 또는 미래의 사용자가 시스템과 상호 작용할 수 있도록 프로토타입을 평가하고 이를 더욱 개선하는 것입니다. 소프트웨어 개발.

고객의 요구 사항에 맞게 프로토타입을 점진적으로 조정함으로써 개발자는 고객의 실제 요구 사항이 무엇인지 결정할 수 있습니다. 두 번째 단계는 첫 번째 단계를 기반으로 고객을 만족시키는 소프트웨어 제품을 개발하는 것입니다.

분명히 신속한 프로토타이핑 방법은 폭포 모델의 단점을 극복하고 불분명한 소프트웨어 요구 사항으로 인한 개발 위험을 줄일 수 있으며 상당한 효과를 가지고 있습니다.

빠른 프로토타입 제작의 핵심은 고객의 실제 요구 사항이 결정되면 가능한 한 빨리 소프트웨어 프로토타입을 폐기하는 것입니다. 따라서 프로토타입 시스템의 내부 구조는 중요하지 않습니다. 중요한 것은 고객의 요구 사항을 반영하여 신속하게 프로토타입을 제작하고 수정해야 한다는 것입니다.

4. 증분 모델

진화 모델이라고도 알려져 있습니다. 건물을 짓는 것처럼 소프트웨어도 단계별로 만들어집니다. 증분 모델에서는 소프트웨어가 일련의 증분 구성 요소로 설계, 구현, 통합 및 테스트됩니다. 각 구성 요소는 다양한 상호 작용 모듈로 구성된 특정 기능을 제공하는 코드 조각으로 구성됩니다. 증분 모델은 각 단계에서 완전한 실행 가능 제품이지만 고객의 요구 사항을 충족하는 실행 가능 제품의 하위 집합입니다. 전체 제품이 여러 구성요소로 분해되어 개발자가 구성요소별로 제품 구성요소를 제공하는 방식의 장점은 소프트웨어 개발이 변화에 더 잘 적응할 수 있고 고객이 개발된 소프트웨어를 지속적으로 볼 수 있어 개발 위험을 줄일 수 있다는 것입니다

5. Model

1988년 Barry Boehm은 소프트웨어 시스템 개발의 "나선형 모델"을 공식 발표했습니다. 이 모델은 폭포 모델과 신속한 프로토타이핑 모델을 결합하여 다른 모델에서 무시되는 위험 분석을 강조했으며 특히 대규모 프로젝트에 적합합니다. 복잡한 시스템.

나선형 모델은 나선을 따라 여러 번 반복됩니다. 그림의 4개 사분면은 다음 활동을 나타냅니다.

(1) 계획 세우기: 소프트웨어 목표 결정, 구현 계획 선택, 프로젝트 개발의 제약 조건 명확화;

(2) 위험 분석: 선택한 옵션을 분석 및 평가하고, 위험을 식별하고 제거하는 방법을 고려합니다.

(3) 구현 엔지니어링: 소프트웨어 개발 및 검증을 구현합니다.

(4) 고객 평가: 개발 작업을 평가합니다. 수정 제안을 제안하고 다음 단계를 계획합니다.

나선형 모델은 위험 중심적이며 소프트웨어 재사용을 지원하기 위한 대안과 제약 조건을 강조하고 소프트웨어 품질을 특별한 목표로 제품 개발에 통합하는 데 도움이 됩니다. 그러나 나선형 모델에는 다음과 같은 몇 가지 제한 사항이 있습니다.

(1) 나선형 모델은 위험 분석을 강조하지만 많은 고객이 이 분석을 받아들이고 믿고 적절한 대응을 하는 것이 쉽지 않습니다. 따라서 이 모델은 종종 채택됩니다. 내부 대규모 소프트웨어 개발에

(2) 위험 분석 수행이 프로젝트 수익에 큰 영향을 미칠 경우 위험 분석 수행은 의미가 없습니다. 따라서 나선형 모델은 대규모 소프트웨어 프로젝트에만 적합합니다.

(3) 소프트웨어 개발자는 가능한 위험을 찾고 위험을 정확하게 분석하는 데 능숙해야 합니다. 그렇지 않으면 더 큰 위험을 가져올 것입니다.

단계의 첫 번째 단계는 단계의 목표, 이러한 목표를 완료하기 위한 옵션 및 옵션을 결정하는 것입니다. 제약 조건을 고려한 후 위험 관점에서 솔루션의 개발 전략을 분석하고 때로는 프로토타입을 구축하여 다양한 잠재적 위험을 제거하려고 노력합니다. 특정 위험을 제거할 수 없는 경우 프로그램이 즉시 종료되고, 그렇지 않은 경우 다음 개발 단계가 시작됩니다. 마지막으로 이 단계의 결과를 평가하고 다음 단계를 설계합니다.

6. 진화 모델

진화 모델은 글로벌 소프트웨어(또는 제품) 수명주기 모델입니다. 반복개발방식에 속합니다.

모델은 다음과 같이 표현될 수 있습니다: 첫 번째 반복(요구사항->디자인->구현->테스트->통합)->피드백->두 번째 반복(요구사항->디자인->구현- >테스트->통합)->피드백->...

즉, 사용자의 기본 요구 사항을 기반으로 빠른 분석을 통해 초기 실행 가능한 소프트웨어 버전이 구성됩니다. 프로토타입으로 호출한 다음 프로토타입을 사용하는 동안 사용자가 작성한 의견과 제안을 기반으로 프로토타입을 개선하여 새로운 버전의 프로토타입을 얻습니다. 이 과정을 반복함으로써 마침내 사용자가 만족하는 소프트웨어 제품을 얻을 수 있습니다. 진화모델을 활용한 개발 과정은 실제로 초기 프로토타입부터 최종 소프트웨어 제품까지 점진적으로 진화하는 과정이다. 진화 모델은 소프트웨어 요구 사항에 대한 정확한 이해가 부족할 때 특히 유용합니다.

7. 분수 모델(fountain model)

(객체 지향 수명 모델, OO 모델이라고도 함)

기존 구조의 수명에 비해 분수 모델은 수명의 다양한 단계를 더 증분하고 반복합니다. 프로젝트는 여러 번 중복되고 반복될 수 있으며, 하위 라이프사이클도 프로젝트 수명 전반에 걸쳐 포함될 수 있습니다. 물이 위로 솟아올랐다가 다시 아래로 떨어지는 것처럼, 가운데로 떨어질 수도 있고 바닥으로 떨어질 수도 있습니다.

8. 지능형 모델(4세대 기술(4GL))

지능형 모델에는 일련의 도구(예: 데이터 쿼리, 보고서 생성, 데이터 처리, 화면 정의, 코드 생성, 고급 그래픽 기능 및 스프레드시트, 등), 각 도구를 사용하면 개발자는 높은 수준에서 소프트웨어의 특정 기능을 정의하고 개발자가 정의한 소프트웨어의 소스 코드를 자동으로 생성할 수 있습니다.

이 방법에는 4세대 언어(4GL) 지원이 필요합니다. 4GL은 3세대 언어와는 달리 사용자 인터페이스가 매우 친숙하며, 훈련을 받지 않은 비전문 프로그래머도 프로그램을 작성할 수 있다는 점입니다. 이는 선언적이고 대화형이며 비절차적인 프로그래밍 언어입니다. 4GL은 또한 효율적인 프로그램 코드, 지능형 기본 가정, 완전한 데이터베이스 및 애플리케이션 생성기를 갖추고 있습니다. 시중에서 인기 있는 4GL(예: Foxpro 등)은 모두 위의 특성을 다양한 수준으로 가지고 있습니다. 그러나 4GL은 주로 거래 정보 시스템을 위한 중소 규모 애플리케이션 개발에만 국한됩니다.

9. 하이브리드 모델

프로세스 개발 모델은 하이브리드 모델 또는 메타 모델이라고도 합니다. 여러 가지 모델을 하이브리드 모델로 결합하여 프로젝트가 가장 효과적인 경로에 따라 개발될 수 있도록 하는 것입니다. 실제로 일부 소프트웨어 개발 조직에서는 여러 가지 개발 방법을 사용하여 자체 하이브리드 모델을 형성합니다.

10. RAD 모델

RAD(Rapid Application Development) 모델은 점진적인 소프트웨어 개발 프로세스 모델입니다. 매우 짧은 개발 주기를 강조합니다. RAD 모델은 폭포 모델의 "고속" 변형으로, 재사용 가능한 많은 구성 요소를 사용하고 구성 요소 기반 구성 방법을 채택하여 신속한 개발을 이룹니다. 요구 사항이 잘 이해되고 프로젝트 범위가 제한되면 데이터 모델링, 프로세스 모델링, 애플리케이션 생성, 테스트 및 반복이 이루어집니다. RAD 모델을 사용한 소프트웨어 프로세스는 오른쪽 그림과 같습니다.

위 내용은 소프트웨어 개발 모델이란 무엇이며 일반적인 소프트웨어 개발 모델은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!