소프트웨어 공학 프로세스 개요
프로세스 흐름과 모델
주요 프로세스 모델
1.1 Definition and Importance
Process Models
Learn from Well-Established Industry
!
공통점
이미지에서 보여주는 요소들은 모두 품질 관리와 효율적인 프로세스를 강조. 소프트웨어 개발에서도 산업 표준과 측정 가능한 품질을 유지하면서, 체계적으로 작업을 진행하는 것이 중요하다는 점을 시사함.
The process Framework
Waterfall 모델은 프레임워크 활동들을 순차적으로 진행하는 방식이고, 모든 활동이 완료된 후에 다음 단계로 넘어감.
Agile 모델은 각 프레임워크 활동을 반복적으로 수행하면서, 소프트웨어를 점진적으로 완성.
즉, process models는 이 기본 프레임워크의 활동들이 어떻게 적용되고 순서가 어떻게 구성되는지에 따라 달라짐.
A Generic Process Model

1.2.4 Parallel Process FlowIterative Process Flow는 특정 단계를 여러 번 반복해서 점차 개선해 나가는 방식. 예를 들어, 설계 단계에서 잘못된 부분을 찾아 수정한 다음, 다시 개발을 진행하는 식으로 작업을 반복.
Evolutionary Process Flow는 소프트웨어 전체를 점차 완성해 나가는 방식. 즉, 한 번의 반복을 통해 부분적으로 완성된 소프트웨어가 나옴. 그리고 그 소프트웨어는 계속 진화하면서 더 완벽해짐. 각 사이클마다 새로운 기능이나 개선된 버전이 나오고, 사용 가능한 부분적인 제품을 제공함.
따라서, Iterative는 특정 단계를 개선하는 데 초점이 있고, Evolutionary는 전체 소프트웨어를 점차 발전시키는 데 초점이 있다는 차이가 있음.
✅ 질문에 대한 답 with GPT
Q. process assessment and improvement가 umbrella activity에 포함이 되는건가요?
차이점 요약:
- Process Assessment는 전체 프로세스의 성과 평가에 중점을 두고, 개선할 부분을 찾기 위한 평가에 가까워요.
- Umbrella Activities는 개발 전 과정에 걸쳐 발생하는 지속적인 관리 활동으로, 프로세스를 원활하게 진행되도록 돕는 역할이에요.
따라서, Process Assessment는 주로 평가와 개선을 위한 것이고, Umbrella Activities는 개발 과정의 전반적인 관리에 초점을 맞춘다고 볼 수 있어요.
orderly
If prescriptive process models strive for structure and order, are they appropriate for a software world that thrives on change?
If we reject traditional process models and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work?
1.5.1 Waterfall Model


장점
단점
1.5.3 Spiral Model

✅질문에 대한 답 with GPT
Spiral 모델과 Prototyping 모델은 둘 다 반복적이고 점진적인 개발을 통해 소프트웨어를 완성하는 점에서는 비슷하지만, 중요한 차이점이 있어:1. 목적과 초점
Spiral 모델:
- Spiral 모델은 위험 관리에 중점을 두고, 각 반복에서 위험을 분석하고 그에 따른 결정을 내려가면서 소프트웨어를 개발해.
- 각 반복 주기마다 위험을 줄이기 위해 위험 평가가 필수적으로 포함되며, 점진적으로 더 완성도 높은 소프트웨어를 목표로 해.
- Spiral 모델은 대규모 프로젝트나 고위험 프로젝트에 적합하며, 여러 단계를 거쳐 계속해서 발전하는 방식이야.
Prototyping 모델:
- Prototyping 모델은 사용자 요구사항을 명확히 하기 위한 것이 목적이야. 초기 프로토타입을 만들어 사용자가 직접 테스트해보고 피드백을 제공받아, 요구사항을 구체화하는 데 중점을 둬.
- 위험 관리보다는 사용자와의 피드백을 통해 요구사항을 점진적으로 개선하는 것이 핵심이야.
- 빠른 피드백과 사용자 요구사항 반영을 위해 프로토타입을 반복적으로 개발하고 수정해.2. 프로토타입 사용 여부
Spiral 모델: 프로토타입을 필요에 따라 만들 수 있지만, 필수 요소는 아니야. 중요한 것은 위험 분석과 이를 기반으로 한 반복적 개발이야.
Prototyping 모델: 프로토타입을 필수적으로 사용하며, 이를 기반으로 사용자 피드백을 받아 개발을 진행해.3. 위험 관리
Spiral 모델: Spiral 모델은 각 반복에서 위험을 평가하고, 그 위험을 줄이기 위한 결정을 내리는 것이 핵심이야. 이는 고위험 프로젝트에서 매우 중요해.
Prototyping 모델: 위험 관리에 대한 명확한 단계는 없고, 주로 사용자 요구사항에 초점을 맞춰서 개발이 이루어져.결론:
Spiral 모델은 위험 관리를 중심으로 점진적으로 발전하는 방식이고, Prototyping 모델은 사용자 요구사항을 구체화하기 위해 프로토타입을 반복적으로 개선하는 방식이야. 둘 다 반복적 개발을 하지만, 목표와 초점이 다르기 때문에 동일한 모델은 아니야
1.5.4 Unified Process Model

Unified Process Model은 소프트웨어 개발에서 객체지향 설계와 분석을 기반으로 한 반복적이고 점진적인 개발 방법론. 이 모델은 소프트웨어를 여러 반복 주기(iteration)로 나눠서 개발하고, 각 주기마다 소프트웨어의 완성도를 높여가는 방식으로, 유스케이스(Use Case)를 중심으로 시스템을 개발하는 것이 특징.
주요 단계:
✅질문에 대한 답 with GPT
Linear Process Flow vs Waterfall Model 차이가 뭐얌 구체적으로요약:
- Linear Process Flow는 단순히 단계가 순차적으로 진행되는 흐름을 설명하는 것이고,
- Waterfall 모델은 Linear Process Flow를 기반으로 한 구체적인 소프트웨어 개발 방법론이에요.