[정보처리기사필기] 소프트웨어 설계
소프트웨어 설계
애자일 소프트웨어
프로젝트요구사항은 '기능' 중심 공정과 도구보다 소통을 중요시 변화에 유연하고 신속대처, 피드백을 중요시
Scrum 스크럼
Scrum Master 스크럼마스터
Product Backlog 제품백로그 : 스크럼 팀이 해결해야 하는 목록으로 소프트웨어 요구사항, 아키텍처 정의
Sprint 스프린트 : 개발을 2~3주간 진행하는 과정
Velocity 속도 : 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정치
소프트웨어 설계 요구사항
도출 - 분석 - 명세 - 확인
소프트웨어 설계에 사용되는 추상화 기법
추상화란 문제의 전체적이고 포괄적인 개념을 설계한 후 차례대로 세분화 구체화 하는것
- 제어 추상화 : 정확한 메커니즘을 정의 않고 원하는 효과 정함.
- 기능 추상화 : 입력자료를 출력자료로 변환하는 과정을 추상화함.
- 자료 추상화 : 자료와 자료에 적용될수있는 기능을 함께 정의함으로써 자료 객체를 구성.
객체지향기법
Inheritance 상속성 : 부모클래스의 모든속성과 연산을 하위클래스가 상속 받는것
클래스의 재사용, 소프튿웨어의 재사용을 높이는 중요한 개념
Polymorphism 다형성 : 하나의 메시지에 대해 각 객체가 갖고 있는 고유한 방법대로 응답하는것을 의미
하나의 클래스나 매서드가 다양한 방식으로 동작이 가능한 것, 오버로딩 오버라이딩존재
Encapsulation 캡슐화 : 데이터와 데이터를 처리하는 함수를 하나로 묶은것 재사용 용이함
인터페이스가 단순해지며 객체간 결합도가 낮아진다.
DFD자료의 흐름도
자료 Process : 원
자료흐름 Data Flow : 화살표
자료저장소 Data Store : 평행선
단말 Terminal : 사각형
소프트웨어어 개발 Model
개발대상을 추상화 하고 기호나 그림등으로 시각적으로 표현
소프트웨어에 대한 이해도 향상 , 의사소통 향상, 향후 개발된 시스템 유추를 위해 활동
주로 시스템 개발자가 실행
UML(Unified Modeling Language) : 표준화된 모델링 언어 이며 객체지향시스템을 개발할때 산출물을
명세화, 시각화, 문서화하는데 사용됨.
UI 설계도구
Storyboard 스토리보드 : 디자이너와 개발자가 최종적으로 참고하는 작업지침서
Mockup 목업 : 디자인 사용방법, 평가등을 위해 실제 화면과 유사하게 만든 정적 모형
Prototype 프로토타입 : 와이어프레임이나 스토리보드등에 인터랙션을 적용해 실제 구현된 것처럼 테스트 가능한 동적인 형태의 모형
Usecase 유스케이스 : 사용자측면에서의 요구사항, 목표를 달성하기 위해 수행할 내용 기술한다.
UI 구분
CLI(Command Line Interface) : 텍스트 형태로 이루어진 인터페이스
GUI(Graphical User Interface) : 마우스로 선택해 작업을 하는 그래픽 환경의 인터페이스
NUI(Natural User Interface) : 사용자의 말이나 행동으로 기기를 조작하는 인터페이스
VUI(Voice User Interface) : 사람의 음성으로 기기를 조작하는 인터페이스
OUI(Organic User Interface) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스
LOC기법
노력(M/M) = 원시코드라인수(LOC) / (1인당 월 평균 생산 코드 라인 수)
개발기간 = 노력(M/M) / 참여인원
GoF(Gangs of Four) 디자인 패턴
생성패턴 : 추상팩토리, 빌더, 팩토리메서드, 프로토타입, 싱글통
- Prototype 패턴 : 원복객체를 복제하는 방법.
구조패턴 : 어댑터, 브리지, 컴포지트, 데코레이터, 파사드, 플라이웨이트, 프록시
행위패턴 : 책임연쇄, 커맨드, 인터프리터, 이터레이터, 중재자, 메멘토, 옵서버, 상태, 전략, 탬플릿메서드,방문자
- Strategy 패턴 : 클라이언트 영향을 받지 않는 독립적인 알고리즘 선택
FEP(Front-End Processor) : 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 차지하는 시간을 줄여주는 프로그램
클래스다이어그램 요소
Instance : 실행중인 임의의 프로세서, 현재 생성된 객체, 클래스로 정의된 객체의 사본
Operation : 클래스의 동작을 의미, 클래스에 속하는 객체에 대하여 적용될 메서드를 정의한것. UML에서 동작에 대한 인터페이스 지칭
Item : 어떤 조직의 구성원을 의미 객체에 속하는 데이터나 메소드를 지칭 데이터베이스에서 데이터의 열을 의미함.
Hiding : 정보은폐 캡슐화된 항목을 다른객체로부터 숨기는것을 의미함.
Rumbaugh 럼바우 기법
- 객체모델링 : 객체 다이어그램
- 동적모델링 : 상태다이어그램
- 기능모델링 : 자료흐름도