课程介绍
-
- 软件系统的构成的三个维度
- 我认为,软件构造是一门对计算机专业来说比较重要的课程。从这学期开设的几门课程也能够发现,这些课都是服务于计算机大类的。形式语言和计算机系统是计科方向的课程;信息安全概论对应着 络安全;人工智能顾名思义。而软件构造则是软件工程专业的基础课。但计算机大类的专业学生都学这些课程仍然是有必要的,不仅能够帮助我们更好地做出选择,也能让我们了解其他专业的知识,因为计算机的这几个专业之间也不是孤立的关系。
- 在以往我们学过了高级语言程序设计,以及数据结构与算法的课程;这两门课多是从理论层面来设计程序或算法去解决问题。而软件构造这门课则是去教会我们怎么构造出合格的软件。
- 为此,我们不仅要能够实现一个软件的构造,而是要使用现代软件构造工具去根据不同的构造目标选择合适的构造方案,利用自己面向对象编程的能力,解决软件的需要,同时要进行系统分析与评价。构造软件的过程是一个编程和试错的螺旋式上升的过程。
- 这个过程可能很复杂很曲折,但我们需要记住:We who cut mere stones must always be envisioning cathedrals.
软件构造的多维度视图和质量目标
-
- 软件系统的构成的三个维度
软件系统的构成的三个维度
- 软件的概念最早是被大名鼎鼎的Alan Turing提出的,后来许多人对此提出了他们的看法,包括许多图灵奖的得主。我认为最合理的应该是软件=模块+数据/控制流。
- 首先第一个维度的就是构造阶段。我认为这个阶段最重要的就是在语法和语义层面实现这个程序。在语法层面,要把源代码结构化,形成AST,对树进行操作;语义层面是我们根据需求,来进行设计如何去实现,最终实现代码。同时在构造阶段,我们还可以使用各种库,极大地方便了程序的编写。版本控制也是实际软件开发过程中必要的一环。
- 第二个维度就是运行阶段。这里就不进行赘述,主要讲述的是代码是如何运行的。
- 第三个维度是软件系统的质量因素。有两个方面:外部质量因素和内部质量因素。我认为他们两个就像是事物的一对矛盾。外部质量因素是指影响软件本身和开发者的因素,包括模块化和可读性等等。内部质量因素是指影响客户的方面,包括速度等因素。可以说,内部质量因素决定外部质量因素,外部质量因素反作用于内部质量因素。我们把内部质量提高了,外部质量也会有提升;外部质量差也就督促着我们去提高内部质量。
- 外部质量包括:正确性,健壮性,可拓展性,可复用性,兼容性,性能,可移植性,易用性,功能性,及时性等。
- 内部质量包括:可读性,可理解性,清晰性,大小等。
- 在设计中我们要采取折中的策略,不能顾此失彼。

有的时候会出现上述的情况,虽然很多时候根本写的不对,但代码依旧跑起来了,那我们还要不要动它了呢认为是需要的,在实际的软件开发过程中,这样的代码一定是难以调试和维护的。出现这样的代码一定是不满足内部质量因素,然后这个牛这样走路肯定没有用腿跑的快啊,那性能肯定也达不到要求,这样最终构造出的就是失败的软件。所以在构造软件时我们必须参照内部和外部质量因素,完成高质量的软件。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91960 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!