《软件工程》期末复习题型整理

一、判断(每小题1分,共5分)

1、软件危机自从软件工程学科出现以后就永远不会再出现。(?)
2、面向过程方法、面向功能方法、结构化方法,三者是同一个意思。( ? )
3、签订合同前乙方要进行一个粗略的系统分析与系统设计过程。(? )
4、满足需求就是解决问题。( ? )
5、面向对象的软件工程中,类的分析、设计、实现是贯彻整个软件开发过程的核心。( ? )

1、文档必须指挥程序,而决不允许程序指挥文档。(?)
2、用例图中外部角色必须是人。(?)
3、软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC等)编写的程序,软件开发实际上就是编写程序代码。 ( ??)
4、概念数据模型的实质,就是分析和梳理现实中的数据及其数据联系,为建立数据库设计打好基础。( ? )
5、需求分析都是从业务流程开始的,这是因为:用户只能从业务流程上提出需求,而将功能、性能和接口置于业务流程之中。 (?)?

二、名词解释(每小题3分,共15分)

(补充)
??是编程时应该遵守的一些规范,它的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义规范等。
?? :是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。

//————章一 软件工程内容和方法

  • := 知识+程序+数据+文档
  • :是研究软件开发和软件管理的一门工程学科
  • (swebok2004):十个知识域
    1. 软件需求
    2. 软件设计
    3. 软件构造
    4. 软件测试
    5. 软件维护
    6. 软件配置管理
    7. 软件工程管理
    8. 软件工程过程
    9. 软件工程工具和方法
    10. 软件质量(前五个讲软件开发后五个软件和管理)
  • (5方面内容)
    1. 软件生命周期
    2. 软件开发方法
    3. 软件支持过程
    4. 软件管理过程
    5. 软件工程标准与规范
  • 8
    1. 用分阶段的生命周期计划严格管理软件开发…
    2. 坚持进行阶段评审…
    3. 实行严格的产品版本控制
    4. 采用现代程序设计技术
    5. 结果应能清楚的审查…
    6. 开发小组的人员要少而精
    7. 要不断的改进软件工程实践的经验和技术,要与时俱进
    8. 二八定律…
  • :??
    是指在整个软件生命周期中,软件开发过程应遵循的开发路线图。或者说,软件生命周期模型是软件开发全部过程、活动和任务的结构框架
    【补充】

//—————————-章三 立项

  • ??:与固定的用户签订软件开发合同,由软件公司启动该项目的开发,这类软件被称为“订单软件”
  • ??:市场调研后,认为某产品将会有巨大的市场空间,而软件公司在人力资源、设备资源、抵抗风险、资金和时间上都具备开发该产品的能力,于是决定立项,这类软件产品被称为“非订单软件”
  • :一旦立项或者签订合同,企业领导或者软件管理部门就要下达《任务书》
  • :合同是民事主体之间设立、变更、终止民事法律关系的协议。
  • 立项之后所拟的立项文档。在某种程度上代替开发合同或用户需求 告,作为软件策划的基础。

