版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发论文
摘要:阐述应用软件开发过程中的主要几个基本阶段需要运用的方法和思想并通过笔者多年工作经验,从5个阶段总结心得体会。
关键词:需求分析;系统分析;复用;分而治之;建模;逻辑视图;并发视图;组件视图
1软件工程的理解
尽管笔者在将近2O年从事的基础技术工作中,曾经用传统开发工具及流程化的编程思想编写实现过某一项功能的程序,还从传统开发思路实现面向对象开发思路的转变,有成功和失败,有奇思怪想,也解决过一些实际工作中的问题,但依然感觉自己只知些皮毛。于是静下来时笔者也会经常反省,同时查阅各类相关文章,与同行经验交流,和关注相关软件技术发展的新闻报道。
软件工程从概念提出至今已经近40年了,但是客观地说,软件工程还处于摸索发展阶段。软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,关键在于运用。我们不可以把软件工程方法看成是诸葛亮的锦囊妙计——在出了问题后才打开来看看,而应该事先掌握、预料将要出现的问题,控制每个实践环节,并防患于未然。研究软件工程永远做不到理论家那么潇洒:定理证明了,就完事。
软件工程以后的发展可能会变成一个广义的“软件工程”,而它却不再完全属于工程化的范畴。开发软件,人的因素会越来越重要,因为开发软件不能像汽车制造那样完全的流水化,除非软件完全产品化,但事实上很多软件都是项目化的,项目化的特点就是需求多变,有个性,只有开发软件的人运用其丰富的经验和智慧才能去适应这种多变的需求。
软件工程思想将软件开发分成多个阶段,没有一定之规,说法也不尽相同,但总体完成的工作都是雷同的。笔者暂且按照5个阶段谈谈认识,这5个阶段是需求分析阶段、系统分析阶段、系统实现阶段、测试阶段和维护再生阶段。5个阶段需要投入的技术力量平分秋色,如今面向对象的开发思路使得代码编写已经不再是高手的事情,而每个阶段的文档编写一定是技术人员需要细致严谨的编写才可以达到工作的循环和进步,并提供给他人复用。
25个阶段工作的认识
在介绍我对5个阶段工作的认识之前,我首先敷述几个基本观念。软件工程的目标是提高软件质量,质量因素有正确性、性能、可靠性、容错性、易用性、灵活性、可扩充性、可理解性、可维护性等等。开发常用模型有:线性模型、渐增式模型、螺旋模型、快速原型模型、形式化描述模型等等。“套用固定的模型不是程序员的聪明之举”。比如“程序设计”与“测试”之间的关系,习惯上总以为程序设计在先,测试在后而对于一些复杂的程序,将测试分为同步测试与总测试更有效。
软件开发中的3种基本策略:“复用”、“分而治之”、“优化——折衷”。软件复用是将具有一定集成度并可以重复使用的软件组成单元称为软构件(SoftwareCompo—nent)。分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。软件的优化是指优化软件的各个质量因素,如提高运行速度,提高对内存资源的利用率,使用户界面更加友好等等。优化工作的复杂之处是很多目标存在千丝万缕的关系,当不能够使所有的目标都得到优化时,就需要“折衷”策略。软件中的折衷策略是指通过协调各个质量因素,实现整体质量的最优。软件折衷的重要原则是不能使某一方损失关键的职能,更不可以像“舍鱼而取熊掌”那样抛弃一方。
其次,笔者从需求分析、系统分析、系统实现、测试与改错、维护与再生这5个方面总结了一点心得体会。工作在第一线的软件开发人员是程序员和程序负责人,他们决定着软件的命运。程序负责人应是程序员队伍中经验丰富的,熟悉每个阶段的工作,能够把握判断决策,有人格魅力,程序员要对编程感兴趣,程序员不能是临时的。
制定进度表的人最好就是项目负责人,他最了解项目和开发人员。进度安排并不一定要符合逻辑顺序。开发一个大的软件项目,应该将进度表分为若干个里程碑。一个里程碑之内的多个任务可以同步进行。进度表中必须留有缓冲时间,并将缓冲时间用到不确定的事情上。
2.1需求分析阶段
需求分析是项目成败与否的第一步,对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大。需求分析要关注到每一个最终使用者,避免遗漏使用方的需求。需求分析尽量从多个角度进行。需求分析需要与使用者进行多次反复沟通,开发者做到真正领会使用者的需求。做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。
需要分析的工作要点有:①完成问题整理、收集;②走访使用部门,进行询问、沟通;③交流中的心态定位是我们在为编辑、为业务工作;④我们要为用户考虑。让用户意识到我们的每一句话都是在为他们考虑;⑤采用适当的交流语言。勾画出思路清晰用户易懂的流程图,清晰明了的表格,形象美观的图形,必不可少的文字;⑥保留交流的记录和整理汇总的文档;⑦技术人员自己要提出用户易用性需求、系统功能需求、系统维护需求;⑧响应变更需求,拒绝不合理要求;⑨业务建模。通过UML绘制的模型来完整、适当地对需求进行描述;⑩分析绘制业务流程图和数据流程图,总结出各级操作人员,识别系统中的所有用例和角色;分析各角色和用例之间的联系,使用UML建模工具画出系统的用例图;最后勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。
2.2系统分析阶段
系统分析阶段完成系统设计。系统设计是把需求转化为软件系统的最重要的环节,决定一套软件系统的健壮性、可扩展性、易开发性等。系统设计的优劣在根本上决定了软件系统的质量。这个阶段要确定系统结构,系统结构的稳定性决定应用软件的使用寿命。
有了上一阶段需求的把控和需求建模,系统分析阶段就要完成结构设计、模块设计和数据结构设计。模块设计的组件单元尽可能小,可让每个程序员承担很少的开发部分,各部分之间不受牵制,强内聚、弱耦合,使单元组件可以随时重新开发,而对整体的开发不造成瓶颈。该阶段还要设计系统运行平台的架构,部署系统物理平台,制定系统备份恢复机制。
2.3系统实现阶段
这个阶段选择通用的编程工具,按照需求建模和系统设计中不同模块拆分给不同的技术人员,并实现进度控制。
2.4测试阶段
这个阶段是系统上线前的关键期,是对需求分析和理解的验证阶段,在这个阶段可以发现结构设计的合理性,进而可能回退到分析设计阶段进行系统重构。可以按照黑盒测试、正确性测试、容错性测试、性能与效率测试、易用性测试和文档测试这6个方面进行分组测试。开发过程中进行同步测试。针对测试中发现的问题,进行程序修改。之后再进行分组测试,如此往复。最后,进行总测试,直至成品。
2.5维护再生阶段
通常开发人员会忽略维护与再生这个环节。对于一个优秀的程序员来说,这个环节非常关键。在这个环节中,程序员可以积累很多运行中存在的问题,将这些问题总结成为系统性能需求,然后将系统性能需求转入到再生工程中进行升级改造。再生工程与维护的共同之处是都没有抛弃原有的软件。如果把维护比作“修修补补”,那么再生工程就算是“痛改前非”。
3运用建模工具完成5个阶段工作
下面是运用软件开发系统建模工具与面向对象的开发模式结合来完成几个阶段的工作。我们可以用建模工具创建5种视图,用例视图、逻辑视图、组件视图、并发视图、配置视图。用例视图是软件需求分析到最终实现的第一步。这个视图是开发人员与使用人员之间的交流视图。在做需求分析的过程中,除了传统的调研方式和调研之后的归纳整理工作之外,还再增加一项工作,就是运用建模工具生成用例视图。看似增加了一项工作,但却是生成逻辑视图、并发视图、组件视图的基础,运用建模工具可以将建模工具语言转化成相应的面向对象的编程语言,从而减少软件编写的开发量,大大提高开发效率,缩短开发周期。也就是前面所说,软件开发不再局限在高手,而经验和分析贯穿每个阶段,经验和分析的重要性更加突出。
根据逻辑视图、并发视图、组件视图可以将软件开发分块,切割给不同的团队或者不同编程风格的人去实现,总体开发进度不会因个别部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年宣传册设计与制作合同
- 2024年三人股权合伙合同
- 2024年会员资格买卖合同
- 2024年商务会议中心预定合同
- 2024年墙体设计及施工合同
- 2024年定制公寓购房补充合同条款
- 2024年创新版:国家级公路服务区承包经营合同
- 2024年工程分包商专业合同
- 2024年太阳能路灯广告与宣传推广合同
- 旅游行业劳务分包合同实例
- DL-T5142-2012火力发电厂除灰设计技术规程
- 江苏省南京市鼓楼区+2023-2024学年九年级上学期期中物理试题(有答案)
- 老年友善医院创建汇报
- 科学素养培育及提升-知到答案、智慧树答案
- 消防设施操作员报名工作证明(操作员)
- 市政道路施工工程重难点分析及对策
- 素描教案之素描基础
- 2024-2030年中国丝苗米行业发展趋势及发展前景研究报告
- JTJ034-2000 公路路面基层施工技术规范
- 《现代控制理论》课程教学大纲
- 《娱乐场所管理条例》课件
评论
0/150
提交评论