자격증/정보처리기사

[복습] 1과목. 소프트웨어 설계 흐름 정리

지이구 2020. 7. 24. 03:08

시나공 책 한번 읽고나서 복습 겸 암기하기위해서 정리한 것

정말 중요한 개념들만 정리해놓은거라 여기서 모르는 거 없어야된다는 마음으로 적었다

내일은 2과목 복습해야지

 

+추가로 학습하는 개념이 생기면 계속 수정할 것

 


[소프트웨어 생명 주기]

폭포수 모형(Waterfall Model)  //★특징, 개발 과정 순서

프로토타입 모형(Prototype Model, 원형 모형)  //개념, 개발 과정 순서

나선형 모형(Spiral Model, 점진적 모형)  //특징, 개발 과정 순서

 

애자일 모형(Agile Model)  //★개념, 종류, 4가지 핵심 가치

-       스크럼(Scrum)  //팀 구성원, 개발 과정 순서

-       XP(eXtreme Programming)  //5가지 핵심 가치(용단의피존), 개발 과정, 주요 실천 방법(종류)

-       칸반(Kanban)

-       Lean, 크리스탈

-       ASD 등


[현행 시스템 파악 절차]

1단계: 시스템 구성 파악, 시스템 기능 파악, 시스템 인터페이스 파악

2단계: 아키텍처 구성 파악, 소프트웨어 구성 파악

3단계: 하드웨어 구성 파악, 네트워크 구성 파악


[개발 기술 파악]

운영체제  //개념, 고려사항(가용성, 성능, 기술지원, 주변기기, 구축비용)

데이터베이스 관리 시스템(DBMS)  //개념, 종류, 고려사항(가용성, 성능, 기술지원, 상호 호환성, 구축비용)

웹 애플리케이션 서버(WAS)  //개념, 고려사항(가용성, 성능, 기술지원, 구축 비용)


[요구 사항]

요구사항  //★개념, 유형별 비교

-       기능 요구사항(Functional requirements)

-       비기능 요구사항(Non-functional requirements)

-       사용자 요구사항(User requirements)

-       시스템 요구사항(System requirements)(소프트웨어 요구사항)

 

요구사항 개발 프로세스  //★단계별 내용과 순서

-       도출(Elicitation) → 분석(Analysis) → 명세(Specification) → 확인(Validation)

-       요구사항 도출 기법: 인터뷰, 설문, 브레인스토밍, 프로토타이핑, 유스케이스 등

-       요구사항 분석 기법

  •     요구사항 분류(Require Classification)
  •     개념 모델링(Concept Modeling)
  •     요구사항 할당(Requirement Allocation)
  •     요구사항 협상(Requirement Negotiation)
  •     정형 분석(Formal Analysis)

-       요구사항 확인 기법

  •     요구사항 검토(Requirement Reviews)
  •     프로토타이핑(Prototyping)   //장단점
  •     모델 검증(Model Verification)
  •     인수 테스트(Acceptance Test)

 

 

UML(Unified Modeling Language)  //개념 모델링에서 주로 쓰임, 개념, 구성 요소

-       사물  //구조(Structural), 행동(Behavioral), 그룹(Grouping), 주해(Annotation)

-       관계

-       다이어그램  //구조적(Structural), 행위(Behavioral)


[사용자 인터페이스 & 화면 설계]

UI의 3가지 분야  //물기표(물리적, 기능적, 표현과 구성)

UI의 특징

UI의 구분  //NCG

 

UI의 4가지 기본 원칙 //직유학유

-       직관성

-       유효성

-       학습성

-       유연성

 

UI표준 및 지침

한국의 웹 콘텐츠 접근성 지침(KWCAG)  //인식, 운용, 이해, 견고성 +내비게이션 구조의 요소

 

UI 설계 도구  //★와스프유목

-       와이어프레임(Wireframe)  //뼈대

-       목업(Mockup)  //정적

-       스토리보드(Stroyboard)  //흐름

-       프로토타입(Prototype)  //동적

-       유스케이스(Use Case)  //사용자

 

UI 요구사항 확인

 

SW 품질 표준 지침 ISO/IEC 9126

-       기능성(Functionality)  //요구 만족 기능

-       신뢰성(Reliability)  //일관되게 오류 없이

-       사용성(Usability)  //사용자의 이해, 사용

-       효율성(Efficiency)  //할당시간, 한정자원으로 신속 처리

-       유지 보수성(Maintainability)  //개선, 확장 가능성

-       이식성(Portability)  //다른 환경에도 적용

 

