| 차례 1.요구사항확인 1)현행시스템분석 2)요구사항확인 3)분석모델 확인 2.화면설계 1)UI요구사항 확인 2)UI 설계 3.애플리케이션 설계 4.인터페이스 설계 |
1.1) 현행 시스템분석
- 개발기술환경정의
- DBMS란?
사용자, 다른 애플리케이션, 데이터베이스와 상호작용하여 데이터를 저장하고 분석하기 위한 소프트웨어 애플리케이션.
데이터베이스 생성, 조회, 변경 등의 관리가 주요기능(Oracle, IBM DB2, Mivrosoft SQL, MySQL, MongoDB...)
관련 고려사항: 가용성, 성능, 기술지원, 상호호환성, 구축비용
- 미들웨어란?
운영체제와 소프트웨어 애플리케이션 사이에 위치, 소프트웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴퓨터 소프트웨어.
종류: RPC(원격동작), MOM(분산응용 프로그램간 메시지 전달), ORB(객체지향시스템에서 지원), DB접속미들웨서(앱과 데이터 베이스 서버를 연결), TP모니터(트랜잭션처리를 감시, 제어), 웹 애플리케이션 서버(웹 애플리케이션 지원)
관련 고려사항: 가용성, 성능, 기술지원, 구축비용
- 오픈소스란?
소스코드를 공개해 누구나 특별한 제한없이 그 코드를 보고 사용할 수 있는 소프트웨어.
고려사항: 라이선스의 종류, 사용자의 수, 기술의 지속가능성, 상호호환성, 구축비용
1.2) 요구사항 확인
-소프트웨어 개발 생명주기 모델
- 폭포수 모델
- 원형모델
- 나선형모델 : 계획및정의->위험분석->개발->고객평가
-구조적 분석
효율적인 시스템 분석 명세서를 작성하기 위한 도형 중심의 분석용 도구를 이용하여 사용자의 요구사항을 파악하고 문서화하는 체계적인 분석기법. Yourdon등에 의해 개발되어 보급
자료흐름도->자료사전->소단위명세서
- 자료흐름도(DFD)

