软件工程复习重点

软件工程复习重点

软件开发原则的四条基本原则

①选取适宜的开发风范;

在系统设计中经常需要权衡软件需求、硬件需求以及其他因素之间的相互制约和影响,适应需求的易变性。因此,要选用适宜的开发风范,以保证软件开发的可持续性,并使最终的软件产品满足客户的要求。

②采用合适的设计方法;

在软件设计中,通常要考虑软件的模块化、信息隐蔽、局部化、一致性以及适应性等问题。采用合适的设计方法有助于支持这些问题的解决和实现,以达到软件工程的目标。

③提供高质量的工程支持;

软件工程如同其他工程一样,需要提供高质量的工程支持,例如配置管理、质量保证等,才能按期交付高质量的软件产品。

④有效的软件工程管理。

软件工程的管理直接影响可用资源的有效利用,以提高软件组织的生产能力。因此,只有对软件过程实施有效管理时,才能实现有效的软件工程。

软件生存周期的六个阶段

①计算机系统工程;

计算机系统包括计算机硬件、软件,以及使用计算机系统的人、数据库、文档、规程等系统元素。计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,作出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

②需求分析;

需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等需求,生成软件需求的规约(也称软件需求规格说明)。

③设计;

软件设计主要解决待开发软件”怎么做“的问题。软件设计通常可分为系统设计(也称概要设计或总体设计)和详细设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。

④编码;

编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。

⑤测试;

测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。

⑥运行和维护。

软件完成各种测试后就可以交付使用,在软件运行期间,需对投入运行的软件进行维护,即当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。

典型的软件过程模型

①瀑布模型;

②演化模型(如增量模型、原型模型、螺旋模型);

③喷泉模型;

④基于构件的开发模型;

⑤形式化方法模型。

可行性分析的三个方面

①经济可行性

(1)成本:

​ 1.购置费用;

​ 2.系统开发费用;

​ 3.系统安装、运行和维护费用;

​ 4.人员培训费用。

(2)效益:

​ 1.经济效益:包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计5年内的经济效益。经济效益通常可用货币的时间价值、投资回收期和纯收入来度量。

​ 2.社会效益:指使用基于计算机的系统后对社会产生的影响(如提高了办事效率,使用用户满意等),通常社会效益只能定性地估计。

(3)货币的时间价值:通常可以用年利率来表示货币的时间价值。

(4)投资回收期:指累计的经济效益正好等于投资数(成本)所需要的时间。

(5)纯收入:指出了若干年内扣除成本后的实际收入。

②技术可行性;

(1)风险分析:主要分析在给定的约束条件下设计和实现系统的风险;

(2)资源分析:主要论证是否具备系统开发所需要的各类人员、软件、硬件等资源和相应的工作环境;

(3)技术分析:主要分析当前的科学技术是否支持系统开发的各项活动。

③法律可行性。

法律可行性主要研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。

软件需求工程的六个阶段

①需求获取;

在需求获取阶段系统分析人员通过与用户的交流、对现有系统的观察以及对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列表、系统的技术环境的描述、系统功能的列表及应用于每个需求的领域限制、描述不同运行条件下系统或产品使用状况的应用场景等。需求获取的工作产品为进行需求分析提供了基础。

②需求分析与协商;

需求获取结束后,分析活动对需求进行分类组织,分析每个需求与其他需求的关系以及检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。在需求获取阶段,经常出现以下问题:一、用户提出的要求超出软件系统可以实现的范围或实现能力;二、不同的用户提出了相互冲突的需求。每个用户在提出自己的需求时都会说”这是至关重要的“。所以系统分析人员需要通过一个谈判过程来调解这些冲突。

③系统建模;

系统建模技术可以通过合适的工具和符号系统地描述需求。建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象方法。

④需求规约;

需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。

⑤需求验证;

需求验证对功能的正确性、完整性和清晰性,以及其他需求给予评价。

⑥需求管理。

软件需求管理是对需求工程所有相关活动的规划和控制。

