Lecture 6: Domain Modelling

Lecture 6

Part A: Domain Modelling

for the system analysis 分析阶段的建模

重点:
和domain class diagram有关:什么叫domain,什么叫thing
去identify thing的方法:Brainstorm和noun technique
Things之间的关系,Association的概念:multiplicity/cardinality,association的种类
class diagram, domain class diagram要画

Problem Domain and Things

在这里插入图片描述

Problem domain: the specific area (or domain) of the users’ business need that is within the scope of an information system信息系统范围内的用户业务需求的具体领域(或范畴)。
Things are those items users work with when accomplishing tasks. They need to be remembered by the system in this process. 事情是指用户在完成任务时的那些项目。在这个过程中,它们需要被系统记住。
These Things are modeled as domain classes (in system analysis) or data entities (in database design)
在这里插入图片描述

Identifying Things in the Problem Domain

Two main techniques: the brainstorm technique and the noun technique
在这里插入图片描述

Brainstorming Technique

▪ Use a checklist of all of the usual types of things typically found and brainstorm to identify domain classes of each type 使用所有通常发现的事物类型的检查表,并通过头脑风暴来确定每种类型的领域类。
在这里插入图片描述
Brainstorming Technique: Steps

  1. Identify a user and a set of use cases 识别用户和一组用例
  2. Brainstorm with the user to identify things involved when carrying out the use case—that is, things about which information should be captured by the system. 与用户进行头脑风暴,以确定执行用例时所涉及的事项——即有关系统应捕获哪些信息的事项。
  3. Use the types of things (categories) to systematically ask questions about potential things, such as the following:利用事物的类型(类别)来系统地提出关于潜在事物的问题,如以下内容:
    • Are there any tangible things you store information about? Are there any locations involved? Are there roles played by people that you need to remember?是否有任何有形的东西是你存储的信息?是否有任何涉及的地点?是否有你需要记住的人所扮演的角色?
  4. Continue to work with all types of users and stakeholders to expand the brainstorming list 继续与各类用户和利益相关者合作,扩大头脑风暴名单
  5. Merge the results, eliminate any duplicates, and compile an initial list 合并结果,消除任何重复的结果,并编制一份初步清单
Noun Technique

去找名词,通过确定名词到底对应的你的class diagram里的什么?
是important use case?Role?not complete show?
理解之后思考是什么东西,没有必要完全的把它记忆出来

▪ Identify all of the nouns that come up when the system is described and determine if each is a domain class, an attribute, or not something we need to remember 确定描述系统时出现的所有名词,并确定每个名词是领域类、属性,还是不需要我们记住的东西
▪ Identify what needs to be stored by the system 确定系统需要存储的内容
• A technique to identify problem domain classes by finding, classifying, and refining a list of nouns that come up in discussions or documents一种通过查找、分类和细化讨论或文档中出现的名词列表来识别问题域类别的技术
• Does end up with long lists and many nouns that are not things that need to be stored by the system最终会得到很长的列表和许多不需要系统存储的名词
• Good place to start when there are no users available to help brainstorm在没有用户可以帮助头脑风暴的情况下,是个好的开始
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Important use case
Role played
Inputs and outputs
Not “things”
Not completely show

Noun Technique: Steps

  1. Using the use cases, actors, and other information about the system— including inputs and outputs—identify all nouns. 使用用例、参与者和有关系统的其他信息(包括输入和输出)识别所有名词。
  2. Using other information from existing systems, current procedures, and current reports or forms, add items or categories of information needed. 利用现有系统、现行程序和现行报告或表格中的其他信息,增加所需信息的项目或类别。
  3. As this list of nouns builds, refine it. Ask these questions about each noun to help you decide whether you should include it: 随着这个名词清单的建立,对它进行完善。对每个名词提出这些问题,以帮助你决定是否应该包括它
    • Is it a unique thing the system needs to know about?
    • Is it inside the scope of the system I am working on?
    • Does the system need to remember more than one of these items?
  4. Ask these questions to decide to exclude it:
    • Is it really a synonym for some other thing I have identified?
    • Is it really just an output of the system produced from other information I have identified?
    • Is it really just an input that results in recording some other information I have identified?
  5. Ask these questions to research it:
    • Is it likely to be a specific piece of information (attribute) about some other thing I have identified?
    • Is it something I might need if assumptions change?
  6. Create a master list of all nouns identified and then note whether each one should be included, excluded, or researched further. 建立一个所有已确定的名词的总清单,然后注意每一个名词是否应该被包括、排除,或进一步研究。
  7. Review the list with users, stakeholders, and team members and then define the list of things in the problem domain. 与用户、利益相关者和团队成员一起审查该清单,然后定义问题域中的事物清单。

Details about Domain Classes

  • Attribute
  • Identifier or key: An attribute that uniquely identifies an instance of the class
  • Compound attribute:
    • Two or more attributes combined into one structure to simplify the model.
    • E.g., an address includes the house number, street, city, state and zip.
    • Sometimes an identifier or key is a compound attribute.
      在这里插入图片描述
      Association—a naturally occurring relationship between classes
      Multiplicity is term for the number of associations between classes: 1 to 1 or 1 to many (synonym to cardinality)
    • Minimum and maximum constraint
