软件测评师知识点总结

一、软件工程小结

  软件工程是研究和应用如何以系统性、规范性且可定量的过程化方法开发和维护软件,以及如何把经过时间考验证明正确的管理技术和方法结合起来的学科。
软件工程方法学包括3个要素,即方法,工具,和过程。方法指完成软件开发的各项任务的技术方法,工具指为运用方法而提供的支撑环境,过程指为获得高质量的软件需要完成的一系列任务的框架。
软件工程的框架可概括为目标,过程,和原则:

  1.目标:生产具有正确性,可用性以及开销合宜的产品,正确性指软件产品达到预期功能的过程;可用性指软件基本结构,实现及文档为用户可用的程度;开销合宜是指软件开发和运行的整个开销满足用户要求的程度。这些目标的实现无论在理论上,还是在实践中均存在很多待解决的问题,它们形成了对过程,过程模型及工程方法选取的约束。

  2.过程:生产一个最终能满足需求并达到工程目标的软件产品所需要的步骤,主要包括开发,运作和维护过程,他们覆盖了需求,设计,实现,确认及维护等活动; 需求活动包括问题分析和需求分析,问题分析获取需求定义,又称为“软件需求规约”,需求分析生成功能规约;设计活动一般包括概要设计和详细设计,概要设计建立整个软件系统结构,包括子系统,模块和相关层次的说明,以及每一模块的接口定义,详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。

  3.原则:指围绕工程设计,工程支持及工程管理,在软件开发过程中必须遵循的原则:1用分阶段的生存周期计划进行严格管理;2坚持进行阶段评审;3实行严格的产品控制;4采用现代程序设计技术;5软件工程结果应能清楚地审查;6开发小组的人员应该少而精;7承认不断改进软件工程实践的必要性。

二.软件生命周期小结

  软件生存周期指从形成开发软件概念起,开发的软件使用以后直到失去使用价值为止的整个过程,整个生存周期划分为若干阶段,每个阶段有明确的任务,这样使规模大,结构复杂且管理复杂的软件开发变得容易控制和管理,软件生命周期一般包括计划于可行性研究,需求分析,设计(概要设和详细设计),编码,测试,运行和维护。

三.软件生命周期模型小结

