软件工程概论总结第八章

第八章 面向对象设计

设计的概念

设计活动

面向对象设计过程的主要活动

设计原则

1.模块化

对于复杂系统而言,降低复杂性的有效方法是将系统模块化,也就是将一个复杂的大系统分解成若干个相对简单的较小部分,称为子系统。如果一个子系统依然是复杂的,那么继续分解直到易于开发和管理为止。子系统的层数不要超过5±2,同一层次内的子系统数目不要超过7±2个。

系统分解的另一种形式是将系统分解为对等的子系统,每一个子系统负责一个不同类型的服务,子系统之间相互独立。

2.耦合度和内聚性

耦合度是表示两个子系统之间的关联程度。当一个子系统发生变化时对另一个子系统的影响很小,,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。耦合越低越好。

内聚性是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类似的任务时,则认为该子系统是高内聚的,反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。内聚越高越好。

3.复用性

对于建立软件系统而言,所谓复用就是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统。

将具有一定集成度并可以重复使用的软件组成单位称为软构件,软件复用是直接使用已有的软构件通过可组装或合理地修改生成新的系统。

软件体系结构

通常,软件体系结构涉及软件系统的总体组织、全局控制、数据存取以及子系统之间的通信协议等。

典型的软件体系结构:仓库体系结构、分层体系结构、MVC体系结构、客户机/服务器体系结构、管道和过滤器体系结构、MiniLibrary系统体系结构。

系统设计

识别设计元素

确定设计元素的基本原则:

(1)如果一个“分析类”比较简单,代表着单一的逻辑抽象,那么可以将其映射为“设计类”。通常,主动参与者对应的边界类,控制类和一般的实体类都可以直接映射成设计类。

(2)如果“分析类”的职责比较复杂,很难由单个“设计类”承担,则应该将其映射成“子系统接口”。通常,被动参与者对应的边界类被映射成子系统接口。

(3)子系统的划分应该符合高聚合、低耦合的原则。

数据存储策略

常用的数据存储管理有3种方式:

(1)数据文件:数据文件是由操作系统提供的存储形式,应用系统将 数据按字节顺序存储,并定义如何以及何时检索数据。

(2)关系数据库:在关系数据库中,数据是以表的形式存储在预先定义好的称为Schema的类型中。

(3)面向对象数据库:与关系数据库不同的是,面向对象数据库将对象和关系做为数据一起存储。它提供了继承和抽象数据类型,但其查询要比关系数据库慢。

部署子系统

UML部署图反映了系统中软件和硬件的物理构架,表示系统运行时的处理结点以及结点中组件的部署。

系统设计评审

与分析阶段一样,系统设计也是在多次迭代和调整之后产生的,但其质量评审不需要用户参与,由开发人员正式评审,确保系统设计的正确性、完整性、一致性和可行性。

详细设计

方法建模

1.方法的命名

方法要使用完整的描述进行命名,使用“methodName()”形式。

2.方法的可见性

保护的(protected):只在类层次的内部被调用而不能由外部调用,使用符号“#”表示;

私有的(private):只在定义它的类中被调用,使用符号“—”表示;

3.BorrowerInfo类的方法建模

属性建模

将所有属性的可见性设置为private;

仅通过set方法更新属性;

仅通过get方法访问属性;

在属性的set方法中,实现简单的有效性验证,而在独立的验证方法中实现复杂的逻辑验证。

状态建模

状态建模是一种动态建模技术,它主要用于确定系统行为。在详细设计时,状态建模一般只发生在依赖状态展示不同行为的类上。在状态建模中,状态通过对象属性的值来表示,转移是方法调用的结果,经常会反映业务规则。

关系建模

全局:某个对象可以在全局范围内直接被其他对象“引用”;

参数:某个对象作为另一个对象的某个操作参数或者返回值;

局部:某个对象在另一个的某个操作中充当临时变量;

域:某个对象作为另一个的数据成员。

应用设计模式

Abstract Factory模式

目的是用于封装具体的平台,从而使应用程序可以在不同的平台上运行。

Adaptor模式

适配器设计模式的目的是封装遗留系统的代码。

Bridge模式

该模式将一个类的接口与具体实现进行分离。

Facade模式

Facade模式用简单的统一接口封装子系统,从而降低类之间的相关性。

用户界面设计

用户界面设计原则

1.用户控制设计原则

2.一致性

3.个性化

4.宽容性

5.反馈

6.审美和可用性

Web 界面设计

Web界面设计要求具有简洁性,避免使用许多复杂的图片和动画等造成用户操作的分心,同时界面布局应当适合清晰地表达信息,并具有与之匹配的导航性。

用户支持

用户界面应该提供清晰的系统提示和反馈信息,并提供某种形式的在线帮助。

设计文档

软件体系结构设计和详细设计的结果应该形成设计文档,开发组织应该采用一种标准的软件设计说明的模板。

时间: 2024-11-05 22:56:58

软件工程概论总结第八章的相关文章

《软件工程概论》第八章 面向对象设计

