소프트웨어 설계(통합)

2025. 2. 11. 14:10자격증

반응형
반응형
소프트웨어 설계 1-1 요구사항 확인 1. 현행 시스템 분석 (1)플랫폼 기능 분석 : 1)애플리케이션을 구동시키는 데 필요한 소프트웨어의 환경, 2) 상호 호환 가능한 결합체 3)공정한 거래를 통해 교환
(2)플랫폼 성능 특성 분석 (경사응가) 플랫폼 성능 특성을 측정하는 항목 ①경과시간 ②사용률 ③응답시간 ④가용성
(3)운영체제 분석 (신성기주구) ①신뢰도 ②성능 ③기술지원 ④주변기기 ⑤구축비용
                               품질 측면                지원 측면
(4)네트워크 분석 (백라스게방) ①백본 ②라우터-3계층 ③스위치-2계층 ④게이트웨이 ⑤방화벽
(5)DBMS 분석 (가성호기구) ①가용성 ②성능 ③호환성 ④기술지원 ⑤구축비용
                                  성능 측면               지원 측면
(6)비즈니스 융합 분석(고시가공생) ①고객가치 ②시장유통 ③가치제안 ④공급역량 ⑤생산방식
2. 요구사항 확인 (1) 요구분석 기법 (1)요구공학 개념 (명확) ①도출 ②분석 ③명세화 ④검증 및 확인
(2)요구분석 특징 ①소단위명세서: 데이터 흐름도 그림 ②도메인분석 : 개발하고자 하는 소프트웨어에 적용 분야
(3)요구사항 분석 단계 절차 (개할협정)
①요구사항 류 ②념 모델링 생성 및 분석 : DFD, UML, E-R다이오그램, 스퀀스다이어그램, 유스케이스 다이어그램, 애자일 방법 ③요구사항 당 ④요구사항 상 ⑤형 분석:수학적 기호로 표현
(4)요구사항 분석 기술
①청취기술 ②인터뷰와 질문기술 ③분석기술 ④중재기술 ⑤관찰기술 ⑥작성기술 ⑦조직기술 ⑧모델작성기술
(5)DFD; Data Flow Diagram : 시스템 모델링 기구로서 가장 보편적으로 사용, 자료흐름그래프, 버플(Bubble)차트
(6)데이터 흐름도 구성요소: (프플스터) : 데이터(Data) 흐름에 중심을 두는 분석용 도구
Process처리기○ ②Flow데이터 흐름 → ③Store저장소 = Terminator단말(시작과 종료)
(7)자료사전 DD; Data Dictionary : 단위들을 구체적으로 명시하는 사전이다. DFD나타나는 어떤 자료의 흐름도 자료 사전에 정의
= : ~으로 정의 ②+ : 자료의 연결 ③( ) : 자료 생략 ④{ } 자료의 반복 ⑤[ ] 자료의 선택 ⑤** 자료의 설명, 주석
(8)요구사항 분석이 어려운 이유
1. 개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.
2. 사용자의 요구사항이 모호하고 불명확 하다.
3. 개발 과정 중에 요구사항이 계속 변할 수 있다.
4. 사용자의 요구는 예외가 많아 열거와 구조화가 어렵다.
2. 요구사항 확인 (2) UML (1)UML; Unified Modeling Language 통합모델링언어 : 객체지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어
(2)UML통합모델링언어 특징 (가구명문 : ①가시화 언어 ②구축 언어 ③명세화 언어 ④문서화 언어)
(3)UML통합모델링언어 구성요소 (사관다 : ①사물 Things ②관계 Relationship ③다이어그램 Diagrams)
(4)UML통합모델링언어 다이어그램 : 사물관계를 모아 그림(다이어그램)으로 표현한 형태
1.구조적 다이어그램 Structural Diagram = 정적 다이어그램 Static Diagram (클객컴  배복패)
①클래스Class Object 포넌트Component Deployment 합체 구조Composite Structure 키지Package
2.행위적 다이어그램 Behavioral Diagram = 동적 다이어그램 Dynamic Diagram (유시커상활타)
①유스케이스Usecase ②스퀀스Squence ③커뮤니케이션Communication ④상태State ⑤활동Activity ⑥타이밍Timing
(5)클래스 Class Diagram : 클래스와 클래스, 즉 클래스 속성 사이의 관계를 표현


           

