2024/04 5

[소프트웨어공학] Use Case Diagram - Generalization, Include, Extend Relation

1. Use Case 2. Relation - Generalization 화살표 방향: 구체적인 actor or use case -> 추상적인 actor or use case (1) actor간 Generalization - 자식 actor는 부모 actor의 동작과 모든 use case를 상속 받는다. - 하위 actor는 특정한 하나 이상의 use case가 있다.(상위 actor한테 상속 받은 use case가 있을 테니까) (2) use case간 Generalization - base use case는 구현되지 않는다. (-> 대신 구체화된, 파생된 use case가 있음) - Substituability(대체 가능성): runtime에서 base use case는 파생된 use case 중 하..

[소프트웨어공학] Chapter 02 - Software Process Models

1. The Software Process - 소프트웨어 프로세스는 소프트웨어 시스템을 개발하는데 필요한 구조화된 활동. == 즉, 소프트웨어를 개발하려면 무엇을 해야하는가? - 명세 Specification: 시스템이 해야할 일을 명확하게 정의 - 설계 및 개발 Design and implementation: 시스템의 구성 조직을 정의하고 구현 - 검증 Validation: 고객이 원하는대로 잘 만들어졌는지 - 발전 Evolution: 고객의 요구사항 변화에 맞춰 소프트웨어를 수정 => 소프트웨어 프로세스 모델은 원하는 기능을 만들어내기 위한 일련의 흐름이다. => 소프트웨어 프로세스 모델은 추상적이다. 왜? -> 시간의 한계, 계획서의 복잡도 증가로 인해 모든 것을 표현할 수는 없음 2. Softwa..

[DB] 데이터 추상화 레벨, 3단계 스키마 구조, 데이터 독립성

* 추상화란? Computer Science에서 추상화란 세세한 instance에서 중요한 개념, 핵심만 분리하는 프로세스를 의미한다. 즉 instance를 사용자에게 보여주는 방법, 표현이라고 할 수 있을 것 같다. 추상화는 추상화 레벨에 따라 사용자에게 보이는 detail 정도가 달라진다. 1. 데이터 추상화 레벨 - 3단계 추상화 물리적 레벨 Physical Level에서의 추상화 실제 데이터 레코드(record)가 어떻게 저장되는지 기술한다. 데이터 필드 길이, 필드 간격, 레코드의 전체 길이 등을 포함한다. 논리적 레벨 Logical Level에서의 추상화 데이터베이스에 저장되어 있는 데이터들 간의 관계를 논리적 관점에서 추상화한 것이다. 예를 들어 Type Professor = record I..

CS/Database 2024.04.06

[DB] 인스턴스(Instance)와 스키마(Schema)

1. 스키마란? 데이터베이스의 논리적, 물리적 구조를 의미한다. 쉽게 말해서, 뼈대, 데이터를 저장하는 틀이나 구조체, 변수의 타입에 대응되는 개념 정도로 이해하면 된다. 각 데이터베이스마다 구체적으로 어떤 구조인지 기술하는 방법은 데이터베이스의 모델이나 데이터베이스를 보는 level에 따라 달라진다. 하지만 구조를 기술하는 방법은 다르더라도 데이터베이스의 스키마가 데이터가 저장되는 공간 구조를 기술한다는 점은 동일하다. 2. 인스턴스란? 데이터베이스의 스키마가 겨정되면 실제 데이터 값이 스키마 형태로 저장되고 관리된다. 이 때 데이터의 실제값을 인스턴스라고 한다. (변수의 값에 대응되는 개념 ) 시간이 흐르면서 인스턴스(=실제 데이터 값)은 변경이 자주 발생하지만(데이터 추가, 삭제, 변경 등), 스키..

CS/Database 2024.04.06

[소프트웨어공학] Chapter 01 - Introduction to SE

1. 소프트웨어란? - 실행 시 원하는 기능, 함수, 성능을 제공하는 명령어 - 프로그램이 정보를 조작할 수 있도록 하는 데이터 구조 - 프로그램의 작동 및 사용법에 관한 문서 - 소프트웨어는 제조(manufacture) 되는 게 아님. 개발(develop), engineer 된다. - 소프트웨어는 마모(wear out) 되는 게 아니라 악화(deteriorate)된다. - 업계는 component 기반 구축으로 변화하고 있지만 대부분의 소프트웨어는 고객 맞춤형으로 개발된다. => custom 해서 사용 2. Legacy Software 소프트웨어는 왜 변화해야만 하는가? - 새로운 컴퓨팅 환경이나 기술의 변화에 맞춰 변경되어야 함. - 새로운 비즈니스 요구사항을 충족해야 함. - 소프트웨어는 나만 쓰는..