05. 소프트웨어 시스템 기능/비기능 요구사항 명지대학교 융합소프트웨어학부 김정호 교수.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
KS Cinema 팀 명 : KS 팀 원 : 강상욱 김건우 원찬석 이수경.
Popcon 이규태 김준수 강예진. 목차  Popcon 이란  개발동기 및 목적  필요성  차별성  설계  개발일정  기대효과 및 향후 계획.
Cinema Manager System 최종 발표 조 team05 발표자 : 임 창목 1.
영화 예매 시스템 - 많이 봤다이가 ? CSE Corp. PM 송진희 김성욱 김보람 천창영.
The UML (Unified Modeling Language) Software Engineering Laboratory.
YOUR LOGO SmartBox Final Presentation Hit & Run 팀 하권용 심유섭 이유진 방대근 담당교수님 : 정인환 교수님.
컴퓨터정보공학부 서재석 컴퓨터정보공학부 안상원 컴퓨터정보공학부 이동현 May Weather THE WORLD’S FAVOURITE NEWSPAPER - Since 1879.
항공 예약 시스템 1 조 ( 김민철, 김영주, 이혜림, 장유정, 조윤주, 문하늘 ). 목차 차세대 전산시스템 도입의 필요성 현재 항공 시스템 ( 대한항공 ) 항공 시스템의 변화 미래항공 시스템.
Dept. Computer Science, Korea Univ. Intelligent Information System Lab. 웹 서비스와 시멘틱 웹의 연동 방안 연구 고려대학교 지능정보시스템 연구실 이 윤 수.
Secure Coding 이학성.
일반 요구 사항 비즈니스 요구사항 고객/정보/위치/상태 탐색방법 제품/서비스 홍보 및 광고 방법
의사 결정 트리(decision tree)
뇌를 자극하는 Windows Server 2012 R2
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
목차 백업과 복원.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
Capstone-Design : IoTeam Introduction Abstract
시스템 설계와 산업디자인 개발.
비즈니스 모델링의 의의 컴퓨터학과 김현일.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #3
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
10장. 예외처리.
CHAP 12. 리소스와 보안.
Grade Server Team14. Attention Seeker
셍산관리시스템 작업일보 등록 ☞ ☞ 작업일보등록 - 실행화면 C B A 사용설명
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Spring 프레임워크의 이해 1.Architecture.
11. 소프트웨어 아키텍처 뷰 설계 예제 명지대학교 융합소프트웨어학부 김정호 교수.
소프트웨어공학 윤일노 STARuml Guide 소프트웨어공학 윤일노
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
USN(Ubiquitous Sensor Network)
강릉원주대학교 전임교원대상 온라인 교수법 특강
Chapter 03. 관계 데이터베이스 설계.
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
김영우 윤동섭.
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
LabVIEW WiznTec 주임 박명대 1.
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
07. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
경영정보시스템(MIS) management information system.
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
뇌를 자극하는 Solaris bible.
충남대학교 Software Engineering Lab 김 대 엽
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
사회과 서술형 평가 문항 자료집 -중학교 일반사회 영역 -.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
(에듀파인 학교회계 초년도 사용 시 임시 사용)
Map Designer Solution 소개자료
웹 사이트 분석과 설계 [디자인 리서치] 학번: 이름 : 홍지애.
유스케이스 다이어그램 유스케이스 모델링과 UML 표기법 유스케이스와 유스케이스 관계 액터 사이의 일반화관계
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
.Net FrameWork for Web2.0 한석수
TERM PROJECT 최종 보고 발표 안내 2010 컴퓨터공학실험(Ⅰ).
노란책 온라인 쇼핑몰 프로젝트 계획서.
Installation Guide.
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
추상 테스트 케이스 성숙도 모델 기반의 테스트 케이스 추적성 연구
6 객체.
소프트웨어 설계 및 실습 강기준.
생산성 증대 효율성 향상 측정 수행 능력.
Presentation transcript:

05. 소프트웨어 시스템 기능/비기능 요구사항 명지대학교 융합소프트웨어학부 김정호 교수

Retrospect 소프트웨어 아키텍처 소프트웨어 아키텍처 필요성 시스템 컨택스트 다이어그램 소프트웨어 시스템의 구조 구조는 요소간의 연결이다. 즉, 시스템의 목적을 달성하는 요소들간의 관계를 나타내는 것이다. 소프트웨어 아키텍처 필요성 시스템이 크고 복잡하다. 다양한 이해관계자의 니즈가 존재한다. 시스템 컨택스트 다이어그램 시스템의 의미를 파악하는데 좋다. 시스템을 블랙박스로 두고 주변에 연동하는 객체를 표현한다.

