本次逆向软件设计和开发我所使用的作业为由21计算4班杜良所编写的c++期末课程设计作业。
该程序采用文件读取方式进行数据存储,主要面向对象为老师,实现老师对学生成绩查询,修改等功能操作。对于当前阶段,该项目还是较为完善,功能也较为齐全。
但该系统并未划分用户等级,导致学生胡乱修改成绩的可能,及系统安全性十分低。
且该系统主要通过student类对学生信息进行管理操作,文件存储方式则采用的是多文件存储,然而在实际问题解决中,多文件存储无论从空间还是时间上都不占优势,
所以在本次开发中采用了数据库存储来代替。
原程序中几乎每个类都缺乏程序开发中默认的输入输出函数(get()和set()函数),且大部分方法采用public方式进行编写,代码安全性低。
源代码功能结构图如下:
二次开发:
功能结构:
在二次开发中,采用数据库替换了原来的多文件存储方式,在重新编写类时,将大部分的public方法更改为protected方法来增加代码的安全性。
而在系统操作中,则是新增了teacher类以便与student类进行区分,实现不同用户拥有不同级别的权限且互不干涉,提高系统安全性。
总结:
逆向软件设计和开发作为我们学习软件开发创新的第一课,具有重要意义。虽然在软件开发过程中,纯粹地修改他人代码的情况少之又少。
但逆向软件设计和开发在一定程度上能够提升我们阅读他人代码的能力和水平,在以后可能面临的团队合作中具有极其重要的意义,无法
读懂别人代码,也就无法实现相互配合。
此外,逆向软件设计和开发也在锻炼着我们的思维,通过了解他人开发的不足去了解自身也可能存在的问题,从实现软件开发与创新。
标签:逆向,存储,--,代码,软件设计,开发,安全性 From: https://www.cnblogs.com/doc-remoks/p/17182644.html