软件工程高级开发技术读书报告一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程高级开发技术读书报告一
一.软件工程包括哪些基本要素?说明这些要素及其作用,列举典型的软件工程方法和软件开发工具。
答:1.软件工程包括三个基本要素:过程、工具和方法。
2.软件工程的基础是过程层。软件过程将各个技术层次结合在一起,使得合理、及时地开发计算机软件成为可能。过程定义了一个框架,构建该框架是有效实施软件工程技术必不可少的。软件过程构成了软件项目管理控制的基础,建立了工作环境以便于应用技术方法、提交工作产品(模型、文档、数据、报告、表格等)、建立里程碑、保证质量及正确管理变更。
软件工程方法为构建软件提供技术上的解决方法(“如何做”)。方法覆盖面很广,包括沟通、需求分析、设计模型、编程、测试和技术支持。软件工程方法依赖于一组基本原则,这些原则覆盖了软件工程所有技术领域,包括建模和其他描述性技术等。
软件工程工具为过程和方法提供自动化或半自动化的支持。这些工具可以集成起来,使得一个工具产生的信息可以被另外一个工具使用,这样就建立了软件开发的支撑系统,称为计算机辅助软件工程。
3.典型的软件工程方法:结构化分析方法、面向对象的方法、
(1)结构化分析方法
也称为生命周期方法或者结构化范型。将软件生命周期的全过程依次划
分为若干个阶段,采用结构化技术来完成每个阶段的任务。
特点:a.强调自顶向下顺序地完成软件开发的各阶段任务;
b.结构化方法要么面向行为,要么面向数据,缺乏使两者有机结
合的机制。
(2)面向对象方法
是将数据和对数据的操作紧密地结合起来的方法;软件开发过程是多次
反复迭代的演化过程;面向对象方法在概念和表示方法上的一致性,保证了各
项开发活动之间的平滑过渡;对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。
特点:a.方法的唯一性。即方法是对软件开发过程所有阶段进行综合
考虑而得到的。
b.从生存期的一个阶段到下一个阶段的高度连续性。即生存期
后一阶段的成果只是在前一阶段成果的补充和修改。
4.典型的软件开发工具
软件工具的种类繁多,很难有一种统一的分类方法,通常从不同的观点来进行分类。由于大多数软件工具仅支持软件生存周期过程中的某些特定的活动,所以通常可以按软件过程的活动来进行分类,如:
支持软件开发过程的工具:主要有需求分析工具、设计工具(通常还可以分为概要设计工具和详细设计工具)、编码工具、排错工具、测试工具等。
支持软件维护过程的工具:主要有版本控制工具、文档分析工具、信息库开发工具、逆向工程工具、再工程工具等。
支持软件管理过程和支持过程的工具:主要有项目管理工具、配置管理工具、软件评价工具等。
各分类的典型的软件开发工具:
(1)需求分析工具:Rational Rose,由Rational Corporation开发;PowerDesigner,由Sybase开发;Visio,由Microsoft开发;ArgoUML,开源工具。
(2)设计工具:设计阶段分为概要设计和详细设计。对应于概要设计活动和详细设计活动,设计工具通常可分为概要设计工具和详细设计工具。
概要设计工具用以辅助设计人员设计目标软件的体系结构、控制结构和数据结构。软件的体系结构通常用模块结构图来描述,它指明软件系统的模块组成及其调用关系,模块的接口定义等。模块的数据结构通常用实体-关系图来描述。概要设计工具具有代表性的商品化工具有:Rational Rose:由Rational开发,是基于UML的设计工具,它支持体系结构设计中的所有方面;Adalon:由Synthis 公司开发,是用于设计和构建专门基于Web构件体系结构的特定设计工具;Objectif:由microTOOL GmbH开发,是一个基于UML的设计工具,它可以导致
服从基于构件的软件工程的各种体系结构(如,Coldfusion、J2EE和Fusebox 等)。
详细设计工具用以辅助设计人员设计模块的算法和内部实现细节。详细设计规范的图形描述方法通常有输入-处理-输出(input-process-output,IPO)图、问题分析图(problem analysis diagram,PAD)、盒图(也称NS图)、流程图(flow chart,FC)等。详细设计规范的语言描述方法通常有程序设计语言(program design language,PDL)、结构化语言等。其表格描述方法通常有判定表和判定树。
(3)编码工具与排错工具
辅助程序员进行编码活动的工具有编码工具和排错工具。
编码工具辅助程序员用某种程序设计语言编制源程序,并对源程序进行翻译,最终转换成可执行的代码。因此,编码工具通常与编码所使用的程序语言密切相关。排错工具用来辅助程序员寻找源程序中错误的性质和原因,并确定其出错的位置。
(4)测试工具
可将测试工具分为程序单元测试工具、组装测试工具和系统测试工具。
a.程序单元测试工具
早期的程序单元测试工具有三类:程序静态分析工具、动态分析工具和自动测试支持工具。
目前最流行的单元测试工具是xUnit系列框架,根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。
b.组装测试工具
组装测试也称为集成测试或联合测试,在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行组装测试。
实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常地工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
有代表性的组装测试工具有:
WinRunner,由Mercury Interactive公司开发,是一种企业级的功能测试