1과목 -1장
- 소프트웨어 생명주기(소프트웨어 수명주기)
- 소프트웨어 개발 방법론의 바탕이되는것으로 정의 운용 유지보수 등의 과정을 단계별로 나눈것
- 소프트웨어 생명주기모형, 프로세스모형, 소프트웨어공학패러다임
- 폭포수모형
- 각 단계를 확실히 매듭짓고 승인후에 다음단계를진행하는 개발방법론
- 프로토타입모델
- 요구사항을 정확히 파악하기 위해서 프로토타입을 만들어 최종 결과물을 예측하는 모형으로 폭포수모델의 단점보안
- 나선형 모형
- 폭포수모형 + 프로토타입 모형의 장점 ,나선형을 돌듯 점진적으로 완벽한 최종 소프트웨어를 개발하는것(점진적모형)
- 에자일 모형
- 고객의 요구사항 변화에 유연하게 대응하기위해, 고객의 소통에 초점을 맞춤
- Srcum, XP, 칸반, Lean, 크리스탈, ASD, FDD , DSDM , DAD
- 스크럼기법
- 팀이 중심이 되어 개발의 효율성을 높힌다. 스스로 팀을 구성하고 스스로 해결할수있어야함
- 스크럼 -PO(제품책임자)
- 이해관계자의 의견을 종합하고 요구사항작성하여 백로그 작성, 스토리를 추가 but 우선순위 정할수없음, 갱신함
- 스크럼 -SM(스크럼마스터)
- 스크럼을 잘 수행하도록 객관적인 시각에서 조언
- 스크럼-DT(개발팀)
- 스크럼 - 제품백로그
- 요구사항을 우선순위에 따라 나열하는것 , 백로그에 적힌 스토리를 기반
- 스크럼 - 스프린트 계획 회의
- 제품 백로그중에 수행할 작업을 대상으로 단기일정 수립 스토리 ->task으로 분할
- 스크럼 - 스프린트
- 실제 개발을 진행하는 과정 ,TODO , 진행중 , 완료 상태를 가진다.
- 스크럼 - 일일 스프린트회의
- 약 15분 짧은 시간동안 진행상황 점검 , 서서진행 , 소멸차트 (burn down chart)에 표시
- 스크럼 - 스프린트 검토회의
- 사용자가 포함된 참석자 앞에서 테스팅 수행 , 주당 1시간정도 , 다음백로그 업데이트 준비
- 스크럼 - 스프린트 회고
- XP
- 수시로 발생하는 고객의 요구사항에 유연하게 대응하기위함, 짧고 반복적 개발주기 , 단순한 설계 , 적극적인 참여 , 소규모개발프로젝트 ( 의사소통, 단순성, 용기 , 존중, 피드백)
- XP -사용자 스토리
- XP - 릴리즈 계획 수립
- 몇개의 스토리가 적용되어 부분적으로 완료된 제품을 공개
- XP- 스파이크
- 신뢰성을 높이고 위험을 감소시키기 위한 간단한 프로그램 (해결해야하는 문제 이외는 모두 제외)
- XP- 이터레이션
- XP-승인검사
- 이터레이션 안에서 계획된 릴리즈 단위가 구현되면 수행하는 것(고객이 직접 수행)
- XP - 소규모릴리즈
- 릴리즈를 소규모로 하면 반응을 기능별로 체크가능 유연하게 대처할수있다.
- XP -주요실천방법
- 짝프로그래밍 ,테스트주도 개발 , whole team(전체팀), 계속적인 통합(continuous integration), 디자인개선 ,리팩토링 , 소규모 릴리즈
- 기능 요구사항
- 비기능 요구사항
- 사용자 요구사항
- 사용자 관점에서 본 시스템이 제공해야할 요구사항
- 시스템 요구사항
- 개발자 관점에서 본 시스템 전체가 사용자와 다른시스템에 제공해야하는 것들
- UML
- 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어, 6개의 구조다이어그램, 7개의 행위 다이어그램
- UML- 구성요소
- UML- 사물
- 모델을 구성하는 가장중요한 기본요소 관계가 형성될수 있는 대상
- UML- 구조사물
- 시스템의 개념적 물리적 요소 (클래스 , 유스케이스 , 컴포넌트 , 노드)
- UML - 행동사물
- 시간과 공간에 따른 요소들의 행위 표현 ( 상호작용 , 상태머신 )
- UML - 그룹사물
- UML- 주해사물
- UML- 관계
- 사물과 사물 사이의 연관성 연관관계, 집합관계, 포함관계, 일반화관계, 의존관계, 실체화관계
- UML -연관관계
- 2개 이상의 사물이 서로 관련되어 있음을 표현한다.
- UML- 집합관계
- 하나의 사물이 다른 사물에 포함되어 있는 관계
- UML- 포함관계
- 집합관계의 특수한 케이스로 사물의 변화가 포함되는 사물에게 영향을 미치는것을 표현
- UML-일반화관계
- 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
- UML- 의존관계
- 사물사이에 연관은 있으나 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
- UML-실체화 관계
- 사물이 할 수 있거나 해야하는 기능 (행위 인터페이스) ex) 비행기 , 새 ->날수있는
- 다이어그램
- 사물과 관계를 도형으로 표현한것 정적모델링 ->구조적다이어그램, 동적모델링 ->행위다이어그램
- 구조적 다이어그램
- 클래스 다이어그램 -클래스와 클래스사이의관계
- 객체 다이어그램 - 클래스에 속한 것 인스턴스 객체와 객체간
- 컴포넌트 다이어그램 - 컴포넌트 사이의 (구현단계에서 사용)
- 배치 다이어그램 - 요소들의 위치를 표현한다. (구현단계에서 사용)
- 복합체 구조 다이어그램 - 내부구조를 표현
- 패키지 다이어그램 - 유스케이스나 클래스 등의 모델 요소들을 그룹화
- 행위적 다이어그램
- 커뮤니케이션 다이어그램 - 시퀀스 다이어그램과 같이 메시지 뿐만 아니라 객체들간의 연관
- 상태 다이어그램 - 자신이 속한 클래스와 다른 객체 간의 상호작용
- 활동 다이어그램 - 처리 로직이나 조건
- 상호작용 개요 다이어그램 - 상호작용 다이어그램 간의 제어흐름
- 타이밍 다이어그램 - 객체 상태변화와 시간 제약을 명시적으로 표현
1과목 -2장
- 사용자 인터페이스 (UI)
- 상호작용이 활발하게 이루어지도록 하는 장치나 소프트웨어를 뜻한다. 최근 정보내용을 전달하기 위한 표현방법
- UI의 세가지 분야
- UI
- 변경이 가장많음 , 편리성 가독성 , 구체적인 방법을 제시 , 정보제공자와 공급자간 매개, 아키텍쳐 반드시 숙지
- CLI
- 명령과 출력이 텍스트 형태로 이루어지는 인터페이스
- GUI
- 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행
- NUI
- 사용자의 말이나 행동을 기기 조작하는 인터페이스
- UI- 기본원칙
- 직관성 - 누구나
- 유효성 - 목적 정확 ,완벽달성
- 학습성 -누구나 배울수있음
- 유연성 - 요구사항 최대한 수용 , 실수 최소화
- UI- 설계지침
- 사용자중심, 일관성 ,단순성 ,결과예측가능, 가시성, 표준화, 접근성, 명확성, 오류발생해결
- UI -와이어프레임
- 페이지에 대한 개략적인 레이아웃이나 UI요소 뼈대 설계( 손그림, 파워포인트 키노트 스케치 일러스트 포토샵)
- UI- 목업
- 디자인 사용방법설명 평가 , 실제로구현되진 않음(파워목업, 발사믹 목업)
- UI- 스토리보드
- 디자이너와 개발자가 최종으로 참고하는 작업지침서 , 좌측에는 화면 우측에는 디스크립션
- UI- 프로토타입
- 인터렉션을 적용하여 구현된것처럼 확인가능(오븐,,)
- UI- 유스케이스
- 사용자측면의 요구사항 , 자연어로 작성된 요구사항을 구조적으로 표현
- UI프로토타입
- 실제로 동작하는 듯이 테스트가 가능하다 (핵심적인 것만, 필요한기능 반드시 포함 , 계속 개선)
- 프로토타입 단점
- 작업시간 증가 , 자원 소모 , 중요한작업 누락가능
- 프로토타이핑종류 - 페이퍼프로토타입
- 프로토타이이핑종류 - 디지털 프로토타입
- 프로토타입 작성시 고려사항
- 계획 - 개발목적 , 환경 , 분석작업 완료되기전에
- 작성 - 작성계획, 범위를 정한다. 기간과 비용
- 프로토타입 제작단계
- 요구사항확정 ->2. 편집도구 혹은 손(기능중심) ->3.직접확인 ->4. 수행을 기반으로 수정및 합의
1과목 -3장
- 소프트웨어 아키텍쳐
- 소프트웨어의 골격이 되는 기본구조(품질 좋고 기능적 요구사항 반영 , 구현)
- 소프트웨어 아키텍쳐 - 모듈화
- 재사용, 유지관리 ,모듈단위로 나눔 너무작으면 비용많고 크면 하나개발비용크다.
- 소프트웨어 아키텍쳐 - 추상화
- 포괄적인 개념설계후에 차례로 세분화 하여 구체화시킨다.
- 소프트웨어 아키텍쳐 - 추상화 - 과정추상화
- 소프트웨어 아키텍쳐 - 추상화 - 데이터추상화
- 소프트웨어 아키텍쳐 - 추상화 - 제어추상화
- 이벤트의 절차나 방법 정의 하지 않고 대표표현
- 소프트웨어 아키텍쳐의 품질 - 시스템
- 성능, 보안 , 가용성, 사용성, 기능성, 변경용이성, 확정성, 기타속성
- 소프트웨어 아키텍쳐의 품질 - 비즈니스
- 시장 적시성, 비용과 혜택, 예상 시스템 수명, 기타 속성
- 소프트웨어 아키텍쳐의 품질 - 아키텍쳐
- 개념적 무결성, 정확성, 완결성, 구축가능성, 기타속성
- 소프트웨어 아키텍처의 설계과정
- 설계목표설정 ->시스템타입결정 ->아키텍쳐패턴적용 ->서브시스템구체화 ->검토
- 아키텍쳐패턴
- 참조할 수 있는 전형적인 해결방식 또는 예제 ,윤곽, 규칙 지침 등이 포함
- 아키텍쳐 패턴 장점
- 시간단축, 고품질, 의사소통 간편, 손쉽다, 예측
- 아키텍쳐패턴 - 레이어패턴
- 상위계층은 하위계층에 제공자가되고 , 하위계층은 상위계층의 클라이언트 , 마주보는 두 계층만 영향을 미침, 특정계층만 교체 가능
- 아키텍쳐 패턴 - 클라이언트 서버
- 하나의 서버 컴포넌트 , 다수의 클라이언트 컴포넌트로 구성 , 서버는 항상대기 , 동기화 경우 제외하고 독립적
- 아키텍쳐 패턴- 파이프 -필터패턴
- 각 단계를 필터 컴포넌트로 캡슐화 통해 데이터를 전송(재사용 ,확장 굿 , 파이프라인 구축가능 , 데이터변환 , 버퍼링 ,동기화) 대표적인 shell
- 아키텍처 패턴 - 모델 뷰 컨트롤러 패턴
- MVC (model, view controller) - 서로영향받지않고 개발가능 , 대화형 어플리케이션
- 모델 - 데이터보관
- 뷰 - 사용자 정보표시
- 컨트롤러 - 입력을 처리
- 아키텍처 패턴 - 마스터슬레이브 패턴
- 아키택처 패턴- 브로커패턴
- 요청에 맞는 사용자와 컴포넌트 연결 , 분산환경시스템
- 아키택처 패턴 - 피어투피어패턴
- 피어를 하나의 컴포넌트로 간주 , 클라이언트가 될수도 서버가 될수도 , 서버는 전형적인 멀티스레싱 사용
- 아키택처 패턴 - 이벤트 버스
- 이벤트 메시지를 발행하면 리스너들이 받아 이벤트를 처리하는 방식
- 아키택처 패턴- 블랙보드 패턴
- 블랙보드에서 원하는 데이터를 찾을수 있고 해결책이 명확하지 않은것에서 사용가능
- 아키택처 패턴- 인터프리터 패턴
- 각라인을 수행하는 방법을 지정하고 기호마다 클래스를 갖도록
- 객체지향
- 하나의 엔티티를 하나의 객체로 만들어 개체들을 조립하여 작성할 수 있는 기법
- 객체지향특성
- 상호연관성, 객체가 반응하는것은 메시지 , 일정한 기억장소 가지고있다. 프로그램 - 데이터 +함수 객체 = 데이터 +함수 프로그램 = 객체+ 객체
- 객체지향 - 클래스
- 공통된 속성과 연산을 갖는 객체의 집합 일반적으로 타입을 의미 ,속한 객체 - 인스턴스
- 객체지향 - 캡슐화
- 데이터와 데이터를 처리하는 하수를 묶는것 ,재사용 용이, 결합도가 낮아짐, 응집도는 높아짐
- 객체지향 - 상속
- 사ㅇ위 클래스의 모든 속성과 연산을 하위클래스가 물려받는다.
- 객체지향 - 다형성
- 객체가 연산을 수행하게 되면 하나의 메세지에 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
- 모듈
- 분리된 각 시스템의 기능들(서브루틴, 서브시스템, 소프트웨어 내의 프로그램 , 작업단위)
- 모듈의 독립성
- 결합도 , 응집도에 의해 측정, 결합도는 약하게 응집도는 강하게
- 모듈 - 결합도
- 모듈 사이의 연관관계, 결합도가 약할 수록 품질이 좋고 강할수록 품질이 낮다.
- 모듈 - 결합도
- 자료결합도 - 스탬프(검인)결합도 - 제어 결합도 -외부결합도 - 공통(공유)결합도 - 내용결합도
- 모듈 - 응집도
- 모듈 - 응집도 순서
- 기능적응집도 - 순차적응집도 - 교환(통신)적 응집도 - 절차적 응집도 - 시간적응집도 - 논리적 응집도
- 모듈 -팬인
- 모듈 -팬아웃
- 미들웨어
- 운영체제와 해당 운영체제에 실행되는 프로그램 사이에 제공되는 서비스
- 미들웨어 -DB
- 미들웨어 - MOM
- 메세지 기반의 비동기형 메시지를 전달하는 기법
- 미들웨어 -TP-monitor
- 트랜잭션 업무에서 트랜잭션을 처리및 감시하는 업무 사용자증가해도 빨라야함
- 미들웨어 -ORB
- 미들웨어 -was
- 웹서버와 달리 요구에 따라 변하는 콘텐츠 처리 ,웹환경구현 ,
- 미들웨어 식별
- 솔루션을 확인하고 목록을 작성한다. 시스템/구분/솔루션명/버전/제조사
- 미들웨어 솔루션 명세서
- 제품, 명칭 버전 ,제품사용목적 , 제약이존재하는지 기술지원담당자와 확인 , 솔루션에 대한 명세서 작성