티스토리 뷰

 

#암기

-소프트웨어 개발 생명 주기

-개발방법론

 

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 지원

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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
글 보관함