클래스 내부접근만 허용 | + 클래스 외부접근을 허용 | # 동일 패키지·파생 클래스 접근 가능 | ~ 동일 패키지 클래스 접근 가능
         Private        <        default        <         Protected             <      Public
(6)유스케이스 Usecase Diagram : 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램


(7)시퀀스[교류,순차] 다이어그램 : 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램 (객생메실)
Object 명선Lifeline 시지Message Activation


(8)UML통합모델링언어의 관계 : 사물과 사물 사이의 연관성을 표현 (연의 일실 포집)
①연관Association→ 클래스 안에 객체 사용 || house - Person
②의존Dependency····> 매개 변수로 사용 || A - C
③일반화Generalizationㅡ▷ 상속관계 (클래스 상속) || Animal Duck, Bear, Dog
④실체화Realization····▷ 상속관계 (인터페이스 상속) <<interface>> 길러멧
⑤포함,합성Compositionㅡ◆ GOM Player Screen, Controller
⑥집합,집약Aggregationㅡ◇ 컴퓨터 – 키보드, 마우스, 모니터
(9)UML통합모델링언어 확장 모델의 스테레오 타입 Stereotype : 기본요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘
<< >> : 길러멧; Guilemet
<<include>>포함관계 ②<<extend>>확장관계:기본유스케이스 수행시 특별한 조건 만족할 때 수행 ③<<interface>>
2. 요구사항 확인 (3) 애자일(Agile) (1)애자일; Agile 방법론 특징 : 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법. 기존 개발방법론의 한계 극복하기위해 등장
(2)애자일 방법론 특징 (기소유가피)
1.프로젝트 요구사항은 (능 중심)으로 정의한다.
2.절차와 도구보다 개인과 ()을 중요하게 생각한다.
3.작업 계획을 짧게 세워 요구변화에 ()하고 (신속)하게 대응할 수 있다.
4.소프트웨어가 잘 실행되는 데 ()를 둔다.
5.고객과의 (드백)을 중요하게 생각한다.
(2)애자일선언문 (개변동고),
인과 상호 작용 ②화에 대응 ③작하는 소프트웨어 ④객과의 협력
(3)애자일 방법론 유형
XP; eXtreme Programming : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론, 실용성 강조
-XP 5가지 가치 : 용단의피존 1.용기Courage 2.단순성Simplicity 3.의사소통Communication 4.피드백Feedback 5.존중Respect
-XP12가지 기본원리 : Pair Programming, Collective Ownership, Continuous Integration, metaphor, Test Driven Develop, Refactoring
②스크럼Scrum : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트
③린Lean : 도요타의 린 시스템 품질기법을 소프트웨어에 적용해서 낭비 요소를 제거하여 품질 향상시킨 방법론 (낭품지 확인사전)
④크리스탈Crystal : 프로세스나 도구보다 사람에게 더 많은 중점을 두는 방법론
ASD; Adaptive Software Development : 합동 애플리케이션 개발(Joint Application Development)을 사용한다.
FDD; Feature Driven Development : 신규 기능 단위로 하는 개발
3. 분석 모델 확인 (1)모델링 기법 : 실세계의 물리 현상을 이용하기 쉬운 형식으로 표현하는 기법
1. 엔지니어들이 공통된 개념을 공유
2. 응용문제를 이해하는 데 도움을 줄 수 있다.
3. 자료흐름도는 프로세스 위주의 모델링 방법이다.
(2)분석 자동화 도구 : 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발
CASE; Computer Aided Software Engineering
1. 소프트웨어생명주기 SDLC 전체 단계를 연결해 주고 자동화해주는 통합된 도구,
2. 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성.
(3)분석자동화 도구 특징- 원천기술 ①구조적 기법 ②프로토타이핑 기술 ③자동프로그래밍 기술 ④정보 저장소 기술 ⑤분산 처리 기술을 사용
(4)분석 자동화 도구의 분류 ①상위 CASE : 모순검사, 오류검증, 자료흐름도 작성 ②하위 CASE : 소스코드 생성 지원, 시스템 명세서 생성
(5)CASE 분석 자동화 도구 주요 기능
1. (그래픽)을 지원한다.
2. 소프트웨어생명주기 SDLC (전 단계를 연결)한다.
3. 다양한 소프트웨어 (개발 모형)을 지원한다.
4. 표준화된 개발 환경 구축 및 (문서 자동화) 기능을 제공한다.
5. 작업자 간의 (커뮤니케이션)을 증대한다.
(6)요구사항 관리 도구 필요성
①비용 편익 ②변경 추적 ③영향 평가
(7)애플리케이션 생명주기 관리 ALM; Application Lifecycle Management : 지라JIRA
1-2 화면 설계 1. UI 요구사항 확인 (1)UI사용자 인터페이스; User Interface
1. 정보기기나 소프트웨어 화면 등에서 사람이 접하게 되는 화면
2. 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체.
(2)UI유형 (CG NO)
CLI; Command Line Interface : 명령어를 텍스트로 입력하여 조작
GUI; Graphical User Interface : 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용
NUI; Natural User Interface : 신체 부위를 이용하는 사용 (터치, 음성)
OUI; Organic User Interface : 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스 (마이너리티 리포트)
(3)UI설계원칙 (직유학유)
①직관성Intuitiveness : 쉬운 검색, 쉬운 사용성, 일관성(직접적인 이해)
②유효성Effectiveness : 쉬운 오류 처리 및 복구 (목표 달성)
③학습성Learnability : 쉽게 학습, 쉬운 접근, 쉽게 기억 (학습이 용이)
④유연성Flexibility) : 사용자가 실수를 해도, 오류예방, 실수 포용, 오류 감지 (포용, 실수 방지)
(4)UI시스템의 필요 기능
①사용자의 입력을 검증한다. (사용자가 숫자를 입력하는 곳에 문자를 입력하면 안되게끔)
②에러처리와 에러메시지 처리를 한다. (사용자에게 에러메시지를 보여줘야 한다.)
도움(HELP)프롬프트(PROMPT)를 제공한다. (UI를 사용할 때 사용방법과 어떤 명령을 실행 할 수 있는 제공해야 한다.)
(5)UI화면 구성요소
①콤보박스   ②토글버튼   ③텍스트 박스 ④라디오버튼    ⑤체크박스
(6)UI개발을 위한 주요 기법
3C: Company, Customer, Competitor SWOT: Strength(강점), Weakness(약점), Opportunity(기회), Threat(위협) ③시나리오 플래닝; Scenario :다양한 시라니오 설계 ④사용성 테스트: 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트 ⑤위크숍: 소집단 정도의 인원
(7)UI컨셉션 : 와스정이어프레임스케치  ②페이퍼 프로토타입을 통한 토리보드 설계 ③보 구조 설계
(8)UI시나리오 문서의 작성 요건 : (완일이가추수)
①완전성; Complete ②일관성; Consistent ③이해성; Understandable ④가독성; Readable ⑤추적 용이성; Traceable ⑥수정 용이성; Modifiable
(9)스토리보드(문서) : 구축하는 서비스를 위한 대부분의 정보가 수록된 문서
(10)UI화면설계구분 : 와스프이어프레임 ②토리보드 ③로토타입(시제품)
2. UI 설계 (1)UI설계프로세스 (문사 작컴 인디)
제정의 ②용자모델정의 ③업분석 ④퓨터오브젝트 및 기능정의 ⑤사용자 터페이스정의 ⑥자인평가
(2)UI흐름설계절차 (기입 유양)
능작성 ②력요소확인 ③수케이스설계 ④기능 및 식 확인                                                         (애플워치)
(3)감성공학 Sensibility Ergonomics : 인간의 감성을 정성적, 정량적으로 측정 및 평가하고 과학적으로 분석하여 이를 구체적인 제품 설계
1-3 애플리케이션 설계 1. 공통 모듈 설계 (1) 공통 모듈 (1)모듈 : 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어 (응집도는 높게, 결합도는 낮게)
(2)공통 모듈 원칙 (정명완 일추) ①정확성Correctness ②명확성Claruty ③완전성Completeness ④일관성Consistency ⑤추적성Traceability
(3)모듈화 기법 ①루틴 ②메인루틴: 메인함수 ③서브루틴: 사용자 만든 함수 호출
(4)바람직한 모듈 설계 방안
1. 모듈의 독립성과 재사용성을 높이기 위해 결합도는 낮추고, 응집도는 높인다. (결합도는 Coupling이라고도 한다.)
2. 모듈의 복잡도와 중복성은 줄이고, 일관성은 유지 한다.
3. 모듈의 기능은 예측이 가능 해야 하며, 지나치게 제안적이어서는 안된다.
4. 적당한 모듈 크기를 유지한다.
5. 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
6. 유지보수가 용이해야 하고, 이식성을 고려해야 한다.
(5)팬인과 팬아웃 분석을 통하여 시스템의 복잡도를 측정할 수 있다.
FAN-IN: 어떤 모듈을 제어하는 모듈의 수(상위 모듈의 수) / FAN-OUT: 어떤 모듈에 의해 제어 되는 모듈의 수 (하위 모듈의 수)
ð  시스템 복잡도를 최적화하기 위해서는 팬인은 높게 팬아웃은 낮게 설계해야 한다.
1. 공통 모듈 설계 (2) 설계 모델링 (1)소프트웨어 설계 유형 (자아인프협)
료구조 설계 : 소프트웨어를 구현하는데 필요한 자료 구조로 변환하는 과정
키텍처 설계(설계도) : 소프트웨어를 구성하는 컴포넌트 간의 관계(=아키텍처) 를 정의
상위 설계     터페이스 설계 : 소프트웨어와 상호작용(=인터페이스)하는 컴퓨터 시스템, 사용자 등이 어떻게 통신 하는지를 기술
로시저 설계 : 소프트웨어 컴포넌트의 프로시저 서술로 변환하는 과정
약에 의한 설계: 클래스에 대한 여러 가정을 공유하도록 명세한 설계
                    1. 선행조건 : 컴포넌트의 오퍼레이션 사용 전에 참이 되어야 할 조건 ()
                    2. 결과조건 : 사용 만족되어야 할 조건 ()
