精华内容
下载资源
问答
  • 做软件的软件
    万次阅读
    2022-01-13 07:33:26

        1.软件工程:

    软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科

    2.软件开发方法:

    开发软件的方法。

    已形成了八类软件开发方法。

    1.Parnas方法

    2.SASD方法

    3.面向数据结构的软件开发方法

    4.问题分析法

    5.面向对象的软件开发方法

    6.可视化开发方法

    7.ICASE

    8.软件重用和组件连接

    3.软件开发工具:

    软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。

    分类:

    软件需求工具,包括需求建模工具和需求追踪工具。

    软件设计工具,用于创建和检查软件设计,因为软件设计方       法的多样性,这类工具的种类很多。

    软件构造工具,包括程序编辑器、编译器和代码生成器、解       释器和调试器等。

    软件测试工具,包括测试生成器、测试执行框架、测试评价       工具、测试管理工具性能分析工具。

    软件维护工具,包括理解工具(如可视化工具)和再造工具       (如重构工具)。

    软件配置管理工具,包括追踪工具、版本管理工具和发布工       具。

    软件工程管理工具,包括项目计划与追踪工具、风险管理工       具和度量工具

    软件工程过程工具,包括建模工具、管理工具和软件开发环       境

    软件质量工具,包括检查工具和分析工具。

    4关系:

    (1)软件开发方法为软件工程提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

    (2)软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(case)的软件开发支撑系统。case将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。

    (3)软件工程则是将软件开发方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。软件工程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。

    更多相关内容
  • 软件著作权使用说明书范本

    千次下载 热门讨论 2018-09-18 14:47:27
    一个Word文档的范本,方便大家在撰写软件著作权申请材料时使用。 这是使用说明书的范本 看我的博客,在官网下载页面上有免费本文档的下载连接
  • 软件测试报告 珍藏版。好用记得回复推荐哦 目 录 1. 测试概述 3 1.1. 编写目的 3 1.2. 测试范围 3 1.3. 参考资料 3 2. 测试计划执行情况 3 2.1. 测试类型 3 2.2. 测试环境与配置 4 2.3. 测试人员 4 2.4. ...
  • google软件测试之道

    千次下载 热门讨论 2015-03-19 16:18:19
    《Google软件测试之道》抓住了Google测试的本质,抓住了Google测试这个时代最复杂软件的精华。《Google软件测试之道》描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;...
  • 分享一份适合练手的软件测试实战项目

    万次阅读 多人点赞 2020-11-21 19:28:50
    最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。 我翻了不下一百个web网页,包括之前推荐练手的政府网站...

    最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。

    我翻了不下一百个web网页,包括之前推荐练手的网站(普遍会有bug),但依旧没能找到合适的。

    最后,在我苦苦的搜寻过程中,突然蹦跶出来一条引流广告,我随手点进去,误打误撞,发现了一个适合练手的web网页,因此推荐给还是测试新手的你。

    项目实战

    网站:吉屋网

    模块:房价

    练习地址:http://cd.jiwu.com/fangjia/

    项目简介:一个提供地区房价信息服务的网站
    在这里插入图片描述
    针对该网页,我写了一份测试用例。

    写完后,我上手测试,发现了不少bug,比如:

    在这里插入图片描述

    学习知识

    通过此次实战训练,我希望你能学会:

    写测试用例(xmind工具)

    执行测试用例

    bug管理(禅道)

    除此之外,我还无偿提供一份我使用很久的、个人总结的、完整的web测试用例,为你以后的工作提供指引和参考。

    (关注公丛号:程序员小谭,回复【web测试实战】,可获取全部资料)
    在这里插入图片描述
    实战项目内容如下:

    最后

    01 公丛号回复关键词【web测试实战】二字,即可获取:
    测试交流群、测试基础资料、测试电子书、测试开发视频、测试用例、测试实战案例等

    02 如果你在学习、工作中遇到困难,或者有什么想了解或咨询的,可以找我,我会尽我所能帮助你。

    ↓↓↓↓↓↓↓↓↓↓↓【获取方式】↓↓↓↓↓↓↓↓↓↓↓↓

    展开全文
  • 软件开发文档模板(全套)

    千次下载 热门讨论 2018-05-18 11:42:45
    1、可行性研究报告 2、项目开发计划 3、需求规格说明书 4、概要设计说明书 5、详细设计说明书 6、用户操作手册 7、测试计划 8、测试分析报告 9、开发进度月报 ...12、软件问题报告 ...13、软件修改报告
  • 免费的软件测试模板,免费分享
  • 软件开发计划表

    热门讨论 2014-07-25 16:21:00
    软件开发计划进度表,该计划表适合所有行业。该计划表属于一个套用模板,只需要修改部分即可使用,节省时间,计划一目了然,并能高效管理员产品、任务,提高工作效率。希望能帮组所有需要管理项目的朋友,^_^!
  • 软件项目需求明细以及报价单

    热门讨论 2018-09-25 16:05:03
    简单且实用的一个软件项目需求分析明细和报价,以及模块负责人和开发周期安排的excel模板。
  • 2016年下半年(11月份)软件设计师下午真题及答案解析,全网最清晰,答案最正确的真题资料。小任老师出品,必属精品。
  • 软件工程期末考试题库(超全)

    万次阅读 多人点赞 2020-12-18 18:25:49
    软件工程期末考试题库 选择题 具有风险分析的软件生命周期模型是(  C   )。 A.瀑布模型      B.喷泉模型  C.螺旋模型        D.增量模型 软件工程的基本要素包括方法、工具和( A )。 ...

    软件工程期末考试题库

    选择题

    1. 具有风险分析的软件生命周期模型是(  C   )。

    A.瀑布模型      B.喷泉模型  C.螺旋模型        D.增量模型

    1. 软件工程的基本要素包括方法、工具和( A )。

    A. 过程        B. 软件系统   C. 硬件环境         D. 人员

    1. 软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。

    A. 固有的         B. 人为的   C. 可消除的         D. 不可降低的

    1. 在结构化分析方法中,( C )表达系统内部数据运动的图形化技术。

    A. 数据字典         B. 实体关系图   C. 数据流图         D. 状态转换图

    1. “软件危机” 是指(  C  )。

    A.计算机病毒的出现      B.利用计算机进行经济犯罪活动

    C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统

    1. 随着软硬件环境变化而修改软件的过程是(  B  )。

    A.校正性维护       B.适应性维护     C.完善性维护       D.预防性维护

    1. 需求分析中开发人员要从用户那里了解( A )。

    A.软件做什么       B.用户使用界面   C.输入的信息       D.软件的规模

    1. 软件详细设计的主要任务是确定每个模块的(  A  )。

    A.算法和使用的数据结构     B.外部接口     C.功能         D.编程

    1. 为了提高模块的独立性,模块内部最好是(  C  )。//外部耦合,功能内聚

    A.逻辑内聚       B.时间内聚     C.功能内聚       D.通信内聚

    1. 一个模块的(  C  )太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。

    A.深度         B. 宽度  C. 扇出         D. 扇入

    1. 模块的内聚性最高的是(  D  )。

    A.逻辑内聚       B.时间内聚  C. 偶然内聚       D.功能内聚

    1. 需求分析是(  A  )。

    A. 软件开发工作的基础     B. 软件生存周期的开始

    C. 由系统分析员单独完成的    D. 由用户自己单独完成的

    1. 在白盒测试技术测试用例的设计中,(  B  )是最强的覆盖标准。

    A.语句覆盖       B.路径覆盖  C. 条件组合覆盖      D.判定覆盖

    1. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称( A )。 A. 改正性维护      B. 适应性维护   C. 完善性维护             D. 预防性维护

    2. ( C ) 是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。

    A. 多态性         B. 继承   C. 封装        D. 消息

    1. 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。

    A.结合    B.隐藏   C.封装   D.抽象

    1. 面向对象的开发方法中,(  C  )将是面向对象技术领域内占主导地位的标准建模语言。

    A.Booch方法  B.Coad方法  C.UML语言  D.OMT方法

    1. ( A )意味着一个操作在不同的类中可以有不同的实现方式。

    A.多态性  B.多继承   C.类的可复用  D.信息隐藏

    1. 单元测试的测试用例主要根据(  D  )的结果来设计。

    A.需求分析      B.源程序   C.概要设计  D.详细设计

    1. 软件测试是为了( B )而执行程序的过程。

    A. 纠正错误    B. 发现错误  C. 避免错误        D. 证明正确

    21.类构件的重用方式有多态重用、继承重用和( A )

    A.实例重用       B.重载重用    C. 代码重用           D. 方法重用

    1. 支持面向对象技术的软件生存周期模型是(  A  )。

    A.喷泉模型       B.螺旋模型    C.增量模型          D.瀑布模型

    1. 在白盒测试技术测试用例的设计中,(  A  )是最弱的覆盖标准。

    A.语句覆盖       B.路径覆盖    C.条件组合覆盖      D.判定覆盖

    1. 下面哪些测试方法属于白盒测试(  A E   )。//BCD是黑盒测试

    A、基本路径测试  B、等价类划分  C、边界值分析  D、错误推测  E、逻辑覆盖测试

    1. 瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C )。

    A、详细计划  B、可行性分析 C、运行阶段  D、测试与排错

    1. 从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( C )。

    A、详细设计阶段  B、概要设计阶段 C、需求分析阶段  D、测试和运行阶段

    1. 在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )。

    A、需求分析阶段  B、详细设计阶段 C、概要设计阶段  D、可行性研究阶段

    1. 软件工程的出现主要是由于( C )。

    A.程序设计方法学的影响  B.其它工程科学的影响 C. 软件危机的出现  D.计算机的发展

    1. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )

    A、硬件环境     B、软件开发的环境 C、软件开发工具和软件开发的环境  D、开发人员的素质

    1. 软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 ( B )

    A、相互排斥  B、相互补充 C、独立使用  D、交替使用

    1. UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )

    A、基于瀑布模型的结构化方法  B、基于需求动态定义的原型化方法

    C、基于对象的面向对象的方法  D、基于数据的数据流开发方法

    1. 软件测试基本方法中,下列 ( D ) 不用测试实例。

    A). 白盒测试法 B). 动态测试法 C). 黑盒测试法 D). 静态测试法

    1. 结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( B )

    A、控制流  B、数据流  C、程序流  D、指令流

    1. 软件开发的结构化生命周期方法将软件生命周期划分成( A )

    A、 计划阶段、开发阶段、运行阶段  B、 计划阶段、编程阶段、测试阶段

    C、 总体设计、详细设计、编程调试  D、需求分析、功能定义、系统设计

    1. 可行性研究主要从以下几个方面进行研究:( A )

    A) 技术可行性,经济可行性,操作可行性 B) 技术可行性,经济可行性,系统可行性

    C) 经济可行性,系统可行性,操作可行性 D) 经济可行性,系统可行性,时间可行性

    1. 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下: ( C )

    A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。

    C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。

    1. 可行性分析研究的目的( B )

    A 争取项目 B 项目值得开发否 C 开发项目 D 规划项目

    1. 数据字典是用来定义( D )中的各个成分的具体含义

    A 流程图 B 功能结构图 C 系统结构图 D 数据流图

    1. 程序的三种基本控制结构的共同特点是( C )

    A 只能用来描述简单程序 B 不能嵌套使用 C 单入口,单出口 D 仅用于自动控制系统

    1. 为高质量的开发软件项目,在软件结构设计时,必须遵循( A )原则

    A 信息隐蔽 B 质量控制 C 程序优化 D 数据共享

    1. 黑盒测试在设计测试用例时,主要研究( A )

    A 需求规格说明于概要设计说明 B 详细设计说明 C 项目开发计划 D 概要设计说明与详细设计说明

    1. 通过 ( B ) 可以完成数据流图的细化。

    A). 结构分解 B). 功能分解 C). 数据分解 D). 系统分解

    1. 程序流程图 (PDF) 中的箭头代表的是 ( B )

    A). 数据流 B). 控制流 C). 调用关系 D). 组成关系

    1. 软件定义期问题定义阶段涉及的人员有 ( D )

    A). 用户、使用部门负责人 B). 软件开发人员、用户、使用部门负责人

    C). 系统分析员、软件开发人员 D). 系统分析员、软件开发人员、用户、使用部门负责人

    1. ( C )应考虑对模块相联和资源共享问题进行描述和制约。

    A). 系统设计 B). 详细设计 C). 接口控制 D). 结构化编辑工具

    1. 业界存在三种需求分析方法:面向功能分析、面向对象分析和 B 。

    A.面向算法分析 B.面向数据分析 C.面向程序分析 D.面向硬件分析

    1. 软件可维护性的特性中相互矛盾的是 C 。

    A.可修改性和可理解性 B.可测试性和可理解性 C.效率和可修改性 D.可理解性和可读性

    1. 软件测试方法中的 D 属于静态测试方法。

    A. 黑盒法 B.路径覆盖 C.错误推测 D.人工检测

    1. 结构化分析方法采用的基本手段是 A

    A. 分解与抽象 B.分解与综合 C.归纳与推导 D.试探与回溯

    1. 可行性研究要进行一次(D)需求分析。

    A.深入的 B.详尽的 C.彻底的 D.简化的、压缩了的

    1. 可维护性的特性中相互促进的是(A)

    A.可理解性和可测试性  B.效率和可移植性 C.效率和可修改性   D.效率和结构好

    1. (D)是以提高软件质量为目的的技术活动。

    A.技术创新  B.测试  C.技术创造  D.技术评审

    1. 软件测试可能发现软件中的( B ),但不能证明软件 ( )。

    A.所有错误,没有错误 B.错误,没有错误 C.逻辑错误,没有错误 D. 设计错误,没有错误

    1. 以下不属于软件维护困难表现的是 ©。

    A.读懂别人的程序是困难的。
    B.文档的不一致性。
    C.源程序及相关文档的错误或丢失。
    D.软件开发和软件维护在人员和时间上的差异。E. 软件维护不是一项吸引人的工作。

    1. 软件设计一般分为总体设计和详细设计,它们之间的关系是 (A)。

    A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构

    1. 一组语句在程序多处出现,为了节省空间,把这些语句放在一个模块中,该模块的内聚度是( C )的。

    A.逻辑性 B.瞬时性 C.偶然性 D.通信性

    1. 在一个课程注册系统中,定义了类 CourseSchedule 和类 Course , 并在类 CourseSchedule 中定义了方法 add (c:Course) 和方法 remove (c:Course),则类 CourseSchedule 和类 Course 之间的关系是( C )。

    A.泛化关系 B.组合关系 C.依赖关系 D.包含关系

    1. 软件策划的上游是( A ),下游是( B )

    A)需求分析 B)软件设计 C)软件测试 D)可行性分析

    1. 概要设计的结果是提供一份 ( A )。

    A). 模块说明书 B). 框图 C). 程序 D). 数据流图

    1. 面向数据流软件设计方法一般是把数据流图中的数据流化分为 (B) 两种流,再将数据流图映射为软件结构。

    A). 数据流与事务流 B). 交换流和事务流
    C). 信息流与控制流 D). 交换流和数据流

    填空题

    1. 一般来说,可以从 一致性完整性__、现实性____和有效性___四个方面验证软件需求的正确性。

    2. IPO图是 _输入、处理和输出图 _ 的简称,它是美国IBM公司发展完善起来的一种图形工具。

    3. 系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的__信息流动_____情况。

    4. 数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点

    5. 集成测试的方法主要有 渐增式和非渐增式

    6. 软件生命周期一般可分为**问题定义、可行性研究、需求分析、设计编码、测试、运行与维护**阶段。

    7. 可行性研究主要集中在以下四个方面**经济可行性**、技术可行性__、__法律可行性___和抉择。

    8. 在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。

    9. 实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性

    10. 按软件的功能进行划分,软件可以划分为 系统软件支撑软件应用软件

    11. 单元测试一般以**白盒**测试为主,__黑盒__测试为辅。

    12. 面向对象的数据存储管理模式分为__文件__、关系数据库面向对象数据库三种。

    13. 通用体系结构模式有:分层模式、管道与过滤器模式和黑板模式

    14. 成本效益分析的目的是从( 经济 )角度评价开发一个项目是否可行。

    15. 自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和 ( 宽度优先策略  ) 。

    16. 汇编语言是面向( 机器 ) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。

    17. 详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据 )。

    18. 所有软件维护申请报告要按规定方式提出,该报告也称(  软件问题  )报告。

    19. 有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的( 维护支援 )技术。

    20. 科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:( FORTRAN语言)、PASCAL语言、C语言和PL/1语言。

    21. 用户界面的 可使用性 是用户界面设计最重要的也是最基本的目标

    22. 数据流图数据字典 共同构成系统的逻辑模型

    23. 软件测试的方法有 分析方法非分析方法(即黑盒法)

    24. 成本估计方法主要有 自底向上估计自顶向下估计算法模型估计三种类型

    25. 常见的软件概要设计方法有三大类:以数据流图为基础构造模块结构的 结构化设计方法 ,以数据结构为基础构造模块的 Jackson方法 ,以对象、类、继承和通信为基础的 面向对象设计方法

    26. 实用的白盒测试覆盖技术有 4 种:语句覆盖、条件覆盖、分支 (或判定) 覆盖和组合覆盖。

    27. 传统软件维护一般分为 4 大类,分别是纠错性维护适应性维护完善性维护和预防性维护

    28. 在 V 测试模型中,编码结束后,首先作单元测试,然后是集成测试系统测试和验收测试

    29. 传统软件维护一般分为 4 大类,分别是纠错性维护适应性维护完善性维护和预防性维护

    30. 需求建模的基本方法包括抽象、分解与多视点分析 3 种。

    31. 用例之间的关系主要有三种:包含(include)、扩展(extend)和继承。

    32. 用于表示分析模型的 UML 图形机制主要是类图、活动图、交互图与状态图。

    33. 软件设计基本原则包括抽象与逐步求精、强内聚及松耦合、信息隐藏及关注点分离。

    34. 内聚性有 6 种类型 偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。

    35. 一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图。

    36. 常用的软件开发方法有结构化方法、面向对象方法和形式化开发方法

    37. 内聚性 是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

    38. 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 判定树

    39. 结构化语言是介于自然语言和形式语言之间的一种半形式语言

    40. 软件概要设计的主要任务就是软件体系结构的设计

    判断题

    1. 向滞后的项目中增加人手会使得项目更加滞后。(T)

    2. 过程描述语言可以用于描述软件的系统结构。(F)

    3. 按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。( F )

    4. 只有质量差的软件产品才需要维护。( F )

    5. 层次图用来描述软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。( F )

    6. 建立动态模型的第一步,是编写典型交互行为的脚本。( T )

    7. 软件错误可能出现在开发过程的早期,越早修改越好。(T)

    8. 软件模块的耦合是越低越好。( T )

    9. 一个好的测试用例在于能发现至今未发现的错误。(  T  )

    10. 面向对象设计的结果只能采用面向对象语言来实现( F )

    11. 一个成功的项目唯一提交的就是运行程序。( F  )

    12. 用例之间的关系有3种。(  T  )

    13. 面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚是一致的。 ( T )

    14. 软件工作的考虑范围主要是程序设计和实现。( F   )

    15. 环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G) = N– E + 2。(改成E-N+2)( F )

    16. 等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。( T )

    17. 在进行总体(改成概要)设计时应加强模块间的联系。(    F   )

    18. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。( T )

    19. 建立动态模型的第一步,是编写典型交互行为的脚本。(   T    )

    20. 在程序调试时,找出错误的位置和性质比改正该错误更难。(   F   )

    21. 如果通过软件测试没有发现错误,则说明软件是正确的。(  F    )

    22. 快速原型模型可以有效地适应用户需求的动态变化。(  T   )

    23. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( T )

    24. 集成测试主要由用户来完成。(    F   )

    25. 面向对象 = 对象 + 类 + 继承 + 消息传递。(    T   )

    26. 面向对象的分析是面向计算机系统建立软件系统的对象模型。(  F  )

    27. 软件的开发与运行经常受到硬件的限制和制约。( T )

    28. 模块内的高内聚往往意味着模块间的松耦合。( T )

    29. Jackson图只能表达程序结构,不能表达数据结构。( F )

    30. 软件测试的目的是为了无一遗漏的找出所有的错误。( F )

    31. 软件的质量好坏主要由验收人员负责,其他开发人员不必关心。( F )

    32. 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。( T )

    33. 应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。( F )

    34. UML只能应用于软件系统模型的建立。( F )

    35. 容错就是每个程序采用两种不同的算法编写。( F )

    简答题

    1. 简述软件设计的过程。

    软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和角度,是将需求转变为软件陈述的过程,是迭代的过程。

    软件设计,要根据需求规格说明书,对整个设计过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也是不断迭代和精化的过程。

    然后需要对生成的设计规格说明书进行评审,启动 质量评价的标准,若未通过评审,需重新修改设计,直至评审通过,确定最后定型的过程本身。进入后续阶段,完成软件设计过程。

    1. 简述结构化程序设计方法的基本特点。

    1)尽可能少用goto语句的程序设计方法。

    2)每个代码块都单入单出。

    3)使用控制结构:顺序、选择和循环。

    4) 自顶向下逐步求精。

    1. 衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?

    衡量模块独立性的两个定性标准是内聚和耦合(2分)。

    耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度(2分)。

    在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(1分)。

    1. 什么是黑盒测试法?

    黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程(2分)。

    它只检查程序功能是否能按照规格说明书的规定正常使用(1分),

    程序是否能适当地接收输入数据(1分),

    产生正确地输出信息(1分)。

    1. 如何选择程序设计语言的工程特性

    1.系统用户的要求

    2.可以使用的编译程序

    3.可以得到的软件工具

    4.工程规模

    5.程序员的知识

    6.软件可移植性的要求

    7.软件的应用领域

    1. 简述面向对象的4个要点的含义。

    面向对象的4个要点是:对象分解、数据专有、继承、封装性。(1分)

    1)对象分解:认为客观世界是由各种对象组成的。  (1分)

    2)数据专有,方法共享:把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 (1分)

    3)继承:按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(1分)

    4)封装性:对象彼此之间仅能通过传递消息互相联系。(1分)

    1. 软件维护的过程

    在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。 软件维护的过程:

    (1) 确认维护要求。(1分)

    (2) 对于改正性维护申请,评价错误的严重性。对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。(2分)

    (3) 对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。(2分)

    1. 软件维护的目的和主要任务是什么?维护的类型有哪些?

    软件维护是软件生命周期中最后一个、持续时间最长的阶段。

    主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件。

    目的是提高软件的可靠性、可用性,延长软件的寿命。

    维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)

    1. 什么是耦合?模块的耦合包括哪些类型?

    耦合是对一个软件结构内不同模块之间互连程度的度量。

    模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容   耦合,标记耦合,无耦合/非直接耦合

    1. 什么是内聚?模块的内聚包括哪些类型?

    内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展

    模块的内聚包括以下几种类型:低内聚 — 偶然内聚,逻辑内聚,时间内聚  中内聚 — 过程内聚,通信内聚; 高内聚 — 顺序内聚,功能内聚

    1. 什么是编码风格?为什么要强调编码风格?

    编码风格包括以下内容:程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。

    因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风格。

    1. 什么是软件危机?软件危机的表现是什么?其产生的原因是什么?

    软件发展的第二阶段末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的,大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决方法,使问题积累起来,形成了尖锐的矛盾,因此导致了软件危机。

    软件危机表现在以下四个方面:(钱与时间,要求,维护性,可靠性)

    • (1)经费预算经常突破,完成时间一再拖延。
    • (2)开发的软件不能满足用户要求
    • (3)开发的软件维护性差
    • (4)开发的软件可靠性差

    造成软件危机的原因:(规模和结构,管理,经费,技术,工具)

    • (1)软件的规模越来越大,结构越来越复杂
    • (2)软件开发管理困难而复杂
    • (3)软件开发的经费不断增加
    • (4)软件开发技术落后
    • (5)生产方式落后开发工具落后,生产率提高缓慢
    1. 软件生存周期包括哪些活动?

    答:软件生存周期的活动包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。

    1. 请说明 “三个模型” 的定义,以及三者之间的关系。

    功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。
    业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。
    数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。
    功能模型和业务模型是在需求分析时建模,是两个基本点。数据模型是一个中心,在设计时建模。功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。通常,数据模型建模用 Power Designer,ER win 或 Oracle Designer 工具实现;功能模型用功能点列表(或用况图)表示;业务模型用自然语言加上流程图(或顺序图)表示。

    1. “面向对象实现” 的目标是什么?

    答:“面向对象实现” 的目标是:按照《详细设计说明书》中对数据结构、算法分析和模块实现等方面的设计说明,用面向对象的语言,将这些部件组装起来,分别实现各模块的功能,从而实现目标系统的功能、性能、接口、界面等要求。

    1. 软件工程的定义
    • (1)将系统的、规范的、可量化的方法应用于软件的开发、运行和维护的过程;
    • (2)及上述方法的研究。

    画图题

    1.已知有一段代码实现了 “输出ABC三个数中的最大值”,要求完成下列问题:

    (1)画出代码的流程图(4分)

    (2)根据该程序流程图画出该程序的流图;(4分)

    (3)计算该流图的环形复杂度;(4分)

    在这里插入图片描述
    在这里插入图片描述

    ​ (3) 环形复杂度

    ​ V(G) = 区域数 = 边数 - 节点数 + 2 = 判定点 + 1 = 4

    2.某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。
    在这里插入图片描述
    在这里插入图片描述

    3.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址 (或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码 (可选) 等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
    用数据流图描绘本系统的功能,要求绘出数据处理、数据存储、数据流和相关角色。
    在这里插入图片描述

    展开全文
  • 软件工程概论

    万次阅读 2021-11-26 10:37:51
    软件=程序+数据+文档 是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。 – 程序=数据结构+算法 是按事先设计的功能和性能要求编写的指令序列; – 数据=结构化数据+...

    • 软件=程序+数据+文档
    是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
    – 程序=数据结构+算法
    是按事先设计的功能和性能要求编写的指令序列;
    – 数据=结构化数据+非结构化数据
    是使程序能正常操纵信息的数据结构;
    – 文档=文字材料+图表说明
    是与程序开发、维护和使用有关的图文材料。

    软件特点:
    1)具有抽象性
    2)无明显的制造过程
    3)存在退化问题
    4)对计算机系统有着不同程度的依赖性
    5)尚未完全摆脱人工的开发方式
    6)软件本身是复杂的
    7)成本相当昂贵
    8)相当多的软件工作涉及社会因素

    软件的分类

    在这里插入图片描述

    软件工程概念:

    IEEE对软件工程的定义为:
    1)将系统化、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件
    2)对1)中所述方法的研究

    具体说来,软件工程是以借鉴传统工程的原则、方法,以提高质量,降低成本为目的指导计算机软件开发和维护的工程学科。它是一种层次化的技术。

    软件工程层次图

    在这里插入图片描述
    软件工程研究的内容

    软件工程研究的内容主要包括以下两个部分:

    软件开发技术。主要研究软件开发方法、软件开发过程、软件开发工具和环境。

    软件开发过程管理。主要研究软件工程经济学和软件管理学。

    软件开发的含义:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    建模是解决问题的一般途径
    模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及他们之间的语义关系。
    在这里插入图片描述
    软件模型:
    在这里插入图片描述
    软件工程框架:
    在这里插入图片描述
    软件工程的目标:
    正确性,可用性,开销合宜。
    在这里插入图片描述
    软件工程的活动:
    主要包括需求,设计,实现,确定和支持活动。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    软件工程新视野:
    在这里插入图片描述
    软件工程就是解决如何正确、高质、高效地 写出软件

    经典软件工程是在经典信息技术体系中,给 定底层硬件与运行环境,给定应用需求,指导(软件过程与管理)和辅助(开发工具与 环境)开发团队(10人以上)正确、高质、 高效(风险和成本控制)地写出软件

    新一代信息技术底层环境复杂多变,应用需 求难以给定,99%的开发团队低于10人, 经典软件工程 更不够用

    软件定义一切(software defined
    everything)成为软件工程新思路

    新一代信息技术
    在这里插入图片描述
    在这里插入图片描述区块链:技术视角和商业视角
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    【金融】
    区块链项目在金融领域的探索主要集中在支付、房地产金融、企业金融、保险、资产管理、票据金融等领域。在国 内,不仅是新兴区块链创业企业,如中国银联、招商、民生等银行和蚂蚁区块链、众安科技在内的科技巨头已经开 始布局并落地了相应的平台与项目。利用区块链的去中心化、不可篡改的特性对于金融各个环节的风险有了更好的 把控,从而降低了金融流程中的成本。
    【娱乐】
    区块链应用较为早期的2C类业务主要衍生在娱乐社交领域。在音乐创作中区块链可以帮助创作者规避抄袭的争议。 基于区块链做的虚拟偶像、游戏、直播等项目让虚拟财产交易和保护更加透明。游戏行业是非常火热的一个应用概 念,因为游戏账号和游戏装备是最常见的一种虚拟资产,最容易与区块链和虚拟货币相结合。
    【物联网】
    曾有机构预言供应链和物联网将是区块链迅猛发展的下一片沃土。这得益于区块链带来的交易共享性和不可篡改性, 这提高了供应链在物流、资金流、信息流等实体协作沟通效率,改善了多方协作时的争议。
    【医疗】
    针对医疗的数据安全和患者隐私保护,区块链的匿名和去中心化的特性得到了很好的应用。这让医联体之间进行远 程数据共享、分布式保障与存储管理更加安全。
    【能源】
    在能源领域最为广泛应用的是智能电网。针对每一度电用区块链可以从来源到使用建立完备的数字档案,为电站提 供数据支持和资产评估依据。区块链还可以释放分布式资源的多余电力,如回购民用屋顶太阳能产生的冗余资源。
    【公益】
    在公益事业中,应用最多的还是区块链的溯源能力,追溯善款的去向,让捐赠者安心。
    【农业】
    也是利用区块链的溯源能力,追溯农产品的来源,让食用者放心。
    【法律】
    区块链的分布式存证让在法律层面主要体现在版权保护、证据保全和电子智能合同三个方面。对于版权保护,区块 链让版权交易标准化成为可能;而对于电子证据来说,区块链实现了保真和验真。
    在这里插入图片描述

    展开全文
  • 软件工程经典教程之[1]软件工程概述PPT

    千次下载 热门讨论 2014-10-13 22:30:15
    1.0 计算机基础 1.1 软件的概念 1.2 软件危机 1.3 软件工程 1.4 软件生命周期 1.5 软件开发过程模型 1.6 软件开发方法简述
  • 但现在随着国内对软件测试的重视,我国互联网企业对软件测试的需求在未来还将继续增大。听起来软件测试的就业形势一片大好,那么到底软件测试的发展前景怎么样? 1、软件测试就业形势:人才缺口大。 目前几乎每个大中...
  • Depthmap空间句法软件

    热门讨论 2013-03-26 11:07:47
    Depthmap空间句法软件Depthmap空间句法软件
  • 软件需求规格说明书模板(超详细)

    千次下载 2018-02-02 16:59:36
    很详细规范的实例软件需求说明书,标准规范,自用参考
  • coreldraw 2019 win10版下载软件大小:727 MB授权方式:免费软件立即下载CorelDraw是什么?设计绘画 CorelDraw 是一个绘图与排版的软件,它广泛地应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等...
  • 在购买了固态硬盘(SSD)后,如果对商家或官方给出的诸如读写速度等关键性数据存在质疑的话,最好的解决方法莫过于通过SSD测试软件来找寻答案。那么,SSD测试软件有哪些?SSD测试软件哪个比较好用呢?针对上述问题,小...
  • 软件工程导论--软件工程概述

    万次阅读 多人点赞 2019-09-26 17:41:23
    1 软件软件危机 1.1 软件的特性 软件是一种逻辑实体,而非具体的物理...  软件产品一般分为两类:通用软件产品(如数据库软件、文字处理软件、绘图软件、工程管理工具…)和定制软件产品(如电子设备的控制软...
  • 本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍...
  • 浅谈软件开发的四大要素

    万次阅读 2021-11-04 18:49:21
    对于软件开发的过程,不可谓不熟悉,真的是爱恨交织,第一次自己头铁当队长服创,也没有学长学姐带着,没啥经验,就是乱搞,然后交接和收尾的时候,我真的是快哭了; 在的时候,每次一看要求,就又感觉不对,又...
  • 上海车牌竞拍模拟软件

    千次下载 热门讨论 2014-04-19 11:52:20
    刚才帮朋友竞拍上海车牌,弄了一个模拟软件,有需要的可以下载用用,模拟竞拍过程,很实用的哦
  • 人力资源管理软件(完全免费)

    千次下载 热门讨论 2011-03-08 11:36:20
    2008-01-19 人力资源管理软件做了以下改进 改进员工编辑界面的日期(感谢中秋月)(人力资源软件) 解决部门定义中的一个BUG(感谢蓝血人) 人力资源管理软件增加退出系统时提示(感谢中秋月) 2008-01-22 人力资源...
  • 软件工程毕业论文答辩PPT模板

    千次下载 热门讨论 2013-05-30 16:32:18
    软件工程答辩PPT模板,使用所有软件工程相关专业
  • 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 第一次软件危机 (60年代~70年代) 20 世纪60年代以前,计算机刚刚投入实际使用,这...
  • 解决域用户安装软件权限问题

    万次阅读 2021-01-14 16:49:14
    当域用户登录系统后,要安装软件的时候会有提示输入管理员密码, 如果要去掉这个限制,需要将域用户或域用户组加入到本地管理员的Administrators组或Power Users组中。 方法: 1、用本地管理员帐号登录系统,打开...
  • 想要更加直观的了解自己的电脑,一款好用的电脑跑分软件无疑是必不可少的,毕竟其能够将测试结果用跑分的形式计算出来。那么,电脑跑分软件哪个比较好呢?下面是小编分享的好用的电脑跑分软件盘点,小伙伴们可不要...
  • Head First软件开发

    千次下载 热门讨论 2015-03-21 11:49:33
    Head First 软件开发 中文扫描版
  • 什么是软件测试?软件测试的目的、意义是什么? 软件测试的流程是什么? 小伙伴儿们,大家好呀! 我最近是过的不太好呀,最近工作属实是有点累啊,我现在是拉拉胯了,今天这篇文章是我用命和大家分享的一篇有关软测...
  • 软件工程经典教程之[4]总体设计 PPT

    千次下载 热门讨论 2014-10-13 22:36:44
    软件设计是一个把软件需求变换成软件表示的过程,即根据需求分析的“什么”,确定系统应该“怎么”。 软件设计的结果是软件设计规格说明书。 软件设计是后续开发步骤及软件维护工作的基础。 从技术观点来看,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,292,913
精华内容 2,517,165
关键字:

做软件的软件