《需求分析与系统设计》阅读笔记四
信息系统从定义上就是多用户系统。多个用户和应用程序可以通过数据库管理系统并发访问同一个数据库。应用程序依赖与数据库的不仅仅是数据,还有数据库提供的解决并发冲突、保证数据的安全访问、保证数据一致性、事务错误恢复等功能。类模型和PCBMER子系统中只包含应用类,而不包含数据库结构的存储。实体类表示应用程序中持久数据库对象,但实体类不是数据库中的持久类。必须谨慎设计业务对象和持久数据库之间的关系。
数据库就像程序设计语言一样,为建模和程序设计提供了固有数据类型作为基本构造块,这些固有数据类型称为原始类型。RDB原始类型是非常基本的。它的简洁性来源于数学的集合概念,数学的基础使这个模型是描述性的。RDB不支持对象类型及相关的概念、结构化类型、集合、引用。对象关系映射是指从UML类模型映射到RDB模式的设计,对象关系映射必须要考虑RDB模型的限制。难点在于要将类图的描述性语义转换为逻辑模式设计中的过程性解决方案。
映射困难主要有两个原因:数据库的存储结构处理不了面向对象泛型以及数据库几乎都不是为单个应用程序设计的。RBD模型的主要原始类型是由多列组成的关系表。表的列只能取原子值—结构化值或值的集合是不允许的。关系数据库用列和行组成的表来定义数据,可以为列和域设置业务规则来约束他们,业务规则可以定义为:默认值、取值范围、值的列表、值的大小写、值的格式。RDB模型中要求“不允许有重复行”,因此每个表都要有一个关键字(主键)。
规则和描述性引用完整性约束允许在数据库中定义简单的业务规则,触发器是一个小程序,当定义了触发器的表发生修改操作是自动执行(触发)。
持久对象的管理毫无疑问是应用程序设计的主要问题。解决这个问题尤其需要好的设计模式集合。企业应用体系结构模式就提供了这样的集合。其中一些模式有标识映射、数据映射、延迟装载、工作单元。应用程序需要与数据库交换数据,客户端程序必须采用数据库语言来访问和修改数据库。
质量与变更管理能够判断一个IT组织是否达到了CMM过程成熟的两个最高级。质量管理分为质量保证和质量控制,变更管理是整个项目管理的基础,必须记录所有的变更请求。质量管理与人员管理、风险管理以及变更管理等活动都属于整个软件过程管理的一部分。项目管理(进度安排\预算\跟踪项目进度)是个例外。质量管理主要针对软件产品以及开发产品时所采用的软件过程。针对不同的软件项目,所要求的软件质量的重要性各有不相同。这些质量有助于实现系统最主要的目标—软件产品满足功能性需求,要达到这个目标所必需的质量如下:正确性、可靠性、鲁棒性、性能、可用性、易懂性、可维护性、可伸缩性、可复用性、可携带性、协同工作的能力、生产性、时效性、可视性。
质量管理与项目管理可以并行执行,而且也有助于项目管理。变更无处不在,并且会影响到企业的各个方面,他有业务维度和系统维度。可以(且通常)采用系统业务值来阐述变更管理,然后再讲它应用于财务模型和资本预算模型,最后在投资项目的进度安排、预算和计划中实施,其中包含软件项目。
要管理变更,就需要一个变更请求管理工具,潜在的冲突可以通过锁定或版本控制机制来解决。采用前者,则被锁定的文档暂时对其他开发人员无效,采用后者,则同一个文档可以有多个版本,但这些版本之间的冲突后来可以通过协商解决。
质量管理有两个非常正交的方面。用作质量控制机制时是被动的(事后行为),但是用于测试驱动开发框架时,它可以是非常主动的质量保证活动。质量控制与系统服务测试和系统约束测试有关。系统服务测试可以是静态或动态测试。静态测试包括走查和审查——质量保证实践中的正式评审会议。而动态测试可以针对规格说明书的测试或针对代码测试。