精华内容
下载资源
问答
  • 软件工程工程伦理案例分析A CASE (Computer-Aided Software Engineering) tool is a non-exclusive term used to indicate any form of automated support for software engineering. In an increasingly ...

    软件工程工程伦理案例分析

    A CASE (Computer-Aided Software Engineering) tool is a non-exclusive term used to indicate any form of automated support for software engineering. In an increasingly prohibitive sense, a CASE tool implies any tools used to automate some action related to software development. Many CASE tools are available to make software engineering development easy and efficient.

    CASE(计算机辅助软件工程)工具是一个非排他性术语,用于指示对软件工程的任何形式的自动化支持。 在日益禁止的意义上,CASE工具意味着任何用于自动化与软件开发相关的操作的工具。 许多CASE工具可用来使软件工程开发变得容易和高效。

    A portion of these CASE tools aid stage-related undertakings, for example, specification, structured analysis, design, testing, coding, feedback, etc. and others to non-stage exercises, for example, project management and configuration management.

    这些CASE工具的一部分有助于阶段相关的工作,例如规范,结构化分析,设计,测试,编码,反馈等,以及其他一些非阶段性的工作,例如项目管理和配置管理。

    为什么我们需要案例工具? (Why do we need Case Tools?)

    The major objective of using case tools is to,

    使用案例工具的主要目的是,

    1. Increase the efficiency and productivity

      提高效率和生产力

    2. To make software's cost-efficient

      使软件具有成本效益

    3. To make Good Quality of software

      制作高质量的软件

    案例环境 (Case Environment)

    Individual CASE tools are valuable, the genuine intensity of a toolset can be acknowledged just when these sets of tools are incorporated into a typical system or condition. CASE tools are portrayed by the stage or phases of SDLC (software development life cycle) on which they center. Since various tools covering various stages share regular data, it is necessitated that they incorporate through a few focal repositories to have a predictable perspective on data related to the software development artifacts. This focal repository is generally an information word reference containing the meaning of all composite and basic information things. Through the focal repository, all the CASE tools in the CASE environment share normal data among themselves. Thus, a CASE situation office the automation of bit by bit techniques for programming advancement. A schematic portrayal of a CASE environment is mentioned below,

    单独的CASE工具是有价值的,只有在将这些工具集合并到典型系统或条件中时,才能确认工具集的真正强度。 CASE工具以其为中心的SDLC(软件开发生命周期)的阶段来描述。 由于涵盖各个阶段的各种工具共享常规数据,因此有必要将它们通过几个焦点存储库合并以对与软件开发工件相关的数据具有可预测的观点。 该焦点库通常是一个信息词参考,其中包含所有复合信息和基本信息事物的含义。 通过焦点存储库,CASE环境中的所有CASE工具之间都可以共享常规数据。 因此, CASE情境处处实现了用于编程发展的点对点技术的自动化。 下面提到了CASE环境的示意图:

    CASE Tools in Software Engineering


    Image source: https://www.careerride.com/page/case-tools-663.aspx

    图片来源:https://www.careerride.com/page/case-tools-663.aspx

    案例的好处 (Benefits of Case)

    There are several benefits of using Case tools and working with the case environment,

    使用案例工具和使用案例环境有很多好处,

    1. A key advantage emerging out of the utilization of a CASE environment is cost efficiency through all software advancement stages. Various studies complete to quantify the effect of CASE put the cast decrease between 30% to 40%.

      利用CASE环境产生的一个关键优势是在所有软件改进阶段的成本效率。 各种量化CASE效果的研究都完成了,使投放量减少了30%至40%。

    2. The utilization of CASE tools prompts extensive upgrades quality. This is mainly due to the realities that one can easily emphasize through the various periods of software development and the odds of human blunder are impressively decreased.

      CASE工具的使用提示了广泛的升级质量。 这主要是由于人们可以在软件开发的各个阶段轻松强调的现实,并且人为失误的几率大大降低了。

    3. CASE tools help produce high caliber and steady archives. Since the significant information identifying with a product item is kept up in a focal repository, excess in the put-away information is diminished and in this way, odds of conflicting documentation are decreased.

      CASE工具有助于生成高质量和稳定的档案。 由于标识产品的重要信息保留在焦点存储库中,因此减少了多余信息的存储量,从而减少了发生冲突的文档的几率。

    4. The presentation of a CASE environment affects the style of working of an organization and makes it situated towards the organized and methodical methodology.

      CASE环境的呈现方式会影响组织的工作方式,并使之趋于有组织和有条理的方法论。

    5. CASE tools have prompted progressive cost-efficiency in software maintenance endeavors. This emerges not just because of the huge estimation of a CASE environment in traceable errors and consistency checks, yet likewise, because of the deliberate data catch during the different periods of software development as a consequence of holding fast to a CASE environment.

      CASE工具已促使软件维护工作逐步实现成本效益。 出现这种情况,不仅是因为对CASE环境进行了可追溯的错误和一致性检查的巨大估计,而且还因为在软件开发的不同时期中有意捕获数据而导致了对CASE环境的快速掌握。

    翻译自: https://www.includehelp.com/basics/case-tools-and-their-scopes-in-software-engineering.aspx

    软件工程工程伦理案例分析

    展开全文
  • 软件工程及各阶段描述

    千次阅读 2009-08-06 23:08:00
    软件工程必须遵循什么原则 围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则: (1)选取适宜的开发模型 该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,...

    软件工程必须遵循什么原则

      围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则:
      (1)选取适宜的开发模型
      该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。
      (2)采用合适的设计方法
      在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
      (3)提供高质量的工程支撑
      工欲善其事,必先利其器。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
      (4)重视软件工程的管理
      软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。
      软件工程是指导计算机软件开发和维护的工程学科。
      采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够 得到的最好的技术方法结合起来,这就是软件工程。
      软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。它们是在七十年代为了对付应用 软件日益增长的复杂程度、漫长的开发周期以及用户对软件产品经常不满意的状况而发展起来的。人类解决复杂问题时普遍采用的一个策略就是“各个击破”,也就 是对问题进行分解然后再分别解决各个子问题的策略。软件工程采用的生存周期方法学就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周 期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。采用软件工程方法论开发软件的时候,从对任务的抽象逻辑分析开始,一个 阶段一个阶段地进行开发。前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解法更进一步具体化, 加进了更多的物理细节。每一个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。在每一个阶段结束 之前都必须进行正式严格的技术审查和管理复审,从技术和管理两方面对这个阶段的开发成果进行检查,通过之后这个阶段才算结束;如果检查通不过,则必须进行 必要的返工,并且返工后还要再经过审查。审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所开发的软件完全一致的)高质量的文档资料,从而保 证在软件开发工程结束时有一个完整准确的软件配置交付使用。文档是通信的工具,它们清楚准确地说明了到这个时候为止,关于该项工程已经知道了什么,同时确 立了下一步工作的基础。此外,文档也起备忘录的作用,如果文档不完整,那么一定是某些工作忘记做了,在进入生存周期的下一阶段之前,必须补足这些遗漏的细 节。在完成生存周期每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术方法──结构分析或结构设计技术。
      把软件生存周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协 作,从而降低了整个软件开发工程的困难程度;在软件生存周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结束之前都从技术和管理两个 角度进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护 性。总之,采用软件工程方法论可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。
      目前划分软件生存周期阶段的方法有许多种,软件规模、种类、开发方式、开发环境以及开发时使用 的方法论都影响软件生存周期阶段的划分。在划分软件生存周期的阶段时应该遵循的一条基本原则就是使各阶段的任务彼此间尽可能相对独立,同一阶段各项任务的 性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发工程的组织管理。一般说来,软件生存周期由软件定义、软件开发 和软件维护三个时期组成,每个时期又进一步划分成若干个阶段。下面的论述主要针对应用软件,对系统软件也基本适用。
      软件定义时期的任务是确定软件开发工程必须完成的总目标;确定工程的可行性,导出实现工程目标 应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完 成。软件定义时期通常进一步划分成三个阶段,即问题定义、可行性研究和需求分析。
      开发时期具体设计和实现在前一个时期定义的软件,它通常由下述四个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
      维护时期的主要任务是使软件持久地满足用户的需要。具体地说,当软件在使用过程中发现错误时应 该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件满足用户的新需要。通常对维护时期不再进一步划分阶段,但是每一 次维护活动本质上都是一次压缩和简化了的定义和开发过程。
      下面扼要介绍软件生存周期每个阶段的基本任务和结束标准。
      1问题定义
      问题定义阶段必须回答的关键问题:“要解决的问题是什么?”如果不知道问题是什么就试图解决这 个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最 容易被忽视的一个步骤。
      通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过对 系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不清的地 方,改正理解不正确的地方,最后得出一份双方都满意的文档。
      问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。
      2可行性研究
      这个阶段要回答的关键问题:“对于上一个阶段所确定的问题有行得通的解决办法吗?”为了回答这个问题,系统分析员需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。
      可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
      在问题定义阶段提出的对工程目标和规模的报告通常比较含糊。可行性研究阶段应该导出系统的高层 逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地估计系统的成本和效益,对建议的系统进行仔细的 成本/效益分析是这个阶段的主要任务之一。
      可行性研究的结果是使用部门负责人做出是否继续进行这项工程的决定的重要依据,一般说来,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入要多的人力物力。及时中止不值得投资的工程项目,可以避免更大的浪费。
      3需求分析
      这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。
      用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知 道怎样利用计算机解决他们的问题;软件开发人员知道怎样使用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此系统分析员在需求分析阶段必 须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。
      在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用 户的要求。系统分析员通常都是计算机软件专家,技术专家一般都喜欢很快着手进行具体设计,然而,一旦分析员开始谈论程序设计的细节,就会脱离用户,使他们 不能继续提出他们的要求和建议。较件工程使用的结构分析设计的方法为每个阶段都规定了特定的结束标准,需求分析阶段必须提供完整准确的系统逻辑模型,经过 用户确认之后才能进入下一个阶段,这就可以有效地防止和克服急于着手进行具体设计的倾向。
      4总体设计
      这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”
      首先,应该考虑几种可能的解决方案。列如,目标系统的一些主要功能是用计算机自动完成还是用人工完成;如果使用计算机,那么是使用批处理方式还是人机交互方式;信息存储使用传统的文件系统还是数据库……。通常至少应该考虑下述几类可能的方案:
      低成本的解决方案。系统只能完成最必要的工作,不能多做一点额处的工作。
      中等成本的解决方案。这样的系统不仅能够很好地完成预定的任务,使用起来很方便,而且可能还具有用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。
      高成本的“十全十美”的系统。这样的系统具有用户可能希望有的所有功能和特点。
      系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应 该在充分权衡各种方案的利弊的基础上,推荐一个较好的系统 (最佳方案),并且制定实现所推荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另一项主要工作。
      上面的工作确定了解决问题的策略以及目标系统需要哪些程序,但是,怎样设计这些程序呢?结构设 计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是设计软件的 结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。
      5详细设计
      总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”
      这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。
      通常用HIPO图(层次图加输入/处理/输出图)或PDL语言(过程设计语言)描述详细设计的结果。
      6编码和单元测试
      这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
      程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把说细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。
      7综合测试
      这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。
      最基本的测试是集成测试和验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的 模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户 积极参加下)对目标系统进行验收。
      必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。
      为了使用户能够积极参加验收测试,并且在系统投入生产性运行以后能够正确有效地使用这个系统,通常需要以正式的或非正式的方式对用户进行培训。
      通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求也可以决定测试和调试过程什么时候可以结束。
      应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,做为软件配置的一个组成成分。
      8软件维护
      维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。
      通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。
      虽然没有把维护阶段进一步划分成更小的阶段,但是实际上每一项维护活动都应该经过提出维护要求 (或报告问题),分析维护要求,提出维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收等一系列步骤,因 此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。
      都应该经过提出维护要求(或报告问题),分析维护要求,提出维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收等一系列步骤,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。

    展开全文
  • 绝对相位中心改正及其对小范围工程网坐标估值的影响,史俊波,,首先介绍了IGS组织关于天线相位中心改正的研究进展,然后描述了绝对相位中心改正原理及数学模型,并通过GAMIT10.21版软件描述了实现�
  • 第2章 软件工程与需求工程

    千次阅读 2017-04-23 21:23:29
    第2章 软件工程与需求工程标签: 软件需求工程 《软件需求工程》 毋国庆 第二版 个人笔记 第2章 软件工程与需求工程软件工程 软件开发过程模型 需求工程在软件开发中的地位 软件需求的开发和管理过程1. 软件工程 ...

    第2章 软件工程与需求工程

    标签: 软件需求工程

    软件需求工程》 毋国庆 第二版 个人笔记



    1. 软件工程

    • 软件工程:是指用工程方法开发和维护软件的过程和有关技术。
    • 适用对象:大型软件
    • 基本内容:
      1. 软件开发过程
      2. 软件开发和维护的方法与技术
      3. 软件开发和维护工具系统
      4. 质量评价和质量保证
      5. 软件管理软件开发环境

    2. 软件开发过程模型

    • 软件生命期:
      1. 分析和定义
      2. 设计
      3. 编码
      4. 测试
      5. 运行
      6. 维护直到废止

    • 瀑布模型

    此处输入图片的描述

    • 各个阶段的基本任务

      1. 软件开发计划:确定软件开发项目必须完成的总目标,论证项目的可行性,给出软件的工作范围,估算所需资源,工作量、费用,安排开发进度,并产生计划任务书及可行性报告等
      2. 需求分析与定义:软件开发人员与用户一起理解和表达用户需求,并产生需求规格说明
      3. 设计:

        1. 总体设计:根据软件需求规格说明建立软件系统的结构,描述软件系统的具体功能和接口
        2. 详细设计:产生彪马阶段所需的一系列模块设计规格说明
      4. 编码:根据设计要求,使用某种程序设计语言编写程序

      5. 测试:及时地发现和纠正软件系统中的故障和逻辑错误,并产生测试报告等。
      6. 维护:通过各种必要的维护活动保证软件系统正常运行,并持久地满足用户的需求


    • 瀑布模型存在的问题:
      1. 由于用户不可能一开始就使自己的需求很清晰,将导致软件开发人员不一定能开发出使用户满意的软件系统,再加上在开发过程中用户的需求可能发生变化,也导致软件开发工作按瀑布式模型的步骤又得从头开始,这显然是不合理的。
      2. 由于模型的各阶段相对独立,参与人员的个人理解不同,很容易导致软件系统与用户需求产生偏差
      3. 用户只能在需求分析与定义和测试阶段的后期参与到开发工作中,用户参与度不够

    • 快速原型模型

      1. 基本思想:快速建立一个实现了若干功能(不要求完全)的可运行模型来启发、揭示和不断完善用户需求,直到满足用户的全部需求为止。
        此处输入图片的描述
    • 快速原型模型首先是快速建立一个能反映用户主要需求的原型系统,然后提供给用户在计算机上使用。用户在试用原型后会提出许多修改意见,开发人员根据用户提出的意见快速修改原型系统,然后再交给用户试用。重复上述过程,直到用户认为这个系统能够达到他们的要求为止。开发人员便根据原型系统编写需求规格说明书,因此,根据这份需求规格说明开发出的软件应能满足用户的真正需求。

    • 重要的是,必须快速构建原型,然后根据用户意见迅速地修改原型
    • 不足:
      1. 用户容易视原型为正式产品
      2. 快速原型系统对于软件系统的开发环境要求较多,这也在一定程度上影响了其使用的范围和实用价值。

    • 渐增式模型(增量模型)

    • 基本思想:从核心功能开始,通过不断地改进和扩充,使得软件系统能适应用户需求的变动和扩充,从而获得柔性较高的软件系统。

    • 渐增式模型从功能明确、设计技术上不确定因素很少的核心功能优先开发,并且分批地逐步向用户提交产品。
    • 特点:能在短时间内向用户提交可完成部分功能的产品

    • 螺旋式模型
    • 基本思想:将瀑布模型与快速原型模型结合到一起,加上风险分析。(每个阶段之前都加上风险分析)
      此处输入图片的描述
      此处输入图片的描述

    • 特点:

      1. 适用于软件开发机构内部开发大规模软件项目
      2. 对于可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标
      3. 减少过多测试和测试不足所带来的风险
    • 缺点:

      1. 要求软件开发人员具有丰富的风险评估经验和专门知识

    • 面向对象开发模型
    • 面向对象:应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念,对问题进行分析和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作为运行机制的一种问题求解方法

    各阶段任务:
    + 面向对象分析:构造可理解的现实世界的问题分析模型,如对象模型、动态模型和功能模型
    + 面向对象设计:确定对象的内部细节,包括定义对象的界面、数据结构,算法和操作等
    + 面向对象实现和测试:用面向对象的程序设计语言和工具实现类和对象,以及它们之间静态和动态关系,其中包括面向对象程序设计和组装测试等。


    3. 需求工程在软件开发中的地位

    • 需求工程对软件开发的影响
      1. 需求是制定项目计划的基础
      2. 需求工程所产生的最终产物(需求规格说明书)是软件和软件实现的基础
      3. 需求规格说明是测试工作和用户验收软件系统的依据
      4. 需求规格说明是软件维护工作的依据


    • 需求工程面临的困难
      1. 需求获取与需求分析的困难
      2. 需求描述语言和规范化的困难
      3. 需求验证的困难
      4. 需求管理的困难

    4. 软件需求的开发和管理过程

    此处输入图片的描述

    展开全文
  • 信息系统造价范围

    2019-04-17 16:14:22
    信息系统造价范围:(通用布缆系统工程、电子设备机房系统工程、计算机网络系统工程、软件工程) 文档描述了每个工程具体涉及的内容。
  • 常见非功能性需求的描述案例

    万次阅读 多人点赞 2018-01-31 14:05:34
    但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在国际的各种标准中,对非功能性需求有定义,但是比较抽象。因此我整理如下常见的非功能性需求的描述案例,供需求人员进行...

     非功能性需求是需求的一个重要组成部分,它影响了系统的架构设计,需要开发人员重点关注。但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在国际的各种标准中,对非功能性需求有定义,但是比较抽象。因此我整理如下常见的非功能性需求的描述案例,供需求人员进行参考。


    1、性能需求描述案例:

    响应时间:

    在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒。

    定位系统从点击到第一个界面显示出来所需要的时间不得超过300毫秒。

    在网络畅通时,拨号连接GPRS网络所需时间不得超过5秒。

    在网络畅通时,电子地图刷新时间不超过10秒。

    在推荐配置环境下:登录响应时间在2秒内,刷新栏目响应时间在2秒内,刷新条目分页列表响应时间2秒内,打开信息条目响应时间1秒内,刷新部门、人员列表响应时间2秒内。

    在非高峰时间根据编号和名称特定条件进行搜索,可以在3秒内得到搜索结果。

    业务量:

    每日最大成交数3000笔业务。

    平均交易并发数为20,最大交易并发数为50。

    估计用户数为1万人,每天登录用户数为3000左右,网络的带宽为100M带宽。

    系统可以同时满足10,000个用户请求,并为25,000个并发用户提供浏览功能。

    系统容量:

    支持3万用户,支持GB级数据。

    数据库表行数不超过100万行,数据库最大容量不超过1000GB,磁盘空间至少需要40G以上。

    精度:

    定位精度误差不超过80米。

    当通过互联网接入系统的时候,期望在编号和名称搜索时最长查询时间<15秒。

    计算的精确性到小数点后7位。

    资源使用率:

    CPU占用率<=50%。

    内存占用率<=50%。


    2、安全需求描述案例:

    严格权限访问控制,用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。

    不同的用户具有不同的身份和权限,需要在用户身份真实可信的前提下,提供可信的授权管理服务,保护数据不被非法/越权访问和篡改,要确保数据的机密性和完整性。

    提供运行日志管理及安全审计功能,可追踪系统的历史使用情况。

    能经受来自互联网的一般性恶意攻击。如病毒(包括木马)攻击、口令猜测攻击、黑客入侵等。

    至少99%的攻击需要在10秒内检测到。


    3、可靠性需求描述案例:

    对输入有提示,数据有检查,防止数据异常。

    系统健壮性强,应该能处理系统运行过程中出现的各种异常情况,如:人为操作错误、输入非法数据、硬件设备失败等,系统应该能正确的处理,恰当的回避。

    因软件系统的失效而造成不能完成业务的概率要小于5‰。

    要求系统7x24小时运行,全年持续运行故障停运时间累计不能超过10小时。

    系统缺陷率每1,000小时最多发生1次故障。

    在1,000,000次交易中,最多出现1次需要重新启动系统的情况。


    4、兼容性需求描述案例:

    系统应支持IOS,Android , windows操作系统;

    系统应支持Oracle, DB2 数据库系统;

    最多只有5%的系统实现需要具体到特定的操作系统。

    替换关系数据库系统的平均时间不超过2小时,并且保证没有数据丢失。


    5、数据保密需求描述案例:

    网络传递数据应经过加密。需要保证数据在采集、传输和处理过程中不被偷窥、窃取、篡改。业务数据需要在存储时进行加密,确保不可破解。


    6、环境需求描述案例:

     

    硬件

    操作系统及其版本

    应用服务器软件及其版本

    应用软件及其部件

    服务器

    IBM RS6000

    AIX 4.3.3

    IBM HTTP Server、Apache、MS IIS5.0等;

    DB2(7.2 EE以上版本)

    WAS(4.0以上版本)、Web Logic(7.0以上版本)等;

    Oracle EE(9i EE以上版本)

    浏览客户端

    PII 800/64M/2G

    Win98及以上

    IE 5.0以上或Netscape同等版本以上

     

    特殊客户端

    PII 2G/64M/2G

    建议配置Win2000及以上

    IE 5.0以上或Netscape同等版本以上

    MicroStrategy7i客户端


    7、易用性需求描述案例:

    在引入该产品的3个月内,60%的用户应该可以在45秒内用它来完成转账的任务,失败率控制在万分之一以内。

    60%的用户在第一次看见该产品的5秒内,就会意识到这是**银行的网银。

    80%的用户在接受一个2小时的系统介绍培训后,可以在5分钟之内成功预订房间。


    8、可用性需求描述案例:

    有些农村地区网络质量差,带宽小。在网络环境差的条件下保证系统的可用性等。

    在95%的故障中,系统最多需要20秒重启。

    提供数据备份和恢复功能,使得在由于系统的错误或其他原因引起系统的数据丢失或系统的数据被破坏时,能够及时恢复和还原数据(由硬件及第三方软件提供此功能)。


    9 、可测试性需求描述案例:

    一个模块的最大圈复杂度不能超过15。

    交付的系统必须通过单元测试,并且是100%覆盖。

    开发活动必须使用回归测试,并允许在12小时内重新进行完整的测试。


    10、可维护性需求描述案例:

    从接到修改请求后,对于普通修改应在1~2天内完成;对于评估后为重大需求或设计修改应在1周内完成。

    90%的BUG修改时间不超过1个工作日,其他不超过2个工作日。

    代码的圈复杂度必须在10以内。

    任何对象的任何方法都不允许超过200行代码。

    安装新版本必须保持所有的数据库内容和所有个人设置不变。

    产品必须提供可跟踪任何数据库字段的工具。





    展开全文
  • 作业次数: 软件工程第五次作业 作业范围: 第一章至第十三章(复习) 第一题:名词解释 1.极限编程 (Extreme programming)。 答:把好的开发实践运用到极致,是一种典型的开发方式。 2.状态转换图。 答:状态转换图(简称...
  • 软件需求工程-需求工程概述

    万次阅读 2019-10-21 10:09:43
    一、需求工程的重要性 1.软件项目成败因素分析 软件项目成功因素: 用户的参与 执行层的支持 清晰的需求描述 合适的规划 现实的客户期望 较小的里程碑 有才能的员工 主权 清晰的愿景和目标 努力的工作和稳定的员工 ...
  • 程序描述

    千次阅读 2013-06-04 11:36:16
     程序描述的方法有很多种,自然语言,伪代码,流程图,N-S盒图(不做介绍,具体的可以看软件工程上面的东西),计算机语言等等都其中的一种。  看了上面可能你会说,那些不是描述算法的吗?在这里说一下我对程
  • 软件工程

    千次阅读 多人点赞 2021-01-24 17:13:02
    软件工程——原理、方法与应用(学习笔记)
  • 《软件工程》第4章需求工程

    千次阅读 2020-05-26 13:01:47
    用户需求和系统需求可以按照下面这样定义: 1.用户需求使用自然语言和图形,陈述系统被期望向系统用户提供什么服务以及... 需求工程通常被认为是软件工程过程的第一个阶段。然而对需求工程的一些理解可能必须在一...
  • 软件工程导论--软件工程概述

    万次阅读 多人点赞 2019-09-26 17:41:23
    1 软件与软件危机 1.1 软件的特性 软件是一种逻辑实体,而非具体的物理...  软件产品一般分为两类:通用软件产品(如数据库软件、文字处理软件、绘图软件、工程管理工具…)和定制软件产品(如电子设备的控制软...
  • SWEBOK全面描述了软件工程实践所需的知识,为软件工程学科的范围提供一致的确认,为支持该学科的本体知识提供指导。
  • 软件工程大题题库

    千次阅读 2021-01-05 11:29:36
    文章目录第一章 软件工程概述1 软件的特点2 计算机软件与硬件相比有什么特点3 为什么说软件工程的发展在一定程度上解决了软件危机的各种弊端?4 简述软件工程的基本原则5. 软件工程的研究内容6. 软件工程的三要素7. ...
  • 软件工程导论

    千次阅读 多人点赞 2019-06-12 20:13:11
    软件工程概述 1.1软件 1.2软件危机 1.3软件工程 1.4软件生命周期 1.5软件过程 第二章.可行性研究 2.1可行性研究的任务 2.2可行性研究过程: 2.3系统流程图 2.4数据流图(DFD) 2.5数据字典(DD) 2.6成本...
  • 2019工程伦理慕课答案(2019秋)习题及期末答案

    万次阅读 多人点赞 2019-11-08 18:19:53
    下列哪一项不是工程与技术的区别 内容和性质 目的 活动主体 任务、对象和思维方式 单选题 (1/1 point) 下列哪一项不是工程活动的特征 自主性 创造性 社会性 确定性 多选题 (1points) ...
  • 软件工程--需求工程

    千次阅读 2012-11-23 09:02:32
    需求工程的基本任务是确定系统的目标和范围,调查用户的需求,分析系统必须做什么,编写需求规格说明书等其他相关文档,以及需求工程审查.除此之外,还包括需求变更的控制,需求风险控制,制定需求过程的基本计划等工作. ...
  • 软件工程项目

    千次阅读 多人点赞 2019-09-24 15:50:02
    软件工程项目计划书 **题目:实时天气预报软件** 学院:信息科学与工程学院 专业:软件工程 组长:卢向疆 组员:卢向疆 寇亭立 李悦 **1.引言 1.1编写目的 Android是一种以 Linux为基础的开放源代码操作系统...
  • 软件工程导论—软件测试

    万次阅读 多人点赞 2020-05-13 21:26:49
    需求分析阶段产生的软件需求规格说明书,准确地描述了用户对软件的合理预期,因此是软件有效性的标准,也是进行确认测试的基础。 4.2. 确认测试的范围和软件配置复查 确认测试必须有用户积极参与,或者以用户为主...
  • 选择题涉及的范围还是比较广的。不过有三点比较“坑”的地方: 选择题都是多选框,没有单选或者多选的提示(也就是说,每道题都有可能是多选); 编程题只给出了一个文本框,不提供编译的功能。并且,编程题是不能...
  • 软件工程 之 需求分析

    千次阅读 多人点赞 2013-12-15 20:31:25
    在软件工程中,需求分析指的是在建立一个新的或改变一个现存电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。 下面重点给大家介绍一下分析建模的描述...
  • 论文一篇-软件工程未来的发展

    千次阅读 2014-03-21 19:14:39
    摘要:软件是现代科学技术发展的产物,随着其规模和复杂性的提高、适用范围的扩大,需要从技术和管理两方面对软件开发过程进行控制,本质是希望阮籍看系统的开发变得像工程学科中的产品生产一样。通过一系列的标准和...
  • 五、附录部分主要变化附录A 土石方工程1.项目划分 1)土方工程:挖基础土方拆分为:挖沟槽土方、挖基坑土方。... ②石方工程:取消爆破工程项目特征描述。  2)土石方回填,项目特征描述修改为:①密实度要求,...
  • 今天做了下烽火通信C/C++、Java方向的编程题,感觉还是挺简单的,虽然数据范围挺吓人的,但是作为校招题目,此套题还是很有质量的. 题目是最新的,因此没有链接. 第一题: 题目描述: 小明最近在研究股市,...
  • [特征工程系列三]显性特征的衍生

    千次阅读 2018-02-11 17:38:30
    其实特征工程真正的难点是如何结合业务需求衍生出新的特征。结合业务需求讲的是利用专家经验来提取出数据里对结果影响更大的特征,往往是原有数据字段通过加减乘除等操作生成新的字段,这些字段在结合一些线性算法做...
  • 第3章 需求工程一、 需求工程概述Alan Davis 把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”Herb Krasner定义了需求工程的五阶段:需求定义和分析、需求决策、形成需求规格、需求...
  • 用户特征工程 超详细解读

    万次阅读 多人点赞 2016-08-18 19:43:32
    在网上找到了美团一位叫付晴川同学些的ppt,里面有一幅描述用户特征工程的图,感觉总结得还是比较到位的。现在把图片贴出来: 这张图将用户特征工程里的大面基本都囊括了。因为ppt本身做得比较简单,现在我们试图...
  • 软件工程:软件工程过程与方法

    万次阅读 2016-06-23 17:29:48
    尽管程序员领着一份不错的薪水,可是他们也同样付出了巨大的精力与时间。随着软件规模的日益庞大,用户...而软件工程正是研究如何以系统性的、规范化的 、可定量的过程化方法高效开发与管理、维护软件的交叉性学科。
  • 软件工程名词解释

    万次阅读 2019-11-06 16:01:00
     软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。 软件生存周期  软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退...
  • 特征工程(完)

    万次阅读 多人点赞 2019-02-23 23:53:28
    机器学习入门系列(2)–如何构建一个完整的机器学习项目,第六篇! 该系列的前五篇文章: ...这也是特征工程系列最后一篇文章,介绍特征提取、特征选择、特征构建三个工作,通常特征工程被认为分为这三方面的内容,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,832
精华内容 65,132
关键字:

工程范围描述