* 소프트웨어 아키텍처 = 소프트웨어의 내부적인 질을 높이기 위해 고려되는 소프트웨어의 구조 * 소프트웨어 아키텍처 패턴= 소프트웨어 아키텍처에서 일반적으로 발생하는 문제점들에 대해 일반화된 솔루션을 제공하는 것= 세부 구현이 아닌 소프트웨어의 뼈대나 전체적인 고수준의 기반을 담당 * 아키텍처 스타일 = 아키텍처 유형 (시스템 분할, 전체 흐름 제어, 오류 처리 방침, 서브시스템 간 통신 프로토콜) * 시스템 타입시스템 타입은 아키텍처 스타일을 결정할 때 영향을 준다* 대화형 시스템 interactive- 가장 보편적 시스템 유형- 사용자-사용자 인터렉션- 유스케이스 단위로 컴포넌트 설계- 온라인 쇼핑몰, 모바일 앱 * 이벤트 중심 event driven- 특정 이벤트 발생시 시스템 동작 - 상태 다이..
[ Computer Science ]/SW Engineering
소프트웨어 공학의 모든 것 , 최은만 , 생능6장 설계 원리연습문제 서술형 1. 설계 작업은 기본구조설계와 상세설계로 나눌 수 있다. 각 단계에서 하는 일을 나누어 설명하라 (단계별 설계 작업 설명) 설계 작업은 기본구조설계와 상세설계로 나눠지며, 각 단계는 다음과 같은 작업을 수행한다. - 기본구조설계: 시스템의 전반적인 아키텍처를 정의하는 단계로, 시스템의 주요 컴포넌트와 그들 간의 상호작용을 결정한다. 예를 들어, 시스템을 구성하는 모듈을 나누고 각 모듈의 역할을 정의하며, 모듈 간의 의존 관계와 데이터 흐름을 설정하는 작업을 포함한다. - 상세설계: 기본구조설계를 바탕으로 각 모듈의 내부 구조와 세부 구현을 정의하는 단계이다. 각 모듈의 알고리즘과 데이터 구조를 설계하며, ..
소프트웨어 공학의 모든 것 , 최은만 , 생능5장 요구 모델링연습문제 서술형 1. 모델링은 어떤 작업이며 모델링 작업과 도메인 지식의 관계는 무엇인가 (모델링 작업과 도메인 지식) 모델링은 현실 세계의 문제 영역을 추상화하여 시각적 또는 수학적 표현으로 시스템을 설계하고 분석하는 작업이다. 모델링 작업에서는 도메인 지식이 매우 중요한데, 도메인 지식은 특정 문제 영역에 대한 전문적 이해와 관련된 정보를 의미한다. 이를 통해 모델링 작업이 문제를 정확히 반영하고 적합한 해결 방안을 제시할 수 있도록 한다. 모델링은 도메인 지식을 바탕으로 요구사항을 정리하고 시스템의 구조와 동작을 구체화하여, 결과적으로 프로젝트 이해 관계자들이 문제를 명확히 이해하고 해결 방안을 효과적으로 구현할 수 있도록 돕는..
소프트웨어 공학의 모든 것 , 최은만 , 생능4장 요구 분석연습문제 서술형 1. 기능 요구와 비기능 요구는 무엇인지 그 차이점 위주로 설명하라 (차이점 설명) 기능 요구는 시스템이 수행해야 할 특정 동작이나 작업을 정의하는 요구사항으로, 사용자가 원하는 기능적 동작을 명시한다. 예를 들어, “사용자가 상품을 검색할 수 있어야 한다는 기능 요구에 해당한다. 반면, 비기능 요구는 시스템의 성능, 품질, 사용성, 안정성 등을 규정하여 시스템이 어떻게 동작해야 하는지를 나타낸다. 예를 들어, “응답 시간은 2초 이내여야 한다”는 비기능 요구이다. 주요 차이점은 기능 요구는 시스템의 무엇을 수행할지를 다루는 반면, 비기능 요구는 **어떻게** 수행할지를 다룬다는 점이다. 2. 기능 요구 종류를 나열하고..
소프트웨어 공학의 모든 것 , 최은만 , 생능3장 프로젝트 계획과 관리 연습문제 서술형 1. 프로젝트를 시작할 것인지 결정하는 두 가지 요인 (시작 결정 요인) 프로젝트를 시작할 것인지 결정하는 주요 요인에는 사업적 가치와 기술적 가능성이 있다. 첫 번째로, 사업적 가치는 프로젝트가 회사나 조직에 경제적 이익 또는 전략적 가치를 제공할 수 있는지 여부를 평가하는 요소이다. 프로젝트가 수익성이나 경쟁 우위를 높이는 데 기여한다면 시작할 가치가 있다. 두 번째로, 기술적 가능성은 프로젝트를 성공적으로 수행할 수 있는 기술적 능력과 자원이 있는지를 평가하여 실행 가능성을 판단하는 것이다. 프로젝트를 수행할 기술이 부족하거나 리소스가 제한적이라면 프로젝트 시작을 보류할 수 있다. 2. 프로젝트 계획..
소프트웨어 공학의 모든 것 , 최은만 , 생능2장 프로세스와 방법론 연습문제 서술형1. 프로세스 모델이란 무엇이며 프로세스 인스턴스, 프로세스 명세, 프로세스 모델 사이의 관계를 설명하라 (프로세스 개념과 관계 설명) 프로세스 모델은 소프트웨어 개발 과정에서 수행해야 할 작업의 단계와 절차를 체계적으로 정의한 것이다. 이는 개발 팀이 따라야 할 가이드라인으로 작용하며, 일정한 순서와 방법에 따라 작업을 수행하도록 돕는다. 프로세스 명세는 이와 같은 모델에 대해 상세한 문서화 작업을 통해 각 단계의 절차와 규칙을 정의한 것이다. 프로세스 인스턴스는 실제 개발 프로젝트에서 프로세스 명세를 기반으로 수행되는 개별적인 실행 사례를 의미한다. 프로세스 모델은 프로세스 명세에 의해 문서화되고, 프로세스 ..
소프트웨어 공학의 모든 것 , 최은만 , 생능1장 소개 연습문제 서술형 1. 소프트웨어가 다른 엔지니어링 결과물, 예를 들어 컴퓨터 하드웨어나 빌딩, 자동차 등과 비교하여 어떤 특징을 갖는가 (특징 비교) 소프트웨어는 다른 엔지니어링 결과물인 컴퓨터 하드웨어, 건물, 자동차 등과 비교할 때 여러 독특한 특징을 가지고 있다. 먼저, 소프트웨어는 물리적 제약이 거의 없는 비가시적이고 비물질적인 산출물이다. 이는 시간이 지나도 마모되지 않으며 물리적인 손상이 발생하지 않는다. 또한, 유연성이 높아 사용자 요구나 시스템 환경의 변화에 따라 손쉽게 수정하고 업데이트할 수 있다. 반면, 이러한 유연성으로 인해 변화가 빈번하여 개발과 유지보수가 복잡해지는 경향이 있다. 마지막으로, 소프트웨어는 복잡성이 높..