티스토리 뷰
#암기
-소프트웨어 개발 생명 주기
-개발방법론
1. 소프트웨어 개발 생명주기 모델 📌중요! 암기
1-1. 폭포수 모델(Waterfall model) ★
-프로세스 : 요구사항분석 > 설계 > 구현 > 테스팅 > 유지보수
-순차적 진행 : 앞 단계가 완료되어야 다음 단계 진행. 앞 단계 진행할 동안 뒷단계는 대기 상태
-결과가 나와봐야 알 수 있다. 수정이 어렵다.
1-2. 원형 모델(Prototype model)
-프로세스 : 요구사항정의 > 프로토타입 설계 > 프로토타입 개발 > 고객평가 > 요구사항 조정 > 완제품
-점진적 개발, 프로토타입 개발하여 고객과 검증
1-3. 나선형 모델(spiral model) ★
-프로세스 : 개발주기 반복
-개발주기 : 계획 및 정의 > 위험 분석 > 개발 > 고객 평가
-위험 최소화 목적
-고비용 시스템 개발 or 대규모 프로젝트 효과적
2. 소프트웨어 개발 방법론
-표준화 : 소프트웨어 생산 시 필요한 프로그래밍 개발 과정을 표준화
-일관성 유지 : 프로그래머들이 프로그래밍 개발과정에서 각 담당 파트 개발 시, 일관성 유지
-효과적 협업 : 프로그래머들 간의 효과적 협업이 이루어질 수 있도록 돕기 위한 방법론
2-1. 구조적 분석
-도형 중심의 분석용 도구
-자료흐름도, 자료사전, 소단위명세서
| 시기 | 방법론 | 중심 |
| 1970년대 | 구조적 개발 방법론 | 기능 중심 |
| 1980년대 | 정보공학 방법론 | 자료구조 중심 |
| 1990년대 | 객체지향 개발 방법론 | 객체중심 |
| 2000년대 | CBD 방법론 | 컴포넌트 중심 |
① 자료흐름도(Data Flow Diagram : DFD) ★
| ㅇ | ~ | = | ㅁ |
| 처리(process) | 자료흐름(data flow) | 자료저장소(data store) | 단말(termiantor) |
ex) 상품대장(=)의 데이터로 판매자(ㅁ)가 상품 등록(ㅇ)하면, 등록상품(=)에 데이터가 저장됨
② 자료사전(Data Dictionary: DD) ★
| 기호 | 뜻 |
| = | 자료 항목 정의 |
| + | 복합적인 자료 요소의 구성 |
| { } | 반복 |
| [ ] | 선택 |
| ( ) | 생략 가능 |
| * * | 주석 |
| | 또는 ; | 대체 항목 나열 |
ex)
계산서 = { 계산서 번호 + 고객 이름 + 고객 연락처 + 거래일 + {지불 기한 일자} + {판매일자 + 판매번호 + {항목내역 + 단가 + 수량 } + 소계 + 세금 + 총액 }}
계산방법 = [현금 | 카드 | 계좌이체 |Pay]
고객파일 = *고객 파일의 구성은 고객 이름에 따라 순차적임*
={고객번호 + 고객이름 + 고객등급 + 입금사항}
③소단위명세서(Minio Specification)
-자료흐름도에 나타난 모든 최소 단위의 처리에 대해 자료흐름이 변화되는 절차 또는 노릴적인 활동을 기술하는 도구
-구조적언어 or 의사결정표 or 의사결정도
ex) 구조적 언어
for 각 시간제 근로자에 대해 //반복문
1. 시간제 근로자의 근로형태 파악
2. if 근로형태 = "장기"
1. then 급여 = 근무시간 * 12,000
2. else 급여 = 근무시간 * 10,000
3. 이름과 급여액을 급여 내역서에 기록
ex) 의사결정표

