西门子TP900显示屏
分析过程中,使用业务用例模型来进行业务分析,每个业务用例就是“业务用例类”的一个对象;在面向对象的分析过程中,重点是找到和描述问题领域的对象或概念,并以用例模型来描述需求模型,每个用例就是“用例类”的一个对象。在面向对象的设计过程中,重点是定义软件对象,以及它们如何协作来满足需求,用以类图为主的设计模型来表达拟开发软件,每个类就是“类”这种类的一个对象。*后在编程的时候,用面向对象的**语言来描述细节,这些设计的类会有具体的实现——对象。
由于面向对象的方法恰好可以使得人们按照世界本来的面目来建立问题域的模型,设计出尽可能自然地表现求解方法的软件,能直接表现人求解问题的思维路径(即求解问题的方法),从而使得整个软件的开发过程中都保持完全一致的思维方式。因此开发的软件不仅容易被人理解,而且易于维护和修改,从而会保证软件的可靠性和可维护性,并能提高公共问题域中的软件模块和模块重用的可靠性。
1.5.3 组件技术为了提高组件的管理和应用,各种各样的“容器”被开发出来以实现组件的统一管理。比如在Windwos平台上,可以用“组件服务”(“控制面板-〉管理工具-〉组件服务”)来集中管理计算机系统内或网络中其他计算机上的组件;在Java平台上,应用服务器(Application Server,例如Jboss、Weblogic、Websphere等等)用Servlet容器、EJB容器等等来对Servlet组件和EJB组件进行集中管理。当组件没有放置在容器中时,每个组件必须自己负责解决安全、共享、完整性等等普遍性问题,因此能够不放置在容器中的组件必定比较复杂、庞大;当组件放置在容器中时,每个组件只要按照容器的规范进行设计开发,就可以方便地放置在容器内,由容器
务。这就像文件系统下的文件和数据库管理系统中的表数据一样,文件系统下的每个文件必须自己负责安全、共享、完整性等问题,而数据库中的表数据,由数据库管理系统集中解决数据的安全、共享、完整性等问题。
与一般软件不同,组件具有自包容性、平台/语言独立性、重用性、可定制性和互操作性等特点。
(1)自包容性。每个组件是模块相对独立,功能相对完整的程序单元;组件通过一些标准或自定义的应用接口将自身功能暴露出来,供使用者使用。
(2)平台/语言独立性。只要遵循组件技术的规范,开发人员就可以用任何方便的语言去实现组件,客户程序或其他组件也可以按照其标准使用组件提供的服务,且客户和组件任何一方的版本更新都不会导致兼容性问题。
(3)重用性。用户也可以很方便地在对组件进行功能扩充。由于组件已经二进制化,复用代码可以选择任意编程语言。
(4)可定制性。通过某些给是一个数据和经验的知识库,由NSF资助,用于与其他研究者共享并重新分析。我们利用了SEL的经验任意扭曲。想象一个蚂蚁正在搜寻这块地毯的高峰和低谷,试图找到*低点,比如在这个点上,软件开发的工作量和缺陷的数量*少。
如果问题足够复杂(软件设计和软件流程的决定也确实非常复杂),就不存在找到**解决方案的**途径。也就是说,蚂蚁可能被困在错误的低谷中,自认为是*低其实却不是(比如,一些山脊阻碍了它的视线,使之看不见相邻的更低谷)。
优化算法和人工智能算法使用各种试探性方法来搜索这个选择空间。一种方法是根据特定观众的目标对问题的上下文建模,然后把搜索引导至一个特定的方向。想象那只蚂蚁在一根皮带上,而这根皮带向着目标方法被轻轻地拉动。在
把不同项目和不同背景的结论抽象出来。现在可能必须满足于只在一个领域中抽象出重要因素或基本原则,而不是提供"唯一"的解决方法对所有不同背景的子集都适用。
比如,Hall等人试图回答什么能激励软件开发者。[16]他们查看了92个实验过此问题的研究,每个都有不同的背景。在试着弄清楚这些研究和它们的不同研究结果时,研究者在寻找看似能激励开发人员的因素,即使不太可能量化这些因素的贡献。于是,伴随着一定的可信度,在多个研究中所找到的有作用的激励因素被包含在这个模式中。
*终结果不是一个预言性的模型,如X因素是Y因素重要性的两倍。相反,它是一个重要因素的列表,管理者可以因此,定性研究应该在定量研究之前开展,查看那些更复杂的情况。当只涉及少数不同因素时(如物理学),就可以快速推进至定量研究了;当涉及许多不同因素时(如人类社会互动),这种转换要么需要更长的时间,要么需要利用尚不成熟的简化。软件工程证据中许多可信度的问题都来自于这种不成熟的简化。这不是二分法,这是连续体。
定性和定量研究不像简化中的那样独立。定性研究可能需要收集定性的数据(如言论或行动的记录),然后把数据进行系统化编码(如数据分类),*终量化编码数据(就是计算每个分类中的实例)并进行统计分析。定量研究反过来也可能有定性的因素存在。例如,当比较两种方法A和B的功效时,可能会比较两种方法的产品,把它们评估为“好”、“不错”和“差”。这些回答是定性的,