3. 불변조건 : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건 (항상)
 
하위 설계 : 모듈 설계
(2)소프트웨어 설계 원리
①상향식 설계 : 하위 기능들로부터 시작하여 à 제일 상위에 있는 기능 접근해 가는 방식
②하향식 설계 : 상위 기능에서 시작하여 à 하위 기능들로 분할해 가면서 설계하는 방식
(3)코드 설계 종류
①연상코드: KR 코리아, US미국 ②블록코드: 전화번호 국번 02는 서울, 031은 경기도, 블록으로 구분  ③순차코드: 순서대로 일련번호 부여 ④표의 숫자 코드: 물리적인 수치인 길이, 넓이, 용량 등을 표시한 코드 ⑤십진코드: 10진수 형태 코드 ⑥그룹 분류식 코드: 학번 입학연도
(4)코드 오류 종류
①사본 오류; Transcription Error : 한 자리 잘못 표기
②전위 오류; Transposition Error : 연속된 두 글자가 서로 바뀌어 표기
③생략 오류; Omission Error : 한 글자를 빼 먹고 기술한 경우
④첨가 오류; Addition Error : 한 글자를 추가되어 기술한 경우
⑤이중전위 오류; Double Transposition Error : 전위 오류가 중복 발생한 경우
 
(5)HIPO; Hierarchy Input Process Output 계층적 입력 처리 출력
: 시스템의 분석 및 설계, 문서화 할 때 사용되며 하향식 소프트웨어 개발을 위한 문서화 도구 이다.
①체계적인 문서관리가 가능하다.
기호, 도표 등을 사용해서 보기가 쉽고 이해가 쉽다
기능자료의존 관계를 동시에 표현할 수 있다.
변경, 유지보수가 용이하다.
⑤시스템의 기능을 고유 모듈(하향식)로 분할하여 이들 간의 인터페이스를 계층구조로 표현한 것을 HIPO 차트라고 한다.
HIPO차트의 종류 ①가시적 도표 ②총체적 도표 ③세부적 도표
1. 공통 모듈 설계 (3) 소프트웨어 아키텍처 (1)소프트웨어 아키텍처 : 구성요소 간의 관계를 표현하는 시스템의 구조(설계도)
(2)소프트웨어 아키텍처 4+1 : 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근방법. (유논프구배)
①유스케이스 뷰 ②논리 뷰 ③프로세스 뷰 ④구현 뷰 ⑤배포 뷰
(2)소프트웨어 아키텍처 비용 평가 모델 종류 (SACCA )
SAAM; Software Architecture Analysis Method : 경험이 없는 조직에서도 활용 가능한 비용 평가 모델
ATAM; Architecture Trade-off Analysis Method : 아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이행 상충관계까지 평가
CBAM; Cost Benefit Analysis Method : 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
ADR; Active Design Review : 소프트웨어 아키텍처 구성요소 간 응집도를 평가하는 모델
ARID; Active Reviews for Intermediate Designs : 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용 평가 모델
(3)소프트웨어 아키텍처 패턴 유형
①계층화 패턴 : OSI7계층 ②클라이언트-서버 패턴 ③파이프-필터 패턴 ④브로커 패턴 ⑤모델-뷰 패턴; MVC; Model View Controller pattern
(4)소프트웨어 아키텍처 시스템 품질속성 (가변성보사시)
①가용성Availability ②변경 용이성Modifiability ③성능Performance ④보안성Security ⑤사용 편의성Usability ⑥시험 용이성Testability
2. 객체지향 설계 (1) 객체지향 (1)객체지향 개념 : 실세계의 개체를 속성(Attribute)과 메서드(Method)가 결합한 형태의 객체(Object)로 표현하는 기법이다.
(2)객체 지향 구송요소 (클객메 메인속)
①클래스Class ②객체Object ③메소드Method ④메시지 Message ⑤인스턴스 Instance ⑥속성 Property
(3)객체지향기법 (캡상다추정관)
①갭슐화; Encapsulation : 관련성이 많은 데이터랑 함수들 이런 걸 묶어서 처리하는 것을 캡슐화
②상속성Inheritance : 부모 클래스에서 자식 클래스로 상속 받는 것.
③다형성Polymorphism : 하나의 메시지에 대해서 여러 가지 방법으로 대답할 수 잇는 능력
④추상화 Abstraction : 공통 성질들이 있는데 이것을 추출해서 하나의 클래스로 만드는 것을 추상화(네오, 모피어스를 추상화하면 사람이 된다.)
⑤정보은닉Information Hiding : 데이터나 필요하기 않은 것, 외부에 공개되지 않아야 될 메서드 같은 경우들을 안으로 숨기는 것
⑥관계성Relationship (집분연일특)
1.     집단화 : is part of, part-whole,
2.     분류화 : is-instance-of,
관계성      3.  연관화 : is-member-of
4.     일반화 : is-a, 상위 클래스의 특성을 하위 클래스가 상속받음
5.     특수화 : is-a, 상위 클래스의 특성을 상속받으면서 하위 클래스에서 나름대로 수정을 가하고 자기 자신의 고유한 특성을 갖는 관계
(4)객체지향설계원칙 (SOLID)
①단일 책임의 원칙; Single Responsibility Principle : 사장이란 클래스가 있는데 사장 일만 해야 하는데 사원 일도 하고 있다.
②개발 폐쇄 원칙; Open Close Principle : 확장에는 열려 있고 변경에는 닫혀 있어야 한다.
③리스코프 치환의 원칙; Liskov Substitution Principle : 자식은 부모 클래스를 대체할 수 있어야 된다는 것이다.
④인터페이스 분리의 원칙; Interface Segregation Principle : 자기가 안 쓰는 건 만들지 말자는 원칙이다.
⑤의존성 역전의 원칙; Dependency Inversion Principle : 추상을 매개로 메시지를 주고 받아서 관계를 최소화해야 된다는 겁니다.
(4)객체지향분석OOA; Object Oriented Analysis의 개념 : 사용자의 요구사항을 분석하여 요구된 문제와 관련된 클래스, 속성과 연산, 관계 등으로 나누어서 분석하는 기법
(5)객체 지향 방법론 종류
OOSE; Object Oriented Software Engineering (야콥슨Jacobson) :유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용
OMT; Object Modeling Technology (럼바우 Rumbaugh) : 객동기
1.     객체 모델링Object Modeling : 객체 다이어그램
2.     동적 모델링Dynamic Modeling : 상태 다이어그램
3.     기능 모델링Functional Modeling : 자료 흐름도 DFD
OOD; Object Oriented Design (부치 BooCh)
Coad Yourdon방법론은 E-R다이어그램을 사용한다. (Entity-Relationship Diagram엔티티 관계 도형)
Wirfs-Brock 방법론은 분석과 설계 간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 분석 방법이다.
2. 객체지향 설계 (2) 디자인 패턴 (1)디자인 패턴의 개념 : 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
(2)디자인 패턴 구성요소 (패문솔사결샘)
①패턴의 이름 ②문제 및 배경 ③솔루션 ④사례 ⑤결과 ⑥샘플코드
(3)디자인 패턴 유형 (Gangs of four) GoF 목적 : 생구행 ①생성 ②구조 ③행위
(4)디자인패턴종류
(:빌 프로 팩앱싱)     성 패턴 : ;Builder, 프로토타입;Prototype, 토리;Factory, 스트랙;Abstract, 글톤Singleton)
(:브데퍼플 프록 컴어) 조 패턴 : 릿지Bridge 코레이터Decorator 사이드Facade 라이웨이트Flyweight 프록Proxy 포지트Composite 댑터Adapter
③ 행위 패턴 : 생성패턴과 구조패턴 제외하고 나머지는 모두 행위 패턴이다..
(5)디자인 패턴의 장단점
장점 1. 재사용을 통한 개발 시간 단축 2. 소프트웨어 구조 파악 용이 3. 객체 지향 설계 및 구현의 생산성을 높이는 데 적합 4. 소스코드 최소화