목 차 시스템 요구사항 제약 사항 (비기능 요구사항) 품질 요구사항 (비기능 요구사항) 기능 요구사항 비기능 요구사항 유스케이스 다이어그램 소개 유스케이스 시나리오 작성 제약 사항 (비기능 요구사항) 기술적 제약 사항 조직적 제약 사항 비즈니스 제약 사항 품질 요구사항 (비기능 요구사항) 품질 속성의 분류 ISO/IEC 25010 품질모델 품질 시나리오 작성

시스템 요구사항 기능 요구사항(Functional Requirements) 비기능 요구사항(Non-Functional Requirements) * Reperenced by Sungwon Choi, Myoungji Univ.

기능 vs. 비기능 요구사항 기능 요구사항 비기능 요구사항 기능(Function)이란 입력(Input)을 받아들여, 정의된 규칙(Rule)에 의해 입력을 변형하여 출력(Output)을 만들어 내는 것 예를 들어 증권시스템의 기능 들은 고객의 정보를 등록하고, 주식을 거래하고, 예수금을 관리한다 비기능 요구사항 사용자의 요구사항 중 기능적이지 않은 부분을 의미한다. 시스템 제약사항 및 품질 속성이 이에 속한다. ‘개발 비용이 저렴하여야 한다’, ‘사용하기 쉬워야 한다(Usability)’, ‘빠르게 반응하여야 한다(Performance)’, ‘문제가 생겨도 즉각 복구되어야 한다(Reliability)’ 등 시스템은 사용자의 요구사항을 수행한다. 다양한 요구사항이 존재하지만, 가장 기본적으로 시스템은 기능을 수행하여야 한다. 기능(Function)이란 입력(Input)을 받아들여, 정의된 규칙(Rule)에 의해 입력을 변형하여 출력(Output)을 만들어 내는 것을 말한다. 예를 들어 증권시스템의 기능 들은 고객의 정보를 등록하고, 주식을 거래하고, 예수금을 관리한다 등이다. 시스템에 대한 요구사항은 단지 기능들에 국한 되지 않는다. ‘개발 비용이 저렴하여야 한다’, ‘사용하기 쉬워야 한다(Usability)’, ‘빠르게 반응하여야 한다(Performance)’, ‘문제가 생겨도 즉각 복구되어야 한다(Reliability)’ 등 기능 이외의 많은 부분 들도 포함한다. 사용자의 요구사항 중 기능적이지 않은 부분을 비기능적 요구사항이라 한다. 기능성은 입력을 출력으로 변형하는 것을 말하는 반면, 비기능성은 변형의 방법에 관한 제약조건을 말한다. 한 학급의 평균을 산출의 예를 들면, 비기능성은 빠르게, 안전하게, 편리하게 등 평균을 산출하는 시스템의 행위를 제약한다. 시스템이 정의된 제약조건을 만족하는 정도를 품질이라 한다. 따라서 비기능성, 품질 및 제약조건은 시점에 따라 다르게 표현되지만 같은 의미로 쓰일 수 있다. 비기능성은 기능성에 비해 모호성(Ambiguity)이 높으므로, 요구사항 정의에 있어 주의가 요구된다. * Reperenced by Sungwon Choi, Myoungji Univ.

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 발생할 수 있는 결정 요인 기능 요구사항 제약 사항 (비기능 요구사항) 소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 발생할 수 있는 결정 요인 기능 요구사항 시스템이 반드시 수행해야 되는 기능들 제약 사항 (비기능 요구사항) 소프트웨어 개발 시, 이미 결정된 사항들 Ex) 기간, 비용, COTS, etc. 품질 속성 (비기능 요구사항) 소프트웨어 개발할 때 요구되는 품질 속성들 Ex) 가용성(Availability), 성능, 보안, 유지보수성, etc. 소프트웨어 아키텍처 기능 요구사항 품질 속성 제약 사항

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은? Terminal Host 호스트 구조

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Server Client 소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Server Client Client – Server 구조

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Middleware DBMS Client 소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Middleware DBMS Client 3-tier 구조

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Thin Client Presentation 소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? Thin Client Presentation Middleware DBMS 4-tier 구조

소프트웨어 아키텍처 결정 요인 아키텍처를 작성할 때 가장 중요한 것은 ? 품질 속성(Quality)

