对软件构造这门课的感受和看法

说实话,一开始对软件构造这门课的认知还停留在单纯的设计编码这一层上,在一个学期的学习之后,我对其有了一定的更深入的了解。

首先,作为完成一个软件项目中的重要一项,软件构造得到了软件的所有源代码和可执行代码,实现了软件产品从设想到现实这一软件工程体系的重要一环。如果不关心软件的质量,包括外在质量和内在质量,那么软件构造与一门语言课程无异,也就是说《软件构造》可以改名为《Java程序设计基础》。但是为了实现高质量的软件产品,不仅需要有编码工作,还必须遵守软件构造的各种原则,具有良好的软件设计,遵守一定的编码原则以及规范的编码过程,具有软件测试的过程等,这些都是属于软件构造的内容,而这些也都是软件构造这门课的教学内容。

由于这门课的课堂涉及内容过多,有关的教材内容亦过于繁重,所以课程中的实验这一内容就尤为的重要,使得学生通过实际运用来对加深甚至是学习课程的内容。整个课程包括6个实验。

实验一:Lab-1 Fundamental Java Programming andTesting

作为整个课程的第一个实验,lab1准确来说难度并不高,主要是让学生上手练习用。

Magic Squares 部分,涉及到一点简单的算法设计,主要是Java I/O的使用和学习。

Turtle Graphics 部分,主体代码已经给出,要求学生实现几项基本功能,涉及到一点简单的算法,主要是对图形界面的应用。

Social Network 部分可以说是整个lab1的核心部分,也是之后lab2-lab4的启动项。主要涉及到Java的存储方式和数据类型以及一些遍历算法的知识。

实验二:Lab-2 ADT and OOP

作为整个实验流程的真正启动部分,lab2涉及到了ADT这一核心内容,同时要求学生实现graph这一ADT,即构造一个完全由数据组成的graph并实现对graph的一些操作,难度适中。

Poetic Walks 部分,完成graph的基础构建和功能设计,并实现graphpoet,这一部分涉及一些遍历算法。

Re-implement the Social Network in Lab1 部分,改写lab1Social Network构建friendship

实验三:Lab-3 Reusability and MaintainabilityOriented Programming

作为整个实验流程的核心部分,lab3是具有一定的难度的。

首先,以lab2graph的构建为基础,将graph由抽象的ADT具象化实现几个具体的图的类型,实现其复用性。同时还要对graph中存储的点(Vertex)和边(Edge)进行复用化设计。通过factory工厂类实现从文件中读取数据构建graph的机械化操作,而application类则是实现graph的显示并通过外部操作对graph进行更改。

实验四:Lab-4 Debugging, Exception Handling, andDefensive Programming

lab3的基础上,对代码加入异常分析和处理的功能,提高代码的安全性和稳定性。涉及到log来记录程序的状态,再有一些java工具的学习使用。

实验五:Lab-5 Static and Dynamic Code Analysis andCode Optimization

lab3的基础上,学习使用java工具对代码进行检测,并要求考虑到代码的规范性。要求读取大文件测试代码,测试在大量数据的轰击下,程序的性能表现并分析优,还涉及到一些javaI/O的知识。

实验六:Lab-6 Multi-Thread Concurrent Programming

要求学生学以致用,涉及一个自己风格的新的ADT,同时还涉及到一些java logjava 多线程的知识。

总而言之,我觉得软件构造这门课是一门很重要很有意义的课程,通过这门课的学习,能收获到了很多知识,也意识到了很多不足。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值