본문 바로가기

전체 글20

[소프트웨어 공학] 요구사항 추출 방법 요구사항 추출 방법요구사항은 누구나 알고 있는 자명한 사실이 아닙니다. 여러 가지 방법을 동원하여 사용자로부터 또는 여러 정보를 통하여 추출하여야 합니다. 이번 글에서는 요구사항을 추출하는 여러 가지 방법에 대하여 알아봅시다. 각 방법마다 추출하는 요구사항의 범위와 효율이 다릅니다. 즉 요구사항의 범위가 넓게 추출되는 방법이 있고 깊게 추출되는 방법이 있습니다.요구를 모으는 작업은 업무 프로세스와 애플리케이션 도메인에 대한 정보에 초점을 두어야 합니다. 특히 다음과 같은 질문에 대한 답을 얻기 위하여 여러 가지 요구 추출 방법을 동원하게 됩니다. 자동화 시스템을 구축하는 것은 어떤 업무를 위한 것인가?현재 업무의 상황, 즉 어떻게 운용되는가?시스템의 환경과 배경은 무엇인가?현재의 업무 프로세스, 입출력은.. 2024. 5. 24.
[소프트웨어 공학] 요구사항 분석과 추출 요구사항 추출요구 사항 추출(requirement elicitation)은 소프트웨어 개발에서 특별히 중요한 작업이다. 사용자가 무엇을 원하는지 결정을 내리는 작업이며 여러가지 기법이 동원됩니다. 현재 사용되는 수동 작업 시스템이 있다면 요구를 추출하는 작업은 비교적 수월합니다. 하지만 아직 존재하지 않아 문제에 대한 해법을 생각해 보지도 않은 경우 사용자와 함께 아이디어와 해결책을 찾는 것이 어려울 수 있습니다.요구 사항을 추출하기 위하여 다음 세 가지 단계의 작업이 필요하다.Step 1. 응용에 대한 정보 출처 파악Step 2. 응용에 대한 정보 취합Step 3. 요구와 제한 사항의 정의요구 추출은 응용 분야에 대한 정보를 모으는 일부터 시작된다. 많은 조각 정보들이 응용문제를 이해하고 요구와 제한 .. 2024. 5. 23.
[소프트웨어 공학] 요구 사항 분석 요구 사항 분석 요구 분석이란 새 시스템이나 변경할 시스템의 요구를 결정하는 작업입니다. 이 작업에는 사용 자, 개발자, 관리자 등 관련되는 여러 사람이 참여하므로 서로의 어긋나는 요구를 잘 조정하여야 한다. 요구 분석이 프로젝트 성패의 열쇠라 할 수 있습니다. 체계적인 요구 분석을 요구 공학이라고도 부른다. 요구 공학은 요구 수집, 도메인 분석, 요구 명세, 검증 등으로 구성됩니다. 요구는 측정할 수 있고 시험할 수 있어야 하며 비즈니스 요구에 부합하여야 하며 설계를 할 수 있도록 충분히 상세하여야 합니다.소프트웨어 개발에 있어서 가장 어려운 부분은 무엇을 개발할 것인가를 정확히 결정하는 일입니다. 그 외의 일, 예를 들면 자세한 설계와 구현, 테스트 등 은 잘못되었을 때 적은 비용으로 수정할 수 있으.. 2024. 5. 23.
[소프트웨어 공학] 소프트웨어 생명주기 - 애자일 프로세스 애자일 프로세스 폭포수 프로세스는 복잡한 문제를 잘 파악하고 이해하여 해결하는 프로젝트에는 적합합니다. 하지만 프로그램을 개발한다는 측면에서는 문서화 등의 오버헤드가 많은 단점이 있습니다. 이런 단점을 개발하기 위한 것이 애자일 프로세스입니다. 애자일 프로세스는 팀워크, 사용자와 협력하여 개발, 변경을 위한 설계, 짧은 주기의 반복으로 빠른 속도로 개발하고 자주 출시한다는 면을 강조합니다. 애자일 프로세스는 새로운 가치와 원리, 최적의 방법을 제시하고 있는데 이로써 폭포수 프로세스의 단점을 해결하고 있다.애자일 프로세스는 다음 네 가지 가치를 철학으로 담고 있다.1. 절차와 도구보다는 개인과 소통을 중요시합니다.전통적인 프로세스에서는 계획 위주의 절차가 프로젝트 성공을 위하여 필수적이라고 믿습니다. 즉 .. 2024. 5. 23.
[소프트웨어 공학] 소프트웨어 생명주기 - 나선형 모델, V자 모델 나선형 모델 Boehm이 제안한 나선형 (spiral model) 모델은 위험 관리를 위한 독특한 프로세스이다. 아래 그림에 나타낸 것처럼 모델의 작업이 복수의 주기를 가진 나사와 같이 구성되어 있다. 반복되는 나선형의 각 주기는 목표를 설정하는 일부터 시작한다. 또한 목표를 성취하기 위한 다른 방안과 존재하는 제약 사항을 파악한다. 다음은 여러 대안들을 저울질하고 평가해 본다. 평가의 초 점은 프로젝트의 위험이라는 개념이다. 다음 단계는 문제와 위험을 해결하는 전략을 개발하는데 벤치마킹, 시뮬레이션, 프로토타이핑과 같은 방법을 이용한다. 그 후에 소프트웨어를 개발하고 다음 단계를 계획한다.나선형 모델의 중요한 특징은 개발을 위한 계획 및 요구분석 후에 위험 요 소와 차선책에 대하여 검토하는 단계가 있다.. 2024. 5. 22.
[소프트웨어 공학] 소프트웨어 생명 주기 - 진화적 모델 진화적 모델 초기의 소프트웨어 개발은 몇 년이라는 긴 시간이 걸리더라도 고객이 이해하고 기다렸습니다. 그러나 최근의 비즈니스 환경은 개발 사이클이 긴 것을 허용하지 않습니다. 새로운 소프트웨어 시스템을 빠른 시간에 시장에 내놓는 것이 기업의 이윤과 사활에 직결되기 때문입니다. 결국 진화적 모델은 폭포수 모델이 한 번에 릴리스 하기 전에는 사용자가 아무것도 경험하지 못하고 피드백 할 수 없는 단점, 즉 빅뱅(big bang) 릴리스를 보완하려는 방법입니다.  기본적인 아이디어는 사용자에게 시스템을 조기에 경험하게 하고 출시를 빠르게 하기 위하여 아래 그림에 표현한 것처럼 조금씩 점증적으로 개발하는 것입니다. 즉 시스템을 여러 번 나누어 릴리스 하는 방법으로 중 요하고 기초적인 기능을 우선 개발하여 사용하게.. 2024. 5. 22.