소프트웨어 아키텍처 결정 요인 기능과 품질은 상호 독립적(orthogonal)이다. 소프트웨어 아키텍처 결정 요인 기능과 품질은 상호 독립적(orthogonal)이다. 두개의 다른 시스템에 같은 기능을 구현할 수 있다. 두개의 시스템이 서로 다른 구조를 가지고 있는 것은 품질 속성이 다르기 때문이다. Example> 포탈의 communication channel과 우주 왕복선의 communication channel 아키텍처 구성은 특정한 품질을 높이지만 특정 품질에는 안 좋을 수 있다. 미들웨어를 두는 것은 유지보수에 도움은 되지만 성능을 오히려 저해한다. 이것을 아키텍처 Tradeoff라고 한다. 품질 속성은 반드시 초기 설계에 반영이 되어야 한다. 기능 요구사항을 만족시키는 개발을 한 후에 품질을 더 한다?

기능 요구사항 - 유스케이스 유스케이스 분석 기법 사용자 중심 요구사항 모델링 유즈케이스는 각각 독립적 유즈케이스와 액터 간 상호작용을 통해 시스템 분석 사용자 비즈니스와 애플리케이션 영역을 이해 작업 중심적 : Diagram 으로 요구사항 이해 유즈케이스는 각각 독립적 High Priority Use Case = High Priority Requirements 단순한 유즈케이스 나열 : 전체적인 시스템 요구사항 이해 어려움 비기능적인 요구사항은 표현이 어려움 표준 Graphic 표기 Communication 개선, 해석의 Risk 감소

기능 요구사항 – 유스케이스 다이어그램 ATM 시스템 예제

기능 요구사항 – 유스케이스 시나리오 1. UC_0001: Withdraw cash 1.1 설명고객이 ATM으로부터 자신의 계좌에 입금되어 있는 돈을 출금한다. 1.2이벤트흐름 1.2.1 기본흐름 1. ATM은 고객의 유효성을 확인하기 위해 ‘Check Validity’ 유스케이스를 포함한다. 2. ATM은 사용자에게 인출금액 입력화면을 출력한다. 3. 사용자는 ATM에 인출금액을 입력한다. 4. ATM은 카드를 꺼내어 사용자에게 돌려준다. 5. ATM은 사용자에게 영수증을 발급여부를 물어본다. 6. ATM은 사용자에게 영수증을 발급하여 준다. 7. ATM은 사용자에게 돈을 지급한다. 8. ATM은 초기화면으로 돌아간다. 1.2.2 대안흐름 1.2.3 예외흐름 1.3 조건 1.3.1 선행 조건 1.3.2 후행 조건 1.4 기타

제약 사항 비즈니스 제약 사항 기술적 제약 사항 조직적 제약 사항 법률적인 제약 (ex. 개인의 위치를 찾을 경우 반드시 피 위치 추적자의 동의를 사전에 얻어야 한다.) 회사 사규 (ex. 모든 회사 임직원은 자동으로 임직원 시스템에 등록된다.) 비즈니스 목표 (ex. 급변하는 시장에 적응하기 위해 서비스 정보를 임원들에게 주기적으로 보고해야 한다.) … 기술적 제약 사항 Compatibility (ex. Windows OS와 Linux에 모두 porting이 되어야 한다.) Conformance GUI Style (ex. 회사 표준으로 사용하는 GUI Style을 따라야 한다.) 특정 아키텍처 사용 (ex. J2EE 아키텍처를 표준으로 도입한다.) 특정 언어 사용 (ex. 모든 개발 언어는 시스템 portability가 좋은 Java를 사용한다.) 특정 국제 표준 사용 (ex. web service의 기능을 이용한다.) H/W, S/W reuse (ex. 기존 시스템의 재활용 측면에서 아래와 같은 H/W, S/W를 개발에 사용한다.) 조직적 제약 사항 시간 (ex. 본 프로젝트는 2007년 2월 1차 오픈, 2007년 8월 최종 오픈으로 한다.) 비용 (ex. 본 프로젝트는 인건비용과 H/W, S/W 구입 비용을 포함하여 총 xxx를 SKC&C에 지급한다.) 인력 (ex. SOA 전문 인력을 2명 확보해야 하나 1명만 확보되어 시스템 디자인에 투입한다.)

품질 속성의 분류 사용자 관점 개발자 관점 사용성 (Usability) 성능 (Performance) = 효율성 (Efficiency) 신뢰성 (Reliability) 가용성 (Avalability) 안전성 (Safety) 확장성 (Scalability) 유지보수성 (Maintainability) 재사용성 (Reusability) 변경용이성 (modifiability) 이식성 (Portability) 확장개발성(Extendibility) 구축가능성(Buildability) 시험용이성 (Testability)

