Home

01. Object-Oriented Design Principles

软件设计的过程 了解用户的需求,明确需求是啥? – 需求 根据需求来确定系统外部观察到的行为是什么样的? – 规约 如何联系?使用什么样的技术?– 架构(这还是比较高层的设计) 如何来完成任务?需要写哪一些代码?– 设计 面向对象软件设计 将实现的约束条件应用到面向对象分析所产生的概念模型的过程 用方法和属性来描述用于构成系统的类 添加不明显属于领域的类,比如抽象类和接口 描述类是如何构成组件的 OOD所处的环节 OOA : 概念模型 面向对象的问题分析 问题中间有需要那些实现的功能,他们对应到那些类? OOD :面向对象的设计 添加了一些额外的不是明...

Read more

GAN의 평가지표

GAN을 통해 생성된 Image들의 여러 문제점들 (a) Overfitting 현상 (b) 상속 부족 현상 (c) Mode Collapse 현상 Generator가 다양한 이미지를 만들어내지 못하고 비슷한 이미지만 계속해서 생성하는 경우 원인 : Discriminator하고 Generator가 학습이 서로 상호작용을 하면서 같이 학습이 진행 되어야 하는데 한쪽이 너무 학습이 잘 되어버려서(학습의 불균형) mode collapse가 발생 (d) Mode Dropping 현상 사람 육안으로 GAN 성능평가의 문제점 평가하는 사람에 따라 지표가 나누...

Read more

07. Project Support Activities

配置管理的意义是什么? 配置管理是为了确保工作产品的完整性和一致性 (在比较大的软件系统场景下特别有用的) 一些概念 配置项 在配置管理当中作为单独实体进行管理和控制的工作产品集合 典型的配置项 : 需求描述文档,设计文档,代码,测试用例, 用户手册 等 基线 配置项持续演进的稳定基础 发布一个基线包括该基线所有的配置项以及这些配置项的最新变更,因此,可以将基线作为接下来工作的基础。 配置管理的活动 配置管理的一块的工作 “识别配置项”的目的 :为了减少管理的对象 代码这个配置项你的粒度是什么? 有两种不同的极端 ...

Read more

06. Team Engineering Development

团队需求开发是如何进行的? 需求开发 – 需求获得 – 需求汇总 – 需求验证 需求是一切工程活动的基础 客户需求 :这个客户他需要解决什么样的问题(平台的限制,法规法律的限制等) 产品需求 : 解决这个问题的解决方案 团队设计应当如何组织? 团队设计面向整体开发,因此需要考虑如下: 团队智慧的使用 设计标准 复用性支持 复用方法的是时候,只需要看说明性的文字。所以复用文档应该用标准化的方式描述清晰 可测试性支持 TDD :帮助开发质量提升,开发质量...

Read more

Neural Collaborative Filtering (NCF)

Matrix Factorization의 개념 Collaborative Filtering 방식 중 한 종류로써 User-Item Matrix를 N차원의 User와 Item의 latent factor 행렬곱으로 분해하여 표현하는 방법 이때 y값의 예측은 latent feature들의 inner product를 통해 구함 Matrix Factorization의 문제점 Matrix Factorization에서 inner product는 단순한 방법으로 매우 효율적이지만 linear한 방식이므로 user와 item간의 복잡한 관계를 표현하는데 한계가 있...

Read more

Deep Convolutional Generative Adversarial Nets (DCGAN)

Vanila GAN의 개념 확률 분포 확률변수 : 무작위 실험을 했을 때, 특정 확률로 발생하는 각각의 결과를 수치적 값으로 표현하는 변수 주사위를 던졌을 때 나올 수 있는 확률변수 : 1, 2, 3, 4, 5, 6 확률분포 : 확률변수가 특정한 값을 가질 확률을 나타내는 함수 이산확률분포 : 대표적으로 주사위 눈금의 확률 분포 연속확률분포 : 대표적으로 정규 분포(Gaussian distribution) ...

Read more

05. Quality Management

什么叫“质量”? 软件质量为“与软件产品满足规定的和隐含的需求能力有关的特征或者特性的全体” 软件质量为内外两部分的特性: 外部质量 :用户能够感受到的 内部质量:程序员能够感受到的 面向用户的质量观 PSP中也采用了面向用户的视图,定义质量为满足用户需求的程度 在这个定义中,就需要进一步明确 用户究竟是谁? 用户需求的优先级是什么? 这种用户的优先级对软件产品的开发过程产生什么样的影响? 怎样来度量这种质量观下的质量水平? 为什么在讨论软件质量的时候,用”缺陷”这个词,而不用”错误(Error,Fault,Bug)”? B...

Read more

Collaborative Filtering

Basic Idea 사용자 x한테 추천을 해주고 싶으면 사용자 x랑 비슷하게 rating을 한 이웃들 N을 먼저 찾는다 그리고 사용자 x의 rating을 이웃들 N을 근거해서 예측하는 것 이다 Q1 : 사용자 x의 rating이랑 비슷한 이웃들 N을 어떻게 찾을까? 사용자 A,B,C,D 가 있고 각 사용자들이 영화 Harry Potter[1],[2],[3]; Twilight; Star Wars[1],[2],[3]를 rating한 데이터가 있다고 하자. (rating은 0~5까지만 있다, 빈칸은 not rated를 나타낸다) ...

Read more