软件工程

软件工程
mengnankkzhou基本概念
1.软件生命周期由哪些阶段组成(三个时期,八个阶段)
软件生命周期通常划分为以下结构:
- 软件定义时期:
- 问题定义
- 可行性研究
- 软件开发时期: 3. 需求分析 4. 总体设计(概要设计) 5. 详细设计 6. 编码与单元测试 7. 综合测试(集成测试与确认测试)
- 软件维护时期: 8. 软件维护
2.软件设计过程中应该遵循的基本原理有哪些?
在设计过程中,应遵循以下核心准则:
- 模块化:将系统划分为功能独立的模块。
- 抽象:提取核心逻辑,忽略非本质细节。
- 逐步求精:从宏观到微观,分层分解功能。
- 信息隐蔽与独立性:提高模块内部的内聚性,降低模块间的耦合性。
3.大型软件系统的测试步骤是怎么样的
测试遵循“自底向上”的过程:
- 单元测试:针对具体模块(函数/类)进行测试。
- 集成测试:将模块组装,测试接口间的协同。
- 确认测试(系统测试):验证系统是否满足需求规格说明。
- 验收测试:由用户主导,确认软件是否可投入运营。
4.面向对象方法学的有点有哪些’
复用性高:通过类和继承减少重复工作。
易维护性:封装性使得局部修改不影响全局。
稳定性好:更接近人类对现实世界的认知模型。
可扩展性强:多态性支持在不改动原有代码的情况下增加新功能
5.需求分析的主要任务:需求分析的任务是:获取、分析、建模、确认并文档化用户需求,为系统设计与实现提供准确依据。
理解与获取用户需求
需求整理与分析
需求建模与描述
需求确认与评审
需求文档化
需求变更管理
6.从哪些方面验证软件需求的正确性?就简单的一段话总结就行
软件需求的正确性通常从完整性、一致性、正确性、可行性、无歧义性和可验证性等方面进行验证,即检查需求是否覆盖所有用户功能、是否相互矛盾、是否真实反映用户意图、在技术和成本上是否可实现、表述是否清晰明确,以及是否能够通过测试进行验证。
7.需求分析阶段的图形工具有哪些?并对每种图形工具作简单说明子。
数据流图
作用: 描述系统中数据的流向和处理过程。
说明: 通过外部实体、处理、数据存储和数据流四个基本元素,从整体到局部逐层分解,直观反映系统“数据从哪里来、如何处理、到哪里去”。
数据字典
作用: 对数据流图中的数据进行精确定义。
说明: 以表格或条目形式描述数据项、数据结构、取值范围和含义,用来消除歧义、保证数据定义一致性,是对 DFD 的重要补充。
判定表 / 判定树
作用: 描述复杂的条件判断和业务规则。
说明:
- 判定表:用表格方式列出各种条件组合及对应的处理动作;
- 判定树:用树形结构表示条件判断过程;
适合处理多条件、多分支的业务逻辑。
8.总体设计过程的步骤
确定系统设计目标与约束
明确系统功能目标、性能要求、安全性、可靠性以及技术和环境约束。
进行系统功能分解
将系统划分为若干子系统或模块,明确各模块的功能和相互关系。
设计系统总体结构
确定系统的体系结构(如分层结构、客户端/服务器结构等),给出模块结构图。
确定模块之间的接口
定义各模块的输入、输出和调用关系,保证模块之间协同工作。
数据与数据库的总体设计
确定主要数据结构、数据存储方式和数据库的总体框架。
制定总体设计方案并评审
形成总体设计说明,组织评审,确保设计满足需求并具有可行性。
9.过程设计的工具有哪些?能够对每种工具作简单说明
程序流程图
说明: 用图形符号表示算法的执行过程,直观反映处理步骤和控制流程。
伪代码
说明: 采用接近自然语言和程序语言的方式描述算法逻辑,便于理解和实现。
判定表
说明: 用表格形式表示多条件组合及其对应的处理动作,适合描述复杂业务规则。
例子(简述):
条件:成绩 ≥60、是否补考
动作:及格 / 不及格
判定树
说明: 用树形结构表示条件判断过程,清晰反映判断顺序和结果分支。
N-S 图
说明: 用嵌套矩形表示顺序、选择和循环结构,强调结构化程序设计思想。
10.使用白盒测试技术中的逻辑覆盖设计测试用例
逻辑覆盖是一种白盒测试方法,根据程序内部的逻辑结构设计测试用例,主要包括:
- 语句覆盖:使程序中每条语句至少执行一次
- 判定(分支)覆盖:使每个判定的真、假分支至少执行一次
- 条件覆盖:使每个条件的真、假值至少出现一次
- 判定 / 条件覆盖:同时满足判定覆盖和条件覆盖
- 条件组合覆盖:覆盖条件的所有可能组合
其目的是尽可能发现程序内部逻辑错误。
11.使用黑盒测试技术中的等价划分设计测试用例
等价划分是一种黑盒测试方法,将输入数据划分为若干等价类,从每个等价类中选取代表值进行测试。
- 确定输入条件
明确程序的输入项及其取值范围 - 划分等价类
- 划分有效等价类(合法输入)
- 划分无效等价类(非法输入)
- 为每个等价类编号
确保每个等价类至少被覆盖一次 - 设计测试用例
从每个等价类中选取一个代表值组成测试用例
目的: 在减少测试用例数量的同时,提高测试效率和覆盖率。
12.估算平均无故障时间的方法
平均无故障时间(MTBF)的估算通常采用以下方法:
- 基于测试数据的统计法:根据系统运行或测试过程中记录的故障次数和运行时间进行计算
- 可靠性增长模型:利用软件测试过程中故障发现规律进行估算
- 历史数据类比法:参考相似系统的可靠性数据进行预测
其基本思想是通过统计和模型分析,对软件在单位时间内无故障运行能力进行评估。
计算题
5本公司掌握某世界级著名餐饮在三个世界其物流及费用标准确定如下:
- 空运: 如果货物重量小于等于 $2kg$,前二千克收费 8 元;如果货物重量大于 $2kg$ 而小于等于 $20kg$,收费 7 元/kg;如果货物重量大于 $20kg$,运费 4 元/kg。
- 地运: 若为散件,收费为 1 元/kg;若为整件,且重量小于等于 $20kg$ 时,收费为 1 元/kg;当货物重量大于 $20kg$ 时,收费为 2 元/kg。
6.. 设计一个软件的开发成本为 70000 元,寿命为 3 年。这 3 年的每年收益预计分别为 44000 元、48400 元、53240 元。假设通行年利率为 10%。
- 要求: 对该项目进行成本/效益分析,计算投资回收期与纯收入。
7.
正在测试一个长度为 100000 条指令的程序时,第一个月由甲和乙两名测试员各自独立测试这个程序。经过一个月的测试后,甲发现并改正 50 个错误,使 MTTF 达到 10 小时。与此同时,乙发现了 60 个错误,其中 10 个错误与甲发现的相同。以后由甲一个人继续测试这个程序。
- 问:
- (1) 预计原测试过程中总共有多少个潜伏的错误?
- (2) 为使 MTTF 达到 50 小时,必须再改正多少个错误?
8.某公司的电话业务如下:
- a) 可以拨分机号或外线号码;
- b) 分机号是从 7201 至 7299;
- c) 外线号码先拨 9,然后是市话号码或长途号码;
- d) 长途号码是以区号和市话号码组成;
- e) 区号是 010 或 020 或 021;
- f) 市话号码和长途长度为 8 位数字串;
- g) 电话号码中的数字可取 0 至 9 之间的任意值。
- 用数据字典表示以上数据条目。
9.输入 3 个整数,判断是否构成三角形。如果是构成三角形,则输出三角形的长度,否则,输出“不能构成三角形”。要求:
- 用程序流程图表示该问题;
- 画出流图
- 计算程序的复杂度,并给出该图中的所有路径。
10.. 3.根握下面的问题措述使用等价划分法设计测试用例
某一8位微机的八进制常数定义为:以零开头的数是八进制整数,其值的范围是-267-267,比如:06,0234,-0123,提示设计等价类时,将八进制数的范国作为输入数据的一个条件,
- 设想一个软件系统,分析系统的要求(文字描述),画出数据流图与实体联系图(E-R图)。要求数据流图分级绘制。






