对象:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。
对象的定义:(1)定义1:对象时具有相同状态的一组操作的集合。(2)定义2:对象是对 问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能 力。(3)定义3:对象::=
消息:消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规则说明。 3个组成部分:接收消息的对象、消息选择符、零个或多个变元。
消息:就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。
第十章(随便看看)
1、3个子模型与5个层次P232:静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。复杂问题的对象模型的5个层次:主题层;类与对象层;结构层;属性层;服务层
2、ATM系统 图10.2 图10.8
3、脚本的概念P247:指系统在某一执行期间内出现的一系列事件。脚本描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。
第十一章
1、面向对象设计准则
(1)模块化 (2)抽象 (3)信息隐藏 (4)弱耦合 (5)强内聚 (6)可重用 2、软件重用 层次:(1)知识重用 (2)方法和标准的重用 (3)软件成分的重用 级别:(1)代码重用 ①源代码剪贴 ②源代码包含 ③继承 (2)设计结果重用 (3)分析结果重用 3、类构建重用
(1)实例重用 (2)继承重用 (3)多态重用
第十三章
1、估算软件规模 代码行技术:(1a+4b+c)/6
优点:代码是所有软件开发项目都有的产品,而且很容易计算代码行数。缺点:源程序仅是软件配置的一个成分,用它的规模代表整个软件的规模似乎不太合理;用不同语言实现同一个软件所需的代码行数并不相同;不适合用于非过程语言。 2、功能点技术:
功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。
3、功能点技术定义了信息域的5个特性:输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)、外部接口数(Inf)。
4、计算未调整的功能点UFP:UFP=a1*Inp+a2*Out+a3*Inq+a4*Maf+a5*Inf 计算复杂性影子TCF:TCF=0.65+0.01*DI DI=Fi之和 计算功能点数FP:FP=UFP*TCF
5、工作量估算:静态单变量模型、动态多变量模型、COCOMO2模型 6、COCOMO2的3个层次模型: (1)应用系统组成模型
(2)早期设计模型 (3)后体系结构模型 E=a*KLOC^b+Fi之积
COCOMO2使用的5个分级因素 (1)项目先例性 (2)开发灵活性 (3)风险排除性 (4)项目组凝聚力 (5)过程成熟度 6
、
7、人员组织三种典型组织方式:(1)民主制程序员组(规模小,对发现错误持积极态度,合作密切)
(2)主程序员组(专业化、层次性) (3)现代程序员组(结合前两点)
8、软件质量:软件质量就是软件与明确的和隐含的定义的需求相一致程度,是软件与明确地叙述的功能和性能需求,文档中明确地描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致程度。
(1)软件需求是度量软件质量的基础,与需求不一致就是质量不高
(2)指定的开发标准定义了一组指导软件开发的准则,如果没有遵守这些准则,肯定会导致软件质量不高。
(3)通常,有一组没有显式描述的隐含需求。如果软件满足了明确的需求而不满足隐含的需求,那么软件的质量仍然值得怀疑。 9、能力成熟度模型 (1)、初始级 (2)、可重复级 (3)、已定义级 (4)、已管理级 (5)、优化级