단점 1. 객체 지향 설계 / 구현 위주로 사용 2. 초기 투자 비용의 부담
1-4 인터페이스 설계 1. 인터페이스 요구사항 확인 인터페이스 : 그래픽 화면과 사람과 서로 대화를 주고 받으면서 시스템을 이용할 수 있도록 하게 해주는 인터페이스.
(1)내외부 인터페이스 요구사항의 분류
①기능적 요구사항 : 소프트웨어가 가져야 하는 기능적 속성에 대한 요구사항 () 게시판-, 조회, 삭제 (기완일 1.기능성 2.완전성 3.일관성)
②비기능적 요구사항 : 성능, 사용의 용의성, 신뢰도, 보안성, 운용상의 제약, 안전성 등 시스템 전반과 관련된 요구사항
(2)요구공학 개념 : 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 ①도출 ②분석 ③명세 ④검증 및 확인
(3)요구사항 명세 원리 및 검증항목 (명완검일수추개)
①명확성 ②완전성 ③검증 가능성 ④일관성 ⑤수정 용이성 ⑥추적 가능성 ⑦개발 후 이용성
(4)요구공학프로세스는 (개발)단계(관리)단계로 구성된다.
(5)요구사항 개발단계 (①도출 ②분석 ③명세 ④검증 및 확인)
도출 단계 : ①설문조사: 사용자가 다수일때, 간접 ②인터뷰: 직접대화  ③브레인스토밍: 자유롭게 회의 ④롤 플레잉: 맡은 사용자 역활 ⑤워크숍: 전문적 지식 공유 ⑥델파이 기법: 전문가의 경험적 지식 (설인 브롤 워델)
분석 단계 : ①요구사항 류 ②념 모델링 생성 및 분석 ③요구사항 당 ④요구사항 상 ⑤형 분석 (분개할협정)
명세 단계 : 형 명세기법-수학적 원리와 표기 ②정형 명세기법-자연어 ③구사항 명세서-요구사항 명세 단계 산출물 (정비요)
확인 및 검증 : ①요구사항 검토 ② CASE도구 활용 검증 ③프로토타이핑 활용 ④모델 검증 ⑤테스트 케이스 및 테스트를 통한 확인
⑥ 정형 기술 검토 활용 ⑦베이스라인을 통한 검증 ⑧요구사항 추적표(RTM)를 통한 검증
1.     료 검토 Peer Review : 2~3명이 진행하는 리뷰
동워인    2.  크 스루 Walk Through : 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화 (비형식적)
3.  스펙션 Inspection(점검) : 개발 저작자 외의 다른 전문가 도는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법 (형식)
(6)요구사항 관리단계 (협기변확 : ①요구분석 협상 ②기준선 ③변경관리 ④확인 및 검증
2. 인터페이스 대상 식별 (1)시스템 구성요소 (입출처제피)
①입력Input ②출력Output ③처리Process ④제어Control ⑤피드백Feedback
(2)시스템 아키텍처 설계원칙 (대확고운보)
규모 트랜잭션 처리 및 온라인 성능 보장 ②시스템 아키텍처 장성 보장 ③서비스 가용성 보장 ④영관리 효율성 ⑤시스템 안 강화
(3)시스템 아키텍처 물리 설계 (OLTP; On-Line Transaction Processing : 호스트컴퓨터와 온라인으로 접속된 여러 단말 간의 처리 형태의 하나)
1-Tier: Tier간 네트워크 트래픽이 없다. 2-Tier : 일반 온라인 트랜잭션 처리 OLTP업무에 적합, AP DB서버 간 네트워크 트래픽 발생
3-Tier: 1. 프리젠테이션 서버, AP서버, DB서버 3대 이상으로 구성 2. 대용량 온라인 트랜잭션 처리 OLTP업무에 적합 3. 물리적 노드 수가 최소 3개 이상 필요하다. 4. Tier간 네트워크 트래픽이 발생한다.
(4)인터페이스 시스템 구성 (송수중)
신 시스템 ②신 시스템 ③계 시스템
3. 인터페이스 상세 설계 (1)내·외부 송수신 연계 방식
①직접 연계 방식 – 중간 매개체 없이 내·외부 송·수신 연계 (기관 내부)
②간접 연계 방식 – 연계서버를 이용하여 내·외부 송·수신 연계 (기관 외부)
(2)내·외부 송수신 연계 기술 (링커에제하소)
DB링크: DB DB를 연결 ②DB연결: Connection pool 연결 ③API/Open API: 네이버 지도 API 호출하여 사용 ④JDBC: JAVA ⑤하이퍼링크: HTML <A>태그를 링크 사용 ⑥소켓 : 프로그램과 프로그램 연결 IP/Port이용 연결하는 것을 소켓, 연결하는 선을 세션이라고 한다.
(2)내외부 송수신 통신 유형
*. 실시간 : ①단방향 ②양방향 ③동기: 응답이 올 때까지 대기Request-Reply하는 방식 ④비동기: 응답을 기다리지 않는다. ⑤지연처리)
*. 배치 : DB / File 거래 : 정해진 시간에 통신을 수행하는 방식 ≠ 실시간 반대 (배치 Crontec 배치 프로그램)
(3)인터페이스 설계 : 인터페이스 설계는 인터페이스 (목록 도출) 및 인터페이스 (정의서 작성)을 통해서 구현한다.
*. 인터페이스 설계서 = 인터페이스 목록 + 정의서
(4)인터페이스 정의서 주요 항목 (인최크시데)
①인터페이스ID ②최대 처리 횟수 ③데이터 크기(평균/최대)  ④시스템 정보 ⑤데이터 정보
(5)미들웨어 솔루션 개념 : 1. 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어
                         2. 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어
