简答题

用简短的语言给出对分析、设计的理解。

  1. 分析:

分析强调对问题和需求的 调查研究 而非解决方案。主要着重于 客户的需求 以及 软件的可行性 进行针对性分析。

  1. 设计:

设计强调找出解决方案,把各项需求转换成软件的体系结构。具体到使用什么样的框架,类图,序列图,状态图要怎样构成等。

用一句话描述面向对象的分析与设计的优势。

最主要的优势在于抽象与结构化,可以在分析和设计的阶段从更高的层面去看待整个问题,而不是陷入细节中,另外面向对象可以很好的为现实中的问题建立模型。

简述 UML(统一建模语言)的作用。考试考哪些图?

UML 是什么

要了解这个的作用需要首先了解这是一个什么东西,根据百科上的描述:

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

关键的地方在于 unified ,提供了一种标准的方式,来为系统建模,另外 modeling 强调了 可视化(visualze)

UML 的作用

  1. UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。

  2. UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。

  3. 使用UML使硬件组件和软件组件之间将会有更大的透明度。便携性和综合效率将会增加。

考试要考的图

  • 用例图

  • 静态图(类图、对象图、包图)

  • 行为图(交互图、状态图、活动图)

  • 实现图(构件图、部署图)。

从软件本质的角度,解释软件范围(需求)控制的可行性

软件的本质

SEBOK 中提及到了软件的本质是什么

The nature of the software medium has many consequences for systems engineering (SE) of software-intensive systems. Fred Brooks has famously observed that four properties of software, taken together, differentiate it from other kinds of engineering artifacts (Brooks 1995).

总结以下就是以下四点:

  1. complexity,

  2. conformity,

  3. changeability

  4. invisibility.

软件范围(需求)控制的可行性

了解了软件工程的本质之后,可以看到软件范围控制是非常重要的,由于软件本身复杂性的特点,要进行范围控制也是有困难的。毕竟软件本身是一大特征就是变化。尽管如此,我们还是可以根据一些”法则”,来指导我们进行软件范围控制。

  1. 28 法则

在多数情况下,客户与开发者能就项目的 20% 内容给出严格的需求约定,80% 的内容都是相对模糊的。因此,围绕客户目标,发现并满足客户感兴趣的内容是最关键的。细化了20%的具体内容和有效需求后就能够满足客户80%的需求,从而有效控制软件需求。

  1. 了解和控制 scope, time, quality and budget 四个基本元素

项目的首要约束是 scope, time, quality and budget 四个基本元素,也称为项目管理三角模型。

  1. “先做到,再做好”

这是软件工程领域的经典语录,也适用于范围控制。体现在项目中就是各种 “迭代开发” 的模型。

项目管理实践

看板使用练习

使用 git project 进行看板练习。

(todo):小组作业

UML 绘图工具练习

绘制 教材(An Introduction to Object-Oriented Analysis and Design and Iterative Development) P8 中的一个 domain model of the dice game,书中的内容如下所示:

通过 UMLet 对这个图进行模仿绘画,UMLet编写这个 domain model 挺方便的, UMLet 提供了一些常用的组件,直接使用属性,再更改对应的属性即可。