码迷,mamicode.com
首页 > 其他好文 > 详细

2014/5/10

时间:2014-05-11 01:48:43      阅读:554      评论:0      收藏:0      [点我收藏+]

标签:软件设计   软件工程   算法   汇编语言   动态规划   

周周结:

    本周主要还是听老师讲的一些内容,自己就是针对struts2这门技术来做一个项目:一个人员管理系统,这个系统在做的过程中也遇到了一些麻烦,自己在很多知识上的欠缺,基于此本周重点就看了jsp书籍以弥补自己的一些知识上的漏洞(struts2里面的一些关于jsp的一些知识掌握不是很好)。因为学校马上要运动会了,我们每天闲暇的时间就在练团体操了,没有大把时间来攻技术。对于人员管理系统,完成后会分享出来,还有我所遇到的问题,以后都会做个分析。

  

   一、软件工程

        这个老师是我们学校的名师,讲课很有激情,我喜欢听他的课。但他讲的理论过多,很枯燥,有时就会打瞌睡。这周它主要讲了软件设计概论和软件体系结构的设计。

        软件设计的主要任务是根据软件需求模型导出软件实现方案。方案的表现为设计模型。模型包括:体系结构模型、用户界面模型、用例设计模型、数据模型、子系统/构件/类设计模型。设计模型的质量因素:正确性、充分性、优化型、简单性。

        为了获得高质量设计模型,软件设计必须遵循一些基本设计原则,包括抽象与逐步求精、强内聚及松耦合、信息隐藏和关注点分离原则。

        为了获得高质量的需求模型必须遵循系统化的过程模型,包括:策划、体系结构设计、人机交互设计、详细设计和总结活动。大中型和需求易变的软件项目设计过程往往采用迭代方式,经反复多次设计求精后才能如愿以偿。

        如今软件体系结构设计已成为公认的软件质量瓶颈。一个完整的软件体系结构通常包括逻辑视图、开发视图、物理视图、运行视图和数据视图。用来表示逻辑视图的UML图形机制主要是包图和构件图,有时辅以类图;开发视图的表示往往可能会用到UML包图;物理视图表示为UML部署图;运行视图通常表示为UML活动图,有时辅以对象图;数据视图一般表示为UML类图或实体—关系图。

       软件体系结构设计的一般包括概念设计、精化和验证三个阶段。各个阶段都要干什么事,一次说下:

 

 概念设计:从软件需求模型中甄别出关键的软件需求项,借鉴体系结构模式确定适合实现这些需求项的体系结构雏形。

 

 精化:对体系结构的概念雏形进行精化,分别从逻辑视图、开发视图、物理视图、运行视图和数据视图等多重视角进行设计和精化,从而获得完整软件体系结构并形成规范的文档。

 

  验证:重点检查体系结构是否足以支撑所有软件需求项的实现,检验其合理性和充分优化性。

   二、微机原理和汇编语言设计

        这门课自己学的不是很明白,自己努力去看吧,有很多的东西记不住,我感觉老师上课在讲很抽象,很多东西在头脑里想不出来到底是怎么回事,老师很少说是在机子上演示下。尤其是汇编语言的一些东西混淆,头脑很乱。我也在努力去攻它。汇编对以后的内核编程很重要(听说,现在感觉不到),如果有好的学习这门课的建议,希望提些建议,感激不尽bubuko.com,布布扣

  三、算法设计与分析

        老师上课就在念念PPT,不过他念的还不如我自己看的快。这周主要讲一些算法的策略,在此主要对算法的一些策略进行小结,对于一些策略具体怎么用的,可以自行百度或google去找一系例子深入学习。

   

    贪婪法:贪婪策略针对的是通过局部最优决策就能得到全局最优决策的问题。

    

    递推法:跟贪婪算法一样,有当前问题的解决从而得到问题的整个解,依赖的是信息本身之间的递推关系,每一步不需要决策参与到算法中,“递推法”更多用于计算。

 

   递归法:能用递归描述的算法通常有以下的特征:求解规模为n的问题,设法将其分解成规模比较小的问题,由这些小的问题的解构造出大问题的解,而且这些小规模的问题也可以采用同样的分解和综合的方法,由这些规模更小的解构造出规模较大问题的解。

 

    枚举法:就是对问题的所有可能的解进行尝试,从而找到问题的真正的解。枚举法多用于决策类问题,这些问题往往不易找出大小规模间问题的关系,也不易对问题进行分解,因而用尝试的方法对整体进行求解。

     

    递归回溯法:类似枚举法的思想,通过递归尝试遍历问题各个可能解的通路,当发现此路不通,回溯到上一步继续尝试别的通路。

    

    分治法:解决的一般都是较复杂问题,这类问题可以逐步被分解成容易解决的独立子问题,子问题解决后,进而将它们的解合成,从而得到较大子问题的解,最终合成子问题的解。

   

    动态规划法:与贪心算法(贪婪算法)类似,通过多阶段决策过程解决问题。每个阶段决策结果是一个决策结果序列,这个结果序列,最终那个是最优结果,取决于以后每个阶段决策,这个决策过程被称为 “动态规划法”。每一次的决策结果序列都必须存储,所以说动态规划是高效率、高消费的算法。另一方面来讲,动态规划法与递归法相似,当问题不能分解为独立的阶段但符合最优化原理(最优子结构性质)时,就可以动态规划法,通过递归决策过程,逐步找到子问题的最优解,从而决策出问题的最优结果。

   

   算法设计的两方面:算法策略和算法。算法策略是面向问题的,算法是面向实现的。

   

   这些算法策略的中心思想是:将解决问题的过程归结为,可以用基本工具“循环机制”和“递归机制”表示的规范操作。

 

 

                                本周的总结基本是这些,未完待续......

           

    

2014/5/10,布布扣,bubuko.com

2014/5/10

标签:软件设计   软件工程   算法   汇编语言   动态规划   

原文地址:http://blog.csdn.net/zwto1/article/details/25486609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!