需求分析原则

①必须能够表示和理解问题的信息域;

②必须能够定义软件将完成的功能;

③必须能够表示软件的行为(作为外部事件的结果);

④必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节;

⑤分析过程应该从要素信息转向细节信息。

评审人员评审时需要检查的内容

①系统定义的目标是否与用户的要求一致;

②系统需求分析阶段提供的文档资料是否齐全,文档中的描述是否完善、清晰、准确地反映了用户要求;

③被开发项目的数据流与数据结构是否确定且充足;

④主要功能是否已包括在规定的软件范围之内,是否都已充分说明;

⑤设计的约束条件或限制条件是否符合实际;

⑥开发的技术风险是什么;

⑦是否详细制定了检验标准,它们能否对系统定义进行确认。

简述模块、模块化及模块设计的概念

①模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,而且可以通过名字来访问。例如过程、函数、子程序、宏等都可作为模块。

②模块化:把软件按照规定原则,划分为一个个较小的、相互独立的但又相互关联的部件。

③模块化设计:将产品的某些要素组合在一起,构成一个具有特定功能的子系统,将这个子系统作为通用性的模块与其他产品要素进行多种组合,构成新的系统,产生多种不同功能或相同功能、不同性能的系列产品。

什么是模块的独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点?

①模块的独立性:指模块完成各自的功能,且模块间互不影响。

②设计中模块独立的原因:符合信息隐蔽原则,模块的功能与接口较为简单,易于实现与维护。

③模块的独立性由耦合度和内聚度两项指标来度量,内聚度衡量同一个模块内部的各个元素彼此结合的紧密程度,耦合度衡量不同模块彼此间相互依赖的紧密程度。

④模块功能独立的优点:模块的功能与接口更为简单,易于调试和测试,有助于提高软件的可靠性;易于设计、阅读与修改。

白盒测试及其主要覆盖标准

①白盒测试

又称结构测试,这种方法把测试对象当作一个透明的盒子,即完全了解程序的内部结构和详细的处理过程,测试在程序的内部结构上进行。

②主要的覆盖标准:

语句覆盖;判定覆盖;条件覆盖;判定/条件覆盖;条件组合覆盖;路径覆盖。

黑盒测试及其可发现错误的类型

①黑盒测试:

又称行为测试,这种方法把测试对象当作一个黑盒子,即完全不考虑程序的内部结构和详细的处理过程,测试在程序的接口上进行。是根据程序外部特征进行的测试。

②可发现错误的类型:

(1)不正确或遗漏的功能;

(2)接口错误,如输入输出参数的个数、类型等;

(3)数据结构错误或外部信息(如外部数据库)访问错误;

(4)性能错误;

(5)初始化和终止错误。

影响软件维护工作量的六种因素

①系统的规模;

系统规模越大,其功能就越复杂,软件维护的工作量越大。

②程序设计语言;

使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性也越好。

③系统年龄;

老系统比新系统需要更多的维护工作量。因为多次的修改可能造成系统结构变得更加混乱,同时由于维护人员经常更换,程序变得越来越难以理解,加之系统开发时文档不齐全,或在长期的维护过程中文文档在许多地方与程序实现变得不一致,从而使维护变得十分困难。

④数据库技术的应用;

使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表的应用软件的维护工作量。

⑤先进的软件开发技术;

在软件开发过程中,如果采用先进的分析设计技术和程序设计技术,如面向对象技术、复用技术等,可减少大量的维护工作量。

⑥其他一些因素。

如应用的类型、数学模型、任务的难度、if嵌套深度、下标数等,对维护工作量也有影响。

软件维护的四个活动

①建立维护组织;

②确定维护过程;

③保管维护记录;

④进行维护评价。

最后三道大题类型

①数据流图题:先判断变化流还是事务流,再分解为结构图。

②软件项目估算题:参考课本P330,例16.1。

③PSP题:参考实验六,时间管理,平均值、累加值计算问题。

(如有纰漏,尽请指正)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值