周周结:
本周主要还是听老师讲的一些内容,自己就是针对struts2这门技术来做一个项目:一个人员管理系统,这个系统在做的过程中也遇到了一些麻烦,自己在很多知识上的欠缺,基于此本周重点就看了jsp书籍以弥补自己的一些知识上的漏洞(struts2里面的一些关于jsp的一些知识掌握不是很好)。因为学校马上要运动会了,我们每天闲暇的时间就在练团体操了,没有大把时间来攻技术。对于人员管理系统,完成后会分享出来,还有我所遇到的问题,以后都会做个分析。
一、软件工程
这个老师是我们学校的名师,讲课很有激情,我喜欢听他的课。但他讲的理论过多,很枯燥,有时就会打瞌睡。这周它主要讲了软件设计概论和软件体系结构的设计。
软件设计的主要任务是根据软件需求模型导出软件实现方案。方案的表现为设计模型。模型包括:体系结构模型、用户界面模型、用例设计模型、数据模型、子系统/构件/类设计模型。设计模型的质量因素:正确性、充分性、优化型、简单性。
为了获得高质量设计模型,软件设计必须遵循一些基本设计原则,包括抽象与逐步求精、强内聚及松耦合、信息隐藏和关注点分离原则。
为了获得高质量的需求模型必须遵循系统化的过程模型,包括:策划、体系结构设计、人机交互设计、详细设计和总结活动。大中型和需求易变的软件项目设计过程往往采用迭代方式,经反复多次设计求精后才能如愿以偿。
如今软件体系结构设计已成为公认的软件质量瓶颈。一个完整的软件体系结构通常包括逻辑视图、开发视图、物理视图、运行视图和数据视图。用来表示逻辑视图的UML图形机制主要是包图和构件图,有时辅以类图;开发视图的表示往往可能会用到UML包图;物理视图表示为UML部署图;运行视图通常表示为UML活动图,有时辅以对象图;数据视图一般表示为UML类图或实体—关系图。
软件体系结构设计的一般包括概念设计、精化和验证三个阶段。各个阶段都要干什么事,一次说下:
概念设计:从软件需求模型中甄别出关键的软件需求项,借鉴体系结构模式确定适合实现这些需求项的体系结构雏形。
精化:对体系结构的概念雏形进行精化,分别从逻辑视图、开发视图、物理视图、运行视图和数据视图等多重视角进行设计和精化,从而获得完整软件体系结构并形成规范的文档。
验证:重点检查体系结构是否足以支撑所有软件需求项的实现,检验其合理性和充分优化性。
二、微机原理和汇编语言设计
这门课自己学的不是很明白,自己努力去看吧,有很多的东西记不住,我感觉老师上课在讲很抽象,很多东西在头脑里想不出来到底是怎么回事,老师很少说是在机子上演示下。尤其是汇编语言的一些东西混淆,头脑很乱。我也在努力去攻它。汇编对以后的内核编程很重要(听说,现在感觉不到),如果有好的学习这门课的建议,希望提些建议,感激不尽。
三、算法设计与分析
老师上课就在念念PPT,不过他念的还不如我自己看的快。这周主要讲一些算法的策略,在此主要对算法的一些策略进行小结,对于一些策略具体怎么用的,可以自行百度或google去找一系例子深入学习。
贪婪法:贪婪策略针对的是通过局部最优决策就能得到全局最优决策的问题。
递推法:跟贪婪算法一样,有当前问题的解决从而得到问题的整个解,依赖的是信息本身之间的递推关系,每一步不需要决策参与到算法中,“递推法”更多用于计算。
递归法:能用递归描述的算法通常有以下的特征:求解规模为n的问题,设法将其分解成规模比较小的问题,由这些小的问题的解构造出大问题的解,而且这些小规模的问题也可以采用同样的分解和综合的方法,由这些规模更小的解构造出规模较大问题的解。
枚举法:就是对问题的所有可能的解进行尝试,从而找到问题的真正的解。枚举法多用于决策类问题,这些问题往往不易找出大小规模间问题的关系,也不易对问题进行分解,因而用尝试的方法对整体进行求解。
递归回溯法:类似枚举法的思想,通过递归尝试遍历问题各个可能解的通路,当发现此路不通,回溯到上一步继续尝试别的通路。
分治法:解决的一般都是较复杂问题,这类问题可以逐步被分解成容易解决的独立子问题,子问题解决后,进而将它们的解合成,从而得到较大子问题的解,最终合成子问题的解。
动态规划法:与贪心算法(贪婪算法)类似,通过多阶段决策过程解决问题。每个阶段决策结果是一个决策结果序列,这个结果序列,最终那个是最优结果,取决于以后每个阶段决策,这个决策过程被称为 “动态规划法”。每一次的决策结果序列都必须存储,所以说动态规划是高效率、高消费的算法。另一方面来讲,动态规划法与递归法相似,当问题不能分解为独立的阶段但符合最优化原理(最优子结构性质)时,就可以动态规划法,通过递归决策过程,逐步找到子问题的最优解,从而决策出问题的最优结果。
算法设计的两方面:算法策略和算法。算法策略是面向问题的,算法是面向实现的。
这些算法策略的中心思想是:将解决问题的过程归结为,可以用基本工具“循环机制”和“递归机制”表示的规范操作。
本周的总结基本是这些,未完待续......
2014/5/10