소프트웨어 설계의 현행 시스템 파악에는 어떤 것들이 있는지 확인해 보자
총 3단계로 분류되며
1.단계 (시스템)
- 시스템 구성파악 : 기간 업무(코어 시스템), 지원 업무(보조 시스템) 구분하여 기술
- 시스템 기능 파악 : 상위 기능, 하위 기능, 세부 기능으로 구분하여 계층형으로 파악
- 시스템 인터페이스 파악 : 내부 시스템 & 외부 시스템 어떻게 데이터 주고받는지 분석
2.단계 (아키텍처, 소프트웨어)
- 아키텍처 구성 : 아키텍처가 모놀리식인가? MSA인가? 주요 프레임워크(Spring, Django)는 무엇인가? MVC ??
- 소프트웨어 구성 파악 : OS, DB, 개발 언어 프레임워크 라이브러리 확인
3.단계 (하드웨어, 네트워크)
- 하드웨어 구성 파악 : 물리서버, 클라우드 (AWS) 사용여부 확인
- 네트워크 구성 파악 : 어떤 네트워크 환경에서 동작하는지 분석, VPN 사용하는지, 등등
1단계 시스템,
2단계 아키텍처, 소프트웨어
3단계 하드웨어, 네트워크
운영체제 (OS, Operating System)
사용자가 컴퓨터를 편리하고 효율적으로 사용할 수있도록 환경 제공하는 소프트웨어.
지금 나는 Windows를 사용하고 있는데 개발자로 취직하면 Mac으로 후딱 갈아탈 예정
컴퓨터 OS 종류는 Windows, UNIX, Linux, Mac OS ..등 이 있고 모바일은 iOS, Android 등이 존재함.
운영체제 관련 요구사항 식별 시 고려사항 *
- 가용성
- 성능
- 기술 지원
- 주변 기기 (DBMS : 상호 호환성)
- 구축비용
데이터베이스 관리 시스템 (DBMS)
DBMS (DataBase Management System) 은 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어다.
DBMS는 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로 모든 응용프로그램이 데이터베이스를 공용할 수 있도록 관리해줌.
DBMS는 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 진다.
종류는 Oracle, IBM, DB2, Microsoft SQL server, MySQL, SQLite, MongoDB, Redis 등이 있다
나는 Oracle 써봤고 보통 MySQL과 MongoDB 많이 사용하는 것 같다
DBMS 관련 요구사항 식별 시 고려사항*
- 가용성
- 성능
- 기술 지원
- 상호 호환성 (OS : 주변 기기)
- 구축비용
이 될 수 있다 OS선택 기준과 상호 호환성 <=> 주변 기기 말고는 동일하다.
웹 애플리케이션 서버(WAS)
웹 애플리케이션 서버: 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어*
- 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공.
- 데이터베이스 서버와 연동해서 사용
- Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, WebLogic, WebSphere 등이 존재
*미들웨어 : OS와 애플리케이션 사이에서 동작하는 , 여러 시스템과 애플리케이션 간의 연결을 담당하는 소프트웨어
요구사항의 개념 / 요구사항의 유형
개념 : 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 운영되는데 필요한 제약조건을 나타냄
- 소프트웨어 개발이나 유지 보수 과정에서 필요한 기준과 근거를 제공해줌.
유형 :
기능에 따라
- 기능 요구사항 : 무엇을 하는지, 어떤 기능을 하는지, 입력이나 출력이 뭔지, 어떤 데이터와 연산을 수행하는지, 반드시 수행하는 기능, 시스템을 통해 뭘 제공받아야하는지
- 비 기능 요구사항 : 시스템의 장비(하드웨어, 소프트웨어), 성능에 대한 처리 속도, 처리량, 저장용량, 인터페이스, 데이터, 테스트가 잘 되어있는지, 보안, 품질, 제약사항, 프로젝트 관리, 프로젝트 지원
기술 관점과 대상의 범위에 따라
- 시스템 요구사항
- 사용자 요구사항
요구사항 개발 프로세스
도출 - > 분석 -> 명세 -> 확인
- 요구사항 도출 : 요구사항이 뭔지, 어떻게 수집할건지, 요구사항에 대해 이해하는 과정
- 요구사항 분석 : 요구사항 이해하고 문서(명세화) 하는 활동, 개발의 실질적인 첫 단계.
여기서 자료 흐름도 (DFD, Data Flow Diagram)*, 자료 사전(DD, Data Dictionary)* 등의 도구가 사용됨
구조적 분석 기법 : 자료의 흐름과 처리를 중심으로 하는 분석 방법. (도형 중심의 분석용 도구와 분석 절차 이용)
DFD, DD, ERD, STD 등의 도구를 이용하여 모델링함.
*자료 흐름도(DFD) : 시스템 내에서 데이터가 어떻게 이동하는지 시각적으로 표현한 다이어그램 (버블 차트)자료의 흐름과 기능을 : 프로세스, 자료 흐름, 자료 저장소, 단말 네 가지 기본 기호로 표시
프로세스 : 자료를 변환 시키는 한 부분 ( 원이나 둥근 사각형으로 표기 함 )
자료 흐름 : 자료의 이동이나 연관 관계를 나타냄 ( 화살표 위에 자료의 이름을 기입)
자료 저장소 : 시스템의 파일, 데이터베이스를 나타냄 ( 도형(평행선) 안에 자료 저장소 이름을 기입)
단말 : 시스템과 교신하는 외부 개체 ( 도형(사각형) 안에 이름을 기입)
*자료 사전(DD): 시스템에서 사용하는 모든 데이터의 정의를 정리한 문서 (Meta Data)
= : 자료의 정의 (~로 구성되어 있다 is composed of)
+ : 자료의 연결 ( 그리고 and )
( ) : 자료의 생략 ( 생략 가능한 자료 Optional )
[ | ] : 자료의 선택 ( 또는 or)
{ } : 자료의 반복 (lteration of )
* * : 자료의 설명 ( 주석 Comment )
즉 구조 === 버블, 화살표, 도형. DFD, DD - 요구사항 명세 : 분석된 요구사항을 바탕으로 모델링하고 문서화 하는 것을 의미.
구체적으로 세세하게 소단위 명세서가 사용될 수 있음
명세에는 두 가지 기법이 존재한다
구분 | 정형 명세 기법 | 비정형 명세 기법 |
기법 | 수학적 원리 기반, 모델 기반 | 상태 / 기능 / 객체 중심 |
작성 밥법 | 수학적 기호, 정형화된 표기 | 일반 명사, 동사 등의 자연어 기반 |
특징 | 정확, 간결 결과가 일관성이 있다 완전성 검증 가능 표기법이 어려움. |
일관성이 떨어지고 해석이 달라짐. 이해하기 쉬운 내용으로 의사소통 용이 |
종류 | VDM, Z, Petri-net, CSP 등등 | FSM, Decision Table, ER모델링, State Chart(SADT) 등 |
- 요구사항 확인 : 만들어진 요구사항 명세서가 정확하고 완전한지 검증, 검토하는 과정
'정보처리기사 > 1과목' 카테고리의 다른 글
[ 정보처리기사 { 소프트웨어 설계 }] 오답노트 (0) | 2025.02.24 |
---|---|
[정보처리기사 {소프트웨어 설계} ] 벼락치기 요약.... (0) | 2025.02.20 |
[정보처리기사 {소프트웨어 설계} ] 애자일 방법론 까지 (0) | 2025.02.08 |