소프트웨어 개발 방법론
이 챕터의 목적 : 앞 현행 시스템에서는 정보 토대로 산출물 작성이 목적이였다면, 개발은 어떤 식으로 할 것인지? 애자일 방법, 담당자에게 의사소통 방법은? 등에 관련해서 프로젝트마다 최적의 방법론을 채택하는 부분이다.
즉, 어떻게 구현할지? 추후 테스트시 에러 등을 파악하여 개선하는 일련의 작업을 말합니다.
요구사항 분석 -> 설게 -> 구현(개발) -> 테스팅 -> 유지보수
- 소프트웨어 개발 생명주기 모델
- 폭포수
- 계획
- 수정이 어려움
- 원형
- 폭포수의 개선형 즉, 고객의 요구사항 반영
- 프로토타입
- 나선형
- 4단계를 반복적으로 1회성으로 끝나는 것이 아니라... 회오리 처럼 (개발 -> 위험분석 -> 고객 피드백 -> 반영) 진행하면서 빙글빙글 돕니다.
- 위험 분석 - 위험 요소를 파악하는게 목적
- 애자일
- 계획보다 기능중심
- 문서보다 개발
- 애자일 방법론
- XP
- 익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어올리는 것
- 5개의 가치
- 피드백
- 의사소통
- 존중
- 용기
- 단순성
- 12개의 실천사항 (LG 전자 배포통제시스템 경험 위주로 작성)
- 계획게임(Planning Game) - 규칙, 목표를 가지고 개발
- WBS로 개발 주기 및 기능별 마감기간 정리
- 짝 프로그램밍(Pair Programming) - 2명이서 개발, 짝을 지어서 피드백 주기
- 방동현 연구원, 이충현 연구원
- 짧은 릴리즈 추가(Short/Smail Release) - 짧고/작은 규모로 배포하여 고객의 피드백
- 기능단위로 고객에게 보여주고 피드백 받기
- 코드 공동 소유(Collective OwnerShip) - 모든 개발자는 코드를 소유해야함
- branch라는 레파지토리에 lch, bdh 각 레파지토리를 만들고 공통으로 공통된 코드를 소유하는 방법
- 메타포(Metaphor) - 규칙적인 언어로 의사소통하기
- LG전자 투입시, RCS, NEXT ITSM 등 사내에서 사용되는 용어로 소통하기
- 지속적인 통합(Continueous integration) - 빌드/배포 가능한 상태
- 기능단위로 지속적인 빌드/배포
- 단순 설계(Simple design) - 단순한 구조와 설계 및 디자인
- 일관성 있고, 규칙적인 구조(Controller -> Service -> Repository)
- 주당 40시간(40-hour week) - 개발자는 피곤하지 않게하기
- 테스트 기반 개발(Test Driven Development) - 테스트, 개발, 운영 환경으로 구성
- LG전자 테스트 완료 후에 개발에 배포하는 방식
- 고객의 참여(On-site customer) - 고객사를 같이 상주
- 이창용 책임님과 김혜진 책임님과 같은 건물에 상주하면서 즉각적인 피드백과 의사소통이 가능
- 리팩토링(Refactoring) - 불필요한 기능 제거
- 중복코드, 주석, 출력문 등을 파악하여 쓸데 없는 코드 개선
- 코딩 표준(Coding Standards) - 표준화된 관리
- 커멀케이스 등 변수 명 규칙
- 계획게임(Planning Game) - 규칙, 목표를 가지고 개발
- 스크럼
- 유연성을 강조하여 피드백
- 스크럼 용어 - LG전자 프로젝트를 잘 떠올리자
- PO(Product Owner) - 제품 책임자, 제품에 대한 요구사항(백로그)을 작성하는 주체
- SM(Scrum Master) - 문제해결 및 스크럼 회의가 잘 진행되도록 도와주는 역할
- 백로그 - 요구사항이 적혀진 리스트
- 스프린트 - 개발이 완료된 시스템을 사용자에게 제공하고 피드백을 받고 오류부분 개선함
- 린
- 도요타사
- 생산과 효율을 극대화하기
- 크리스탈
- ASD
- FDD(기능중심개발)
- 객체지향 방법론
- 속성과 메소드로 구성된 객체
- 객체 재사용을 통해서 효율성을 높이는 것
- UML을 가지고 클래스 다이어그램을 만듬
- XP
- 폭포수
HIPO
- 하향식 소프트웨어 개발을 위한 문서화
- 용어나 부호등은 관련자가 아니더라도 쉽게 알 수 있도록함
- 개발 방법론의 종류
- 구조적 분석
- 목적 : 요구사항을 파악하고 문서화
- 모듈화 통해 기능적으로 분할하여 하향식으로 개발
- 자료 흐름도(Data Flow Diagram)
- 처리(동그라미), 자료흐름(실선), 자료저장소(줄 2개), 단말(사각형)
- 자료 흐름 그래프 또는 버블(Bubble) 차트라고도함
- 자료사전
- 목적 : 자료 흐름도(Data Flow Diagram)에 기술된 자료들을 명확하게 정의
- =은 정의
- +은 복합적인 자료 요소
- {}은 반복
- []은 선택
- ()은 생략가능
- **은 주석
- | 또는 ;은 대체 항목 나열
- 소단위 명세서
- 목적 : 자료 흐름도(Data Flow Diagram)에 나타난 자료를 토대로 절차, 논리적인 활동을 기술함
- 구조적 언어
- 의사소통 결정표
- 의사결정도
- 구조적 분석
'정보처리기사 > 필기' 카테고리의 다른 글
1과목 - 객체지향 설계와 디자인 패턴 (0) | 2025.01.25 |
---|---|
1과목 - 애플리케이션 설계 (0) | 2025.01.24 |
1과목 - 화면 설계 (0) | 2025.01.23 |
1과목 - 소프트웨어 설계[요구사항 분석과 분석모델 확인] (0) | 2025.01.19 |
1과목 - 소프트웨어 설계[현행 시스템 파악과 분석] (1) | 2025.01.19 |