软件工程基础开课之序
一、自我介绍
1120161963,软院16级学生,目前专业方向为数字媒体与软件服务,此前并没有什么项目开发经验,代码能力还行,学习成绩一般,不过对于软件工程这个专业以及对于软件开发都有着浓厚的兴趣,所以我希望也相信自己能在这门课上的学习到很多有用的知识。
二、期望以及学习目标
软件是信息化的核心之一,软件产业展现国家科技发展的核心竞争力,体现国家的综合实力。随着软件工程的迅猛发展,新的技术、方法、工具不断涌现,为我们研究和学习这门学科提供了良好的基础和难得的机遇。
所以,在这门课中,我希望我能学习到基本的原理、概念、方法、和工具,在基于实际操作的角度去理解软件系统从需求、设计、实现、测试、维护和管理的内容。
最终的目标则是能够通过软件工程综合训练,配合一定的项目开发过程,真正把所学、所掌握的知识融入到实际项目中去。
预期投入的时间为每周八小时。
三、教材初读及问题思考
1、章节3.2.3——客户端/服务模式的分布式结构
文中提到集中式数据在带来数据一致性访问优势时,也造成在网络环境下难以分布应用的缺陷。而分布式结构模型是充分利用、整合网络中计算机各自的计算能力,从而提高整个网络系统运行的能力和效率。
那么分布式结构是如何实现优化的?对于文中的描述并不是很能清楚的理解。
2、章节3.3.5——启发式规则
文中提到软件设计的目的是为了满足用户需求、适应用户变更、提供用户功能和性能的高质量软件。而模块独立性确定原则除了设计高内聚、低耦合的模块结构之外,还需要进行优化以实现高质量的软件设计。据此,软件工作人员凭借长期经验而提出了一些启发式规则。
那么如何验证这些启发式规则在大部分时候都是能够对软件做出优化的?或者说这些启发式规则在什么时候并不适用?
3、章节4.1——结构化设计方法概述
文中提到结构化设计分为面向数据流的设计方法和面向数据的设计方法。面向数据流的设计方法是根据对数据图理解的不同,对数据流图自动化边界划分的不同,分为变换分析法、事务分析法。面向数据的设计方法在基于系统数据结构的基础上,分析系统输入、输出的数据间的映射关系进而得到系统结构的设计方法。
那么面向数据流和面向数据的具体区别是什么?对数据流图自动化边界的划分是如何进行的?
4、章节6.1.3——软件测试原则
文中提到测试时一项复杂的、创造性的、与经验相结合的挑战性工作。测试一个软件系统,需要测试人员考虑到设计人员没有考虑到的或没有考虑周全的问题。对相同测试对象,采用越少的测试用例去覆盖越广的系统功能、性能、操作、数据、条件、路径等方面,去发现更多的存在的问题,就是理想的测试方案设计。并且还提出了各种测试模型,强调需要不断进行测试。
但是我个人觉得对于大部分软件而言测试也许并不需要这么多过程,给出一定的测试用例,然后判断软件给出的结果即可,而且最好的测试员应该是用户才对,这也应该是这么多客户端在正式发行之前有体验版的原因,根据体验版反馈的数据,即可极大程度上解决软件存在的问题。
5、章节7.5——UML的关系
问题域到信息域的关系映射,是通过定义模型元素间的关系来体现。模型元素间的关系仍然是UML的模型元素。在UML中,常见的关系有关联关系、依赖关系、泛化关系和实现关系。
那么这些模型元素间的关系具体是如何判断的?判断完后对应于不同的关系如何完成问题域到信息域的映射?