본문 바로가기

23년 2학기 학교공부/소프트웨어공학

(9)
[SE] 소프트웨어 테스트 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 기본 용어 정리 소프트웨어 테스팅에 대해 알아보기 전에, 테스팅 과정에서 쓰이는 용어를 정리해보자. 1. 실패(failure) 실패란 시스템에 나타나는 용납될 수 없는 행위(unacceptable behavior)를 말한다. 실패는 명세와 실행 동작의 차이(?) 신뢰도(reliability)는 실패의 횟수를 기반으로 측정된다. 중요한 설계 목표는 매우 낮은 고장률과 높은 신뢰성을 달성하는 것이다. 2. 결함(defect) 하나 이상의 장애 발생에 기여하거나 잠재적으로 기여할 수 있는 시스템 측면의 결함(flaw)을 말한다. 특정 실패는 몇 가지 결함에 의해 유발될 수 있다.ㄷ 3. 오류(error) 결함을 발생하게 하..
[SE] 디자인 패턴 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 디자인 패턴 디자인 패턴이란 자주 접하는 설계 문제를 해결해주는 증명된 솔루션을 체계적으로 정리한 것을 말한다. 공통의 설계 목표를 만족시키는 클래스의 조합, 협력 알고리즘이다. 여러번의 시행착오를 거치면서 비슷한 역할의 클래스를 자주 사용하게 되는데, 이를 모아서 목록화한게 무? 전문가의 노하우를 모아놓은 것이므로 이를 적용하면 좋은 설계가 되도록 도와준다. 코드를 더 견고하게 한다던가, 재사용을 용이하게 한다. 디자인 패턴은 크게 기본 패턴, 생성 패턴, 구조 패턴, 행위 패턴으로 나눌 수 있다. 🌱 기본 패턴 객체지향 패턴의 관용구로, 흔히 쓰이는 패턴이다. 개념실체 패턴, 플레이어 역할 패턴, 위임 패턴, 계층..
[SE] 아키텍쳐 설계 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 아키텍처 설계과정 아키텍처 설계란 시스템의 기능적 요구사항을 구현하는 방법,재정적 제약 등 비기능적 요구사항에 의한 제약을 준수하는 방법, 좋은 품질의 일반적 원칙을 고수하는 방법을 찾기 위한 문제 해결 과정을 말한다. 설계 담당자는 설계 과정에서 작은 문제들에 직면하게 된다. 이러한 이슈들에는 해결책으로서 여러가지 설계 옵션이 존재하고, 설계 담당자는 이슈를 해결하기 위해 선택사항 중 가장 좋은 방안을 찾아 의사결정을 내려야 한다. 이때 설계에 대한 의사결정을 내리기 위해 소프트웨어 엔지니어가 사용할 지식 및 정보의 종류는 다음과 같다. 요구사항 정보 이전까지 만들어진 설계 작업 정보 가용한 기술 정보 소프트웨어 설..
[SE] 동적 모델링 : 시퀀스, 상태, 활동 다이어그램 2023학년도 2학기 충남대학교 김현수 교수님의 소프트웨어공학 수업 정리자료입니다. 📁 동적모델링 동적모델링이란, 유스케이스로 표현한 시스템의 기능을 만족시키기 위해 시스템 내부의 구성요소들이 어떻게 상호작용하는지를 나타내는 모델링을 말한다. 시스템의 전반적인 부분보다는 가장 복잡하다고 판단되는 일부분을 동적 다이어그램으로 만든다. 일반적으로 동적모델을 표현할 때 UML 다이어그램을 사용하며, 동적 모델의 종류에는 시퀀스 다이어그램, 상태 다이어그램, 액티비티 다이어그램이 있다. 액티비티 다이어그램과 상태 다이어그램은 구현을 올바르게 하도록 도와준다. 동일한 이벤트에도 다양한 조건에 따라 인스턴스들이 다르게 반응할 때는 상태 다이어그램이 적합하다. 🌱 시퀀스 다이어그램 시퀀스 다이어그램은 시스템의 동적인..
[SE] 클래스 모델링 📁 UML(Unified Modeling Language) 객체지향 소프트웨어를 모델링하기위한 표준 그래픽 언어를 말한다. – 1980년대 말과 1990년대 초반에 객체지향 개발 프로세스 등장함 – 방법론과 표기법의 확산은 상당한 혼란을 초래함 – Rumbaugh와 Booch는 1994년에 그들의 방법을 통합하기로 결정함 • 그들은 Rational Software Corporation에서 함께 일함 – 1995년에는 다른 방법론자인 Jacobson이 팀에 합류 • 그의 방법론은 유스케이스에 중점 – 1997년에 OMG (Object Management Group)는 UML 표준화 프로세스를 시작 📁 UML 다이어그램 1. 클래스 다이어그램(Class diagrams) : 클래스들과 그들의 관계를 기술 2..
[SE] 유스케이스 모델링 📁 유스케이스 유스케이스(use case)란 시스템이 액터(actor)에게 관찰 가능한 가치의 결과를 생산하기 위해 수행하는 일련의 행동 및 그 변형들의 집합을 말한다. 유스케이스는 완전한 기능을 명세해야하고, 이때 기능이란 시스템의 경계를 정의한다. 유스케이스는 프로세스를 묘사하는데, 이때 프로세스란 조직이나 액터에게 가치있는 것을 생산하기 위해 필요한 사건(events), 행동(actions) 및 거래(transactions)의 연속을 말한다. 예를 들면 계좌에서 현금을 인출하는것, 제품을 주문하는 것, 강좌를 등록하는 것이 있다. 시나리오 vs 유스케이스 시나리오는 특정한 목표를 달성하기 위해 수행되는 일련의 행동임에 반해, 유스케이스는 주어진 기능에 대해 가능한 모든 시나리오의 집합을 정의한다. ..
[SE] 요구사항 개발 및 정의 📁 요구사항 분석 과정 '어떻게' 보다는 '무엇을'에 관점을 두어야 한다. 📁 도메인 분석 도메인 분석은 소프트웨어 엔지니어가 문제를 더 잘 이해하기 위하여 도메인에 대해 알아가는 과정이다. 도메인이란, 소프트웨어를 사용할 것으로 예상되는 고객이 일하는 분야의 비즈니스나 기술을 칭한다. 도메인 전문가는 소프트웨어가 사용된 도메인 분야에 깊이 있는 지식을 가진 사람을 말하며, 대부분 사용자이자 고객이다. 도메인 분석을 사용하게 되면 얻을 수 있는 이점 - 빠른 개발 : 이해당사자들과 더욱 효과적으로 의사소통이 가능하고, 빠른 요구사항 파악이 가능하다. - 더 좋은 시스템 구축 가능 : 고객의 문제를 효과적으로 해결하는 솔루션을 결정할 수 있다. - 확장 예견 : 트렌드를 예측하는 능력을 갖추고, 적응도 높..
[SE] 프로젝트 관리 📁 프로젝트 관리 프로젝트를 계획하고 수행하는데 필요한 모든 작업 관리 - 필요한 작업의 결정 - 프로젝트에 적합한 인력 확보 - 직무 정의 - 일정 계획 - 작업 준비 - 비용 예측 - 지시, 감독 - 기술적 리더 - 다른사람이 내린 결정을 검토하고 승인 - 팀원 사기 진작과 지원 - 모니터링, 통제 - 다른 프로젝트 관리자와 협력 - 보고(reporting) - 프로세스 개선 📁 프로젝트 관리 활동 1. 제안서 작성 2. 프로젝트 계획 및 스케줄링 3. 프로젝트 비용 계획 4. 프로젝트 모니터링 및 검토 5. 인력 선발 및 평가 6. 보고서 작성 및 프레젠테이션 📁 프로젝트 계획 프로젝트 계획 수립 시간이 많이 걸리는 프로젝트 관리 활동이다. 초기 개념에서 시스템 제공에 이르기까지 지속되는 활동이다...