370-期末复习 Flashcards

1
Q

Law of Demeter

A
  • This principle states that an object should never know the internal details of other objects. 该原则指出,一个对象不应知道其他对象的内部细节。
  • It was designed to promote low coupling in software designs. 该原则的设计目的是在软件设计中促进低耦合。
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

stakeholder

A

在软件设计中,stakeholder(利益相关者)指的是对软件项目有兴趣或受其影响的个人或群体。这些人可能会直接或间接参与项目的设计、开发、测试和使用。具体包括:

客户/用户:直接使用软件的最终用户。
开发团队:负责设计、编码和测试的软件工程师和设计师。
产品经理/项目经理:负责定义项目需求并确保项目按计划进行的人员。
业务方:可能会受到软件成果影响的业务部门或企业所有者。
维护人员:负责系统部署和长期支持的技术人员。

法律和合规团队:确保软件符合所有法律、法规及隐私要求的人员。
利益相关者在项目需求和设计中扮演着重要角色,他们的需求和反馈会影响软件的最终特性和功能。

是的,广义上来说,“stakeholder” 指的是对项目有影响力或利益相关的人,不一定要直接接触产品。即使没实际接触过产品,只要他们的需求、期望或决策对项目有影响,他们也可以算是stakeholder。例如,投资者、高层管理、监管机构等,虽然不直接使用产品,但他们的意见和期望对产品的最终结果很重要,所以他们也是stakeholder。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Product owner in scrum干哪些工作

A

Scrum Meetings Scrum会议
* Sprint planning meeting – product owner provides details on the user stories in that sprint 冲刺规划会议 – 产品负责人提供该冲刺中用户故事的详细信息
* Retrospective meeting – The product owner reviews the current PSI 回顾会议 – 产品负责人回顾当前的潜在可交付产品增量 (PSI) Potentially Shippable Increment
* Sprint review meeting – The development team reviews the sprint 冲刺回顾会议 – 开发团队回顾冲刺
* Daily scrum – A standup meeting covering: 每日Scrum会议 – 涵盖以下内容的站立会议:
* What did you do since the last standup? 自上次站立会议以来你做了什么?
* What do you hope to accomplish before the next standup? 你希望在下次站立会议之前完成什么?
* What obstacles do you see?你遇到了什么障碍?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

SOLID

A

O- Modules should be open for extension, but close for modification.
L- Liskov Substitution Principle(LSP)子类必须能够替换其基类,且不会影响程序的正确性。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Correctness/Accuracy

A
  • lack of bugs and defects
    • measured in terms of defect rate (# bugs per line of code)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Reliability

A
  • does not fail or crash often
    • measured in terms of failure rate (#failures per hour)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Capability

A
  • does all that is required
    • measured in terms of requirements coverage (% of required operations implemented)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Maintainability

A

is easy to change and adapt to new requirements
* measured in terms of change logs (time and effort required to add a new feature), and
* impact analysis (#lines affected by a new feature)
* 易于修改和适应新需求。
* 测量方式:变更记录(添加新功能所需的时间与精力)、
影响分析(受新功能影响的代码行数)。
*

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Performance

A
  • is fast and small enough
    • measured in terms of speed and space usage (seconds of CPU time, MB of memory, and so on)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Usability

A
  • is sufficiently convenient for the intended users 对目标用户足够方便。
    • measured in terms of user satisfaction (% of users happy with interface and ease of use) 测量方式:用户满意度(对界面与易用性满意的用户百分比)。
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Installability

A
  • is convenient and fast to install 可安装性:安装方便快捷。
    • measured in terms of user satisfaction (#install problems reported per installation) 测量方式:用户满意度(每次安装中报告的问题数)。
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Documentation

A
  • is well documented 文档质量:文档是否完备。
    • measured in terms of user satisfaction (% of users happy with documentation) 测量方式:用户满意度(对文档满意的用户百分比)。
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Availability

A
  • is easy to access and available when needed
    • measured in terms of user satisfaction (% of users reporting access problems)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

质量保证的原则

A

了解自己在做什么:

使用软件过程方法,如计划、调度、报告、跟踪等。
了解应该做什么:

明确客户的需求,进行验证和确认。
采用最佳实践,包括需求验证、用户反馈和验收测试。
验证与评估:

使用 正式方法(数学模型验证),适用于关键任务系统。
测试:通过执行软件并收集测试覆盖率等度量。
审查:进行代码、需求、设计等方面的同行评审。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

validation & verification

A

do the right thing & do the thing right
* 验证:确保软件完成正确的任务(做正确的事)。
* 确认:确保软件正确完成任务(正确地做事)。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

error,fault和failure的区别

A

error类似于代码敲错了
fault有没注意到的异常之类的(bug,defect)
failure 外部行为未按预期进行

18
Q

Decision Coverage
Statement Coverage
Branch Coverage

A

Decision Coverage:确保程序中的每个决策(if、switch、while 等)都测试了所有可能的结果(如 true/false)。
Statement Coverage:Causes every statement in the program to be executed at least once, giving us confidence that every statement is at least capable of executing correctly 定义:确保程序中的每条语句至少被执行一次,证明其能够正确执行。
ranch Coverage:确保程序中的每个分支(如 if 语句、循环)在测试期间至少被执行一次。

19
Q

Regression test

A

Regression Tests
* Identifies new faults that may have been introduced as current ones are being corrected