UI 프로토 타입  //장단점, 종류(페이퍼, 디지털), 제작 단계

UI 설계서  //개념, 작성 순서

UI의 유용성 평가  //실행 차(기능), 평가 차(결과)

UI 시나리오 문서  //작성원칙, 요건, 기대효과

 

HCI(Human Computer Interaction or Interface)  //for 최적의 UX

UX(User Experience)  //개념, 특징(주관성, 정황성, 총체성)

감성공학  //요소 기술(기반, 구현, 응용)


[소프트웨어 아키텍처]

소프트웨어 아키텍처의 기본 원리  //★

-       모듈화(Modularity)

-       추상화(Abstraction)

-       단계적 분해(Stepwise Refinement)

-       정보 은닉(Information Hiding)

 

소프트웨어 아키텍처의 품질 속성

-       시스템 측면

-       비즈니스 측면

-       아키텍처 측면

 

소프트웨어 아키텍처의 설계 과정

설계 목표 설정 → 시스템 타입 결정 → 아키텍처 패턴 적용 → 서브시스템 구체화 → 검토

*시스템 타입: 대화형, 이벤트, 변환형, 객체 영속형
*아키텍처 패턴: 레이어, 클라이언트-서버, 파이프-필터, 모델-뷰-컨트롤러 등

 

아키텍처 패턴  //★장점, 종류

-       레이어 패턴(Layers Pattern)  //OSI 7계층

-       클라이언트-서버 패턴(Client-Server Pattern)

-       파이프-필터 패턴(Pipe-Filter Pattern)  //데이터 스트림, UNIX의 Shell

-       모델-뷰-컨트롤러 패턴(Model-View-Controller Pattern)  //대화형에 적절

-       기타 패턴(마스터-슬레이브, 브로커, 피어투피어, 이벤트-버스, 블랙보드, 인터프리터)

 

객체지향(Object-Oriented)  //★구성요소, 개념

-       객체(Object)

-       클래스(Class)

-       캡슐화(Encapsulation)

-       상속(Inheritance)

-       다형성(Polymorphism)

 

결합도(Coupling)  //★★★강약, 결합도는 낮을수록 품질 上

-       약 Data – Stamp – Control – External – Common – Content 강

응집도(Cohesion)  //★★★강약, 응집도는 높을수록 품질 上

-       강 Funtional – Sequential – Communication – Procedure – Temporal – Logical – Coincidental 약

 

팬인(Fan-In), 팬아웃(Fan-Out)  //최적화: 팬인은 높게, 팬아웃은 낮게 설계

-       팬인(자신을 호출하는 모듈의 수)  //꽂혀있는

-       팬아웃(자신이 호출하는 모듈의 수)  //뻗는

 

공통 모듈  //명세 기법

-       정확성(Correctness)  //해당 기능 필요

-       명확성(Clarity)  //중의적 해석X

-       완전성(Completeness)  //모든 것을 기술

-       일관성(Consistency)  //상호 충돌X

-       추적성(Traceability)  //관계 파악

 

코드  //기능(식별, 분류, 배열, 종류

-       순차 코드(Sequence Code)  //기준에 따라 차례대로

-       블록 코드(Block Code)  //공통성에 따라 구분

-       10진 코드(Demical Code)  //10진 분할

-       그룹 분류 코드(Group Clasification Code)  //대중소분류 구분

-       연상 코드(Mnemonic Code)  //관계있는 숫자나 문자

-       표의 숫자 코드(Significant Digit Code)  //물리적 수치 그대로

-       합성 코드(Combined Code)  //2개 이상 조합

 

디자인 패턴  //by, GoF,★아키텍처 패턴과 비교(아키텍처: 전체 시스템, 디자인 패턴: 서브)

-       생성 패턴(Creational Pattern) 5개

      ①  추상 팩토리(Abstract Factory)  //구체적 클래스 의존 X

      ②  빌더(Builder)  //인스턴스를 건축하듯 조합

      ③  팩토리 메소드(Factory Method)  //서브 클래스 처리, 캡슐화

      ④  프로토타입(Prototype)  //원본 객체 복제

      ⑤  싱글톤(Singleton)  //어디서든 참조, 동시에 X

 

-       구조 패턴(Structural Pattern) 7개

      ①  어댑터(Adapter)  //호환성있게 변환

      ②  브릿지(Brigde)  //서로 독립적이게 확장

      ③  컴포지트(Composite)  //복합, 단일 구분 없이

      ④  데코레이터(Decorator)  //능동적 기능들 확장

      ⑤  퍼싸드(Façade)  //복잡한 서브 클래스를 간편하게 사용

      ⑥  플라이웨이트(Flyweight)  //인스턴스를 가능한 공유해서 사용

      ⑦  프록시(Proxy)  //접근이 어려운 객체, 인터페이스 역할

 

