본문 바로가기

소프트웨어 공학20

[소프트웨어 공학] 소프트웨어 생명 주기 - 프로토타이핑 모델 프로토타이핑 모델 프로그래밍에 관한 전문적 지식이 없는 대부분의 사용자들은 개발될 소프트웨어에 대한 개략적인 목적과 기능들에 대하여 요구할 수는 있으나 입력, 출력, 내부 처리에 대하여 정확히 요구하기란 쉽지 않습니다. 또한 발주자의 입장에서는 알고리즘의 타당성, 운영체제와의 조화, 사용자 인터페이스의 형식 등을 개발 도중에 확인할 방법이 없습니다. 즉, 프로젝트의 실현 가능성을 보장받을 수가 없습니다. 이러한 경우에 프로토타이핑은 좋은 방법이 될 수 있습니다. 프로토타이핑이란 시스템의 일부 혹은 시스템의 모형이 될 만한 것을 만드는 과정입니다. 예를 들면, 시스템을 사용하는 과정을 보여줄 시나리오나 화면 모형을 말합니다. 이는 시스템의 작동을 시뮬레이션 하여 사용자가 볼 수 있는 반응을 보여준다. 시범.. 2024. 5. 22.
[소프트웨어 공학] 소프트웨어 생명 주기 - 폭포수 모델 폭포수 모델 폭포수 모델은 요구분석, 설계, 테스트 등의 작업을 순서대로 쭉 헤나가는 프로세스입니다. 1970년대 많이 소개되어 산업계에서 보편적으로 사용되어 해오던 방식입니다. 원래는 1950년대 항공 방위 소프트웨어 시스템 개발 경험으로 소개되었던 것입니다.원해 폭포수 모델은 폭포에서 내려오는 물이 아래로 떨어지듯이 각 단계가 순차적으로 진행되는, 즉 병행되어 진행되거나 거슬러 반복 진행되는 경우가 없습니다. 그러나 실제 사용되고 있는 폭포수 모델은 아래 그림처럼 표현한 것처럼 각 단계의 결과가 확인된 후에 다음 단계로 넘어갈 수 있기 때문입니다. 이는 사용자의 의견이 다르거나 중간 결과를 점검한 결과 전 단계의 작업에 결함이 있다면 다시 수정하도록 전 단계로 돌아가는 점이 있습니다.  폭포수 모델의.. 2024. 5. 22.
[소프트웨어 공학] 소프트웨어 공학의 개념과 유형 그리고 시스템 소프트웨어 공학이란? 소프트웨어 공학이란? 전기전자 기술자 협회의 소프트웨어 공학 표준에 의하면 소프트웨어 공학이란 소프트웨어의 개발과 운영, 유지보수, 소멸에 대한 체계적인 접근 방법이라고 정의 되어있습니다. 소프트웨어 개발을 위한 체계적인 접근이라는 말은 소프트웨어 개발에 사용되는 방법이 일회성이 아니라 반복 사용이 가능하다는 것을 의미합니다. 방법론을 다른 사람이 사용하더라도 유사한 소프트웨어를 만들 수 있다 라는 뜻이 있습니다. 따라서 소프트웨어 엔지니어링의 목표는 소프트웨어 개발 작업이 결과를 예측할 수 없는 어림짐작이 아니라 과학이나 공학에 더 가깝게 하려는 노력입니다.  앞서 말했던 바와 같이 어려운 소프트웨어는 사용자의 문제를 해결해 줍니다. 그러므로 문제는 사용자의 요구사항을 만족시키기 .. 2024. 5. 22.
[소프트웨어 공학]프로세스 - 결함 제거의 용이성과 소프트웨어 개발 프로세스 프로세스 - 결함 제거의 용이성 프로그래밍이 소프트웨어 개발에서 중심이 되는 작업이라고 생각하는 것은 프로그래밍이 그만큼 어렵고 재능이 있어야 하는 작업이기 때문입니다. 이런 생각 때문에 대부분의 오류는 가장 어려운 작업인 프로그래밍을 하는 동안 발생할 것이라고 믿어 의심치 않습니다. 하지만 실제는 개발 과정의 모든 단계에서 오류가 발생할 수 있습니다. 단계별 오류 발생 시점의 분포는 요구 사항 분석 단계에 20%, 설계 단계에 30%, 코딩 단계에 50% 정도로 알려져 있습니다. 오류를 발견하고 수정하는 데 소요되는 노력은 발생 시점에 따라 다릅니다.   오류가 발생한 후 발견이 지연될수록 수정하는 데 드는 비용이 더 듭니다. 요구 사항 분석 단계에 발생한 오류를 테스팅 단계에 수정한다면 분석 단계에서.. 2024. 5. 21.