- 자료사전(DD)
= 자료 항목 정의 + 복합적인 자료 요소의 구성
{} 반복 []선택 () 생략가능 **주석 | 또는 ; 대체 항목 나열
- 소단위명세서
자료흐름도에 나타난 모든 최소 단위의 처리에 대해 자료흐름이 변환되는 절차 또는 논리적인 활동을 기술하는 도구.
+애자일(Agile)
가볍지만, 충분한
| (-) 프로세스와 도구 문서화 고객과의 계약 협상 |
(+) 개인과의 상호작용 제대로 동작하는 소프트웨어의 개발에 집중 고객과의 협력 |
- 애자일 방법론
| XP | 스크럼(SCRUM) | 린(LEAN) |
| 애자일의 가치를 적용한 방법론 의사소통 개선과 즉각적인 피드백 용기, 단순성, 의사소통(사용자-개발자),피드백,존중 |
프로젝트 관리 위한 상호, 점진적방법론 XP와 달리 진행체계 수립,역할정의 중점 확약, 전념, 정직, 존중, 용기 |
도요타사의 대표적인 생산방식. 생산효율을 극대화 |
| 스토리: 요구사항(고객) 스토리 추정: 스토리 보고 기간,강도 결정 릴리즈: 고객에게 구현된 제품 배포 드라이버: 코드 작성자 파트너: 드라이버를 도와 조언 |
PO: 제품책임자. 요구사항 작성주체 백로그: 제품요구사항 스프린트짧은 기간 1~4주 SM: 스크럼 마스터 속도: 한팀이 제품백로그 맡는 양 |
=> XP의 12가지 실천사항
| 01. Planning game (= Planning process) 게임계획 | 07.Pair programming 짝프로그래밍(릴레이 코딩) |
| 02. Small/short releases 짧은 릴리즈 주기 | 08. Collective ownership 코드 공동 소유 |
| 03. Metaphor 메타포 | 09. CI(Continuous integration) 지속적인 통합 |
| 04. Simple design 단순설계 | 10. 40-hour week 주당40시간 참여 |
| 05. Testing 테스트 우선개발 | 11. On-site customer 고객의 참여 |
| 06. Refactoring 리팩토링 | 12. Coding standards 코딩 표준 |
*객체지향 방법론
소프트웨어를 개발할 떄 작은 단위의 모듈들을 구성하여 만들고 추후 이를 재사용하여 소프트웨어의 효율성을 높이자는 생각에서 객체지향 방법론이 발전하게 되었다.
표기법이라도 통일하자는 제안에 의해 UML을 사용하게 되었다.
*객체지향설계(SOLID)
SRP 단일책임원칙, DCP 개방-폐쇄원칙, LSP 리스코프 치환 원칙, ISP 인터페이스 분리 원칙, DIP 의존관계 역전 원칙
| 럼바우의 OMT | 클래스의 외부 명세를 정의함 객체(객체), 동적(상태), 기능(자료) 모델링 |
소프트웨어 생명주기 지원 데이터베이스 구조화에 용이 |
| Booch방법론 | 시스템 형성 구조를 모형화하는 DFD사용 클래스, 객체, 모듈, 프로세스 다이어그램 |
전체 시스템 가시화에 유용 실시간 처리 유용, 분석단계 취약 |
| Coad/Yaurdon 방법론 | 객체지향 특징을 가장 충족시키는 방법 | 객체지향 CASE Tool 지원 |
| shaler/Mellor 방법론 | 하나의 시스템을 몇 개의 영역으로 분할. 서브시스템을 구성. 정보, 상태, 처리 모델링 |
시스템의 분해성이 우수 대형 시스템 개발에 유리 |
*UML(표준화된 범용 모델링 언어)
사물: Things
관계: Relationship
다이어그램:Diagram
정적모델(구조다이어그램):클래스, 오브젝트, 컴포넌트, 배치
동적모델(행위다이어그램): 유스케이스, 순차(시퀀스), 통신, 상태, 액티비티
*요구사항 검증하기
시스템화 타당성분석:
1.성능및 용량산정 적정성->2.시스템간 상호운용성->3.it시장 성숙도 및 트렌드 부합성->4.기술적위험분석
분석자동화도구(CASE)
개발자의 반복적인 작업량을 줄이도록 한다. 문서의 생성과 개발팀 간의 협업을 돕는다.
CASE도구들은 강력한 그래픽 기능이 있으며, 리포트생성기, 데이터사전, 분석과 검사도구, 코드생성기, 문서생성기등을 제공.
2.1) UI요구사항 확인
*소프트웨어 아키텍처: 개발하고자 하는 소프트웨어의 사전 작업을 통하여 소프트웨어 개발을 쉽게 하도록 기본틀을 만드는 것.
- 계층화 패턴 (Layered pattern) : 하위모듈들의 그룹으로 나눌 수 있는 구조화된 프로그램.(전자상거래 웹)
- 클라이언트-서버 패턴 (Client-server pattern) : 이메일, 문서 은행 등의 온라인 앱
- 마스터-슬레이브 패턴 (Master-slave pattern) : 작업을 분산하고 최종 결과값을 계산.
- 파이프-필터 패턴 (Pipe-filter pattern): 필터 컴포넌트에서 처리, 파이프를 통해 데이커가 흐름
- 브로커 패턴 (Broker pattern)
- 피어 투 피어 패턴 (Peer-to-peer pattern) : 각 컴포넌트를 피어라고 부른다.
- 이벤트-버스 패턴 (Event-bus pattern) : 안드로이드 개발, 알림 서비스
- MVC 패턴 (Model-view-controller pattern)
- 블랙보드 패턴 (Blackboard- pattern) : 결정가능한 해결전략이 알려지지 않은 문제에 유용
- 인터프리터 패턴 (Interpreter pattern): 특정 언어로 작성된 프로그램을 해석하는 컴포넌트 설계시 사용
2.1) UI설계
*UI설계 도구
1.화면설계툴 : 파워목업, 발사믹 목업, 카카오오븐
2.프로토타이핑 툴: UX핀, 액슈어, 네이버프로토나우
3.UI 디자인 툴: 스케치, 어도비 익스피리언스 디자인 CC
'Study2month > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 공부 전 조건 (0) | 2023.02.08 |
|---|