设计的概念: 设计活动:设计也是一个建模活动,它在分析模型的基础上完成在实现环境的类建模,状态图建模.协作建模.组件建模.部署建模.持久建模和用户界面原型,实现从需求分析到软件实现之间的跨越. 设计原则: (1)       模块化 (2)       耦合度和内聚性 (3)       复用性 软件体系结构: 仓库体系结构 分层体系结构 MVC体系结构 客户机/服务器体系结构 管道和过滤器体系结构 系统设计: 识别设计元素 数据存储策略 部署子系统 系统设计评审 详细设计: 方法建模 属性建模

软件工程概论8

软件工程概论 第八章 面向对象设计 设计活动:划分为系统设计和详细设计两个主要阶段. 设计原则:模块化.耦合度和内聚性.复用性. 软件体系结构:仓库体系结构.分层体系结构.MVC体系结构.客户机/服务器体系结构.管道和过滤器体系结构. 系统设计:识别设计元素.数据储存管理(数据文件.关系数据库.面向对象数据库).部署子系统.系统设计审评(检验“正确性”“完整性”“一致性”“可行性”). 详细设计:方法建模.属性建模.状态建模.关系建模.详细设计评审. 应用设计模式:Abstract Factor

软件工程概论

第一章 概述 软件 软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据,从软件的内容来看,软件更像是一种嵌入式的数字化知识,其形成是一个通过交互对话和抽象理解而不断演化的过程,根据软件服务对象的范围,一般分为通用和定制两种. 通用软件(Generic Software):由软件开发组织开发.面向市场用户公开销售的独立运行系统(优点:一次开发,多次出售 缺点:有风险) 定制软件(Customized Software ):由某个特定用户委托.软件开发组织在合同的约束下开发的软件(优点

软件工程概论课总结及意见建议

本学期的软件工程概论课到此就上完了,总体上来说在这门课上学到的东西是非常多的并且对我是非常有帮助的.整个学期王老师带领我们将软件工程的具体流程走了一遍,讲到了入门.过程.流程.注意事项.方式方法.关键点.关键问题等等.虽然我们没有真正接触到实际的开发项目,但已经对软件行业在脑子中有了成型的框架,不在一说到软件就是编程代码,而是软件工程行业的接近核心的知识理论.我们有的也不只是理论,王老师配合每次的讲课内容为我们准备了相应的课堂练习,以便我们能够亲身体验项目的流程. 对于软件工程概论课的教授,王老

软件工程概论个人总结

转眼又到了一个学期的末尾,在这里简单的对软件工程概论这门课进行一下总结吧.说实话,刚开始真是不知道这门课要讲些什么,总之会讲一些软件工程方面的知识吧.然而随着一次次的上课,一次次的任务,我才终于明白了这门课要我们做些什么. 这门就像老师所讲的是以“做中学”为主要的理念,主要强调让我们在自己开发软件的过程中去学习知识和技能.刚开始的几周,觉得这种方法是很好的,的确能学到不少的知识.然而这只是一个简单的开始,当二柱子的四则运算一次比一次复杂,当我们组成团队,需要在很短的时间内进行冲刺,完成自己的项目

软件工程概论10

软件工程概论 第十章 软件测试 软件测试:广义上,是指软件产品生存周期内所有的检查.评审和确认活动.狭义上,是对软件产品质量的检验和评价. 软件测试的基本原则:①应当把“尽早的和不断地进行软件测试”作为软件开发者的座右铭.②程序员应避免检查自己的程序.③在设计测试用例,应当包括合理的输入条件和不合理的输入条件.④测试用例由测试输入数据和与之对应的预期输出结果组成.⑤充分注意测试中的集体现象.⑥严格执行测试计划,排除测试的随意性⑦对每一个测试结果做全面的检查⑧妥善保存一切测试过程文档,为维护提供方

软件工程概论课程的个人总结

个人总结 请根据本次学习过程给出总结并针对教师授课给出意见和建议,字数1500字以上. 一个学期的课程快要结束了,这个学期最大的怨念就是软件工程概论,作业多而且难,还要占用大量的时间和精力去完成个人和团队的任务.但是这些都不是最主要的,最重要的是我们在这里收获和很多.比如说拿到题目之后不再是一味的上来就开始写代码写完代码就开始心情愉快的做其他事,我会先分析,然后写出我自己的设计思路,再慢慢实现我的代码,然后再作总结:所以到现在写程序很少犯以前犯过的错误,也不会再程序写一半的时候突然感觉没有思路了

软件工程概论第五周进度条

所花时间:软件工程概论上课时间(1h5min),web应用技术开发课程(接近4h)课余时间练习(2h)       共计约8h 代码量:登录界面开发292行(web),四则运算代码160行. 博客量:软件工程概论作业01 学习到的知识点:通过Jdbc连接数据库.

软件工程概论第一节

一.网站系统开发需要掌握的技术 PHP..NET.HTML等编程语言中至少一种以及环境配置.脚本语言.数据库链结等技术. 二.课堂测试的源程序代码 HTML源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http