四.软件开发方法小结

  软件开发方法有如下几个:结构化系统开发方法,Jackson方法,面向对象的开发方法,敏捷开发。

  1.结构化系统开发方法:这是目前应用最普遍的一种开发方法,其基本思想为用系统的思想和系统工程的方法按照用户至上的原则结构化且模块化,自顶向下分析与设计系统,它基于数据流进行需求分析和软件设计,用抽象模型的概念按照软件内部数据传递和转换关系,自顶向下逐层分解问题和功能。该方法首先将整个信息系统开发过程划分为若干个相对独立的阶段(系统规划,系统分析,系统设计及系统实施等),在前3个阶段坚持自顶向下地对系统进行结构化划分。在系统调查和理顺管理业务时,应从最顶层的管理业务入手,逐步深入至最基层;在系统分析并提出目标系统方案和系统设计时,应从宏观整体考虑入手。首先考虑系统整体的优化,然后考虑局部的优化问题;在系统实施阶段,则坚持自底向上地逐步实施,即组织人员从最基层的模块做起(编程),然后按照系统设计的结构将模块逐个拼接到一起调试,自底向上,逐步地构成整个系统。    

  2.Jackson方法

  1975年M·A·Jackson提出了一类至今仍广泛使用的软件开发方法,即Jackson方法。它从目标系统的输入和输出数据结构入手,导出程序框架结构,然后补充其他细节得到完整的程序结构图,因此Jackson方法也被叫做“面向数据结构的软件设计方法”。它对输入和输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理,该方法也可与其他方法结合,用于模块的详细设计。Jackson方法一般通过以下5个步骤来完成设计:

  Ⅰ.分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构;

  Ⅱ.找出输入和输出数据结构中有对应关系的数据单元;

  Ⅲ.按以下的规则由输入及输出数据结构导出程序结构,一是为每一对在输入和输出数据结构中有对应关系的单元画一个处理框;二是为输入和输出数据结构中剩余的数据单元画一个处理框;三是所有处理框在程序结构图上的位置,应与由他处理的数据单元在数据结构Jackson图上的位置一致;四是必要时,可以将映射导出的程序结构图进行进一步的细化。

  Ⅳ.列出基本操作与条件,并将其分配到程序结构图中的适当位置。

  Ⅴ.用伪代码写出程序。

  3.面向对象的开发方法

  面向对象的开发方法的研究已日益趋向成熟,国际上已有不少面向对象产品出现,如Booch,Coad和OMT方法等:

  Ⅰ.Booch方法

  Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法,面向对象的软件分解更接近人对客观事物的理解,而功能分解只通过问题空间的转换来获得。Grady Booch作为理论软件科学家,是统一模型语言(UML)的最初开发者之一,Booch方法是在UML出现之前比较普及的一种面向对象的软件设计办法,他所采用的对象模型要素是封装,模块化,层次类型和并发,重要的概念模型是类和对象,类和对象的特征,类和对象之间的关系,使用的图形文档包括类图,对象图,状态转换图,交互图,模块图和进程图。

  Ⅱ.Coad方法

  Coad方法是1989年Coad和Yourdon提出的面向对象开发方法,其主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象,结构,属性和操作的认定方面提出了一套系统的原则。该方法完成完成了从需求角度进一步进行类与类层次结构的认定。尽管Coad方法没有引入类与类层次结构的术语,但事实上已经在分类结构,属性,操作和消息关联等概念中提现了类与类层次结构的特征。

  Ⅲ.OMT方法

  OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为《面向对象的建模与设计》,该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发更清晰且更容易维护的软件系统,该方法为大多数应用领域的软件开发提供了一种实际且高效的保证,努力寻求一种问题求解的实际方法。

  Ⅳ.UML

  UML是面向对象技术领域内占主导地位的标准建模语言,他不仅统一了Booch,OMT和OOSE方法的表示方法,而且做了进一步的发展,最终统一为大众接受的标准建模语言,UML是一种定义良好,易于表达,功能强大且普遍适用的建模语言,融入了软件工程领域的新思想,新方法和新技术,其作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。

  4.敏捷开发(Agile Development)

  敏捷开发是一种以人为核心,迭代且循环渐进的开发方法,其中软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征,简言之,就是把一个大项目分为多个相互联系且可独立运行的小项目并分别完成,在此过程中软件一直处于可使用状态,敏捷开发借鉴了大量软件工程的方法,如迭代与增量开发,可理解为在原有软件开发方法基础上的整合。敏捷开发由一些业界专家针对企业现状提出了让软件开发团队具有快速工作及响应变化能力的价值观和原则,并于2001年初成立了敏捷联盟,敏捷软件开发宣言如下:

  Ⅰ.个体和交互胜过过程和工具;

  Ⅱ.可以工作的软件胜过面面俱到的文档;

  Ⅲ.客户合作胜过合作谈判;

  Ⅳ.响应变化胜过遵循计划;

  敏捷宣言提出了遵循如下12条原则:

   Ⅰ.优先要做的是通过尽早且持续的交付有价值的软件来使客户满意;

   Ⅱ.即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势;

   Ⅲ.经常性的交付可以工作的软件,交付的间隔可以从几个星期到几个月,这个间隔越短越好;

   Ⅳ.在整个项目开发期间业务和开发人员必须天天在一起工作;

   Ⅴ.围绕被激励的个体来构建项目,提供所需的环境和支持,并且信任其能完成工作;

   Ⅵ.在团队内部最具有效果并富有效率的传递信息的方法就是面对面的交谈;

   Ⅶ.工作的软件是首要的进度度量标准;

   Ⅷ.敏捷过程提倡可持续的开发速度,责任人,开发人员和用户应该能够保证一个长期其恒定的开发速度;

   Ⅸ.不断地关注优秀的技能和好的设计会增强敏捷能力;

   Ⅹ.简单是最根本的;

   Ⅺ.好的架构,需求和设计出自于组织团队;

   Ⅻ.每隔一段时间团队会在如何才能更有效的工作方面进行反省,然后相应地调整工作。

旅行的意义 wechat
subscribe to my blog by scanning my public wechat account
Donate comment here