품질 속성 모델 – ISO/IEC 25010 Functional Suitability Performance Efficiency Functional Completeness Functional Correctness Functional Appropriateness Performance Efficiency Time-Behavior Resource Utilization Capacity Compatibility Co-existence Interoperability Usability Appropriateness Recognisability Learnability Operability User Error Protection User Interface Aesthetics Accessibility Reliability Maturity Availability Fault Tolerance Recoverability Security Confidentiality Integrity Non-Reproduction Accountability Authenticity Maintain-ability Modularity Reusability Analyzability Modifiability Testability Portability Adaptability Installability Replaceability

품질 속성 시나리오 품질 속성 시나리오 Stimulus – 시스템에 적용되는 조건들 Response – Stimulus 결과 반영되는 결과들 Source of the stimulus – Stimulus를 발생하는 원인 Environment – Stimulus가 발생할 때 연계되는 외부 조건들 Artifact stimulated – Stimulus에 의해 영향 받는 산출물들 Response measure – System에 반영되는 결과를 수치화 하는 지표

품질 속성 시나리오 - 예제 가용성 일반 시나리오 대상(Artifact) : 프로세스 자극 : 예기치 못한 메시지 응답 : 운영자에 통지 후 계속 수행 환경 : 정상 오퍼레이션 응답 측정 : 정지 시간 없음 자극의 원천: 외부에서 시스템

품질 속성 시나리오 - 예제 변경용이성 일반 시나리오 대상(Artifact) : 코드 자극의 원천: 개발자 환경 : 설계 시점 응답 측정 : 세 시간 자극 : UI 변경 원함 응답 : 변경으로 인한 부작용은 없음

품질 속성 시나리오 - 예제 성능 일반 시나리오 대상(Artifact) : 시스템 자극의 근원 : 사용자 환경 : 정상 오퍼레이션 응답 측정 : 평균 2초 대기시간 자극 : 트랜잭션 초기화 응답 : 트랜잭션이 처리됨

품질 속성 시나리오 보안 일반 시나리오 대상(Artifact) : 시스템의 데이터 자극의 근원 : 제대로 식별된 개인 환경 : 정상 운영 자극 : 정보변경시도 응답 : 감사 기록유지 응답 측정 : 하루 이내 올바른 데이터 재저장

품질 속성 시나리오 사용성 일반 시나리오 대상(Artifact) : 시스템 자극의 근원 : 사용자 환경 : 실행 시 응답 측정 : 취소는 1초 이내 이루어짐 자극 : 에러의 영향을 최소화하고자 함 응답 : 현재 오퍼레이션을 취소하고자 함

품질 속성 시나리오 - 예제 품질 속성 도출, 시나리오 작성 및 순위 결정 품질 요구사항명 요구사항 설명 난이도 중요도 확장성 신규 서비스 추가의 용이성 시스템 개발자가 신규 상품을 시스템에 적용하려 할 때, 기존 상품의 변동 없이 신규 상품(Universal 보험 상품 등은 제외)은 4일 이내, 유사 상품은 4시간 이내에 기간 시스템 및 SFA에 launch해야 한다. (테스트 시간은 제외) 상 성능 Latency 서비스 사용자가 서비스를 사용하려 할 때, 단순한 조회일 경우, 평균 3초 이내(NSP 프로젝트의 범위내 기준으로, 최대 10초 이내), 온라인 통계자료 조회일 경우는 평균 10초(최대 30초) 이내로 처리해야 한다. (예외 특이건에 대하여는 해당시점에 협의하여 성능목표를 정함) 정보 제공성 일마감 지원 서비스 관리자가 일마감 정보를 원할 경우 특정 시간(예: 자정)이후에 일마감 정보 실시간으로 제공해야 한다. 중 월마감 지원 서비스 관리자가 월마감 정보를 원할 경우 수납 마감일 이후 3일 이내에 월마감 정보 제공해야 한다. 실시간성 실시간 처리 정보계 시스템은5분 주기로 정보를 수집해야 한다. 하

요구사항 기술서 - 주의사항 읽고 이해하기 쉬운 표현 사용 명확한 표현을 사용 긍정적인 표현을 사용한다. 부정적인 요구사항은 긍정의 의미로 표현한다. 다중부정표현을 피한다. 능동적인 표현을 한다. 요구사항에 충분한 정보를 제공한다. 생략할 것은 과감히 생략한다. Model을 포함하여 설명한다. 명확한 표현을 사용 모호한, 다중의미를 가지는 용어를 피한다. usually, generally, often, normally, typically, user friendly, efficient, flexible, maximize, minimize, improved, easy, simple 일관성있는 용어를 사용한다. Glossary 기술: 조직, 도메인의 표준용어사용

Question ?