软件工程第五周思考题

琉璃青天 琉璃青天     2022-12-01     361

关键词:

1.软件设计的目标及主要任务有哪些?

软件设计的基本目标是构造系统“怎么做”的模型描述。把软件需求“变换”为用于构造软件的蓝图。

总体设计:体系结构设计:定义软件模块(构件)及模块之间的关系。

接口设计:包括用户接口(界面)、外部接口、内部接口。

数据设计:软件涉及的数据结构、文件系统的结构、数据库的表结构。

模块内部细节设计:包括模块所需的算法和数据结构。

2.什么是模块化思想?

分解、抽象、逐步求精、信息隐蔽和模块独立性

3.模块独立性的度量标准?

①模块自身的内聚②模块之间的耦合。

4.内聚合耦合的含义是什么?各有哪些中种类?举例说明。

内聚:是从功能的角度对模块内部聚合能力的度量。分为功能性内聚(解析XML文档板块)、顺序性内聚(规则引擎)、通信性内聚(学生选课系统CURD)、过程性内聚(判断文件是否有权限)、时间性内聚(处理异常板块)、逻辑性内聚(打印机和显示器)、偶然性内聚(正方形面积和绘图)

耦合:对一个软件结构内不同板块之间互联程度的度量。分为非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合。

5.为什么要高内聚低耦合?是否意味着绝对?

  ①首先面向对象的主要特点是封装、继承和多态。实质上是将本来混乱的代码尽可能的抽象出共性,分门别类。最终达到复用,提高开发效率和保证软件质量的目的。大家知道蜘蛛以网来捕捉昆虫,因为网中的各个节点是互相联系的,这样增加了蜘蛛网的韧性不容易被昆虫冲破。而面向对象追求的是代码复用和运行稳定,即在模块之间减少联系。可以想象,如果各模块之间联系太过紧密对于代码复用是不容易的,因为很难会再找到同样适合的环境。同时对于运行来说也是不利的,软件发生错误是不可避免的,那么各模块如果联系紧密则错一处而动全身,好比多米诺骨牌。所以一个好的软件各模块之间的联系不能过分紧密,即低耦合。 面向对象的思想追求的是每个模块的动能单一,模块间越独立越好。即在划分模块时,只有为了完成一个功能的各个元素才会被划分到一个模块中。所以模块内部的各个元素必须是联系紧密的,否则就说明模块划分还没有到位。所以模块内部需是联系紧密的,即高内聚。
  ②并不是内聚越高越好,耦合越低越好,真正好的设计是在高内聚和低耦合间进行平衡,也就是说高内聚和低耦合是冲突的。
最强的内聚莫过于一个类只写一个函数,这样内聚性绝对是最高的。但这会带来一个明显的问题:类的数量急剧增多,这样就导致了其它类的耦合特别多,于是整个设计就变成了“高内聚高耦合”了。由于高耦合,整个系统变动同样非常频繁。对于耦合来说,最弱的耦合是一个类将所有的函数都包含了,这样类完全不依赖其它类,耦合性是最低的。但这样会带来一个明显的问题:内聚性很低,于是整个设计就变成了“低耦合低内聚”了。由于低内聚,整个类的变动同样非常频繁。

第五周课后作业

一、分析目前几款经典的热门软件,提出自己的看法,点评创新之处;对上述热门软件,指出不足之处,提出自己的观点;自己的团队项目,怎么创新才是最好的?思考和总结:究竟什么是创新?怎么才能创新?如何成为创新者... 查看详情

软工2017第五周——个人psp

10.13--10.19本周例行报告1、PSP(personalsoftwareprocess)个人软件过程。 类型任务预计时间开始时间        结束时间中断时间实际用时准备工作思考项目选题 2017-10-1314:072017-10-1314:25 0min 18min 查看详情

实习第五周

这周的话,前两天我都在看docker相关,这个docker对我来说,很抽象,容器和镜像一开始我真的搞不清,这种东西最好还是跟着敲一遍,然后回过头去看多几次文档,你会觉得,慢慢就有概念了。总而言之,看文档学习的时候,遇... 查看详情

2016710101182016-2017-2《java程序设计》第五周学习心得

...造器,super.表示调用超类的方法。实验五中老师给了一个思考题“你觉得sumAllArea和sumAllPerimeter方法放在 查看详情

博客第五周