//—————————-章四 需求分析

    • 1)用户解决问题或达到目标所需的条件或能力。
      2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力。
      3)一种反应第1)或2)所描述的条件或能力的文档说明。
      【补充】
      :需求获取阶段和需求规约阶段
      :功能性需求和非功能性需求
    • :基线是软件工作产品,它是要经内部和外部评审过的,是下一阶段工作的基础。??
    • :审计,是复查评审活动程序的合法性,是否按程序与规范进行等。
    • :里程碑是一个标记,只需要经过内部评审。一个里程碑是一个检查点,但不一定对应一条基线。
    • ??
      站在数据库设计者的立场上看,只要实现属性原子化、实体原子化、主键原子化、联系原子化(简称四个原子化理论),数据的所谓更新异常、插入异常、删除异常、数据冗余现就从根本上消除了。在这里:
      属性原子化(Property aomization),是指实体的属性本身不能再分解了;
      实体原子化(Entity atomization),是指实体本身不能再分解了;
      主键原子化(Primary Key aomization),是指实体的主键本身是一个ID 字段;
      联系原子化(Relationship aomization),是指实体之间的联系都是一对多联系(1对1或1对0联系被看成1对多联系的特例)。
    • ????
      (1)用分阶段的生命周期计划严格管理软件开发。阶段划分为计划、分析、设计、编程、测试和运行维护。
      (2)坚持进行阶段评审。若上一阶段评审不通过,则不能进入下一阶段开发。
      (3)实行严格的产品版本控制。
      (4)采用现代程序设计技术。
      (5)结果应能清楚地审查。因此,对文档要有严格要求。
      (6)开发小组的成员要少而精。
      (7)要不断地改进软件工程实践的经验和技术,要与时俱进。
      (8)二八定律。在软件工程中,所谓二八定律,就是一般人常常将20% 的东西误以为是80% 的东西,而将80%的东西误以为是20% 的东西。
    • (1)尽可能简单。在软件实现过程中,应创建简单、容易阅读的代码;相同功能的代码只写一次;简单的代码易于维护;通过采用一些编码规范和标准,可以有效地降低代码的复杂度。
      (2)易于验证。无论是在编码、测试还是实际操作中,软件工程师应很容易发现其中的错误;自动化的单元测试可产生易于验证的代码;写代码时,要限制使用复杂的难以理解的语言结构。
      (3)适应变化。外部环境、软件需求和软件设计,在整个开发过程中可能会随时变化,因此要求软件实现时考虑适应这些变化。
      (4)遵守某一编程规范。尽量使用标准库函数和公共函数。不要随意定义全局变量,尽量使用局部变量。使用括 以避免二义性。
      (5)选择项目组成员最熟悉的工具或语言。软件实现工具或语言不是越时髦越好,而是越成熟与越熟练越好,这样可以避免技术风险和技能风险。
    • ??
      三层体系结构( Three-Layer Framework) 通常被划分为表示层、中间层和数据层三层,各个分层之间通过对外接口互相访问。三层之间,通过各自提供的接口来访问,比如登录功能,在表示层输入用户名和密码,表示层会将用户名和密码传递给业务层,业务层将用户名和密码经过一些处理和封装之后,再传递给数据层,数据层执行会查询数据库中的用户名和密码,并将结果返回业务层,业务层对结果进行检查,确认登录是否成功,并返回表示层,表示层再显示给用户看。
    • ??
    • ??
      可以从不同角度来划分软件维护的方法。
      • 第1种方法基于两层结构划分软件维护的方法。 客户机/服务器的两层结构,目前和今 后仍然是一种应用软件结构。 对这种结构的应用软件,维护的方法是,将客户机和服务器上的两部分软件分开维护。
      • 第2种方法基于三层结构划分软件维护的方法。客户机/应用服务器/数据库服务器三层结构,是一种最有发展潜力的成用软件结构,客户机上的软件维护,不需到用户现场去。只需在系统后台服务器上借助 络的运行,使软件的维护、安装与升级,变成一个完全透明的过程,再不用担心光盘的安装或损伤。这就是三层结构的优点之,也是 络革命带来的软件维护革命,使用户能享受简单、方便、全面、及时的维护与升级服务。常见的杀病毒工具升级办法,就是这种维护。
      • 第3种方法基于“三种开发方法”即“面向过程开发、面向元数据开发、面向对象开发”来划分软件维护的方法。面向过程开发方法对应面向过程维护方法,就是前面介绍的结构化维护方法。面向元数据开发方法对应面向元数据维护方法,就足从数据库表的结构人手,运用视图技术、事务处理技术、分布式数据库技术、数据复制技术、数据发布和订阅技术, 来维护数据库服务器上数据的完整性和一致性。 面向对象开发方法对应面向对象维护方法,就是利用对象“继承”的特性,从维护公司的类库、构件库、组件库、中间件库入手,来达到维护应用软件的目的。在三层结构中,大部分对象分布在应用服务器上。在数据库服务器上,只有数据对象。在客户浏览器上,只有 页对象。

四、画图题

顶层用例图:

用例图:

《软件工程》期末复习题型整理
设计题部分主要:

顶层用例图(20)
只包含实体类的类图(10)
登陆用例的顺序图(10)
以登录功能举例说明该系统三层体系结构的设计。(10)
以登录功能举例说明该软件开发中三个模型(功能模型、业务模型、数据模型)的建模思想

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月1日
下一篇 2021年6月1日

相关推荐