소프트웨어 공학의 모든 것 , 최은만 , 생능
2장 프로세스와 방법론
연습문제 서술형
1. 프로세스 모델이란 무엇이며 프로세스 인스턴스, 프로세스 명세, 프로세스 모델 사이의 관계를 설명하라 (프로세스 개념과 관계 설명)
프로세스 모델은 소프트웨어 개발 과정에서 수행해야 할 작업의 단계와 절차를 체계적으로 정의한 것이다. 이는 개발 팀이 따라야 할 가이드라인으로 작용하며, 일정한 순서와 방법에 따라 작업을 수행하도록 돕는다. 프로세스 명세는 이와 같은 모델에 대해 상세한 문서화 작업을 통해 각 단계의 절차와 규칙을 정의한 것이다. 프로세스 인스턴스는 실제 개발 프로젝트에서 프로세스 명세를 기반으로 수행되는 개별적인 실행 사례를 의미한다. 프로세스 모델은 프로세스 명세에 의해 문서화되고, 프로세스 명세를 바탕으로 여러 프로세스 인스턴스가 생성되어 실제 개발 현장에서 활용된다.
2. 소프트웨어 프로세스를 정의하기 위한 요소가 무엇이며 바람직한 프로세스가 되려면 어떤 특성이 있어야 하나 (정의 요소와 바람직한 특성)
소프트웨어 프로세스를 정의하기 위한 요소는 작업, 역할, 산출물, 흐름이다. 작업은 특정 역할을 수행하는 사람에 의해 실행되며, 산출물은 작업의 결과물로 생성된다. 바람직한 소프트웨어 프로세스가 되려면 일관성, 효율성, 유연성, 예측 가능성과 같은 특성을 가져야 한다. 일관성은 프로세스가 반복 가능하고 표준화된 방식으로 수행됨을 의미하고, 효율성은 자원과 시간이 절약되는 것을 뜻한다. 유연성은 변화에 대한 적응력을 나타내며, 예측 가능성은 일정 및 산출물의 품질에 대한 신뢰성을 보장한다.
3. 프로토타이핑 모델은 폭포수 모델의 어떤 단점을 보완하기 위한 것인가 프로토타입의 두 가지 유형은 무엇인가 (단점 보완과 유형)
프로토타이핑 모델은 요구사항 변경의 어려움이라는 폭포수 모델의 단점을 보완하기 위해 도입되었다. 초기 요구사항이 명확하지 않은 경우, 프로토타입을 통해 사용자 피드백을 받으며 요구사항을 점진적으로 확정할 수 있다. 프로토타입의 두 가지 유형은 탐색적 프로토타입과 진화적 프로토타입이다. 탐색적 프로토타입은 사용자와의 의사소통을 위한 목적으로 제작하여 폐기할 수 있지만, 진화적 프로토타입은 지속적으로 개선하여 최종 시스템으로 발전시킬 수 있다.
4. 진화적 모델이란 무엇이며 중요한 장점은 무엇인가 유형의 프로젝트에 진화적 모델이 적합한가 (모델 설명과 적합한 프로젝트 유형)
진화적 모델은 시스템을 작은 단위로 개발하고, 각 단계에서 피드백을 받아 점진적으로 개선해 나가는 모델이다. 이 모델의 중요한 장점은 변화에 대한 유연성과 빠른 사용자 피드백 반영에 있다. 요구사항이 불확실하거나 변동이 예상되는 프로젝트, 예를 들어 신제품 개발이나 연구개발 프로젝트 등에 적합하다.
5. 애자일 프로세스의 네 가지 선언은 무엇인가 스크럼 프로세스는 무엇인가 (선언과 스크럼 설명)
애자일 프로세스의 네 가지 선언은 개인을 통한 상호작용을 중시, 작동하는 소프트웨어의 제공, 고객과의 협력, 변화에 대한 빠른 대응이다. 스크럼 프로세스는 애자일 방법론 중 하나로, 일정 기간 동안 반복적으로 개발하는 스프린트 방식으로 진행된다. 각 스프린트마다 계획, 개발, 리뷰, 회고의 단계를 거치며 팀의 협력과 효율적인 작업 관리를 강조한다.
6. 어떤 대학에서 학생 교직원이 모두 사용하는 학사업무 시스템을 개발하기로 하였다 점층적 모델을 이용해 프로세스를 설계하라 프로젝트의 중요한 목적이 높은 품질 그 중에서 사용자 요구의 만족이다 어떤 품질 관리 작업을 해야하는가 (점층적 설계와 품질 관리 작업)
점층적 모델을 통해 학사업무 시스템을 설계하기 위해 먼저 핵심 기능, 예를 들어 학생 정보 관리 기능부터 시작하여 점진적으로 성적 관리, 시간표 조회 등의 부가 기능을 추가한다. 사용자 요구를 충족하기 위해 각 기능이 구현될 때마다 사용자 피드백을 받아 수정, 보완하며 개선해 나간다. 품질 관리 작업으로는 사용자 요구 분석, 요구사항 검토, 단위 테스트와 통합 테스트, 사용자 피드백 기반의 품질 평가 등이 필요하다.
7. 새로운 프로그래밍 언어를 위한 컴파일러를 개발하려고 한다 어떤 개발 모형을 채택할 것인가 채택한 이유를 설명하라 (모형 선택과 이유)
새로운 프로그래밍 언어의 컴파일러 개발에는 폭포수 모델이 적합하다. 폭포수 모델은 단계별로 요구사항 분석, 설계, 구현, 테스트를 명확하게 구분하여 개발하기 때문에 컴파일러와 같은 구조적이고 엄격한 시스템 개발에 효과적이다. 특히 컴파일러는 설계가 정확히 이루어져야 하므로 각 단계에서 오류를 최소화할 수 있는 폭포수 모델이 유리하다.
8. 프로세스 관리 프로세스의 모니터링은 개발 프로세스에 어떤 영향을 미치는가 형상 관리 프로세스란 무엇이며 개발 프로세스에 어떤 영향을 미치는가 (모니터링과 형상 관리의 영향)
프로세스 관리 프로세스의 모니터링은 개발 프로세스의 진행 상황을 평가하고, 계획 대비 실제 수행을 비교하여 문제점을 조기에 발견하게 함으로써 일정과 품질 목표를 유지하는 데 기여한다. 형상 관리 프로세스는 소프트웨어의 버전과 변경 사항을 관리하는 과정으로, 개발의 일관성을 유지하고 여러 버전 간의 충돌을 방지하여 안정적인 소프트웨어 개발을 가능하게 한다.
9. 구조적 방법론, 정보 공학 방법론, 객체지향 방법론 각각 무엇이며 장단점은 무엇인가 (방법론 설명과 장단점)
구조적 방법론은 소프트웨어를 기능 중심으로 나누어 설계하는 방법으로, 자료 흐름도와 같은 도구를 사용하여 시스템을 계층적으로 설계한다. 장점은 명확한 기능 분리로 이해가 쉬운 구조를 제공하는 것이고, 단점은 변경과 확장에 유연하지 않다는 점이다.
정보 공학 방법론은 데이터 모델링을 중시하여 조직의 데이터 구조를 기반으로 시스템을 설계하는 방법이다. 장점은 데이터 중심 설계를 통해 일관성 있는 시스템을 개발할 수 있으며, 단점은 변화하는 비즈니스 요구에 빠르게 대응하기 어려울 수 있다는 점이다.
객체지향 방법론은 객체와 클래스 개념을 이용하여 소프트웨어를 설계하고 구현하는 방법으로, 재사용성과 확장성이 뛰어나다. 장점은 객체의 속성과 동작을 결합하여 유연성과 재사용성이 높다는 것이고, 단점은 초기 학습 곡선이 높고, 객체 설계가 복잡할 수 있다는 점이다.
'[ Computer Science ] > SW Engineering' 카테고리의 다른 글
[소프트웨어공학] 소프트웨어 아키텍처 패턴 (3) | 2024.11.20 |
---|---|
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 6장 서술형 (1) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 5장 서술형 (6) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 4장 서술형 (2) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 3장 서술형 (5) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 1장 서술형 (7) | 2024.10.28 |