Please explain how object-oriented paradigm has more advantage
than structured
paradigm does.
1
structured paradigm 只能是面向行为的或者是面向数据的,但不可以
同时面向数据和行为。object-oriented paradigm 把数据和行为看的同
等重要。看一个对象的最简单的方法就是统一软件的组件,将数据和
行为结合起来。
2. object-oriented paradigm 可以更快更容易进行维护
3. object-oriented paradigm 使开发更容易
4.好的设计对象有独立的模块。object-oriented paradigm 用封装体现了
独立性。信息隐藏保证了执行的细节被隐藏了,此对象以外的不可以
访问,唯一允许进行通信的方式就是给一个对象的方法传递 message。
5. structured paradigm 是一个单一的单元,所以不适合大型产品开
发,相反,object-oriented paradigm 把产品分成更小的独立的单元,
减少软件产品的复杂性,更容易开发维护
6. object-oriented paradigm 可重用性强,因为对象是独立的实体,所
以他们可以在未来的产品中重用,减少了开发和维护的时间和开销。
7.用 object-oriented paradigm,对象从很早就进入的生命周期。在分析
阶段提取对象,在设计阶段设计,在执行阶段编码。在阶段之间的转
换更顺利,减少了开发时发生的错误。
二.
Please explain why maintenance is necessary.
对产品的改变有 3 个原因:
1. 产品有错误,或者是分析错误,或者是设计错误或者是编码错误
或者是文档错误。这是纠错性维护,占 17.5%
2. 大多数时间,占 60.5%是完善性维护。因此,改变代码来提高产品
的效率。例如,增加产品功能,修改产品使其运行的更快。提高
产品的可维护性。
3. 第三种改变是因为产品运行的环境改变。例如,产品移植到新的
编译器,操作系统或硬件下。或者是税率的改变,则产品中用到
税率的也要相应的改变。占 18%
4. 剩余 4%的维护时间用于其他类型的维护。
三
Please list three recommendations on good coding style, and explain them
briefly.
1. 用一致的变量名。
2. 少用 Self-documenting code。这样需要写许多序元注释和行间注
释。
3. 使用参数(变量)。很少有真正的常量。多用参数,当值改变的
时候,改变可以快速有效地执行。
4. 代码布局增强可读性。多使用空行。每行尽量语句不超过一句。
大块代码之间使用空行,增强可读性
5. if 嵌套不超过 3 层。If-if,和 if-else-if 都降低了可读性。
Please list the advantages and disadvantages of top-down
implementation.
优点:错误隔离
主要的设计错误可以尽早的发现
缺点
可重用的模块不能充分测试
What is Sandwich integration? And its strengths or weaknesses?
逻辑模块用 integrated top down,主要的设计错误可以尽早的发现。
操作模块用 integrated bottom up,可重用的模块可以进行充分的测试,
不用有错误防御的程序调用它们,因此重用性很好。然后将 2 组的接
口一个一个地进行测试。、
优点:错误隔离
设计错误可以尽早的发现
可重用模块得到充分测试
2. Do you agree with the following statement? And why? Please explain
or discuss. (9 marks)
It is the code/program which is executable and used by the uerse finally.
So, as long as we do a good job in implementation phase, we can
guarantee the success of a software product.
这个观点是错误的
尽管用户最终使用的是可执行的代码,开发人员需要尽力一系列的阶
段去实现他。包括,需求,分析,设计,执行与集成和维护。每阶段
的结果都会整个软件是否成功
需求阶段的目标:获取用户需要什么
分析阶段目标:分析用户的需求,进行重定义,完成需求的细节理解,
使可以正确开发和容易维护
设计阶段目标:产品怎么样可以完成这些功能
执行:用计算机语言执行目标产品。一旦产品交给用户,知道产品彻
底废弃,都要进行维护。
以上任何单一阶段的成功都不能保证产品的成功。Code/program 只是
产品的执行阶段,所以不可能保证产品的成功开发