①Normal requirement ②Expected requirement ③Exciting requirement QFD的三种deployment ①function deployment ②information deployment ③task deployment
5.The scenarios,often call use-case,provide a description of how the system will be used。
6. **Use-case:产生了一个参与者与系统的交互。从参与者的角度定义用例,用例从最后用户的角度描述了软件或系统。参与者(Actor)是人员或设备在和软件交互时所扮演的角色。Stakeholder可以访问每个用例而且可 以指定每个用例的相对优先级。
写一个完整的use-case:①文字②图 (P161)
7. 精化阶段进一步把需求扩展为分析模型(analysis model)
the intent of analysis model is to provide a description of the required information、functional、and behavioral domains for a computer-based system.
Analysis model中用到的UMLdiagram:
①activity diagram(活动图): 描述某个受限环境中处理过程的活动序列 ②class diagram(类图):列出传感器的属性和可以用于修改这些属性的操作
③uml state diagram (状态图):一种表现系统行为的方法,该方法描绘系统状态以及导致系统改变状态的事件
④use-case diagram(用例图):从用户的视角描述系统
8.The best negotiation strive for a \双赢)result。That is,the customer wins by getting the system or product that satisfies the majority of the customer's needs(获得满足大多数需求的系统或产品),and the software team wins by working to realistic and achievable budgets and deadlines(按照实际情况,在可实现的预算和时间期限内完成工作)。
第八章——创建分析模型
1. Requirements analysis
①results in the specification of software's operational characteristics ②indicates software's interface with other system elements ③establish constrains that software must meet
2. 需求分析向软件设计者提供信息(information)、功能(function)和行为(behavior)的表示,这些表示可以被转化为结构(architectural)、接口(interface)和构件级(component-level)的设计
3. 软件完成之后,analysis model和requirements specification 提供了a means for assessing quality。
4. 分析模型是系统描述和系统设计模型之间的桥梁
11
分析模型的三个主要目标(objective): ①描述客户需要什么 ②为软件设计奠定基础
③定义在软件完成后可以被确认的一组需求
5. 域分析(domain analysis)是识别分析和详尽说明来自某个特定应用领域的公共需求(common requirements),特别是那些在应用领域内被多个项目重复使用的。
6. 两种analysis model的approach
①结构化分析(structure analysis):是一种考虑数据和处理的分析建模方法,数据作为独立的实体转换。数据对象建模定义了对象的属性和关系,操作数据对象的处理建模应表明当数据对象在系统内流动时处理如何转换数据。
②面向对象分析(objected-oriented analysis):就是检查定义为一组用例的问题域,尽量提取定义问题的类。关注于定义类和影响客户需求的类之间的协作方式。UML和统一过程主要是面对对象的。
7. Analysis modeling begin with data modeling(数据建模) ①data objects(数据对象):
A. 数据对象是任何必须被软件理解的复合信息的表示
B. 数据对象只(only)封装数据,在数据对象内没有任何对数据操作的引用。 ②data attribute(数据属性)定义了数据对象的性质,可以用来: A. 为数据对象的实例(instance)命名 B. 描述这个实例(instance)
C. 建立对另一个表中的另一个实例的引用
③relationship(关系)指明数据对象相互连接的方式
④Cardinality(基数)描述了一个对象的出现次数与另一个对象出现次数的关联,有三种 A. 1:1 B. 1:n C. m:n
12
Modality(形态)A. 没有明确的必要性或关系是可选的,那么关系的形态是0 B如果关系必须出现一次,则形态是1
⑤ERD的三个元素:attributes、object、relationship。ERD主要目的是represent data objects and their relationships。
8.面对对象(object-oriented)分析
①attributes :a collection of data values that describe a class
②class:encapsulate the data and procedural abstraction required to describe the behaviour of some real word entity。
③object:instance of a specific class。Objects inherit a class's attributes and operations。 ④operations:are objects procedures that're invoke when an object receives a message。
9. Scenario-based modeling
①analysis modeling with UML begins with the creation of scenarios in the form of use-case、activity diagram and swimlane diagrams。
②use-case的概念:describe a specific usage scenario in straightforward language from the point of view of a defined actor。
③一个UML activity diagram表现了实施某个功能时发生的活动和判定。
④一个UML swimlane diagram表现了活动流和一些判定,并指明由哪个参与者实施。
10. Flow-oriented modeling
①数据流图DFD采取系统的输入-处理-输出观点,流入软件的数据对象,经过处理元素转换,最后以结果数据对象的形式流出软件。数据或控制对象(带标记的箭头label arrow),转换(圆圈bubble),外部实体(方框boxes)
第一个数据流模型从整体上表现系统,随后的数据流图改进环境图,提供每个后续层增加的细节。
②Data flow modeling is a core modeling activity in structure analysis。 ③control flow model用到的地方:
A. 一大类应用问题是事件驱动(driven by events) B. 这类问题产生控制信息(control information) C. 处理信息非常关注时间和性能
11. Class-based model
①operation的大概分类(broad category):
A. Manipulate data
B. Perform a manipulation
C.inquire about the sate of an object
D.monitor an object for the occurrence of a controlling event
②CRC(类、职责、协作者)可以用于定义类之间的联系,有三个部分:
A.class
B.responsibility C.collaborator
③A package(分析包) involves the categorization of analysis model elements into useful groupings. A packet is used to assemble a collection of related classes。
如果某个类实现一个解决方案,那么这个类就是解决方案的一部分;如果某个类只需要说明一个解决方案,那么这个类就是问题空间的一部分。
12. Behavioral model
13
①系统状态可以表现特定的外部可观察(externally observable)行为。 ②类的状态可以表现当系统执行功能时的行为。
13. 解释在面向对象系统中重要的特征: ①封装(encapsulation): ②继承(inheritance): ③多态(polymorphism):
14. 类之间三种不同的通用联系: ①is-part-of(是??的一部分)
②has-knowledge-of(有??的知识) ③depends-upon(依赖??)
第九章——设计工程(design engineering)
1.四种设计:
①data/class design ②architectural design ③interface design ④component design
2.评价良好设计演化的三个特征:
①设计必须实现所有包含在分析模型中的明确需求
②对于代码生成人员、测试维护人员,设计必须是可读的、可理解的指南 ③设计必须提供软件的全貌,从实现的角度说明数据域、功能域和行为域
3.五个质量属性quality attributes(FURPS)功能性、易用性、可靠性、性能、可支持性 ①functionality ②usability ③reliability ④performance ⑤supportalility
4.集成成本与模块数成正比,工作量与模块数成反比
14
5.**信息隐藏(Information Hiding):这是把系统分解为模块时的思想,即模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。只有为了完成软件的总体功能而必须在模块间交换的信息,才允许在模块间进行传递。模块应该详细说明且精心设计以求在某个模块中包含的信息(算法和数据)不被不需要这些信息的其他模块访问。
6.内聚与耦合
①cohesion:is a qualitative indication of the degree to which a module focus on just one thing。显示了某个模块相关功能的强度,a cohesion module should just do one thing。
The higher the level cohesion,the easier the component is to implement,test,and maintain。 ②coupling:is a qualitative indication of the degree to which a module is connected to other modules and to the outside world。显示了模块间的相互依赖性。 应当尽量高内聚、低耦合
7.组织良好的设计类的四个特征: ①完整性与充分性 ②原始性 ③高内聚性 ④低耦合性
8.data design creates a module and/or information that is represented at a high level of abstraction(the customer/user's view of data)
9.The architectural design for software is the equivalent to the floor plan (平面图)of the house。 10. The interface design for software is the equivalent to a set of detailed drawings for the doors、windows、and external utilities of a house。
11.The component-level design for software is equivalent to a set of detailed for each room in a house.
10.叙述设计模式和框架的区别
基于模式的设计可以复用那些在过去已经被证明是成功的设计元素。
框架则是作为模式的拓展,为某个特定应用域内完整的子系统设计提供体系结构骨架。
第十章——体系结构设计
1.数据设计的目标
把在分析模型中定义的数据对象转化成软件构件级的数据结构,并且在必要时转化为应用程序级的数据库体系结构。
2.**软件体系结构:一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件外部可见属性以及他们之间的相互关系。体系结构并非可运行软件。
3.每种风格的体系结构包含: ①a set of components ②a set of connectors ③constraints
④semantic models(语义模型)
4. 与目标系统(target system)交互的系统表示为:
15