(6)미들웨어 솔루션 유형 (디원 메트 레객 와)
DB미들웨어: 애플리케이션과 DB간에 통신
②원격 프로시저 호출 RPC; Remote Procedure Call : 원격 프로시저를 로컬 프로시저처럼 호출하는 방식
③메시지 지향 미들웨어MOM; Message-Oriented Middleware : 메시지 기반의 비동기형 메시지 전달 방식 미들웨어 (비동기형 메시지: 어떤 요청을 했을 때 응답을 기다리지 않고 다른 일을 하다가 응답이 오면 그때 응답을 받는 것)
트랜잭션 처리 모니터 TP Monitor; Transaction Processing Monitor : 온라인 업무에서 트랜잭션을 처리, 감시하는 미들웨어
                                                         분산 환경의 핵심 기술인 분산 트랜잭션을 처리하기 위한 미들웨어
⑤레거시웨어 Legacyware(=기존의 시스템) : 업데이트 기능을 덧붙이고자 할 때 사용하는 미들웨어
⑥객체 기반ORB; Object Request Brokers : 코바 CORBA 표준 스펙을 구현한 객체지향 미들웨어
WAS; Web Application Server : ( WEB ------WAS ------DB ) 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과  애플리케이션 연동을 지원하는 미들웨어


(7)EAI; Enterprise Application Integration 개념 : 비즈니스 프로세스를 중심으로 기업 내 각종 플랫폼 및 애플리케이션 간의 상호 연동이 가능하도록 통합하는 솔루션이다.  (Adaptor ßà단단한 연결 (기업 내 ERP, 결재))
(8)ESB; Enterprise Service Bus 개념 : 기업에서 운영되는 서로 다른 플랫폼(이기종) 및 애플리케이션들 간의 연계해서 관리 운영 할 수 있도록 서비스 중심 통합을 지향하는 기술이다. (A기업 ß à B기업, 기업간 표준 맞춤, 느슨한 통합)

 

반응형