socket 기술: 통신을 위한 프로그램을 생성하여 port를 할당하고 client의 통신 요청시, client와 연결하는 내/외부 송/수신 연계 기술
DB link기술: internet web script 언어와 database를 연결하는 기술 (e.g., ODBC, JDBC)
scrum technique(스크럼 기술): method for managing projects for rapid development and testing esp wthin a small team. Agile 방법론 중의 하나로 project 관리를 위한 상호 점진적 개발 방법론임. (매일 정해진 시간, 정해진 장소에서 단기간에 개발하는 개발팀을 위한 프로젝트 관리 중심의 방법론)
prototype 기술: prototyping을 통해 사용성을 검증받아가며 개발하는 기법 (시스템 개발 초기에 사용자(고객)의 요구 기능을 시제품으로 만들어서 사용자로부터 사용성을 검증받아가면서 시스템을 개발하는 기법)
open hubware(오픈허브웨어): 많은 사용자들이 판매, 구매, 유통 등의 서비스를 지원받을 수 있도록 지원하는 개방형 고프트웨어이다. 온라인 쇼핑, 택배회사 등에서 사용하는 소프트웨어.
Grayware(그레이웨어): 악성 프로그램과는 다르게 사용자의 동의를 얻어 설치되며, 컴퓨터에 직접적인 위협은 가하지 않는다. 사용자 입장에서는 불편을 야기하는 악성 프로그램일 수 있지만 유용한 소프트웨어일 수 있다.
Agile software 개발 기법의 가치:
-프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
-계약 협상보다는 고객과의 협업에 더 가치를 둔다
-계획을 따르기보다는 변화에 대응하는 것에 더 가치를 둔다.
Agile 방법론 선언문: 유동적임 & 빠름 & 고객과의 협력 중심
-개인과 상호 작용을 프로세스와 도구보다 중시한다.
-동작하는 소프트웨어를 포괄적인 문서보다 중시한다.
-고객과의 협력을 계약의 협상보다 중시한다.
-변화의 대응을 계획의 수행보다 중시한다.
UML(Unified Modeling Language):
-기능적 모델은 사용자 측면에서 본 시스템 기능이며, UML에서는 Use Case Diagram을 사용한다
Class Diagram이란?:
-UML diagram중 시스템 내 클래스의 정적 구조를 표현하고 클래스와 크래스의 속성 사이의 관계를 나타내는 것
-정적 모델은 객체, 속성, 연관 관계, 오퍼레이션의 시스템 구조를 나타내며, UML에서는 Class Diagram을 사용한다.
Activity Diagram이란?:
-객체의 동적 행위를 활동으로 표현한다.
-동적 모델은 시스템의 내부 동작을 말하며, UML에서는 Sequence Diagram, State Diagram, Activity Diagram을 사용한다.
State Diagram: 하나의 객체가 가진 상태와 그 상태의 변화에 의한 동작순서를 나타낸다.
-Sequence Diagram은 객체들 사이의 메시지 교환을 나타내며, State Diagram은 하나의 객체가 가진 상태와 그 상태의 변화에 의한 동작 순서를 나타낸다.
Use Case:
-Association(연관): use case와 actor의 관계 표현
-Include(포함): 하나의 use case를 수행하기 위해서 다른 use case가 선행되어야 하는 관계 표현
-Extend(확장): 기본 use case 수행 시 특별한 조건을 만족할때 수행하는 use case
-Generalization(일반화): 한 use case가 다른 use case를 상속한 관계 표현
-Grouping(그룹화): 여러 개의 use case를 조직화하는 관계 표시
Message(메시지): 객체와 객체들 사이의 인터페이스 형식
Encapsulation(캡슐화): 객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정
Polymorphism(다형성): 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질
Inheritance(상속): 상위 수준 그룹의 모든 특성을 하위 수준 그룹이 이어받아 재사용 or 확장하는 특성
객체지향 분석 방법론 중,
Coad-Yourdon 방법: E-R Diagram을 사용하여 객체릐 행위를 데이터 모델링하는 데 초점을 둔 방법
Rumbaugh Method(럼바우): 객체, 동적, 기능 모델로 나누어 수행하는 방법
-Object(객체) modeling: 시스템에서 요구되는 객체를 찾아내어서 객체의 속성과 연산 식별 및 객체들 간의 관계를 규정하여 diagram으로 표시한다. (럼바우 분석 기법에서 정보 모델링이라고도 함)
-Dynamic(동적) modeling: 객체 모형들의 행위, 상태, 조건을 파악
-Functional(기능) modeling: 입출력 결정, 자료 흐름도(DFD) 작성
Booch Method: 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법
Jacobson Method: Use Case를 강조하여 사용하는 방법
객체지향 분석: software를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석해 내는 기법
구조적 분석: DFD, DD, Mini-Spec 사용
기능적 분석: 서비스 기능 위주 분석
실시간 분석: 통신의 송수신 데이터 분석
Design pattern: 유사한 문제를 해결하기 위해 설계들을 분류하고 각 문제 유형별로 가장 적합한 설계를 일반화하여 체계적으로 정리해놓은것. software개발에서 효율성 & 재사용성 향상시킬수있다.
Design pattern을 이용한 software 재사용은 개발자들 간의 의사소통 더 원활하게 만들어서 sortware 코드의 품질과 생산성 향상이 가능하다.
Design pattern을 이용한 software 재사용은 개발 프로세스의 신뢰성을 향상시킬수있다.
GoF(Gang of Four) design pattern:
-creational pattern(생성패턴): 5가지 - Abstract Factory, Factory Method, Builder, Prototype, Singleton
-structual pattern(구조패턴): 7가지 - Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
-behavior pattern(행위패턴): 11가지 - Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
바람직한 software 설계 지침:
1. 모듈의 기능을 예측할 수 있도록 정의
2. 이식성을 고려하기
3. 적당한 모듈의 크기를 유지하기
4. 모듈의 결합도는 최소화, 응집도는 최대화
하향식 설계: software 설계시, 제일 상위에 있는 Main User Function에서 시작하여 기능을 하위 기능들로 분할해 가면서 설계하는 방식
상향식 설계: 하위 기능들을 묶어서 제일 상위에 있는 Main User Function으로 설계하는 방식
객체지향 설계: 시스템을 구성하는 클래스와 속성, 연산을 인식하여 클래스를 객체로, 속성을 자료 구조로, 연산을 알고리즘으로 표현하는 것.
데이터 흐름 설계: 기능을 설계할 때 입력 데이터와 출력 데이터의 흐름을 파악하여 설계하는 방식이다.
design pattern을 이용한 software 재사용으로 얻어지는 장점:
-software 코드의 품질 향상
-개발자들 사이의 의사소통 원활하게
-software의 품질 & 생산성 향상
미들웨어(Middleware): 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용 프로그램과 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어
WAS(Web Application Server): client/server 환경보다는 웹 환경을 구현하기 위한 미들웨어
MOM(Message Oriented Middleware): 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어로 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용됨.
ORB(Object Request Broker): 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어
RPC(Remote Procedure Call): 응용 프로그램의 procedure를 사용하여 원격 procedure를 로컬 procedure처럼 호출하는 방식의 미들웨어
모듈A의 fan-in 수: 해당 모듈의 상위 모듈의 수
모듈A의 fan-out 수: 해당 모듈의 하위 모듈의 수
현행 시스템 분석에서 고려해야하는 항목:
1. DBMS 분석
2. network 분석
3. 운영체제 분석
인적 자원 분석 및 개발팀 구성은 현행 시스템 분석에서 하지않으며, 소프트웨어 개발 계획 단계에서 한다.
Linux(sort-of-descendent if Unix)
-designed to behave similarly to a Unix system. most of the old shells and other text-based programs run on it
Linux 명령어:(case sensitive)
-cd: change directory
-ls: list contents in the directory
-mv: move files
-cat: 파일의의 내용을 화면에 출력 (also can be used to concatenate filenames)
-pwd: print working directory 현재의 디렉토리를 출력
-uname: unix/linux 버젼 확인
-root: superuser(관리자) or the "/" directory(root directory)
-cd ..: 상위 디렉토리로 변경 (can be used multiple times to move up multple levels of parent directories)
-mkdir: make directory
CASE(Computer Aided Software Engineering): software 개발을 지원하는 도구로 software개발자들을 지원한다. (software사용자들을 위해 사용하는 도구가 아님)
-software module의 재사용성 향상
-자동화된 기법을 통해 software 품질 향상
-software 유지보수를 간편하게 수행할 수 있다
Agile(애자일) 방법: 사용자의 요구사항이 빈번하게 변경되는 문제점을 극복하기 위한 방법이다.
UML 모델링: 요구분석, 설계, 구현 등의 software개발 과정에서, 개발자 간의 의사 소통을 원활하게 이루어지게 하기위하여 표준화한 모델링 언어이다. 그래서 UML diagram 모두가 요구사항 모델링에 활용되는 도구이다. (단계 다이어그램(phase diagram)은 UML diagram에 존재하지 않는다)