1、查看server.xml文件是安装哪个软件包后生成的 1、rpm-qfserver.xml2、查看httpd软件提供哪些能力 2、rpm-qihttpd3、查看系统是否安装reids软件 3、rpm-qaredis4、查询系统上安装的所有rpm软件包4、rpm-qa|grep"rpm*" 查看详情

第五周软件工程作业-每周例行报告

一、PSP  T名称C内容ST开始时间ED结束时间中断时间/min实际时间/minScrum会议第一次Scrum会议10月13日11:3010月13日12:10040第二次Scrum会议10月14日15:3010月14日15:55025第三次Scrum会议10月15日13:3010月15日14:05035第四次Scrum会议10月16日11:30... 查看详情

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

  所花时间:软件工程概论上课时间(1h5min),web应用技术开发课程(接近4h)课余时间练习(2h)   共计约8h  代码量:登录界面开发292行(web),四则运算代码160行。  博客量:软件工程概论作... 查看详情

读书笔记(第五周)之魔方的创新

读书笔记(第五周)读《构建之法》之魔方的创新在不苛求比喻精准的前提下,“魔方的创新”这篇小故事写得确实有意思,也很能反映创新过程中一系列的问题。首先,通过几个大致的故事节点来总结一下情节的发展,再来逐... 查看详情

第五周课后作业

当前互联网发展迅速,热门火爆的软件也非常的多。除了几款最流行的聊天工具的蓬勃发展,比如大家熟知的微信、QQ、微博等社交软件,这些软件大家都十分熟悉并且也有很多人进行了评价,都有自己独特闪亮的见解,我也就... 查看详情

第五周计划总结

第五周计划总结英语:unit4-7单词3000数学:预备知识函数的概念与特性函数的图像极坐标系下的图像参数方程数列极限函数极限总结:这周有些浮躁,不要着急,简单重复,不要觉得学过一遍了,就完... 查看详情

第五周课后作业

第五周课后作业分析软件我们团队做的是快递代领的服务,当然市场上暂时没有类似的热门软件,因此我在这里就分析一下淘宝、京东等电商平台。鉴于这些平台我实在是太熟悉了,实在是不知道哪些是他们创新之处,哪些是共... 查看详情

第五周进度条

所花时间(包括上课):14小时(上课4,编程7,写博客1,读书2)代码量:500行博客量:1篇了解到的知识点:团队开发                      软件团... 查看详情

构建之法第五周

本章为团队和流程,主要介绍了典型的软件团队模式和开发流程以及它们的优缺点、TSP、MVP、MBP、RUP。团队有以下共同特点:有一致的集体目标,团队要一起完成这目标;一个团队的成员不一定要同时工作,例如接力跑;团队成... 查看详情

第五周课后作业

一、网易云音乐的创新和不足   2013年网易云音乐发布之后,迅速崛起,成为最受欢迎的音乐软件之一。在其迅速的成功当中,创新的力量功不可没。我们来看一看,网易云音乐吸引大量用户的创新,体现在哪些方面... 查看详情

第五周站立会议(伪)

...发布会,所以时间错过去了,就没有写。不过虽然没有写软件工程的作业,但是我同样得到了这方面的熏陶,看看实际工业界是怎么设计优化产品的。锤子科技的发布会我看的还是挺多的,从Smartisanos的发布到m1,我都看过,基... 查看详情

2018-2019-20172329《java软件结构与数据结构》第五周学习总结(代码片段)

2018-2019-20172329《Java软件结构与数据结构》第五周学习总结教材学习内容总结《Java软件结构与数据结构》第九章-排序与查找一、查找1、查找概念简述:(1)查找3是这样一个过程,即在某个项目组中寻找某一指定目标元素,或者... 查看详情

第五周读书笔记《人月神话》

   “人月”是什么?软件开发项目常以人月来衡量工作量,这种度量暗示着人手和时间是可以互换的。这种“人多力量大”的想法是一种一厢情愿的虚妄神话,作者布鲁克斯详细地阐释了团队与管理,强调了沟通及人... 查看详情

201723052018-2019-1《java软件结构与数据结构》第五周学习总结(代码片段)

201723052018-2019-1《Java软件结构与数据结构》第五周学习总结教材学习内容总结本周内容主要为书第九章内容:查找是在某个项目组中寻找到某一指定目标元素,或者确定该指定目标并不存在。高效的查找会使该过程所做的比较操... 查看详情