370-期末复习 Flashcards
Law of Demeter
- 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. 该原则的设计目的是在软件设计中促进低耦合。
stakeholder
在软件设计中,stakeholder(利益相关者)指的是对软件项目有兴趣或受其影响的个人或群体。这些人可能会直接或间接参与项目的设计、开发、测试和使用。具体包括:
客户/用户:直接使用软件的最终用户。
开发团队:负责设计、编码和测试的软件工程师和设计师。
产品经理/项目经理:负责定义项目需求并确保项目按计划进行的人员。
业务方:可能会受到软件成果影响的业务部门或企业所有者。
维护人员:负责系统部署和长期支持的技术人员。
法律和合规团队:确保软件符合所有法律、法规及隐私要求的人员。
利益相关者在项目需求和设计中扮演着重要角色,他们的需求和反馈会影响软件的最终特性和功能。
是的,广义上来说,“stakeholder” 指的是对项目有影响力或利益相关的人,不一定要直接接触产品。即使没实际接触过产品,只要他们的需求、期望或决策对项目有影响,他们也可以算是stakeholder。例如,投资者、高层管理、监管机构等,虽然不直接使用产品,但他们的意见和期望对产品的最终结果很重要,所以他们也是stakeholder。
Product owner in scrum干哪些工作
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?你遇到了什么障碍?
SOLID
O- Modules should be open for extension, but close for modification.
L- Liskov Substitution Principle(LSP)子类必须能够替换其基类,且不会影响程序的正确性。
Correctness/Accuracy
- lack of bugs and defects
- measured in terms of defect rate (# bugs per line of code)
Reliability
- does not fail or crash often
- measured in terms of failure rate (#failures per hour)
Capability
- does all that is required
- measured in terms of requirements coverage (% of required operations implemented)
Maintainability
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)
* 易于修改和适应新需求。
* 测量方式:变更记录(添加新功能所需的时间与精力)、
影响分析(受新功能影响的代码行数)。
*
Performance
- is fast and small enough
- measured in terms of speed and space usage (seconds of CPU time, MB of memory, and so on)
Usability
- is sufficiently convenient for the intended users 对目标用户足够方便。
- measured in terms of user satisfaction (% of users happy with interface and ease of use) 测量方式:用户满意度(对界面与易用性满意的用户百分比)。
Installability
- is convenient and fast to install 可安装性:安装方便快捷。
- measured in terms of user satisfaction (#install problems reported per installation) 测量方式:用户满意度(每次安装中报告的问题数)。
Documentation
- is well documented 文档质量:文档是否完备。
- measured in terms of user satisfaction (% of users happy with documentation) 测量方式:用户满意度(对文档满意的用户百分比)。
Availability
- is easy to access and available when needed
- measured in terms of user satisfaction (% of users reporting access problems)
质量保证的原则
了解自己在做什么:
使用软件过程方法,如计划、调度、报告、跟踪等。
了解应该做什么:
明确客户的需求,进行验证和确认。
采用最佳实践,包括需求验证、用户反馈和验收测试。
验证与评估:
使用 正式方法(数学模型验证),适用于关键任务系统。
测试:通过执行软件并收集测试覆盖率等度量。
审查:进行代码、需求、设计等方面的同行评审。
validation & verification
do the right thing & do the thing right
* 验证:确保软件完成正确的任务(做正确的事)。
* 确认:确保软件正确完成任务(正确地做事)。
error,fault和failure的区别
error类似于代码敲错了
fault有没注意到的异常之类的(bug,defect)
failure 外部行为未按预期进行
Decision Coverage
Statement Coverage
Branch Coverage
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 语句、循环)在测试期间至少被执行一次。
Regression test
Regression Tests
* Identifies new faults that may have been introduced as current ones are being corrected