728x90

첫번째

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 : 사용자기반모델링

  ② 특징 : 명세 작성이 간편하고 의사전달 방법이 다양하다. 그리고 불충분한 명세가능성, 모호성

 

 

 - 차이 : 정형이 비정형보다 표현이 간결.

728x90
TOP