첫번째
1. 요구사항(Requirements) 검증 체크리스트
① 유효성(Validity) : 고객의 필요를 충족하는 기능을 제공하는지
② 일관성(Consistency) : 충돌하는 요구사항이 존재하는지
③ 완결성(Completeness) : 고객이 요구한 모든 기능이 포함되었는지
④ 현실성(Realism) : 예산과 기술적으로 일정을 수행 가능한지
⑤ 검증 가능성(Verifiability) : 만들고 난 뒤 요구사항들을 검증할 수 있는지
2. UML 모델
① 연관 관계(Association) : 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음
('has-a')관계 라고도 함.
② 의존 관계(Dependency) : 한 사물의 명세가 바뀌면 다른 사물에 영향을 주는 관계.
③ 실체화 관계(Realization) : 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정.
④ 일반화 관계(Generalization) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관계
('is-a')관계 라고도 함.
3. Extreme Programming(XP) 개념 정리
- 사용자의 요구사항이 변할 수 있음.
- 고객과 직접 요구사항에 대해 User Strory 활용
- 기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것.
3-1 XP의 5가지 가치
① 용기
② 단순성
③ 커뮤니케이션
④ 피드백
⑤ 존중
4. 소프트웨어 설계에서 사용되는 추상화 기법 (암기 : 제끼자)
① 제어 추상화 : 제어의 정확한 메커니즘을 정의하지 않고 원하는 효과를 정하는데 이용
② 기능 추상화 : 입력자료 → 출력자료로 변환하는 과정
③ 자료 추상화 : 자료와 자료에 적용될 수 있는 기능을 함께 정의해서 자료 객체를 구성
5-1. Information Hiding 뜻
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용
- 클래스 외부에서 특정 정보에 접근을 막음.
- ex ) ip, port
5-2. 객체지향 설계의 정보 은닉(Information Hiding)의 장점
① 기능의 교체나 변경에 대한 유연성 제공
② 동일한 타입의 다른 구현 객체들을 교체로 동적 기능 변경 가능
③ 구체적인 구현이 없는 상태(인터페이스)로도 정확한 연동 코드의 생성 가능
④ 모듈화하여 코드의 가독성증가
⑤ 개발기간 단축
6. 소프트웨어 공학에서 모델링의 뜻
- 개발팀이 응용문제를 이해하는 데 도움을 준다.
- 개발될 시스템에 대해 여러 엔지니어들이 공통된 개념을 공유하는 데 도움이 됌.
- 절차적인 프로그램을 위한 자료흐름도는 프로세스 위주의 모델링 방법.
7. 요구 분석(Requirement Analysis)
- 도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링
7-1. 기능적 요구사항.
- 시스템이 수행해야되는 행위들을 구체화
- 시스템이 제공해야되는 기능을 정의
- ex) 입ㆍ출력 기능, 데이터베이스 기능, 통신 기능 등
7-2. 비기능적 요구사항.
- 시스템이 가져야 하는 기능 이외의 요구사항
- 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
① 품질, 안전 부분 : 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성
② 성능 부분 : 응답 속도, 자원 사용량 등
③ 보안 부분 : 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 등
8. 클래스 다이어그램의 요소
① Operation(작업) : 클래스의 동작을 의미, 메서드 정의, UML에서 동작에 대한 인터페이스를 지칭함.
9. 마스터-슬레이브 아키텍처
- 마스터 : 작업을 분리, 배포 및 슬레이브 리턴값으로 최종 결과값 계산
- 슬레이브 : 요청 작업 처리하고 처리된 결과를 리턴
① 실시간 시스템에서 사용
② 마스터는 연산, 통신, 조정을 책임진다.
③ 마스터는 슬레이브를 제어 가능.
10. 요구 사항 정의 및 분석ㆍ설계의 결과물을 표현하기 위한
모델링 과정에서 사용되는 다이어그램.
- Data Flow Diagram
- UML Diagram
- E-R Diagram
10-1 이진트리 모형
- AVL Diagram : 이진 트리의 높낮이의 불규칙을 보완하고 일정하게 처리한다.
11. 객체지향의 개념.
① 실세계에 존재하거나 생각할 수 있는 것을 뜻함.
② 클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현.
③ 다형성은 상속받은 여러 개의 하위 객체들이
다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질.
* 상속 - 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미.
12. 사용자 인터페이스 : 사용자 관점으로 설계되어야 함.
13. GoF(Gang of Four) 디자인 패턴
13-1 23가지 디자인 패턴을 3가지 분류로 정리한 디자인 패턴.
① 생성 패턴 :
- Abstract Factory(추상 팩토리), Builder(빌더),
- Factory Method(팩토리 메서드) : Virtual-Constructor 패턴 이라고도 함.
1) 상위 클래스 객체를 생성하는 인터페이스를 정의, 하위클래스에서는 인스턴스를 생성
2) 객체를 생성하기 위한 인터페이스를 정의, 어떤 클래스가 인스턴스화 될 건지 서브클래스가 결정.
- Prototype(프로토타입) : 프로토타입 생성 후 인스턴스 복제 사용
- Singleton(싱글턴, 단일체) : 한 클래스에 한 객체만 존재하게 제한
② 구조 패턴 :
- Adapter(어댑터, 적응자) : 인터페이스가 호환되지 않는 클래스들을 함께 이용
타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다.
- Bridge(브릿지) : 구현부에서 추상층을 분리하여 각자 독립적 확장이 가능함.
- Composite(컴포지트),
- Decorator(데코레이터, 장식자) : 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있다.
- Facade(파사드), Flyweight(플라이웨이트), Proxy(프록시)
③ 행위 패턴 :
- Chain of Responsibility(책임 연쇄), Command(커맨드), Interpreter(인터프리터), Iterator(이터레이터),
- Mediator(중재자) : 객체간 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성.
- Memento(메멘토), Observer(옵서버),
- State(상태) : 동일한 동작을 객체의 상태에 따라 다르게 처리해야 할 때 사용하는 디자인 패턴
- Strategy(전략), Template Method(템플릿 메서드), Visitor(방문자)
14. 애자일 개발 방법론 정의
- 요구사항, 설계, 구현, 시험의 단계를 통해 개발하는 방법론
- SW 개발 단꼐의 변화에 신속 대응하려고 요구사항을 지속 분석 후 반영하여 시간을 최소화하는 방법론
14-1 애자일(Agile) 방법론 특징
① 반복적인 개발을 통한 잦은 출시를 목표로 함
② 기존모형(폭포수, 프로토타입, 나선형)의 문제점을 보완한 모형
③ 소프트웨어를 점증적으로 개발
④ 출시 주기를 짧게 하여 다양한 요구 변화에 대응
⑤ 가볍고 실용적인 소프트웨어 개발 방법론
15. 럼바우(Rumbaugh)의 객체지향 분석 기법 특징.
① 객체(Object) 모델링(객체 다이어그램)
- 정보모델링, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정
② 동적(Dynamic) 모델링(상태 다이어그램)
- 상태도를 이용해 시스템의 행위를 기술
③ 기능(Function) 모델링(자료흐름도(DFD))
- 자료흐름도를 통해 다수의프로세스들 간의 자료 흐름 중심으로 처리 과정 표현
* 자료 흐름도 : ① 버블(bubble) 차트라고도 함.
② 구조적 분석 기법에 이용
③ DFD의 요소는 화살표, 원, 사각형, 직선(단선/이중선)으로 표시.
16. 순차 다이어그램(Sequence Diagram)
① 객체들의 상호 작용을 나타내기 위해 사용
② 시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정 강조
③ 정적 다이어그램보다는 동적 다이어그램에 가까움.
④ 교류 다이어그램의 한 종류
17. 객체지향 분석 기법 정의.
① 동적 모델링 기법이 사용될 수 있음.
② 데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업.
③ 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
* 절차지향 분석 기법 : 기능 중심, 시스템 파악하여 순차적 처리가 중요시되는 하향식 방식.
18. 용어정리.
- CLI(Command Line Interface) : 정해진 명령문자열을 입력하여 시스템을 조작하는 사용자인터페이스(User Interface)
19. 분산 시스템 미들웨어(Middleware)의 특징.
- 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환.
- 위치 투명성(Location Trasparency)를 제공.
- 분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현 제공.
20. 소프트웨어 아키텍처의 정의
- 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조
- 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어져 각 사용자의 수정, 확장이 용이.
- 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정.
- 파이프 필터 아키텍처에서 데이터는 파이프를 통해 단방향으로 흐르고, 필터 이동시 오버헤드가 발생될 수 있음.
두번째
1. 시스템의 구성요소의 종류 및 개념정리
① 입력(input) ② 처리(Process) ③ 출력(Output) ④ 제어(Control) ⑤ 피드백(Feedback)
* 유지보수(Maintenance)
2. 유스케이스의 개념.
-
3. 요구사항 개발 프로세스.
- 도출 → 분석 → 명세 → 확인
4. 용어 정리.
- 인스턴스(Instance) - 같은 클래스에 속한 각각의 객체를 의미.
- 메서드(Method) - 객체에 소속된 함수.
- 모듈(Module) - 실행코드와 객체들(함수, 클래스, 변수)의 묶음.
- 메세지(Message) - 객체에게 어떤 행위를 하도록 지시하는 명령.
- 클래스(Class) - 객체를 정의, 객체의 설계도, 틀
- 패키지(Package) : 클래스를 묶어두는 물리적인 단위, 클래스들의 집합.
- 객체(Object) : 실제로 존재하는 것, 클래스에 정의된 내용대로 메모리에 생성된 것.
5. 캡슐화(Encapsulation) - 정보은닉(Information Hiding)
- 속성과 오퍼레이션의 일부를 감추어서 객체의 외부에서는 접근이 불가능하게 하는 개념.
6. 첫번째(13번)의 정리함.
7. 요구사항 분석이 어려운 이유.(쉬워서 안적음)
8. S/W 아키텍처 설계에서 시스템 품질속성의 종류
- 가용성, 변경용이성, 성능, 보안성, 사용편의성, 시험용의성
9. 용어 정리.
- 송신 시스템 : 연계할 데이터를 DB와 어플리케이션에서 연계테이블 또는 파일 형태로 생성 후 송신
- 수신 시스템 : 수신한 연계테이블, 파일데이터를 수신시스템에서 관리하는 데이터 형식에 맞게 변환하여 DB에 저장하거나 애플리케이션에서 활용할 수 있도록 제공.
- 중계 서버 : 송/수신 시스템 사이에서 데이터를 송ㆍ수신하고, 연계데이터의 송ㆍ수신 현황을 모니터링하, 연계데이터의 보안 강화 및 다중플랫폼 지원 등이 가능.
10. CASE(Coumputer-Aided Software Engineering)의 원천 기술
① 구조적 기법, ② 프로토타이핑 기술, ③ 자동프로그래밍 기술, ④ 정보 저장소 기술, ⑤ 분산 처리 기술
11. 두번째(2번)에 내용 정리.
12. 용어 정리.
- 파이프 필터 구조 : 서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일.
- 클라이언트 서버 구조 : 컴포넌트가 다른 컴포넌트에게 서비스를 요청. 데이터가 여러 컴포넌트를 거치며 처리.
- 계층 구조 : 모듈들로 응집된 계층 단위로 SW를 구성. 계층간에 사용 가능의 관계로 표현.
- MVC 구조 : 모델-뷰-컨트롤러, 기능을 분리한 아키텍처
13. 첫번째(15번)에 내용 정리.
14. UML(Unified Modeling Language) 다이어그램 모델별 종류 및 개념 정리.
{- 액티비티 다이어그램(Activity) : 업무의 흐름을 모델링하거나 객체의 생명 주기를 표현
동적 모델 {- 시퀀스 다이어그램(Sequence) : 객체 간의 메시지 전달을 시간적 흐름에서 분석
* 시퀀스 구성 항목 : (액 객 생 메 실) 액터, 객체, 생명선, 메세지, 실행(활성), 제어 삼각형
{ - 상태 다이어그램(State) : 객체가 가진 상태와 상태 변환은 나타냄.
정적 모델 { - 클래스 다이어그램(Class) : ① 시스템의 구조적인 모습을 그림.
② 클래스의 정적 구조 표현하고 클래스와 클래스, 클래스와 속성 사이의 관계를 나타냄
③ 클래스의 동작을 의미, 메서드 정의, UML에서 동작에 대한 인터페이스를 지칭함.[Operation(작업)]
기능적 모델 { - 유스케이스 다이어그램(Use Case)
- (Deployment) : 기업 환경의 구성과 컴포넌트들 간의 관계를 그림.
- (Collaboration) : 객체와 객체가 주고받는 메시지 중심의 작성 동적 다이어그램
- 컴포넌트 다이어그램(Component) : 소프트웨어 구조가 그림
* UML 종류
- 행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍
- 구조 다이어그램 : 클래스, 객체(오브젝트), 컴포넌트, 복합체 구조(Composite Structure), 배치(Deployment), 패키지
15. 첫번째(2번)의 내용 정리.
16. CASE의 개념 및 주요 기능.
- 개념 : 시스템 개발과정의 일부 또는 전체를 자동화시킨 것.
- 특징 : ① 소프트웨어 생명주기의 전체 단계를 연결하고 자동화하는 통합된 도구를 제공.
② 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 제공.
16-1.상위 CASE
- 개념 : 요구 분석과 설계 단계를 지원.
- 특징 : ① 모델들 사이의 모순검사 기능.
② 모델의 오류검증 기능.
③ 자료흐름도 작성 기능.
16-2.하위 CASS
- 개념 : 코드를 작성하고 테스트하며 문서화하는 과정 지원.
- 특징 : 원시코드 생성 기능
16-3 통합 CASE : 소프트웨어 개발 주기 전체과정을 지원.
17. 쉬워서 패스.
18. 애자일 개발 방법론의 종류
- ① 익스트림 프로그래밍(XP, eXtreme Programming)
② 스크럼(Scrum)
③ 기능 주도 개발(FDD, Feature Driven Development)
④ 적응형 소프트웨어 개발(ASD, Adaptive Software Development)
⑤ 익스트림 모델링
* 하둡(Hadoop) : 분산 환경에서 빅 데이터를 저장, 처리할 수 있는 자바 기반의 오픈 소스 프레임워크.
19. 첫번째(13번)의 정리.
20. 사용자 인터페이스(UI)의 특징
① 구현하고자 하는 결과의 오류를 최소화
② 사용자의 편의성을 높여 작업시간을 단축시킨다.
③ 막연한 작업 기능에 대해 구체적인 방법을 제시
④ 사용자 중심의 상호 작용.
세번째
1. 리눅스 명령어 정리
① ls : 디렉토리 목록
② cat : 파일내용 출력, 두개이상의 파일 연결
③ pwd : 현재 디렉토리 경로 및 파일 출력
④ uname : 시스템 정보를 출력
2. 시스템 연계기술의 종류 및 정의
- 소켓 기술 : 프로그램을 생성하여 포트를 할당하고, 클라이언트의 통신 요청 시 클라이언트와 연결하는
내ㆍ외부 송ㆍ수신 연계기술
- DB 링크 : ① 데이터베이스에서 제공하는 DB 링크 객체
② 수신측에서 DB링크를 생성하고 송신측에서 해당 DB링크를 직접 참조하는 방식이다.
- DB 커넥션 : 수신측의 WAS에서 송신측 DB로 연결하는 DB 커넥션 풀을 생성
- API/OpenAPI : 송신측의 DB에서 데이터를 가져와 제공하는 응용 프로그램 인터페이스
- JDBC : ① 수신측 프로그램에서 JDBC드라이버를 이용하여 송신 시스템 DB와 연결
② DBMS 유형, DBMS 서버 IP와 Port, DB Instance 정보가 필요하다.
- 하이퍼링크
- 소켓 : ① 서버는 통신을 위해 소켓을 생성하여 포트를 할당
② 클라이언트 통신 시 클라이언트와 연결하고 통신하는 네트워크 기술.
3. 객체지향 개념 용어 정리
① 메시지(Message) : 객체의 행위를 표현
② 캡슐화(Encapsulation) : 추상화된 객체의 구현을 은닉, 시스템의 한 컴포넌트의 내부구현이 다른 컴포넌트에 의존하지 않는 것. 객체 내부의 구현을 클라이언트에게 보이지 않게 함.
③ 다형성(Polymorphism) : 파생된 클래스와 관련되면서 또 다른행위를 요구.
④ 상속(Inheritance) : 하나의 클래스가 다른 클래스로부터 속성과 메서드를 물려받음.
4. 첫번째(13번) 내용과 같음. - GOF
5. 용어 정리
① WAS : 애플리케이션 수행 미들웨어
② MOM : 메세지 지향 미들웨어
③ RPC : 원격 프로시저 호출
④ ORB : 네트워크 호출 미들웨어
6. 소프트웨어 설계 지침
- 모듈의 기능은 예측할 수 있게 정의
- 이식성을 고려한다. ( 이식성은 다른 기종에서도 컴파일만하면 바로 돌아가는 것. )
- 적당한 모듈의 크기를 유지
- 가능한 모듈을 독립적으로 생성하고, 결합도를 최소화한다.
6-1. 소프트웨어 상ㆍ하위 설계의 종류
- 상위 설계 : 아키텍처 설계, 데이터 설계, 시스템 분할, 인터페이스 정의, 사용자 인터페이스 설계(UI 설계)
- 하위 설계 : 모듈 설계, 인터페이스 작성
7. 객체지향 분석 방법론
① Booch(부치)
- 미시적, 거시적 개발 프로세스를 모두 사용.
- 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
② Jacobson(제이콥슨)
- Use Case를 사용하여 분석
③ Coad-Yourdon
- E-R 다이어그램을 사용하여 객체의 행위를 모델링
④ Wirfs-Brock
- 분석과 설꼐간 구분이 없으며, 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행.
* 럼바우 분석 기법 : 객체, 동적, 기능 모델로 나우어 수행
8. fan-in과 fan-out의 개념
- fan-in : 특정 노드의 바로 상위 노드(부모)와 연결된 수
- fan-out : 특정 노드의 바로 하위 노드(자식)와 연결된 수
9. 현행 시스템분석 종류
- ① 플랫폼 기능 분석 ② DBMS 분석 ③ 플랫폼 성능 특성 분석 ④ 운영체제 분석 ⑤ 네트워크 분석 ⑥ 비즈니스 융합 분석
10. 미들웨어 정의
- 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용프로그램와 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어.
10-1 미들웨어 특징
① 운영체제에서 실행되는 응용프로그램 사이에서 제공하는 서비스 이외에 추가적인 서비스를 제공함.
② 미들웨어는 표준 인터페이스를 제공하기 때문에 시스템 간의 데이터 교환에 일관성을 보장.
11. CASE(Computer Aided Software Engineering)의 장점
① 모듈의 재사용성이 향상
② 자동화된 기법을 통해 소프트웨어 품질 향상
③ 유지보수 용이
12. 두번째 (14번) 내용과 같음
13. 유스케이스(Use case)의 구성요소와 개념 정리
① 연관 : use case 와 actor의 관계
② 확장 : 기본 use case 수행 시 특별한 조건을 만족할 때 수행하는 use case
③ 포함 : 시스템의 기능이 별도의 기능을 포함
④ 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
⑤ 그룹화 : 여러개의 usecase를 단순화하는 방법
14. 첫번째(10번, 14번)에 내용 있음.
15. 쉬워서 패스
16. 첫번째(15번) 내용에 정리
17. 객체지향 분석 정의
- S/W 개발을 위한 비즈니스를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석.
18. 쉬워서 패스(애자일 문제)
19. 두번째(14번)
20. 상향식ㆍ하향식 설계 개념 정리
- 상향식 설계 : 제일 상위인 main user function에서 시작하여 하위 기능들로 분할해 가면서 설계하는 방식
- 하향식 설계 : 주어진 문제를 분석하여 모듈의 전체적인 구조와 데이터를 개괄적으로 설계하고 이를 기반으로 하위레벨에서 세부적인 기능을 중심으로 설계
※ 요구사항 명세기법
- 정형 명세기법 : 수학적인 원리와 표기법 이용.
① 종류 : Z, VDM, Petri-Net(모형 기반), CSP, CCS, LOTOS(대수적방법)
② 특징 : 시스템 요구특성이 정확하고 명세가 간결하다. 명세와 구현이 일치. 그러나 이해도가 낮아 이해관계자의 작성 부담이 가중된다.
- 비정형 명세기법 : 상태, 기능, 객체 중심 명세법.
① 종류 : FSM(Finite State Machine), Decision Table, ER모델링, State chart(SADT), UseCase : 사용자기반모델링
② 특징 : 명세 작성이 간편하고 의사전달 방법이 다양하다. 그리고 불충분한 명세가능성, 모호성
- 차이 : 정형이 비정형보다 표현이 간결.
'자기계발 > 자격증' 카테고리의 다른 글
정처기 필기] 5.과목 정보시스템 구축관리 (0) | 2022.02.28 |
---|---|
정처기 필기] 4.과목 프로그래밍 언어 활용 (0) | 2022.02.24 |
정처기 필기] 3.과목 데이터베이스 구축 (0) | 2022.02.23 |
정처기 필기 ] 2.과목 소프트웨어 개발 (0) | 2022.02.20 |
정처기 필기 ] 트리 정리. (0) | 2022.02.05 |