-       행위 패턴(Behavioral Pattern) 11개

      ①  책임 연쇄(Chain of Resposibility)  //다음 객체로 넘어감

      ②  커맨드(Command)  //요청을 객체로 캡슐화

      ③  인터프리터(Interpreter)  //문법 표현 정의

      ④  반복자(Iterator)  //접근 잦은 객체

      ⑤  중재자(Mediator)  //객체간 상호작용을 캡슐화

      ⑥  메멘토(Memento)  //시간 되돌리는 기능

      ⑦  옵서버(Observer)  //상태의 변화 전달

      ⑧  상태(State)  //동일한 동작 다르게 처리

      ⑨  전략(Strategy)  //동일한 알고리즘 캡슐화

      ⑩  템플릿 메소드(Template Method)  //상위클래스, 하위클래스

      ⑪  방문자(Visitor)  //클래스들의 처리 기능 분리


[시스템 인터페이스]

시스템 인터페이스 요구사항 명세서  //내용, 분석, 절차

①    시스템 인터페이스 요구사항 목록 만듬

②    자료 준비

③    기능적/비기능적 요구사항 분류

④    요구사항 분석, 내용 추가 수정

⑤    시스템 인터페이스 요구사항 명세서와 목록 공유

 

인터페이스 요구사항 검증

①    검토 계획 수립

②    검토 및 오류 수정

③    베이스라인 설정

 

요구사항 검증 방법

-       요구사항 검토  //동료검토, 워크스루, 인스펙션

-       프로토타이핑

-       테스트 설계

-       CASE 도구 활용  //일관성 분석

 

인터페이스 요구사항 검증의 주요 항목

-       완전성  //누락X

-       일관성  //충돌X

-       명확성  //이해O

-       기능성  //어떻게보다 무엇을

-       검증 가능성 

-       추적 가능성  //명세서와 설계서 추적

-       변경 용이성

 

인터페이스 시스템 식별

-       개발 시스템 

-       내외부 시스템

-       내외부 시스템 환경 및 관리 주체  //실제 운용 환경과 HW담당자

-       내외부 시스템 네트워크 연결 정보

-       인터페이스  //인터페이스 요구사항 명세서

-       인터페이스 시스템

 

송수신 데이터 식별

-       인터페이스 표준 항목  //시스템 공통부, 거래 공통부

-       송수신 데이터 항목

-       공통 코드

 

인터페이스 방법 명세화  //+송수신 방법 명세화, 송수신 데이터 명세화, 오류 식별 및 처리 방안 명세화

-       시스템 연계 기술

      ①  DB link  //DB에서 제공

      ②  API/Open API  //송신 DB에서 데이터 읽는 API 프로그래밍

      ③  연계 솔루션  //EAI서버와 클라이언트 이용

      ④  Socket

      ⑤  Web Service  //WSDL, UDDI, SOAP 프로토콜 이용

-       인터페이스 통신 유형

      ①  단방향  //시스템만 거래요청

      ②  동기  //거래 요청 후 응답 대기

      ③  비동기  //거래 요청 후 다른 작업 수행하다 응답오면 처리

-       인터페이스 처리 유형

      ①  실시간  //바로 처리

      ②  지연 처리  //한건 당 비용이 높을 때

      ③  배치  //다량의 데이터 처리

-       인터페이스 발생 주기

 

시스템 인터페이스 설계서  //구성, 작성

-       (시스템 인터페이스 목록 + 시스템 인터페이스 정의서) 구성

시스템 인터페이스 목록 송수신 시스템 정보, 통신 유형
시스템 인터페이스 정의서 데이터 항목 및 구현 요건 기술

-       (인터페이스 송수신 방법 + 인터페이스 송수신 데이터 명세화) 기반 작성

 

미들웨어  //개념, 종류

-       DB  //ODBC, IDAPI, Glue

-       RPC(Remote Procedure Call)  //Entera, ONC/RPC

-       MOM(Message Oriented Middleware)  //온라인 업무보다 이기종 분산 데이터 시스템에 적절

-       TP-Monitor(Transaction Processing Monitor)  //온라인 트랜잭션 처리 및 감시, tuxedo, tmax

-       ORB(Object Request Broker)  //COBBA, Orbix

-       WAS(Web Application Server)  //웹, 미션 크리티컬 가능, WebLogic, WebSphere

728x90
반응형