第一篇:软件工程之教课感悟
企业老师讲座心得体会
--------达内公司的老师们问了现场的学生2个问题:“为什么会选择计算机这个专业呢?”、“了解目前中国、重庆IT行业的发展吗?”,同学们都没有回答清楚这2个问题,看来同学们在IT行业方面的知识很匮乏。
前几天,软件学院老师为我们2012级软件工程的学生邀请了好几家公司(北京达内、中软国际、浙大网新、西安深蓝,上海杰普)进行专业方面的讲座,我从始至终认真聆听了讲座的内容,获益匪浅。在这里,我将分几个模块阐述我的感想。“软件工程师的求职技巧”,“软件工程师的人生规划”,“软件产业发展和就业前景”,“软件行业发展趋势及人才需求”,“软件工程师的职业特点”,“软件职业保密原则”,“软件技术发展与管理理念进步的相互关系”,“软件工程师犯罪面面观”。“软件工程师的职业特点”
几家公司之中对我印象最深的是北京达内公司杨经理就“软件工程师的职业特点”在6号楼311给软件工程的学生进行了一场精彩的讲座。
为了帮我们更好的分析自己将来所从事的行业的特点,讲座一开始,杨经理给同学们抛出几个问题:什么是软件,软件行业的从业环境,软件行业的发展前景,软件行业的人才需求。针对这几个现实性的问题,杨经理进行了详细的介绍。什么是软件?软件是一系列按照特定顺序组织的电脑数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
软件并不只是包括可以在计算机上运行的电脑程序,与这些电脑程序相关的文档,一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。同时,通过杨老师的讲解我们了解到软件产业已经成为我国社会与经济发展的重要领域及支柱产业。我国大规模基础设施建设对软件的需求巨大,例如金融、煤炭、电信等行业,这些细分市场对软件和服务的需求将越来越明显。其次政府部门对信息技术及软件的需求也与日俱增。例如办公自动化的普及、信息共享的趋势化、政府信息的公开化等等,都需要软件技术给予支撑。2011年中国软件产业企业个数有22788家,其中,软件业务收入为18467.93亿元,同比增长率为32.40%;软件产品收入为6157.78亿元,同比增长率为28.50%;信息系统集成服务收入为3921.36亿元,同比增长率为28.40%,工信部发布的《软件和信息技术服务业“十二五”发展规划》提出,到2015年软件和信息技术服务业将实现业务收入突破4万亿元,占信息产业比重达到25%,年均增长24.5%以上,软件出口达到600亿美元。信息技术服务收入超过2.5万亿元,占软件和信息技术服务业总收入比重超过60%。
随着企业和个人用户对软件需求的不断增长,必将成为软件产业不断创新的动力,进而为软件企业及软件人才的发展带来更多的机会。根据杨老师的讲解,我们认识到,我们选对了专业,软件行业未来的发展前景很大!软件产业“已经进入快车道,持续、快速、迅猛的快速发展”。“有可能在2020年成为我国排名前一两位的大行业”。“我建议各位如果有人力、物力、财力,往这个行业里投是赚钱最快的。我们现在学好专业知识,才能在未来的天空里一展身手。
不仅如此,根据目前生活中无处不在的软件产品,介绍了软件行业未来的广阔前景,与此同时,王总监也强调了软件开发过程中规范,标准及流程的重要性,加上一些鲜明的例子,让我们对软件及其开发过程有了更加深刻的了解,讲座最后,杨经理希望我们能及时地了解行业发展动态,与时俱进,同时,在日常生活中,能保持良好的生活习惯,注重实践应用,为自己以后的发展打下坚实的基础。
“软件职业保密原则”
西安深蓝人才实训机构工程师韦冲就“软件职业保密原则”在1号楼106对我院软件工程的同学进行了一场精彩的讲座。
首先,我明确了什么是软件公司商业机密。商业机密是指不为公众所熟悉,能为公司带来经济利益技术信息和经营信息;例如产品设计方案、开发代码、财务报表、销售报表、开发流程、管理诀窍、客户资料、产销策略、招投标中的标底及标书内容等信息。同时,韦老师强调了工作中的注意点,1)遵循“4不原则”,不该说的不说,不该听的不听,不该看的不看,不该问的不问。(2)提高警惕性,树立保密意识,保守公司机密,以企业的未来为工作的出发点; 韦老师提到了一个案例:2010年,西安某大型IT公司,20多位工程师进行一项新产品研发,大笔资金投入到该项目,历时8个多月,然而产品投入市场不到1个月,另外一家竞争对手却在很短的时间内生产出一模一样的产品,后来经过了解,发现原来参与研发的一个开发人员在跳槽时用移动硬盘将电脑中的设计图纸和需求文档以及重要代码全部带到竞争对手那里,以此获取了丰厚的经济回报。后来虽经法律程序处理,此工程师受到了法律的制裁但是也未能挽回企业的损失。
此案例让我认识到了保护商业机密在经营活动中的重要性。在以后踏入社会的工作中要保护好商业机密。
“专业技术和职业道德哪个更重要?”一个引人深思的问题道出了此次讲座的中心,韦老师给同学们概括性的介绍了“保密原则是软件工程师所必需的职业道德”,与此同时,韦老师结合一些实例以及自己的亲身经历及感受,向我们详细的说明了一些基础的软件开发工具,商业机密的特点以及保密在软件开发活动中的重要性,韦老师简单而又平实的语言,说明了作为一名优秀的软件工程师应具备的素质,同时,他结合深蓝人才培养的要求及方法,对同学们提出了几点希望,希望同学们能积极动手,善于实践,不断积累,为自己以后的事业打下坚实的基础!“软件技术发展与管理理念进步的相互关系”
软件学院特邀浙大网新的技术总监张庆莅临我校,在一号楼106教室为我们开展了“软件技术发展与管理理念进步的相互关系”的专题讲座。
张老师介绍了软件技术的发展并以此提出来主流软件人才培养方向。C#/.NET工程师,JAVA/J2EE工程师,C/C++工程师,iPhone/iPad工程师,Android工程师,测试工程师。同时,张老师介绍了 IT软件企业组织架构。使我们明白了企业的基本构架。不仅如此,针对项目型人才培养过程,张老师也向我们做了阐述:拟定一个项目;项目课题来自真实项目,真实客户;根据项目大小组建合适的团队(二到五人);团队合作和个人独战的实现过程有很大不同;理清需求,制定计划;学会整理业务逻辑,控制项目过程;概要设计,验证关键技术,实现编码,组合项目。
然后,张总监又共同与我们了分享IT公司企业文化:做你喜欢做的事情
要有改变世界的理想;团队合作,共同成长;拥抱变化,勇于创新;诚信敬业,精益求精;多动脑筋,条条大路通罗马;乐观向上,永不言弃。
张总监以提问的形式,大致了解了学习编程语言的现状,并且结合当前较为流行的编程语言,分析了各主流技术利弊以及开发所需要的必要环节和具体要求。张总监依据自己多年的开发经历,提出了作为软件工程师应该具备的能力:一门主要开发语言,一门辅助开发语言;一门以上主流关系型数据库,标准SQL 逻辑思维清晰的业务分析能力;常用软件工具的使用;一定的文档编撰能力;当今软件技术的发展和新的管理理念。他结合浙大网新的人才培养计划,要求我们要具备较强的学习能力,学会自主学习。张总监又介绍了当前风靡全球的电子设备,大大提高了我们对于软件开发的兴趣,拓宽我们的视野。
“软件行业发展趋势及人才需求” 中软国际北京ETC技术总监周海来我校,于1号楼106教室就软件行业发展趋势及人才需求做了分析。
首先软件人才期待高品质。
软件产业的发展离不开软件人才,全国软件学院联席会秘书长李璞在接受记者采访时表示,“要真正发展软件产业,必须加大软件人才培养的力度。”我国软件人才培养的真实状况目前究竟如何?在软件人才培养过程中遭遇着什么样的难题?记者就这个问题与李璞秘书长以及微软亚洲研究院高级经理陈宏刚博士作了交流。
国家对软件人才培养的重视程度跟对软件产业的扶持是成正比的。在此之前,国家已先期建立了部分示范性软件学院,中科院研究生院软件学院就是其中的一个。全国软件学院联席会秘书长李璞对记者表示,中科院研究生院软件学院是做得比较成功的一个范例。他们的产学研一体的培养模式应该推广开来。
比较合理的IT人才培训供应链应该是高校、专业IT培训机构和IT企业的互动链条。高校教育相对稳定,偏重理论基础知识的教学,培养的人才根基扎实;专业IT职业教育机构的培训内容则更加灵活,更能紧跟市场需求;而通过与企业合作进行的专业化高标准的职业技能培训,也是完善人才教育体系极为重要的一环。
微软亚洲研究院高级经理陈宏刚博士认为,“IT企业与大学联盟已成为现实:IT企业雇员有机会走上讲台;IT企业对培养方向的参与加强,因而减少再培养成本。”陈宏刚博士说,去年微软曾联合ATA等知名企业启动了一个2个亿的软件人才培养项目。目前,此项目已引入大连。
同时,周海老师结合现代社会软件应用的三大主流方向,简述了软件行业在未来的广阔发展前景,对相关技术人才的需求及未来社会智能家居的畅想;鼓励我们主动学习,主动编写一些小的软件程序来提高自己的编程能力,不断提高专业水平;从技术做起,逐步发展,增强学习能力;同时也提醒同学们锻炼身体,提高身体素质,为以后高强度的工作打造一个良好的体魄。
“软件产业发展和就业前景”
在兰州理工大学西区工程训练中心多媒体教室,计算机与通信学院邀请上海杰普软件科技有限公司总裁赵敏先生,为我们做了以“软件产业发展和就业前景”为主题的讲座。
向左走,向右走?向哪走?IT职业发展现状及未来发展趋势,职业发展自我定位,人生选择。赵老师介绍了未来非常有前景的领域——物联网。IBM前首席执行官郭士纳提出一个重要的观点:计算模式每隔15年发生一次变革。1965年前后发生的变革以大型机为标志,1980年前后以个人计算机的普及为标志,1995年前后发生了互联网革命。每一次这样的技术变革都引起企业间、产业间甚至国家间竞争格局的重大动荡和变化。而互联网革命一定程度上是由美国“信息高速公路”战略所催熟。2010年前后?物联网?目前关于物联网的定义有多种,众多专家也有自己的描述,在对物联网本质的认识上也存在一些误区,物联网还缺乏一个清晰的定义。但是,物联网的基本概念框架已经形成,不会影响我们对物联网本质的认识。接着,赵老师又解读物联网之标识技术,物体标识是信息自动感知的前提,RFID被公认为物体标识未来的唯一选择,尽管条码和二维码标识还会存在一段时间。
同时,赵老师介绍了最新的技术云计算,云计算(Cloud Computing)是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。云计算先驱:Google、yahoo、IBM、Microsoft、SUM、Amazon。云计算的原理是基于互联网的超级计算模式— 即把存储于个人电脑、移动电话和其他设备上的大量信息和处理器资源集中在一起,协同工作。在极大规模上可扩展的信息技术能力向外部客户作为服务来提供的一种计算方式。目前云计算模型众多,但多为商业模型,而Hadoop 作为开源的云计算模型,它模仿和实现了Google 云计算的主要技术,并且使用Java 语言编写,可移植性强,为个人和企业进行云计算方面的研究和应用奠定了基础。
讲座中,赵老师结合自己在美国的经历,分析了美国和中国在通信行业上的差距,分析了国内软件产业的发展现状、发展趋势,并针对国内的企业和市场,为我们描述了IT行业未来的发展前景,解释了对于软件职业的几大误区,详细的说明了IT行业的职业分类及软件开发的主流方向,要求我们三年内能够掌握三大核心技术,以技术为本,回归软件这个产业,为自己的生活、职业做一个准确的定位。为自己以后的发展打好坚实的基础。后来,赵老师又介绍了IT技术发展的四个主流方向: Java+Flex+云计算软件开发(Java EE)
物联网及嵌入式应用软件开发(C/C++)Android 手机互联移动开发(Android)PHP高级WEB应用软件开发(LAMP)
高级软件测试工程师(QA)
成功不是偶然,让我们了解了软件行业发展的主流方向,明确了自己应该掌握的技术,为今后的发展指明了方向,增加了动力。
“软件行业发展趋势及人才需求” 中软国际北京ETC技术总监周海来我校,于6号楼311教室就软件行业发展趋势及人才需求做了分析。
首先软件人才期待高品质。
软件产业的发展离不开软件人才,全国软件学院联席会秘书长李璞在接受记者采访时表示,“要真正发展软件产业,必须加大软件人才培养的力度。”我国软件人才培养的真实状况目前究竟如何?在软件人才培养过程中遭遇着什么样的难题?记者就这个问题与李璞秘书长以及微软亚洲研究院高级经理陈宏刚博士作了交流。
国家对软件人才培养的重视程度跟对软件产业的扶持是成正比的。在此之前,国家已先期建立了部分示范性软件学院,中科院研究生院软件学院就是其中的一个。全国软件学院联席会秘书长李璞对记者表示,中科院研究生院软件学院是做得比较成功的一个范例。他们的产学研一体的培养模式应该推广开来。
比较合理的IT人才培训供应链应该是高校、专业IT培训机构和IT企业的互动链条。高校教育相对稳定,偏重理论基础知识的教学,培养的人才根基扎实;专业IT职业教育机构的培训内容则更加灵活,更能紧跟市场需求;而通过与企业合作进行的专业化高标准的职业技能培训,也是完善人才教育体系极为重要的一环。
微软亚洲研究院高级经理陈宏刚博士认为,“IT企业与大学联盟已成为现实:IT企业雇员有机会走上讲台;IT企业对培养方向的参与加强,因而减少再培养成本。”陈宏刚博士说,去年微软曾联合ATA等知名企业启动了一个2个亿的软件人才培养项目。目前,此项目已引入大连。
同时,周海老师结合现代社会软件应用的三大主流方向,简述了软件行业在未来的广阔发展前景,对相关技术人才的需求及未来社会智能家居的畅想;鼓励我们主动学习,主动编写一些小的软件程序来提高自己的编程能力,不断提高专业水平;从技术做起,逐步发展,增强学习能力;同时也提醒同学们锻炼身体,提高身体素质,为以后高强度的工作打造一个良好的体魄。
“软件工程师的人生规划”
大连东软股份有限公司人才实训中心研发部部长胡本仁针老师就”软件工程师的人生规划”,在6号楼311为同学们做了精彩的讲述。
胡老师介绍了中国软件产业现状,(1)软件产业增长较快,但企业规模仍然偏小。
(2)行业专业程度不够,专业软件不专业,立足不稳。
(3)人才短缺问题仍然比较突出,尤其是高端技术人才,企业人才流动性大。(4)软件企业在管理水平及软件产品开发和推广上存在较大瓶颈。
(5)企业多是单兵作战,实力薄弱,缺乏集团化、规模化效应。那么,社会软件人才的需求怎么样呢? 市场国际化,人才需求大。
中国的软件企业不缺人,但是缺人才。
目前最缺中高级专业人才,软件管理方面的复合型人才。软件测试工程师、程序设计师和系统分析师却很受企业欢迎。各种新兴开发平台应用。
IT行业对人才的需求。融入能力(职业素质,跨文化沟通,企业认同与归属),技术能力(IT技术基础技术,重组和构建),业务能力(业务标准和规范,业务逻辑),过程能力(过程执行和控制质量意识,管理思想)。同时,软件开发不吃“青春饭”的,“30岁现象”。作外包没技术含量,出劳力,“卖人头”。软件测试没前途。不要过度贬低编码。“XX开发语言”过时了。开发重要的是“编程的思想”。管理是影响软件研发项目全局的因素,而技术只影响局部。
讲座中,胡老师通过放映相关短片,让我们了解了一个软件工程师的生活,并从国内软件行业的现状出发,概括性的介绍了目前国内软件行业"规模小,人才少”等特点;同时,胡老师结合自身丰富的经验,以软件外包为例,为同学们详细生动的介绍了一个合格的软件工程师的工作要求和软件职业的相关规则,让同学们对自己未来的道路有更加深刻地思考;最后,胡部长希望在校大学生能时刻准备着,认清软件行业发展现状,了解软件行业的人才需求,不断充实自己,为自己以后的发展打下坚实的基础。
“软件工程师犯罪面面观”
软件学院特邀深圳直方软件技术有限公司的赵经理在六号楼311教室为我们开展了软件工程师犯罪面面观的专题讲座。
其中,赵经理给我们举了很多现实中的案例,比如说:
被众多网友广泛使用的即时通讯软件腾讯QQ与其修改版珊瑚虫版QQ长期共存,经法院查明珊瑚虫版QQ作者陈寿福自从2000年以来,将原版QQ去掉广告、提示好友IP并放置于“珊瑚虫工作室”网站上提供给网友下载, 随后在该网站上不断提供新的修改版本。经法院调查取证核定陈寿福的行为侵犯了原告腾讯科技享有的著作权,并构成不正当竞争。
以上案例中的被告人员的个人行为侵犯了原告享有的软件著作权,并构成不正当竞争。所以我们要学会尊重软件著作权。
2005年下半年至2006年12月,被告人陈阳多次利用计算机网络非法登录到合肥市电信分公司小灵通智能网充值平台,对258部预付话费小灵通号码进行非法充值,共窃取18万元话费。而另一被告陈项伍在明知陈阳是非法充值的情况下,仍为其提供大量供非法充值的小灵通号码,以低价购买话费,然后再加价对外销售,从中获赃款11000余元。2007年1月上旬,陈阳骗取到登录小灵通系统维护平台的密码,并于同年1月下旬至2月底,多次利用计算机网络非法登录到该平台,对事先购买的86部小灵通号码的属性进行修改,使这些号码具有了拨打168声讯台的功能,且能够透支声讯话费。然后,陈阳用这些号码打168,用声讯话费购买网络虚拟货币,再以低价卖给陈项伍,经查被盗取的话费总额达8万余元。
案犯苏强,大学所学专业是计算机专业。2003年8月,苏强进入一家公司担任ATM机软件工程师。同年10月,公司承接了民生银行在临汾路自助网点安装两台ATM机的项目,苏强负责为ATM机进行软件编程、调试与维护工作。
苏强在为ATM机进行软件编程过程中动了邪念,又另编写了能窥视、保留客户银行卡卡号、磁条信息和密码的程序。随后,苏将这套窥探程序安装在ATM机上,过了一个月,苏强发现这套程序竟记录下卡号、磁条信息和密码等客户信息7000余条。苏将这些客户信息全部输入到自己随身携带的手提电脑中,同时,将该恶意窥探程序从ATM机中删除。
以上案例中犯罪人员利用职务之便,非法入侵计算机系统,获取利益。触犯了《刑法》第285条规定的“非法侵入计算机信息系统罪”。这些案例告诫我们不要触碰法律。
“软件工程师的求职技巧”
软件学院特邀加拿大达内科技集团西北分区院校合作总监,达内集团资深职业规划师杨泽辉老师在1·号楼106教室进行了软件工程师求职技巧的专题讲座。
首先,通过杨老师的讲解,我们明确了写简历的目的。找一份工作(什么工作都行,比较盲目);找一份合适自己的工作(有一定的计划性);找一份满意的工作,对自己的未来发展有帮助(发挥自己的优势,让企业能够充分了解自己的技能与经验。把自己的能力与企业的需求有效的结合在一起。)简历撰写时,要发挥个人的优势,提高就业竞争力,找到合适自己的工作。接着杨老师剖析企业聘用人才的动机。为企业创造价值;提高生产效率;提前完成任务;节省或降低企业成本;提高产品或服务质量;有利于企业形象。企业招聘人才的思考模式 是:概念、操作细节、流程、实现过程的细节是评估是否熟练的标准;从合作能力强的人员里挑选 ;从一专多能,适应性比较强的人员里挑选 ;从有工作经验的人里面挑选。曾被别的企业聘用的人员受过实践的检验, 风险会比较小 ;从高学历的人里挑选人才,从高学历的人里面挑选人才风险较小,高学历的人学习能力和分析问题的能力可能比较强,高学历的人员英文较好,适合做开发,大专学历的人员可能学习新技术的能力较弱;从性能价格比好的人员里挑选人才(能力强,价格低)。
准备简历的原则是什么呢?暂时掩饰自己的不足(学历、年龄、经验)
暂时不写年龄或学历,绕过企业人事部门的人员 ;在经验中描述参与实习的项目;针对招聘企业的用人需求来写简历 ;在招聘的职位与你的技能 70%以上匹配时,就可以投递简历;把企业对人才需求的绝大部分写在简历的《经验与技能》部分;对写在简历上的每一项技能的细节都要仔细准备;自己有充分信心,并且熟练掌握的 ;既不能太保守,也不能太吹牛;有些难度不大的技能,尽管不懂,但是可以通过看资料短期掌握的;有些与所学技能相类似或者相通的可以通过短期熟悉的。
我们懂得了要写有针对性的简历,针对企业的需求与职位书写简历,写通用简历会削弱自己的优势,我们要充分表达自己的优势,最好有几年的相关工作经验,精通、熟悉、了解的技能,团队合作与沟通能力,英文能力。
同时,工作经验是评估是否能够胜任工作的标准,让我们明白了招聘职位要求(以软件开发为例)学历要求;对某门开发语言的要求;行业经验的要求;人文素质要求;其他。
最后主要就国内及国际IT行业的发展、大学生毕业后的职业规划及达内科技的介绍等方面展开。软件工程师的求职技巧为本次讲座的主题,杨老师要求同学们要突破思维僵化的误区,多方面寻求解决问题的方法,以寻求走向成功的捷径。并从多方面分析了大学生就业及软件行业的现状,并希望我们从知识,技巧,心态三方面做好就业准备。同时,杨老师还介绍了简历制作的要点及面试的注意事项,来帮助在座学子进一步了解面试时的注意事项。
最终,我们懂得了自己的学习方向,明白了软件工程师的求职技巧。
总结:通过聆听几家公司的讲座,我明白了软件行业未来的发展趋势,以后软件将深入到我们生活的每一个方面。认识到我在学校期间应该夯实基础,重点学好专业技能。学好英语,做到一专多能。针对软件公司的构架也有一定的了解,同时,我认识到了软件公司商业机密的重要性,不要触碰法律。在此期间,我开阔了视野,拓宽了知识面,对以后的选方向也有一定的认知。
感谢老师给我们一个开阔视野的机会。感谢学校的努力!
第二篇:软件工程心理学之8
谁都要汇报工作.无论你是普通职员,中层领导,还是高层领导.在软件项目工程中,无论是团队内部,或者是对客户,都要汇报工作,定期,如何简单,准确,让对方把握要点,不浪费时间,又能觉得你的工作是很有成效的,这是个很重大的问题哦.不少人汇报工作项目进展时,都是这样说:在本周,首先做了...其次完成了....又做了.....又做了.......这样不是说不行,但有个问题,那就是很多人把 很多工作没进行分解,把重要,不重要的都合在一起说了,没主次重点,拉东及西,最后可能客户或领导听了糊涂,没能把握住重点,可能你本周做了很多事情,但给你一说,都让领导或客户觉得心里没准,不踏实.特别是有的甲方的领导,一天大忙人,如果不是对技术很在行的,可能真的很糊涂.比较好的做法是,在汇报工作时,以这样的形式报告第一点(说的时候,要大声点,把重音放在这里,让客户领导都听到),.............第二点...第三点...总结,本周完成了.....期望下周完成.....因为人的心理上,是对数字很敏感的,这样用数字一点点的说,很清晰,让人记忆深刻,知道原来你本周是做了这几项工作的,起码知道你没偷懒.其次,如果你觉得本周工作太少,对不起领导和客户,可以尝试把一些工作拆分起几点来去说,一般一到五点就足够了,太多的不好,领导和客户没时间去听.
第三篇:软件工程课程设计报告 之 总结性报告
总结性报告
1. 时间
飞Q2012项目从拟定好课题起,经过问题定义,可行性研究,需求分析,概要设计,详细设计,主要编程,分布测试,总体测试,到整体装配完成历时一个半月。
2. 人员
主程序员(组长):王昌帅
辅程序员:司吉峰、王璐、纪晓文、王松松
文档管理员:王璐、纪晓文
3. 遇到的困难
服务器方面:最开始我们选用的登录模式是利用sqlsever从硬盘上的数据库中读取账号密码进行匹配登录,但这种读取机制降低了登录速度,经过修改,改用了将好友账号密码预读入内存中,直接在内存中进行读取,大幅度节省了登录时间。
客户端方面:区别于类似的大多数即时聊天工具的消息传送机制(即向服务器发送消息经服务器转发),我们利用了典型的p2p(点对点)机制,当好友聊天时,服务器避免了接收和转发消息的负荷,减少了线程数量,既减轻了服务器压力同时又提高了好友间消息传送的速度和质量。
4. 系统性总结
本系统具有以下特点:
采用 C/S通信模型设计,有效减轻了服务器的负担,便于后台的管理。将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。
采用了Java语言,因为用Java设计的系统是跨平台的,在任何操作系统上,只要安装了Java虚拟机,就可以运行本系统,不用受平台的限制。
在客户端都和服务器端都实现了多线程编程技术,以提高系统的效率。使用线程可以把占据长时间的程序中的任务放到后台去处理。
本系统这实现了网络聊天工具所具备的基本功能,即注册、登录、查找好友,添加好友、更改个人资料、查看好友资料、添加删除分组、各分组之间转移好友、发送消息、接收消息、接收系统消息等,还添加了一些特色功能,如隐身,头像的变化,系统管理员可以向每个客户端发送系统消息,上线下线在好友客户端都有提示,密码丢失可以通过密码找回功能通过设置的密保问题找回密码,并可以判断密码的安全等级等。本系统实现了一个与Tencent QQ相似的友好操作界面,简单,易用,适合用户的操作习惯。
该系统具备了网络聊天工具所具备的基本功能,但还有一些功能还没完善,如用户聊天之间的方式仅限于文本通信,还没实现文本传输功能。还没实现修改用户资料的功能等。系统或许存在一些未知的Bug,还需要进一步的改进和测试。在以后的研究中,我们还会研究安全通信协议,保障通信的安全,提高系统的实用性等
本课题需要继续完善的功能有:
设计测试用例,全面、系统地测试该系统所存在的一些缺陷;
扩展即时消息系统的服务范围,增强系统工作的稳定性和健壮性。
5. 收获与经验
本次课程设计是自大一以来工作量最大的同时也是历时最长的一次大作业任务。与之前大作业不同的在于,这次课程设计所设计的项目课题,所用的编程语言,用到的知识都是以前没有接触过的,完全通过自学掌握。所以工作进度最初进展很慢,不过通过对新知识的学习,和项目实践的锻炼,深入学习java可视化编程,完善操作界面,使其更加适合用户的操作习惯; 设计安全通信机制,保障通信的安全; 加入文件传输功能,丰富用户的信息交流方式;
掌握专业知识的同时,更重要的是项目经验,以及实践中处理各种问题能力的培养。
通过本次项目的复习,我们了解了一个完整的软件开发过程,包括课题定义、可行性研究,需求分析,概要设计,详细设计,测试工作,进一步完善,设计使用说明书,总结提交实验报告。以及其中不同人员和不同的工作,主程序员是一个项目团队的核心,指导整个项目组各个成员的工作,规划整个项目的结构,统一各个部分函数接口,承担着编程过程中最核心的任务,以其为核心各个部分才可以慢慢扩展开来。辅助程序员主要负责各个独立部分的编程设计,对辅助程序员来说,独立性较主程序员的任务更大一些,但是,却要求辅助程序员对自己承担的任务有必须清晰的了解,因为到后期各个部分连接的时候肯定会出现一些问题,修改这些错误要求必须对不同部分有很详细的了解。文档管理员承担着大部分文档编辑工作,但对具体的程序代码也要有一定的了解。
本次课程设计最重要的是让我们收获了一些宝贵的项目开发经验:项目最开始的全局规划,接口统一工作很重要以及数据结构的选择因为这涉及到以后各部分连接时的统一问题,一旦刚开始没有统一好,连接时会有很多问题,导致各部分不能很好的连接,很多功能或属性没有很好的利用。另外,项目后期的bug修改也很重要,因为由不同程序员编写程序在正确性、高效性,和格式上都有很大的不同,自然会在连接时产生一些问题,更改这些问题时便不再是某个部分的问题,而是全局的问题,需要各个程序员协调完成修改工作,而且我们也了解到,工程项目越大,后期产生的bug也会越多,起初我们忽视了后期bug修改的工作量,导致在完成时间上一拖再拖。
总而言之,尽管本次课程设计使我们纠结了很长的时间,遇到了很多困难,但我们真心的为我们所获得工作经验和成果而高兴,截止到完成文档时,我们的飞QQ2012已经实现了局域网内以及校园内网各个客户端的即时聊天,并且速度和质量得到了各用户的好评,我们还将继续完善飞Q2012,让更多人知道了解它,继续学习继续努力。
第四篇:软件工程专业就业前景之软件工程专业大学排名
软件工程专业就业前景之软件工程专业大学排名
1、南京大学
2、清华大学
3、复旦大学
4、武汉大学
5、浙江大学
6、上海交通大学
7、中国科学技术大学
8、中山大学
9、华中科技大学
10、哈尔滨工业大学
11、陕西师范大学
12、吉林大学
13、东北师范大学
14、北京师范大学
1、南京大学
2、清华大学
3、复旦大学
4、武汉大学
5、浙江大学
6、上海交通大学
7、中国科学技术大学
8、中山大学
9、华中科技大学
10、哈尔滨工业大学
11、陕西师范大学
12、吉林大学
13、东北师范大学
14、北京师范大学
其他院校该专业较强的有:
北京交通大学北京理工大学华东师范大学华南理工大学南开大学四川大学天津大学西安交通大学西北工业大学厦门大学中国地质大学同济大学苏州大学重庆大学中国石油大学南京理工大学宁夏大学
第五篇:软件工程
1.软件危机的概念 系统的数据要求,功能需求,性能需求,显示出程序的轮廓。
软件危机是指在计算机软件开发、使用与可靠性需求,可用性需求,出错处理需求,混合方式
维护过程中遇到的一系列严重问题和难接口需求,约束,逆向需求以及将来可能优点:综合了以上两种策略的长处 题。提出的需求。9.确认测试
补充: 5.常使用的图形工具 确认测试又称有效性测试。有效性测试是
1.软件危机的表现有哪些? 实体-联系图,数据流图,状态转换图,在模拟的环境下,运用黑盒测试的方法,答:1)对软件开发成本和进度的估计常层次方框图,warnier图,IPO图。验证被测软件是否满足需求规格说明书常很不准确。第五章 列出的需求。任务是验证软件的功能和性
2)用户对已完成的软件不满意1.总体设计的任务 能及其他特性是否与用户的要求一致。对的现象时有发生。划分出组成系统的物理元素——程序、文软件的功能和性能要求在软件需求规格
3)软件产品的质量往往是靠不件、数据库、人工过程和文档等等 说明书中已经明确规定,它包含的信息就住的。设计软件的结构。也就是要确定系统中每是软件确认测试的基础。
4)软件常常是不可维护的。个程序是由哪些模块组成的,以及这些模10.什么是白盒测试,其测试技术有那些,5)软件通常没有适当的文档资块相互间的关系。覆盖标准的强弱程度
料。2.模块化思想 白盒测试是一种测试用例设计方法,盒子
6)软件成本在计算机系统总成就是把程序划分成独立命名且可独立访指的是被测试的软件,白盒指的是盒子是本中所占比例逐年上升。问的模块,每个模块完成一个子功能,把可视的,你清楚盒子内部的东西以及里面
7)软件开发生产率提高的速度这些模块集成起来构成一个整体,可以完是如何运作的。“白盒”法全面了解程序内远跟不上日益增长的软件需求。成指定的功能满足用户的需求。部逻辑结构、对所有逻辑路径进行测试。
2.产生软件危机的原因主要有哪些? 3.衡量模块独立的标准(内聚和耦合的白盒测试的测试方法有代码检查法、静态答:1)用户对软件需求的描述不精确。含义,种类)结构分析法、静态质量度量法、逻辑覆盖
2)软件开发人员对用户需求的内聚:标志着每一个模块内各个元素彼此法、基本路径测试法、域测试、符号测试、理解有偏差。结合的紧密程度,是信息隐藏和局部化概路径覆盖和程序变异。
3)缺乏处理大型软件项目的经念的自然拓展。偶然内聚,逻辑内聚,时种覆盖标准:语句覆盖、判定覆盖、条件验。间内聚,功能内聚,顺序内聚,通信内聚,覆盖、判定/条件覆盖、条件组合覆盖和
4)开发大型软件易产生疏漏和过程内聚。路径覆盖发现错误的能力呈由弱至强的错误。耦合:是对一个软件结构内不同模块之间变化。
5)缺乏有力的方法学的指导和互连程度的度量。数据耦合,控制耦合,11.什么时候黑盒测试,其测试技术有哪有效的开发工具的支持。特征耦合,公共环境耦合,内容耦合。些,(等价划分,边介值分析法)
6)面对日益增长的软件需求,4.启发式规则 黑盒测试也称功能测试,它是通过测试来人们显得力不从心。1.改进软件结构提高模块的独立性检测每个功能是否都能正常使用。
2软件的概念 2.模块规模应该适中等价类划分的办法是把程序的输入域划完成特点功能的程序以及数据结构和文 3.深度、宽度、扇出和扇入都应适当 分成若干部分(子集),然后从每个部分档 4.模块的作用范围应在控制范围之内中选取少数代表性数据作为测试用例
3.软件工程的基本原理 5.力争降低模块接口的复杂程度 边界值分析是通过选择等价类边界的测
1.用分阶段的生命周期计划严格管理 6.设计单入口单出口的模块试用例。边界值分析法不仅重视输入条件
2.坚持进行阶段评审 7.模块功能应该可以预测 边界,而且也必须考虑输出域边界。它是
3.实行严格的产品控制 5.面向数据流的设计方法把信息流映射对等价类划分方法的补充。
4.采用现代程序设计技术 成软件结构 12.软件调试技术有哪些
5.结果应能清楚地审查 信息流:变换流,事物流 蛮干法,蛮干法可能是寻找软件错误原因
6.开发小组的人员应该少而精 映射:变换分析,事物分析 的最低效的方法,仅当所有其他方法都
7.承认不断改进软件工程实践的必要性失败的情况下才使用。
4软件生命周期分成哪几个阶段?各阶第六章 回溯法,回溯法是一种相当常用的调试方段的任务是什么? 1.详细设计的基本任务 法,当调试小程序时很有效。从发现症
1.问题定义: 1.为每个模块确定采用的算法。2.确定状的地方开始,人工沿程序的控制流往回
2.可行性研究:研究问题的范围,探索这每一模块使用的数据结构追踪分析源程序代码,知道找出错误原因个问题是否值得去解决,是否有可行的解3.确定模块接口的细节,包括对系统外为止。
决方法。部的接口和用户界面,对系统内部其 原因排除法,对分查找法、归纳法、演绎
3.需求分析:主要是确定目标系统必须具它模块的接口,以及关于模块输入数据、法都属于原因排除法。
备哪些功能 输出数据及局部数据的全部细节。13.软件可靠性(可靠性和可用性的含义)
4.总体设计: 4.为每一模块设计出一组测试用例。
5.详细设计:就是把解法具体化,设计出2.程序的三种基本结构
程序的详细规格说明。顺序结构,选择结构,循环结构
6.编码和单元测试:写出正确的容易理解3.详细设计的工具
容易维护的程序模块。1.图形工具
7.综合测试:通过各种类型的测试使软件2.表格工具
达到预定的要求 3.语言工具
8.软件维护:通过各种必要的维护活动使4.jackson方法
系统持久地满足用户的需要。(改正性维5.复杂性度量的方法
护,适应性维护,完善性维护,预防性维Halstead方法:它根据程序中运算符和
护)操作数的总数来度量程序的复杂程度
5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根据程序控制
螺旋模型的特点 流的复杂程度定量度量程序的复杂程度,瀑布模型阶:段时间具有顺序性和依赖第七章
性。推迟现实的观点。质量保证的观点。1.选择程序设计语言应考虑哪些因素
快速原型模型:软件产品的开发基本上是1.系统用户的要求
线性顺序进行的,本质是“快速”加速软2.可以使用的编译程序
件的开发过程,节约软件开发成本。3.可以得到的软件工具
增量模型:能在较短时间内向用户提交可4.工程规模
完成部分工作的产品。逐步增加产品功5.程序员的知识
能,可以使用户有较充裕的时间学习和适6.软件可移植性要求
应新产品,从而减少一个全新的软件可能7.软件的应用领域
给客户组织带来的冲击。2.良好的编程风格包括哪些方面
螺旋模型:对可选方案和约束条件的强调1.程序内部的文档2.数据说明 3.语句构
有利于已有软件的重用,也有助于把软件造4.输入输出 5.效率
质量作为软件开发的一个重要目标。减少3软件测试的目标
了过多的测试或测试不足带来的风险。更目的:(1)测试是为了发现程序中的错误
重要的是在螺旋模型中维护只是模型的而执行程序的过程;
另一个周期,在维护和开发之间并没有本(2)好的测试方案是极可能发现迄今为
质区别。风险驱动的。止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未
第二章 发现的错误的测试。
1.可行性研究的目的 定义:为了发现程序中的错误而执行程序
就是用最小的代价在尽可能短的时间内的过程。
确定问题是否能够解决。补充:
补充: 软件测试步骤 :
可行性研究的步骤 :(1)模块测试(2)子系统测试(3)系统
1.复查系统规模和目标。测试(4)验收测试(5)平行运行
2.研究现有的系统。4.确定测试计划是在哪个阶段制定的3.导出新系统高层逻辑模型。5.黑盒测试和白盒测试的概念
4.进一步定义问题黑盒测试
5.导出和评价供选择的解法。1把程序看作一个黑盒子,完全不考虑程
6.推荐行动方针序的内部结构和处理过程
7.草拟开发计划2对程序接口进行测试,检查程序功能是
8.书写文档提交审查 否能按规格说明书的规定正常使用;
程序是否能适当地接受输入数据并产生
2.系统流程图的作用 正确的输出信息;
系统流程图是描绘物理系统的传统工具,程序运行过程中能否保持外部信息的完
它用图形符号来表示系统中的各个部件。整性
它表达了系统中各个元素之间的信息流白盒测试
动的情况。1把程序堪称装在一个透明的白盒子里,3.数据流图的概念 测试者完全知道程序的结构处理算法
数据流图是一种图形化技术,它描绘信息2按照程序内部的逻辑测试程序,检测程
流和数据从移动到输出的过程中所经受序中的主要执行通路是否都能按的变换。预定要求正确工作
4.数据流图里面的符号,画数据流图。6.测试的步骤及每个步骤形成的文档
5.数据字典最基本的功能,以及与数据流单元测试:(模块测试)发现的往往是编
图的关系。码和详细设计的错误
最基本的功能:在软件分析和设计的过程集成测试:着重测试模块的接口 中给人提供关于数据的描述信息。
关系:数据流图和数据字典共同构成系统系统测试:发现的往往是软件设计中的错的逻辑模型,没有数据字典,数据流图就误,也可能发现需要说明中的错误 不严格,然而没有数据流图,数据字典也验收测试:(确认测试)往往发现需求说难于发挥作用。只有数据流图和对数据流明书中的错误 图中每个元素的精确定义放在一起,才能7.渐增式和非渐增式的区别 共同构成系统的规格说明。“非渐增式”,即先独立地测试每一模块,第三章 然后将所有这些模块连接到一起运行; 1.需求分析属于哪一个阶段,任务是什“渐增式”,即在已测试过的N个模块的么。基础上再增加一个模块,再对N十1个模需求分析是软件定义时期的最后一个阶块进行测试。段.渐增式比非渐增式优越,因为用渐增式,1.确定对系统的综合要求(功能需求,性如果是“由顶向下”则可利用前面已测试能需求,可靠性和可用性需求,出错处理过的模块,而不必另外准备驱动模块,如需求,接口需求,约束,逆向需求,将来果是“由底向上”,也可利用已测试过的可能提出的要求)模块,不必再准备桩模块。渐增式可以较2.分析系统的数据要求早地发现模块界面之间的错误,有利于排3.导出系统的逻辑模型 错,检查比较彻底 4.修正系统开发计划2.需求分析的产品是什么 8.自顶向下,自下而上,以及混合策略的3.面向过程的分析方法主要是建立三类优缺点 模型 自顶向下数据模型(按照用户的观点对数据建立的优点:能较早显示整个程序的轮廓,向用模型,把用户的数据要求清楚,准确地描户展示程序的概貌,取得用户的理解与支述出来。描述了从用户角度看到的数据,持。缺点:当测试上层模块时因使用桩它反应了用户的现实环境,属性,联系),模块较多,很难模拟出真实模块的全部功功能模型,行为模型(通过描绘系统的状能,使部分测试内容被迫推迟,只能等待态及引起系统状态转换的事件来表示系换上真实模块后再补充测试。统的行为)由底向上4.软件需求规格说明书的内容 优点:测试从下层模块开始,测试设计用通常用自然语言完整,准确,具体地描述例比较容易。缺点:在测试的早期不能