2-2. 애자일(Agile)
-원칙 : 가볍지만 충분한
| 기존 | 변경 |
| 프로세스와 도구 | 개인과의 상호작용 |
| 문서화 | 제대로 동작하는 소프트웨어 개발에 집중 |
| 고객과의 계얍 협상 | 고객과 협력 |
2-2-1. 애자일 방법론 유형 ★
(💡)애자일 방법론 유형이 아닌 것 묻는 문제 출제 빈도수 높음
| XP(eXtreme Programming) ⭐ | 스크럼(SCRUM) ⭐ | 린(LEAN) |
| 크리스탈(Crystal) | ASD (Adaptive software development) |
FDD(Feature drven development) 기능중심개발 |
①스크럼 용어 ★
| Product Owner(PO) | 제품 책임자. 백로그를 작성하는 주체 |
| 백로그 | 요구사항 리스트 |
| Scrum Master(SM) | 스크럼이 잘 수행되도록 도와주는 역할. 문제해결 도움 |
| 제품 백로그 | 전체 기간 동안 개발할 백로그(요구사항 리스트) |
| 스프린트 | 짧은 기간(1~4주) 동안 동작하는 SW를 사용자에게 제공하면서 피드백을 받고 수정한다. |
② XP(eXtreme Programming)
-고객과 개발팀의 커뮤니케이션 주장
| 용어 | 설명 |
| 스토리 | 요구사항(고객) |
| 스토리 추정 | 스토리를 보고 기간과 강도 결정(개발자) |
| 릴리즈 | 고객에게 구현된 제품 배포 |
| 반복 | 릴리즈 안에서 반복되는 작업 |
| 드라이버 | 코드 작성자 |
| 파트너 | 드라이버를 도와 조언 |
-XP 5가지 원칙
: 단순성, 존중, 의사소통, 용기, 패드백
-XP 12가지 실천사항 ★
(💡) XP 아닌 것 찾기, XP 뜻 찾기, (💡)실기문제 출제
ⓐ 계획게임(Planning game/process)
ⓑ 짝 프로그래밍(Pair programming)
ⓒ 짧은 릴리즈 주기(Small/short releases)
ⓓ 코드 공동 소유(Collective ownership) : 수정사항을 모두가 참여하여 수정
ⓔ 메타포(공통의 name system)
ⓕ 지속저인 통합(CI, Contivuous intergration) : 각 개발자의 코드를 자주 통합하여 빌드. 자주 만나기
ⓖ 단순 설계(Simple design)
ⓗ 주당 40시간 작업(40-hour week)
ⓘ 테스트 기반 개발(Testing)
ⓙ 고객의 참여(On-site customer)
ⓚ 리팩토링(Refactoring)
ⓛ 코딩 표준(Coding standards)
2-3. 객체지향 방법론
-소프트웨어 개발 시, 작은 단위 모듈을 구성하여 만든다. 추후 이를 재사용하여 소프트웨어 효율성을 높이자.
=> 객체지향 방법론
-UML : 표기법, 도형표기법
-객체, 클래스 ,캡슐화, 데이터 은닉, 상속, 조합, 다형성의 개념
2-3-1. 특징 설명
| subject | info |
| 객체 | 업무 수행을 위한 대상이 되는 모든 것. ex) 사람, 장소, 사물, 사건, 개념 |
| 클래스 | 공통 속성과 행위를 가진 객체를 묶어 추상화한 개념 |
| 캡슐화 | 구현부가 외부에 노출되지 않게 싸여진 상태 |
| 데이터 은닉 | 각각의 객체가 자신의 속성(데이터)과 메서드(행위)를 다른 객체에게 숨기는 것 |
| 상속 | 클래스가 가진 속성과 행위를 객체가 물려받는 것 |
| 조합 | 다른 객체를 사용하여 객체를 구성. 보다 복잡한 클래스를 만드는 '조립' |
| 다형성의 개념 | 같은 메서드에 다르게 반응 |
2-3-2. SOLID(객체지향 설계)
-2000년대 초반 로버트 마틴의 객체 지향 프로그래밍 및 설계 5가지 원칙을 마이클 페더스가 소개
| 두문자 | 설명 | |
| SRP | S | Single reponsibility principle 단일 책임 원칙. 한 클래스는 하나의 책임만 가져야 한다. ex) Class Cook();은 요리 관련만 책임져야 한다. |
| OCP | O | Open/Closed principle 개방-폐쇄 원칙 확장에는 열려 있으나, 변경에는 닫혀있어야 한다. ex) 점심메뉴 김치볶음밥 : 메뉴 변경 불가(김볶밥 → 돈까스) but 김치볶음밥에 계란후라이 추가 가능 |
| LSP | L | Liskov substitution principle 리스코프 치환원칙 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입 인스턴스로 바꿀 수 있어야 한다. ex) 삼성 비스포크 : 상위타입-냉장고, 하위타입-컬러별 문짝 => 하위타입으로 변경 가능 |
| ISP | I | Interface segregation principle 인터페이스 분리 원칙 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 1개보다 낫다 ex) 종합반 < 국어 학원, 영어 학원, 수학 학원 |
| DIP | D | Dependency inversion principle 의존관계 역전 원칙 추상화에 의존해야지, 구체화에 의존하면 안 된다. ex) 사람 : 추상화 → 사장, 직원 : 구체화 |
2-3-3. 객체 분석 기법 ★
| 기법 | 원리 | 특징 |
| Rumbaugh의 OMT (럼바우) |
-클래스의 외부 명세를 정의 -객체 모델링(객체다이어그램) 동적 모델링(상태다이어그램) 기능 모델링(자료흐름도) |
소프트웨어 생명 주기 지원 데이터베이스 구조화에 용이 |
| Booch 방법론 | DFD 사용 클래스 다이어그램, 객체 다이어그램, 모듈 다이어그램, 프로세스 다이어그램 |
전체 시스템 가시화에 유용함 실시간 처리에 유용함 설계를 위한 문서화 기법 강조 분석 단계 취약 |
| Coad/Yaurdon 방법론 |
객체지향 특징을 가장 충족시키는 방법 E-R다이어그램을 사용하여 객체의 행위를 모델링 |
객체지향 CASE Tool 지원 |
'정처기 > 정보처리기사' 카테고리의 다른 글
| [1과목-소프트웨어설계]요구사항 및 분석모델 확인 (0) | 2024.01.19 |
|---|---|
| [1과목]소프트웨어설계-현행시스템 분석 (0) | 2024.01.10 |
- Total
- Today
- Yesterday
- JavaScript
- 미디어 태그
- typeof
- input type 종류
- BAEKJOON
- 변수
- improt
- empty-cell
- 입력양식
- html pre
- A%B
- html atrribute
- Java
- initialized
- caption-side
- html a tag
- html base tag
- css
- html input type
- border-spacing
- ScriptTag
- text formatting
- 기본선택자
- scanner
- html layout
- 외부구성요소
- CascadingStyleSheet
- html
- 스크립태그
- selcetor
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |