Study2month/정보처리기사

[필기] 1과목 소프트웨어 설계

oort2 2023. 2. 9. 16:06

 

차례
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요구사항 확인

*소프트웨어 아키텍처: 개발하고자 하는 소프트웨어의 사전 작업을 통하여 소프트웨어 개발을 쉽게 하도록 기본틀을 만드는 것. 

  1. 계층화 패턴 (Layered pattern)  : 하위모듈들의 그룹으로 나눌 수 있는 구조화된 프로그램.(전자상거래 웹)
  2. 클라이언트-서버 패턴 (Client-server pattern) : 이메일, 문서 은행 등의 온라인 앱
  3. 마스터-슬레이브 패턴 (Master-slave pattern) : 작업을 분산하고 최종 결과값을 계산. 
  4. 파이프-필터 패턴 (Pipe-filter pattern): 필터 컴포넌트에서 처리, 파이프를 통해 데이커가 흐름
  5. 브로커 패턴 (Broker pattern) 
  6. 피어 투 피어 패턴 (Peer-to-peer pattern) : 각 컴포넌트를 피어라고 부른다. 
  7. 이벤트-버스 패턴 (Event-bus pattern) : 안드로이드 개발, 알림 서비스
  8. MVC 패턴 (Model-view-controller pattern)
  9. 블랙보드 패턴 (Blackboard- pattern) : 결정가능한 해결전략이 알려지지 않은 문제에 유용
  10. 인터프리터 패턴 (Interpreter pattern): 특정 언어로 작성된 프로그램을 해석하는 컴포넌트 설계시 사용 

2.1) UI설계

*UI설계 도구

1.화면설계툴 : 파워목업, 발사믹 목업, 카카오오븐

2.프로토타이핑 툴: UX핀, 액슈어, 네이버프로토나우

3.UI 디자인 툴: 스케치, 어도비 익스피리언스 디자인 CC

'Study2month > 정보처리기사' 카테고리의 다른 글

정보처리기사 공부 전 조건  (0) 2023.02.08