본문 바로가기

전체 글20

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