因为明天要参加本科生的毕业答辩,所以今天提前准备了一些问题,然后再根据学生现场答辩情况,将问题结合学生实际项目进行提问。
主要针对软件工程专业的学生。
1. B/S结构程序与C/S结构程序各有哪些特点?
C/S 架构(Client/Server,即客户端/服务器端),具有如下特点:
优点:
1)C/S架构的界面和操作可以很丰富。
2)安全性能可以很容易保证,实现多层认证也不难。
3)由于只有一层交互,因此响应速度较快。
缺点:
1)适用面窄,通常用于局域网中。
2)用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3)维护成本高,发生一次升级,则所有客户端的程序都需要改变。
B/S架构(Browser/Server,即浏览器/服务器) 具有如下特点:
优点:
1)客户端无需安装,有Web浏览器即可。
2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3)BS架构无需升级多个客户端,升级服务器即可。
缺点:
1)在跨浏览器上,B/S架构不尽如人意。
2)表现要达到C/S程序的程度需要花费不少精力。
3)在速度和安全性上需要花费巨大的设计成本,这是B/S架构的最大问题。
4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
2. 说明软件设计与开发过程分为哪几个阶段。每个阶段你都做了哪些工作,得到什么设计结果。
1)定义规划: 确认软件开发的目标、目的,针对功能和需求的可行性进行定义与规划;
2)需求分析: 细化软件下每个功能按钮的具体要求,这是一个非常重要的阶段,堪称为后续打下了夯实的基础。虽说软件开发工作是不断调整和变化的,但若需求分析做到位的话、后续工作量会相应减少;
3)软件设计: 根据需求分析结果进行整体软件的设计、框架调整,数据导入等;
4)程序编码: 从软件的设计到可运行的程序编码,第4步等于“将梦想照进现实”的实操环节,要求保障程序的可读、易维护等属性,旨在提高运行效率;
5)软件测试: 完成软件设计后、需要加以严密测试,及时纠正漏洞;通常测试环节分单元测试、组装测试和系统测试三个阶段。直至测试通过后方可上线运行、投入使用。
3. 需求分析阶段的主要任务是什么?为了完成这些任务,你都做了哪些工作?
需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
主要任务:
- 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。
- 分析与综合,导出软件的逻辑模型。
- 编写文档:包括编写"需求规格说明书",“初步用户使用手册”,“确认测试计划”,“修改完善软件开发计划”。
4. 软件测试有哪些方法?你采用了什么测试方法?
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。
白盒测试方法主要有:
代码检査法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
黑盒测试方法主要包括:
等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。
从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。
静态测试包括:代码检査、静态结构分析、代码质量度量等。
动态测试由3部分组成:构造测试实例、执行程序和分析程序的输出结果。
5. 数据库的设计分为几个步骤?
按照规范的设计方法,一个完成的数据库设计一般分为以下六个阶段:
- 需求分析: 分析用户的需求,包括数据、功能和性能需求;
- 概念结构设计: 主要采用E-R模型进行设计,包括画E-R图;
- 逻辑结构设计: 通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化;
- 数据库物理设计: 主要是为所设计的数据库选择合适的存储结构和存储路径;
- 数据库的实施: 包括编程、测试和试运行;
- 数据库运行和维护: 系统的运行和数据库的日常维护
6. 这个课题你选用的数据库管理系统是什么?采用什么接口?为什么这么选择?
7. 关系模式范式化有什么意义?在你的设计中式如何体现的?
8. 解释ER图并说明ER图的作用
9. 实体之间联系的类型有几种?详细解释它们的含义。
10. 请解释主键和外键的作用并说明它们的区别。
作用:定义主键和外键主要是为了维护关系数据库的完整性
区别:1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。
身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
11.在数据库设计阶段,你遇到的最大困难是什么?你是如何解决的?
12. 解释实现数据库结构的SQL语句。
13. 说明在设计数据库表时你是如何考虑的?
14. 你是如何创建界面与数据库的连接?
15. 解释一段主要的源代码。
16. 说明应用程序访问数据库的方法。
17. 系统中用到了什么关键技术?
18. 软件开发过程中遇到什么问题?如何解决的?
19. 说下你的课题将来的应用以及在哪方面可以改进?
20. 请解释系统的功能结构图。
21. 请解释业务流程图。
22. 请解释黑盒测试和白盒测试的概念。
23. 请解释一段程序。
24. 说明应用程序访问数据库的方法。
25. 请说明你所设计的检测系统的结构?包括哪些组成部分?各部分之间如何通信?
版权归原作者 惊鸿若梦一书生 所有, 如有侵权,请联系我们删除。