소프트웨어 생명 주기 (Software Life Cycle, 소프트웨어 수명 주기)
소프트웨어 개발 방법론
소프트웨어 공학 (SE, Software Engineering)
소프트웨어 공학 기본 원칙
폭포수 모형 (Waterfall Model, 고전적 생명 주기, 선형 순차적 모형)
프로토 타입 모형 (ProtoType Model, 원형 모델)
나선형 모델 (Spiral Model, 점진적 모형)
애자일 모형 (Agile Model)
1. 스프린트 (Sprint)
2. 이터레이션 (Iteration)
애자일 선언 (Agile Manifesto)
스크럼 (Scrum)
1. 제품 책임자 (PO, Product Owner)
2. 스크럼 마스터 (SM, Scrum Master)
3. 개발팀 (DT, Development Team)
이해 관계자 (StakeHolder)
1. 개발 의뢰자
2. 개발자
3. 사용자
백로그 (Backlog)
스토리 (Story, 사용자 스토리)
스크럼 개발 순서
제품 백로그 (Product Backlog)
릴리즈 계획 (Release Plan)
스프린트 계획 회의 (Sprint Planning Meeting)
스프린트 백로그 (Sprint Backlog)
스프린트 (Sprint)
태스크
1. 할 일
2. 진행 중
3. 완료
일일 스크럼 회의 (Daily Scrum Meeting)
속도 (Velocity)
소멸 차트 (Burn-down Chart)
스프린트 검토 회의 (Sprint Review)
스프린트 회고 (Sprint Retrospective)
XP (eXtrem Programming)
XP 핵심가치
1. 의사소통 (Communication)
2. 단순성 (Simplicity)
3. 용기 (Coruage)
4. 존중 (Respect)
5. 피드백 (Feedback)
릴리즈 (Release)
가시성(Visibility)
XP 개발 프로세스
스크럼에서의 릴리즈와 XP에서의 릴리즈
사용자 스토리 (User Story)
스파이크 (Spike)
이터레이션 (Iteration)
승인 검사 (Acceptance Test, 인수 테스트, 릴리즈 테스트)
소규모 릴리즈 (Small Release)
XP 실천 기법
1. 짝 프로그래밍 (Pair Programming)
2. 공통 코드 소유 (Collective Ownership)
3. 테스트 주요 개발 (Test-Driven Development)
4 . 전체 팀 (Whole Team)
5. 계속적인 통합 (Continuous Integration)
6. 리팩터링 (Refactoring), 디자인 개선 (Design Improvement)
7. 소규모 릴리즈 (Small Release)
현행 시스템 파악
현행 시스템 파악 절차
시스템 구성 파악
1. 기간 업무
2. 단위 업무
시스템 기능 파악
1. 주요 기능
2. 하부 기능
3. 세부 기능
시스템 인터페이스 파악
아키텍처 구성 파악
시스템 아키텍처
아키텍처와 시스템 인터페이스
소프트웨어 구성 파악
상용 소프트웨어
라이선스 적용 방식
하드웨어 구성 파악
서버의 이중화 (Replication)
네트워크 구성 파악
개발 기술 환경 파악
개발 기술 환경
가용성
성능
기술 자원
주변 기기
구축 비용
운영체제 (OS, Operation System)
미들웨어 (Middle Ware)
자원
메모리 누수
오픈 소스
총 소유 비용 (TCO, Total Cost Ownership)
데이터베이스 관리 시스템 (DMBS, DataBase Management System)
응용 프로그램
비용기반 질의 최적화
JDBC (Java DataBase Connectivity)
ODBC (Open DataBase Connectivity)
웹 서버 (Web Server)
웹 애플리케이션 서버 (WAS, Web Application Server)
오픈 소스 고려 사항 (Open Source)
요구사항 정의
요구사항
요구사항 유형
1. 기술하는 내용에 따라
(1) 기능 요구사항 (Functional requirements)
(2) 비기능 요구사항 (Non-Functional requirements)
2. 기술 관점과 대상의 범위에 따라
(1) 시스템 요구 사항 (System requirements)
(2) 사용자 요구 사항 (User requirements)
기능 요구 사항
비기능 요구사항
기능 요구 사항 (Functional requirements)
비기능 요구사항 (Non-Functional requirements)
가용성
정합성
상호 호환성
이식성
대응성
확장성
사용자 요구사항 (User requirements)
시스템 요구사항 (System requirements, 소프트웨어 요구사항)
요구사항 개발 프로세스
요구 공학 (Requirements Engineering)
요구사항 개발 프로세스
요구사항 도출 (Requirement Elication, 요구 추출)
브레인 스토밍 (Brain Storming)
프로토타이핑 (Protyping)
유스 케이스 (Use Case)
요구사항 분석 (Requirement Analysis)
요구사항 명세 (Requirement Specification)
소규모 명세서 (Mini-Spec)
요구사항 확인 (Requirement Validation, 요구사항 검증)
형상 (Configuration)
형강 관리 (SCM, Software Configuration Management)
소프트웨어 요구사항 명세서 (SRS, Software Requirement Specification)
1. 정형 명세 기법
2. 비정형 명세 기법
비정형 명세 기법
도메인 분석 (Domain Analysis)
요구사항 분석
구조적 분석 기법
하향식 방법
자료의 흐름
자료 흐름도 (DFD, Data Flow Diagram, 자료 흐름 그래프, 버블 차트)
1. 프로세스 (Process)
2. 자료 흐름 (Flow)
3. 자료 저장소 (Data Store)
4. 단말 (Terminator, 장소)
자료 흐름도 작성 지침
자료 사전 (DD, Data Dictionary, 데이터의 데이터, 메타 데이터, Meta Data)
자료 사전 표기 기호
1. =
2. +
3. ()
4. {}
5. * *
요구사항 분석을 위한 CASE
SADT (Structed Analysis and Design Technique)
SREM (Software Requirements Engineering Methodology)
1. RSL (Requirement Statement Language, 요구사항 기술 언어)
(1) 요소
(2) 속성
(3) 관계
(4) 구조
2. REVS (Requirement Engineering and Validation System, 요구사항 분석기)
PSL/PSA
1. PLS (Problem Statement Language)
2. PSA
TAGS (Technology for Automated Generation of System, 통합 자동화 도구)
1. IORL
HIPO (Hierarchy Input Process Output)
HIPO Chart
1. 가시적 도표 (Visual Table of Contents)
2. 총체적 도표 (Overview Diagram)
3. 세부적 도표 (Detail Diagram)
가시적 도표
총체적 도표
세부적 도표
UML (Unified Modeling Language)
1. OMG (Ovject Manavement Group)
UML 구성 요소
1. 사물 (Things)
2. 관계 (Relationships)
3. 다이어그램 (Diagram)
모델링 언어
사물 (Things)
1. 구조 사물 (Structural Things)
2. 행동 사물 (Behavioral Things)
3. 그룹 사물 (Grouping Things)
4. 주해 사물 (Annotation Things)
구조 사물 (Structural Things)
컴포넌트 (Component)
개체 (Entity)
사물 (Things, 객체, Object)
행동 사물 (Behavioral Things)
1. 상호 작용 (Interaction)
2. 상태 머신 (State Machine)
그룹 사물 (Grouping Things)
주해 사물 (Annotation Things)
관계 (Relationships)
1. 연관 관계 (Association)
2. 집합 관계 (Aggregation)
3. 포함 관계 (Composition)
4. 일반화 관계 (Generalization)
5. 의존 관계 (Dependency)
6. 실체화 관계 (Realization)
연관 관계 (Association)
1. 양방향
2. 단방향
다중도 (Multiplicity)
1. m..n
2. *
집합 관계 (Aggregation)
1. 전체 (Whole)
2. 부분 (Part)
포함 관계 (Composition)
일반화 관계 (Generalization)
1. 상위
2. 하위
의존 관계 (Dependency)
1. 이용자
2. 제공자
실체화 관계 (Realization)
다이어그램 (Diagram)
1. 정적 모델링
2. 동적 모델링
구조적 다이어그램 (Struct Diagram)
1. 클래스 다이어그램 (Class Diagram)
2. 객체 다이어그램 (Object Diagram)
3. 컴포턴트 다이어그램 (Component Diagram)
4. 배치 다이어그램 (Deployment Diagram)
5. 복합체 구조 다이어그램 (Composite Structure Diagram)
6. 패키지 다이어그램 (Package Diagram)
행위 다이어그램 (Behavioral Diagram)
1. 유스케이스 다이어그램 (Usecase Diagram)
2. 순차 다이어그램 (Sequence Diagram)
3. 커뮤니케이션 다이어그램 (Communication Diagram)
4. 상태 다이어그램 (State Diagram)
5. 활동 다이어그램 (Activity Diagram)
6. 상호작용 개요 다이어그램 (Interaction Overview Diagram)
7. 타이밍 다이어그램 (Timing Diagram)
스트레오 타입 (Streotype)
길러멧 (Gillemet)
1. <<include>>
2. <<extend>>
3. <<interface>>
4. <<exception>>
5. <<constructor>>
사물 인터넷 (IoT, Ingernet of Things)
유스케이스 다이어그램 (Use Case)
1. 시스템 범위
2. 액터
3. 유스 케이스
4. 관계
시스템 범위 (System Scope)
액터 (Actor)
1. 주 액터
2. 부 액터
유스 케이스 (Use Case)
관계 (Relationship)
1. 연관 관계
2. 포함 관계
3. 확장 관계
4. 일반화 관계
외부 시스템
포함 관계 (include)
확장 관계 (extend)
클래스 다이어그램 (Class)
크래스 다이어그램 구성 요소
1. 클래스
2. 제약 조건
3. 관계
클래스 (Class)
클래스 구획 (Compartment)
1. 클래스 이름
2. 속성 (Attribute)
3. 오퍼레이션 (Operation)
제약 조건
관계 (Relationships)
클래스 접근제어자
1. public (+)
2. private (-)
3. protected (#)
4. package (~)
순차 다이어그램 (Sequence)
순차 다이어그램 구성 요소
1. 액터 (Actor)
2. 객체 (Object)
3. 생명선 (Lifeline)
4. 실행 상자 (Active Box)
5. 메시지 (Message)
6. 회귀 메시지 (Reply/Return Message)
7. 제어 블록 (Loop)
액터
실행 상자
회귀 메시지
유스케이스 연동
소프트웨어 생명 주기 (Software Life Cycle, 소프트웨어 생명 주기)
소프트웨어 개발 방법론
소프트웨어 공학 (SE, Software Engineering)
소프트웨어 공학의 기본 원칙
폭포수 모형 (Waterfall Model)
'자격증 > 정보처리 기사 1. 소프트웨어 설계' 카테고리의 다른 글
4. 인터페이스 설계 (0) | 2025.02.07 |
---|---|
3. 애플리케이션 설계 (0) | 2025.02.06 |
2. 화면 설계 (0) | 2025.02.03 |