자격정보

2025 #정보처리기사 #필기요점 #1과목 #소프트웨어설계 -1

best2253 2025. 8. 11. 00:45

🏷️ 정보처리기사 필기 요점정리

1과목 소프트웨어설계- 1

 

 

정처리 수업중 자료 요약본 입니다

 

🎗️ 소프트웨어 생명 주기

폭포수 모형(Waterfall
이전단계로 X. 가장 오래된방식. 과정중 요구사항반영이 어렵다
프로토타입 모형(Prototype
요구사항파악을 위해 시제품으로 결과물 예측. 시제품은 의뢰자나 개발자의 참조모델
새로운 요구-반영. 단기간 제작목적으로 비효율적인 언어나 알고리즘이 사용될 수 있음
나선형 모형(Spiral : 점진적
나선을 따라 돌 듯이. 계획수립-위험분석-개발 및 검증-고객평가 과정을 반복.
핵심 기술에 문제가 있거나 사용자의 요구사항이 이해하기 어려운 경우에 적합
애자일 모형(Agile : 민첩한
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발
스트린트(일정주기) 요구사항에 우선순위를 부여 개발작업 진행
소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합
종류 : 스크럼, XP, 칸반, 린, 크리스탈, FDD(기능중심개발) 등
애자일 선언문:
공정과 도구보다 개인과 상호작용. 계획을 따르기 보다 변화에 대응하기
포괄적인 문서보다 동작하는 소프트웨어, 계약 협상보다 고객과의 협력

 

폭포수모형 프로토타입 모형 나선형모형

 

 

🎗️ 스크럼(Scrum)

매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

 

제품 책임자
제품에 대한 이해도가 높고, 요구사항을 책임지고 의사결정할 사람 (개발의뢰자, 사용자)
요구사항 작성 주체. 요구사항이 담긴 백로그(Backlog)작성. 우선순위 부여
스크럼 마스터
스크럼팀이 스크럼을 잘 수행할 수 있도록 가이드 역할 수행
개발팀
제품책임자와 마스터를 제외한 모든 팀원. 개발자, 디자이너, 테스터 등

 

제품백로그 : 제품 개발에 필요한 모든 요구사항을 우선순위에 따라 나열한 목록

 

스프린트 계획회의 : 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기일정 수립하는 것

 

스프린트(Sprint) : 실제 개발 작업을 진행하는 과정으로 보통 2~4주정도

 

일일 스크럼 회의 : 매일 약 15분정도의 짧은 시간동안 진행상황을 점검

 

스프린트 검토 회의 : 요구사항에 잘 부합되는지 사용자가 포함된 참석자 앞에서 테스팅

 

스프린트 회고 : 규칙준수 등 개선 점 확인하고 기록

 

속도(Velocity) : 한번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정치

 

🎗️ XP(eXtreme Programming)

의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 애자일 개발 방법론

 

단순한 설계를 통해 소프트웨어를 빠르게 개발하는 것이 목적 ( 1~3주 : Iteration )

 

XP의 5가지 가치
XP의 12가지 기본원리
용기(Courage)
단순성(Simplicity)
의사소통(Communicaion)
피드백(Feedback)
존중(Respect)
짝 프로그래밍 (Pair Programming), 공통 코드 소유 (Collective Ownership)
지속적인 통합 (CI : Continuous Integraion),
테스트기반개발(TDD : Test Driven Develop),
계획세우기, 작은 릴리즈, 메타포어, 간단한 디자인
리팩토링, 40시간 작업, 고객 상주, 코드 표준

 

🎗️ 린(Lean)

도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상 시킨 방법론

 

린의 7가지 원칙

낭비제거, 품질 내재화, 지식창출, 늦은 확정, 빠른 인도, 사람존중, 전체 최적화

🎗️ 소프트웨어 개발 절차

🎗️ 요구사항 분석

소프트웨어 개발의 출발점이면서 실질적인 첫단계

 

소프트웨어가 무엇을 해야 하는가를 추적하여 요구사항 명세를 작성

 

사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지를 결정하는 단계

 

개발 대상에 대한 사용자의 요구사항 이해-문서화

🎗️ 요구분석 방법

애자일(Agile) , UML(Unified Modeling Language), 자료 흐름도(DFD : Data Flow Diagram),

 

자료 사전(DD : Data Dictionary), 소단위 명세서(Mini-Spec), 개체 관계도(ERD), 상태 전이도(STD), 제어명세서 등

🎗️ 자료흐름도(DFD)

🎗️ HIPO(Hierachy Input Process Output)

시스템의 분석 및 설계나 문서화할 때 사용되는 기법. 시스템의 실행과정인 입력, 처리, 출력의 기능을 나타냄

 

하향식 소프트웨어 개발을 위한 문서화 도구. 계층 구조로 표현

 

종류) 가시적도표(Visual Table of Contents), 총체적 도표(Overview Diagram), 세부적 다이어그램(Detail Diagram)

 

🎗️ UML(Unified Modeling Language)

시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어

 

구성요소 : 사물(Things), 관계(Relationships), 다이어그램(Diagram)

🎗️ 사물(Things)

: 모델을 구성하는 가장 중요한 기본요소, 다이어그램 안에서 관계가 형성될 수 있는 대상

 

종류) 구조 사물(개념적, 물리적 요서), 행동 사물(행위표현), 그룹 사물(그룹으로 묶어서), 주해 사물(설명, 제약조건)

🎗️ 관계(Relationships)

🎗️ 다이어그램(Diagram)

① 구조적 다이어그램

클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램

 

배치 다이어그램, 복합체 구조 다이어그램, 패키지 다이어그램

② 행위 다이어그램

유스케이스 다이어그램(사용자 요구분석), 순차 다이어그램(메시지), 커뮤니케이션 다이어그램

 

상태 다이어그램(이벤트에 의한 상태변화를 그림으로 표현. 럼바우 객체지향 분석 기법에서 동적모델링에 활용

 

활동 다이어그램(처리의 흐름), 상호작용 개요 다이어그램, 타이밍 다이어그램(시간제약)

🎗️ 유스케이스 다이어그램

사용자와 다른 외부 시스템들이 개발된 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현

 

시스템 범위, 액터, 유스케이스, 관계로 구성

 

유스케이스 확장 관계

 

유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때 원래의 유스케이스와 확장된 유스케이스와의 관계

🎗️사용자 인터페이스

사용자와 시스템간의 상호작용이 원활하게 이루어지도록 도와주는 장치나 소프트웨어

 

종류) CLI, GUI, NUI(Natural) : 사용자의 말이나 행동, VUI(Voice), OUI(Organic) : 사물과 사용자간 상호작용

 

기본원칙) 직관성, 유효성, 학습성, 유연성

🎗️소프트웨어 아키텍처

소프트웨어의 골격이 되는 기본 구조.

 
상위 설계
하위 설계
별칭
아키텍처 설계, 예비 설계
모듈 설계, 상세 설계
설계 대상
시스템의 전체적인 구조
시스템의 내부 구조 및 행위
세부 목록
구조, DB, 인터페이스
컴포넌트, 자료, 구조, 알고리즘

 

🎗️ 소프트웨어 아키텍처 설계의 기본원리

모델화
추상화
정보은닉
시스템의 기능들을 모듈단위로
전체적이고 포괄적으로 설계
한모듈안의 모듈에 감춰짐
수정, 재사용, 유지관리 용이
과정추상화, 데이터추상화, 제어추상화
다른 모듈이 접근하거나 변경X

 

🎗️ 아키텍처 패턴

아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제

 

장점 :

시행착오, 개발시간 단축, 안적적인 개발이 가능, 이해관계자들간 의사소통이 간편. 개발전 예측이 가능

🎗️ 아키텍처 패턴의 종류

레이어 패턴
클라이언트-서버 패턴
시스템을 계층으로 구분해서 구성
마주보는 두 계층 사이에서만 상호작용
특정 계층만을 교체해 기능개선 가능
대표적 : OSI 참조 모델
하나의 서버컴포넌트와 다수의 클라이언트로 구성
사용자는 클라이언트와 의사소통
서버 : 항상 대기중. 서로 독립적
파이프-필터 패턴
모델 뷰 컨트롤러 패턴(MVC)
각 단계를 필터컴포넌트로 캡슐화-파이프를 통해전송
재사용, 추가 확장이 용이
데이터 변환, 버퍼링, 동기화 등에 주로 사용
대표적 : UNIX의 쉘
모델 : 서브시스템의 핵심 기능과 데이터를 보관
뷰 : 사용자에게 정보를 표시
컨트롤러 : 사용자로부터 변경 요청을 처리하기 위해 명령전송
여러개의 뷰를 만들 수 있고, 대화형 애플리케이션에 적합

파이팅!

모두 모두 응원합니다


 

 

 

반응형