Computer Science107 [Software Engineering] Agile Software Development Agile Software Development전통적인 Waterfall 모델의 한계를 극복하기 위해 등장한 소프트웨어 개발 방법론이다. 이는 팀 협업, 빠른 응답, 고객 중심 개발, 지속적인 개선을 중시하며, 변화하는 요구사항에 유연하게 대응할 수 있는 반복적(iterative)이고 증분적(incremental)인 개발 방식을 사용한다. 12 Principles of Agility1. 고객에게 가치 있는 소프트웨어를 조기에 지속적으로 전달함으로써 고객을 만족시킨다.2. 변화하는 요구사항을 환영한다. 개발의 후반부에서도 고객의 경쟁 우위를 높이기 위해 변경 사항을 수용한다.3. 짧은 주기로 동작하는 소프트웨어를 자주 전달한다.4. 비즈니스 담당자와 개발자는 프로젝트 전반에 걸쳐 긴밀하게 협력한다.5. 신.. 2025. 2. 14. [Database Systems] Transactions, Concurrency Control TransactionsDB의 컨텐츠에 접근하거나 변경하기 위해 사용자 또는 애플리케이션에 의해 수행되는 일련의 ActionTransaction은 다음과 같은 두 가지의 결과를 낳을 수 있다.1. Failure: Transaction 실패 시, 이전 상태로 회복2. Success: Transaction 성공 시, 새로운 Consistent State로 전환 Properties of Transactions (ACID Properties)Atomicity: Transaction안에 있는 모든 action이 성공하거나, 성공하지 않아야 함Consistency: Transaction은 DB가 기존 Consistent State -> 새로운 Consistent State가 되게 함Isolation: 한 Transa.. 2025. 2. 13. [Software Engineering] Process Improvement: CMMI Misconceptions and Symptoms of Process Failure다음과 같은 이유로 Process 자체에 너무 집착할 필요는 없다.1. 창의성을 방해한다.2. 관료주의 + 규제3. 프로토타입이 필요가 없을 수 있다.4. 대규모 프로젝트에만 유용하다.5. 빠르게 움직이는 시장에서 민첩성을 방해한다.6. 비용이 너무 많이 든다. 그리고 Process 실패에 대한 영향이 다음과 같이 존재한다.1. 지속적인 지연2. 진행 상황에 대한 관리 가시성 부재3. 품질 문제4. 팀원 사기 저하 Capability Maturity Model Integration: CMMICMMI는 카네기멜론대학교에서 개발한 Process 개선 교육 및 평가 프로그램이다. 기업은 Maturity level 등급 또는 Ca.. 2025. 2. 12. [Database Systems] Relational Database Design Algorithms Relation Decompositionrelation schema은 database의 모든 attribute를 포함하고, 여기서 모든 attribute의 이름은 unique하다. 이 R을 D = {R_1, R_2, ..., R_m}으로 Decompose한다면, 각 R_i는 R의 subset을 포함한다. 그리고 R의 Attribute는 적어도 하나의 R_i에 포함된다. 각 R_i는 BCNF 또는 3NF가 되며, D는 R의 Decomposition이라고 불린다. 단 두개의 Attribute를 갖는 relation schema는 자동적으로 BCNF가 되지만, 문제점은 다른 Relation과 Join하였을 때 Spurious tuple이 발생할 수 있다는 것이다. 좋은 Relation database를 위한 .. 2025. 2. 9. [Software Engineering] Project Management The Four P's for ManagementProject Management: 제품을 현실로 만드는 데 필요한 모든 작업 관리Process Management: 작업을 완료하기 위한 프레임워크 활동 및 소프트웨어 엔지니어링 작업 세트 관리People Management: 성공적인 프로젝트의 가장 중요한 요소인 인간 관리Product Management: 구축할 소프트웨어의 형상관리 및 품질관리 Management Activities- Proposal Writing계약을 따거나 작업을 수행하기 위한 제안서를 작성해야하는데 제안서에는 무엇을 어떻게 할 예정인지도 중요하지만, 왜 해야하는지에 대한 정당성도 중요하다. - Personnel Selection and Evaluation프로젝트에 적합한 인력을.. 2025. 2. 8. [Database Systems] Normalization NormalizationNormal Forms: 바람직한 형태의 테이블Normalization: 테이블을 더 작고 더 바람직한 나누는 것Lossless Join Property: 나눠진 것을 Join했을 때, 나누기 전과 완전 동일한 속성Dependency Preservation Property: 의존성이 보존되는 것Prime Attribute: Candidate key에 속하는 attribute First Normal Form (1NF)1NF: Relation에 속한 모든 Domain이 Atomic value로만 되어있는 것. 즉, Relation의 모든 Attribute value가 Atomic value로만 되어있는 Normal formSecond Normal Form (2NF)Full Functi.. 2025. 2. 7. 이전 1 2 3 4 5 6 ··· 18 다음