📌소프트웨어의 모델
- 만들고자 하는 소프트웨어 시스템을 단순화한 것
- 분석 단계에서는 고객들이 원하는 시스템의 기능들에 대하여 설명한 것
- 설계 단계에서는 실제 내부 구조에 대하여 설명한 것
📖소프트웨어 모델링 방법
structured Method (function)
- 어떤 기능의 요구사항을 위한 인풋과 아웃풋을 정의
- 인풋으로부터 아웃풋을 만들기 위한 요소들을 정의
- Data flow diagram, data dictionary가 있다
object-oriented Method (class/object)
- 객체지향 방법으로 클래스, 객체로 요소들을 정의
- UML에서 사용
📌object-oriented Analysis
- 소프트웨어 모델을 만들 때, 내 소프트웨어는 이러한 클래스들과 해당 클래스의 이러한 객체들로 이루어져 있다고 만드는 것
- 시스템 묘사를 클래스, 객체를 기본요소로 하여 하겠다.
📖특징
- Information hiding : 사용하는 유저들이 내부구조를 알 필요없으므로 숨김, 캡슐화
- Inheritance : 재사용하기 위한 상속
📖Object와 Class
- object : attributes(state, data) + operation(methods)
- class : 같은 attributes와 operation을 가진 객체들을 모아놓은 것
📖why 객체지향
- 유지보수 비용을 줄임
- 좋은 디자인패턴
- 잘 정의된 개발 절차
📖UML
- 객체지향분석에 사용하는 표기법
- 모델링에서만 사용하는게 아니고, 요구사항분석, 모델링, 설계 등 모든 단계에서 사용된다
📌structured Analysis
📖Data flow Diagram
- 함수를 노드로 하여서 시스템 흐름을 그리는 것
- 각 p들은 함수를 의미
- 엣지의 알파벳은 인풋과 아웃풋 데이터를 의미
📖Data Dictionary
- 인풋, 아웃풋 데이터를 정의하는 것
- sequencing data types : name + category + class라는 속성이 있어야한다
- repeating data types : { no + stock number + quantity + unit price }를 한세트로 반복 가능
- selecting one from several types : [ vaccum cleaner order | jet engine order ] 선택사항으로 추가 가능