Types of Associations
  • Binary Association
    • Associations between exactly two different classes
      • Course Section includes Students
    • Members join Club
  • Unary Association (recursive)一元关联(递归)
    • Associations between two instances of the same class
    • Person married to person
    • An organizational unit reports to another organizational unit
  • Ternary Association (three)
    • One particular order might be associated with a customer plus a sales representative 一个特定的订单可能与一位客户和一位销售代表相关联
  • N-ary Association (between n)

The Domain Model Class Diagram

Class

  • A type of classification used to describe a collection of objects

Domain Class

  • Classes that describe objects in the problem domain

Class Diagram

  • A UML diagram that shows classes with attributes and associations (plus methods if it models software classes)一个显示带有属性和关联的类的UML图(如果它是软件类的模型,再加上方法)。

Domain Model Class Diagram

  • A class diagram that only includes classes from the problem domain, not software classes so no methods 一个只包括问题领域的类的类图,不包括软件类,所以没有方法。

Domain class: a name and attributes, but no methods
Class name is always capitalized
Attribute names are not capitalized and use camelback notation (words run together and second word is capitalized)
Compound class names also use camelback notation
在这里插入图片描述

Things之间的关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Cost

Cost overrun is the additional percentage or dollar amount by which actual costs exceed estimates

What is Project Cost Management?

• Project cost management includes the processes required to ensure that the project is completed within an approved budget 项目成本管理包括确保项目在批准的预算内完成所需的过程
Planning cost management: determining the policies, procedures, and documentation that will be used for planning, executing, and controlling project cost 确定用于规划、执行和控制项目成本的政策、程序和文件。
Estimating costs: developing an approximation or estimate of the costs of the resources needed to complete a project 对完成一个项目所需的资源成本进行近似或估算。
Determining the budget: allocating the overall cost estimate to individual work items to establish a baseline for measuring performance 将总成本估算分配给各个工作项目,以建立一个衡量业绩的基线
Controlling costs: controlling changes to the project budget 控制项目预算的变化

Estimating Costs

Types of Cost Estimates

在这里插入图片描述
Rough order of magnitude (ROM) 粗略的数量级(rom)
Budgetary 预算的
Definitive 确定的

Cost Estimation Tools and Techniques

Analogous or top-down estimates

  • Use the actual cost of a previous, similar project as the basis for estimating the cost of the current project

Bottom-up estimates

  • Involve estimating individual work items or activities and summing them to get a project total

Three-point estimates

  • Involve estimating the most likely, optimistic, and pessimistic costs for items

Parametric estimating

  • Uses project characteristics (parameters) in a mathematical model to estimate project costs
Typical Problems with IT Cost Estimates

Many IT project cost estimates are very inaccurate, especially those for new technologies or software development.

What would be the typical problems with IT cost estimates?
• Estimates are done too quickly
• People lack estimating experience
• Human beings are biased toward underestimation
• Management desires accuracy

Determining the Budget

预算包括随着时间的推移将项目成本估算分配给各个工作项
材料资源或工作项基于项目 WBS 中的活动
在这里插入图片描述

Controlling Costs

Activities involved in controlling project costs
• Monitoring cost performance 监控成本绩效
• Ensuring that only appropriate project changes are included in a revised cost baseline 确保在修订的成本基准中仅包含适当的项目变更
• Informing project stakeholders of authorized changes to the project that will affect costs 告知项目利益相关者将影响成本的项目授权变更情况

Earned Value Management (EVM) 挣值管理

整合范围、时间和成本数据的项目绩效测量技术
给定一个基线(原始计划加上已批准的变更),你可以确定项目在实现范围、时间和成本目标方面的情况如何。
Earned value management involves calculating three values for each activity or summary activity from a project’s WBS
• Planned value
• Actual cost
• Earned value

The planned value (PV), formerly called the budgeted cost of work scheduled (BCWS), also called the budget, is that portion of the approved total cost estimate planned to be spent on an activity during a given period
计划值(PV),以前称为预算工作成本计划(BCWS),也称为预算,是指在特定时期内计划用于某项活动的经批准的总成本估算的那一部分

The actual cost (AC), formerly called actual cost of work performed (ACWP), is the total costs incurred in accomplishing work on an activity during a given period
实际成本(AC),以前称为实际工作成本(ACWP),是指在一定时期内完成一项活动的工作所发生的总成本。

The earned value (EV), formerly called the budgeted cost of work performed (BCWP), is an estimate of the value of the physical work actually completed
挣值(EV),以前称为已完成工作的预算成本(BCWP),是对实际完成的实物工作价值的估计。

EV is based on the original planned costs for the project or activity and the rate at which the team is completing work on the project or activity to date
EV是基于项目或活动的原始计划成本和团队迄今为止完成项目或活动工作的速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值