网友:领域模型、概念模型、业务模型三者之间有什么关系?
UMLchina_潘加宇: 三者是基本一样的。说的都是现实中的模型,要说有区别,应该是:前两者说的是类图,后一个不只是类图。
网友: 可以不确切的将分析类中entity class看作是业务模型的主要成分,对否?
UMLchina_潘加宇: 分析类中entity class是系统的一部分,是分析阶段的工件。业务模型(如果有)里应该是业务对象图。
网友:用例是为了更好地进行需求分析?
UMLchina_潘加宇:用例是帮助开发者获得有价值需求的技术。
网友:对于入门者请潘先生能不能先介绍一番。
UMLchina_潘加宇:入门者请看http://www.umlchina.net/training/umlchina_1.pdf,http://www.umlchina.net/training/umlchina_2.pdf。
网友:是不是很多小型的项目,用类图,就很足够了?
UMLchina_潘加宇:类图是武器,用例是目标。目标错了,拿着AK47又有什么用?后果是,一旦出了问题,受怀疑的不是目标,而是AK47
网友:use case 和 时序图、类图有何关系?
UMLchina_潘加宇:通过顺序图把用例文档的系统责任分配到类上。
网友:请问是不是需要我们客户也需要学习UML?
UMLchina_潘加宇: NO!
网友:感觉在实际使用中,特别是小项目中用起来比较费劲。
UMLchina_潘加宇: 那是因为误用的人太多,只领会了形式。
UMLchina_潘加宇: mdl里有的只是uml提供的符号,在分析阶段开始才比较管用。
网友: 如何掌握use case的粒度问题?
UMLchina_潘加宇: 用例要有路径、路径要有步骤,而这一切都是“可观测”的。例如:“到数据库取某字段”对客户是不可理解和验证的,当然,是客户提出的又是另外一回事。
网友:我觉得用例的粒度问题,应该是,用例分析过程中应该是逐步求精的过程。即先有个大框架,然后再进一步细化,直至一切都可观测。不知道潘老师怎么认为?
UMLchina_潘加宇:我没有理解你的问题。但用例确实可以是自外而内的推进。
网友:请问你设计了那么多案例,有没有一些基本的自我设计的一些原则总结呢,即使很笼统地我们也想听听。
UMLchina_潘加宇: 原则不敢说,体会最深就一句话:形式正确容易,内容正确难。UML在第一关帮助很大,但第二关要靠我们自己。
网友:在分析系统的用例时,怎样才算找到准确的用例,即找用例的标准是什么?
UMLchina_潘加宇: 准确有两个层次。第一层、粒度,内容符合用例的定义。这一层是形式正确,容易做到--标准是理解用例的含义。第2层,识别的用例符合了客户的需要。这是内容正确,较难,标准是理解涉众的需要。
网友:一个信息管理系统中,对某一个实体信息的管理维护,是分出增加、删除、修改还是只看作一个维护用例?
UMLchina_潘加宇:请看?http://www.umlchina.net/training/umlchina_2.pdf?
网友: 对某一个实体信息的管理维护,是分出增加、删除、修改还是只看作一个维护用例?
UMLchina_潘加宇:关键是要找出CRUD背后可能隐藏的业务。
网友:我觉得对一个实体的操作还是当作一个用例吧。
UMLchina_潘加宇:不是,用例是系统提供价值的体现,严格上与面向对象无关。
网友: 在类图理解上,最容易出错的地方大概是什么呢?
UMLchina_潘加宇:对初学者来说,估计是泛化和关联的混淆。
网友: 泛化和关联,怎用才能不混淆,有什么窍门么?
UMLchina_潘加宇:没窍门。除了理解OO,理解业务。泛化是集合的关系,关联是个体的关系。泛化是类级别的复用,关联是个体的组装。
网友: 用UML设计程序,用户界面应在什么阶段设计?
UMLchina_潘加宇:在设计阶段,由分析阶段的界面类责任导出。
网友:在实际中,很多可能自定义的类是从系统的一些类泛化出来的。
UMLchina_潘加宇:通过泛化来复用另一领域的类(如系统类)并不是个好主意。
网友: 分析阶段的类图应该到什么程度?
UMLchina_潘加宇:该有的都有,只是与平台无关。
网友: 把类的泛化和关联等都要做出来么?
UMLchina_潘加宇:那自然,否则你分析什么。
网友: RUP现在是否只停留在理论阶段?
UMLchina_潘加宇:UP的思想和实践已经无处不在,可能有很多种表现形式,真正成功的软件开发,没有UP的思想无法想像其结果。
网友: 系统类已经提供很好了,只有一点点没有。
UMLchina_潘加宇:这一点点就是业务吧,这才是你真正要花时间去搞明白的东西。现在的开发,代码的95%都是微软等帮你写的,你应该把精力集中到你的5%上。
网友: 那我需要用到的功能,系统类已经提供很好了。
UMLchina_潘加宇:所有的开发,只要不是从头做起,都是“系统类已经提供很好了”的,但这只能说明,我们要超越“能运行”的阶段,向做出有用的软件迈进。
网友: 是否可以迅速掌握UML建模?
UMLchina_潘加宇:没有捷径,实践+学习+思考。
网友: 迅速掌握UML建模呢?
UMLchina_潘加宇:即使是参加uMLChina训练,我们也只会说,团队把用例、类、顺序图三步都用好,时间要一年。
网友: 能不能在赛迪网看到 潘先生的文章?
UMLchina_潘加宇:我的文章本来就很少,希望下面阶段能抽时间把积累的东西整理整理,帮助大家真正把UML用起来。
网友: 如何判断泛化?
UMLchina_潘加宇:判断泛化的一个好方法是,超类的对象集合包含所有子类的对象集合。
网友:是先有类,还是先有顺序图啊?
UMLchina_潘加宇:对于不是专家者,我建议先有类,后有顺序图。对于这方面的细节,现在的各方书、资料等说得不够详细。我们的第一本指定教材《有效用例模式》很快就会出版。
网友: 分析阶段出的模型和设计阶段初的模型有什么区别?
UMLchina_潘加宇:一个平台无关,一个平台相关。
网友: 需求获取与分析的比例?
UMLchina_潘加宇:不同阶段是不同的,在初始阶段和精化阶段,需求科目比例很大。在后面的阶段,需求比例越来越小,分析设计科目比例增大。
网友: 具体什么时候可以看到《有效用例模式》?
UMLchina_潘加宇:应该是8月底。例子都是实际项目,而且一个mdl看出来的东西很少,我会尽量写一些文章在《非程序员》,里面争取80以上都是实践例子。
网友: 是否有好书推荐?
UMLchina_潘加宇:用例只推荐两本:编写有效用例和有效用例模式,其他书很多地方有强烈误导。
网友:《有效用例模式》有电子版吗?
UMLchina_潘加宇:英文的有,中文的只有样章,http://wwwumlchina.com/book/book2.htm
网友: 是否大部分工作是在分析阶段做完的,设计阶段只是根据分析的结果并把他们移植到要采用的平台上?
UMLchina_潘加宇:与业务相关的工作是的。但也依赖于项目的性质,有的项目设计也是非常花工作量的,有的项目则不然。
网友: 类怎么得出来?
UMLchina_潘加宇:需要认真研究需求(用例文档),从用例文档中抽取。
网友: RUP是什么东东?
UMLchina_潘加宇:不知道RUP不要紧的。
网友: 设计阶段不就只是说把相关的分析内容再应用的要采用的开发语言么?
UMLchina_潘加宇:对,这有的时候很容易(象普通的商务系统),有的时候比较麻烦的(运行平台很特殊,硬件也特殊)
网友: RUP分析出类的时候,有没有一些指导性的原则?
UMLchina_潘加宇:用例文档要做好、理解,要理解OO概念。
网友: 有没有一些指导性的原则?
UMLchina_潘加宇:有一些辅助的工作细节,这里就很难演示了。
网友: 到底要画哪些图?序列图是必须的吗?
UMLchina_潘加宇:如果不是面向对象开发,只有用例文档是必须的,然后直接编代码都可以。如果是面向对象开发,需要用类图描述结构,顺序图分配责任。