单选题

1、软件工程是指导计算机软件(A)的一门工程学科。

A、 开发、维护
B、 开发、测试
C、 维护、测试
D、 开发、部署

2、软件工程方法学的3个要素不包括(D)

A、 过程
B、 方法
C、 工具
D、 人

3、软件生命周期可以分为软件定义、(A)和软件维护3个时期组成。

A、 软件开发
B、 软件测试
C、 软件设计
D、 程序编码

4、需求分析是回答系统必须(B)的问题。

A、 为谁做
B、 做什么
C、 如何做
D、 合适做

5、下面哪个不属于软件开发阶段(D)

A、 总体设计
B、 详细设计
C、 编码
D、 维护

简答题

软件工程定义及本质特性

定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,经过时间考验而证明正确的管理技术和当前能得到最好的技术结合起来,以经济地开发出高质量的软件并有效地维护它。
本质特性:

  1. 软件工程关注大程序的构造
  2. 软件工程的中心课题是控制复杂性
  3. 软件经常变化
  4. 开发软件的效率非常重要
  5. 和谐地合作是开发软件的关键
  6. 软件必须有效的支持他的用户(满足需求)
  7. 在软件工程领域中是由一种文化背景的人(CS)替另一种文化背景的人创造产品

    (延申)软件定义及本质特性

    定义:软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分, 它包括程序(program)、相关数据(data)及其说明文档(document)。其中程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。
    本质特性:
  • 软件对硬件和环境有着不同程度的依赖性。
    • 这导致了软件移植的问题。
  • 软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低。
  • 软件是复杂的,而且以后会更加复杂。
    • 软件开发常常涉及其它领域的专门知识,对软件工程师提出了很高的要求。
  • 软件的成本相当昂贵。
    • 软件开发需要投入大量、高强度的脑力劳动,成本非常高,风险也大。
  • 软件工作牵涉到很多社会因素。
    • 软件开发和运行涉及机构、体制和管理方式等问题,还会设计到人们的观念 和心理。

      请解释软件设计从管理和技术角度包括哪些内容?简要解释

      商业建模、需求、分析和设计、实现、测试、部署

      简述结构化分析和用例分析的主要步骤

      结构化分析:首先用结构化分析(SA) 对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程 (SP)。
      用例分析:
  1. 建立需求模型-用况图。确定系统边界,发现参与者,定义用况。
  2. 建立基本模型-类图。发现对象、定义类、类结构 (整体部分)。
  3. 定义对象内部特征:属性和操作。定义外部联系。
  4. 建立辅助模型。划分包,建立包图。建立顺序图。建立活动图。建立其他模型图。建立模型规约
  5. 原型开发。

    请简要说明用例分析的主要过程

    确定系统边界,发现参与者,定义用况。

    简要说明需求层次和需求分析的过程

    层次:业务需求、用户需求、功能需求、非功能需求。
    过程:问题识别、分析与综合、编制文档、评审。

    分析设计题

    某跑腿代购系统功能需求描述如下:用户提前登录系统;用户发布跑腿任务并给出对应的费用,包括要购买的商品费用、跑腿费、红包、小费等;附近骑手可以浏览用户的订单并抢单;在规定时间内未响应的订单,会提示用户取消发布或重新调整后发布;骑手接单后开始计时,订单完成后双方会互相评价,评价信息会用来未来的用户发布任务和骑手接单处理中,信誉度高的用户和骑手有优先权。
    (1)绘制系统流程图
    系统流程图.png

(2)绘制完整数据流图,包括:外部实体、数据存储、加工、数据流等元素。
数据流图.png
(3)绘制用例图,列出你认为需要抽象出的类(仅列类名即可)
image.png

image.png

论述题

假设你被选择为某共享单车租赁APP项目开发的负责人,请结合课程内容简要论述如何在5个月内完成项目开发。论述需包括:项目人员需求、时间计划、采用过程模型、项目存在的风险等。