下半年软件水平考试《软件设计师》考点汇总
什么是设计模式
20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明也显得越来越重要。面对日益复杂的软件系统,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。
1995年,《Design Pattern》(中译“设计模式”)一书问世,成为面向对象编程中使用模式化方法的开创性著作。这本书对于软件实践中的一些不断变换面孔重复出现、但特征和解决方案的本质却十分类似的问题进行了总结归纳,提炼出23个具有代表性的模式。设计模式本身并不是一种具体的“技术”,它讲述的是思想。它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,还让开发人员能够真正掌握接口或抽象类的应用。更重要的是,该书提炼的这些设计模式反复强调的宗旨是尽量提高程序的使用率,让程序尽可能的可重用。
Java中的设计模式
Java语言作为面向对象编程语言的优秀代表,它拥有简单易用的特性,以及强大的功能,非常有利于设
计模式的实施。Java发展到现在,按应用主要分为三大块:J2SE、J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于大型分布式网络程序的开发,如电子商务网站和ERP系统。Java技术已经逐渐成为电子商务主流技术之一。在Java的各个平台中,设计模式有很多精彩的应用,而且随着Java技术的不断发展,设计模式也在不断丰富。
J2SE与设计模式
早期发布的设计模式主要来自桌面应用软件的开发经验。在《Design Pattern》一书中,所有的模式都是通过面向桌面应用的窗口程序来举例说明的。相应的在J2SE中,贯穿了设计模式的思想,尤其是大量运用了MVC模式。
基于工作流协同软件
工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流定义、管理及执行的系统”,其主要目标是对业务过程中各活动发生的先后次序及同活动相关的相应人力或信息资源的调用,进行管理而实现业务过程的自动化。
在企业的日常工作中,绝大多数属于流程类工作,比如业务的分级审批工作、各类申请表单、公文签
审、业务处理等。通过现代的技术手段将企业内诸多繁琐复杂的业务流程自动化,并对其进行有效地管理便是工作流需要解决的问题。
六种人不能过政审
传统的系统设计方式将业务流程以编码的方式固化在应用系统中,在业务流程和组织结构发生改变的情况下,需要将系统进行重大修改,甚至重新设计。实际上,业务流程的改变是导致许多应用系统失败的最主要的原因。
工作流管理系统的出现使得上述情况发生了改变。应用系统的开发人员通过可视化的方式分析和设计业务流程,并将各个应用模块联接在一起。在组织结构和业务流程发生变化的时候,能够在很少修改甚至不修改原来应用的情况下,仅仅通过适当调整或重新定义工作流程就能适应变化了的情况。
采用工作流管理系统有以下优点:
提高系统的柔性,适应业务流程的变化,建设各类信息系统的重要工作之一就是发现用户的工作流程,进行分析建模,并把它体现到信息系统的设计中。
企业都在随着时间不断地改革工作流程,使企业各部门能够更好地发挥服务职能、提高工作效率。
提高企业工作效率,企业许多流程在自动化过程中会省去一些不必要的步骤
较好的流程控制,通过标准的工作方法和跟踪审计,提高了业务流程的管理
简易应用规格说明技术
使用传统的访谈技术定义需求时,用户和开发者往往有意无意地区分“我们和他们”。由于不能做到像同一个团队的人那样同心协力地识别和精化需求。这种方法的效果有时并不理想(经常发生误解,还可能遗漏重要的信息)。
为了解决上述问题,人们研究出了一种面向团队的需求收集法,称为简易的应用规格说明技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。今天,简易的应用规格说明技术已经成为信息系统界使用的主流技术。
尽管存在许多不同的简易应用规格说明方法,但是它们遵循的基本准则是相同的。
·在中立地点举行由开发者和用户双方出席的会议。
·制定准备会议和参加会议的规则。
·提出一个议事日程,这个日程应该足够正式以便能够涵盖所有要点,同时这个日程又应该足够非正式,以便鼓劢自由思维。
58同城招工人·由一个“协调人”来主持会议,他既可以是用户也可以是开发者还可以是从外面请来的人。
·使用一种“定义机制”(例如,工作表、图表等)。
·目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求。
通常,首先进行初步的访谈,通过用户对基本问题的回答,对待解决的问题的范围和解决方案有了总体认识,然后开发者和用户都写出“产品需求”。选定会议地点、日期和时间,并选举一个协调人。邀请开发者和用户双方组织的代表出席会议,在会议日期之前把写好的产品需求分发给每位与会者。
理智感工程辅导浅谈架构
不得不说的就是规范性的东西,我认为规范是个很重要的东西,当然,规范不只是说大家统一用某种形式命名变量,方法等等,这只是对程序员而言的规范,如果这个划做横向规范的话,那么纵向规范就是面对客户的规范。对程序员的规范,我不想多说了,注释,变量,方法,文档。当然未必每个人都做到了这些。我想说的是对客户的规范问题。
广西区直公务员面试名单
对客户的规范有很多中,比如小细节CS系统中的Anchor怎么设置,Dock怎么设置,如何让页面看起来更加让用户舒心,如何做焦点设置。大到如何给客户做培训,如何防止用户看到不友好页面,如何简化用户操作等等,这些都是属于规范性范畴。对于焦点设置,我有深刻体会,前段时间工作,某网站输入搜索条件以后,按钮回车老是达不到焦点上去,非要我去移下鼠标点击,很不爽。
第一点,对于一个完善的架构,日志处理机制是必须做好的,日志处理不只是简单的说输出完成这么简单。首先,必须要通过配置控制在什么时候输出,在什么地方输出,如何输出,怎么记录,是记录数据库还是日志文件中。如何灵活让用户控制日志输出方式。
第二点,对于一个完善的架构,异常处理机制也是一个重点。异常怎么处理,如何记录,是记录到系统中,还是异常文件,还是数据库异常表,或者发给技术部邮件等等,如何做异常记录,在产生异常以后更容易让用户,技术人员看到异常产生的原因,这个是一个比较重要的模块。
第三点,对于一个完善的架构,配置文件是必须的,有些项目只是简单的对fg里加些配置,我认为这根本不够完善,对于配置而言,有很多需要配置的内容,比如系统连接哪种数据库,客户信息,再比如是否记录日志,异常等,是否允许用户注册等等灵活功能的控制完全可以在配置中实现。
第四点,对于一个完善的架构,如何做好权限是很重要的一块内容,比如权限如何控制,怎么处理用户,组,模块,部门等等之间的关系,工作流如何做,如何让权限与工作流做良好匹配,比如某审批人员出差了,如何处理其审批流程等等,虽然这点,我自己也在不断研究,但我想这一块非常重要。
第五点,对于一个完善的架构,流水号生成功能也相当重要,任何一种系统,不管是信息管理系统还是电子商务平台,一定都会要求按一定格式生成某套流水号,流水号也必须有灵活性,这点非常重要。
第六点,对于一个完善的架构,必须要有代码生成功能,比如基础业务类生成,实体类生成,最好可以控制数据库主外键关系等等,这样能减少程序员的很多无趣的工作量。
这是我目前总结的几个重要点,另外当然包括多语言,多皮肤等等,我想这些目前来说还未必非常重要。
如何控制需求变更
按照现代项目管理的概念,一个项目的生命周期分为启动、实施、收尾三个过程。需求变更的控制不应该只是项目实施过程考虑的事情,而是要分布在整个项目生命周期的全过程。为了将项目变更的影响降低到最小,就需要采用综合变更控制方法。综合变更控制主要内容有出影响项目变更的因素、判断项目变更范围是否已经发生等。
进行综合变更控制的主要依据是项目计划、变更请求和提供了项目执行状况信息的绩效报告。行测考什么题型
(1)项目启动阶段的变更预防
对于任何项目,变更都无可避免,也无从逃避,只能积极应对,这个应对应该是从项目启动的需求分析阶段就开始了。对一个需求分析做得很好的项目来说,基准文件定义的范围越详细清晰,用户跟项目经理扯皮的幌子就越少。如果需求没做好,基准文件里的范围含糊不清,被客户抓住空子,往往要
中级职称考试时间付出许多无谓的牺牲。如果需求做得好,文档清晰且又有客户签字,那么后期客户提出的变更就超出了合同范围,需要另外收费。这个时候千万不能手软,这并非要刻意赚取客户的钱财,而是不能让客户养成经常变更的习惯,否则后患无穷。相对于需求来说,什么WBS、风险管理、计划进度都是次要的,只要需求做好了就会一帆风顺。
(2)项目实施阶段的需求变更