OO design process: use case plan

zhaozj2021-02-16  57

Design program dynamic (runtime) behavior

ALLEN HOLUB (Allen@holub.com) Chief Technology, Netreliance 2001 March

In the previous column article, I introduced the concept of formal use case demonstration. Several sections of this column will discuss some use cases. They are a complex topic and covers a lot of information, so we have to spend some time thoroughly considering these issues. We focus on this month is how to determine which use cases should be used, as well as other things that should be considered when planning cases.

Creating a use case Let's take a look at the definition of the use case last month:

The use case is a single task with some useful results executed by the end user of the system.

Looking at the Allen Bank issues in the first few months, several use cases have been in my mind:

Child putting money into an account child from an account to extract money a child or a parent viewing a passbook Parent Account Parental Change Account Parent Close Account (Closing Account) Bank loans to children (will be completed in version 2)

At this stage, this list is just a conjecture. As the process is insequent, other use cases will certainly be found. In addition, some use cases may be too large, so that they must decompose into small pieces. (Typically, the implementation of the use case should not exceed one month when the implementation level (IMPLEMentation-Level) is performed. In fact, for rough estimates, each use case is a good moon. Some methods - Such as Kent Beck's XP - requires a smaller use case that can be implemented within two weeks.) Please note that we do not list the low-level atomic operation - such as calculating interest because they are not independent use cases. But these use cases will almost become a child.

Now that since I have written something, you can start designing. Looking at the previous list, I have a few ideas. First, I can't affirm "deposit" and "withdrawal" are the use cases that can be separated. The alternative method may be similar to the "completed transaction", "transaction" is a deposit or withdrawal operation. Two use cases with the same workflow are of course equivalent, but I still don't know if my problem belongs to this situation. Currently, I will keep two use cases, because in the user's opinion, they look different, and their appearance results are clearly different. (Deposit increase the balance and reduce the balance. "Complete the transaction" modified the balance.)

When focused on "Viewing Passbook", I can't determine if it is a use case. It does not have a special result and the passbook is likely to be displayed during other use cases. After considering, I change this case "What is the assumption analysis (What-if) game", it does have a result: understanding the financial plan.

Next, I consider opening an account, closing and changing an account. Similarly, although the user seems to be significantly different, I can imagine that the workflow of "opening" and "closing accounts" will be the same. The UI will of course be the same - only some fields may be blank when they open an account. These subtle differences can be branched with a simple condition in the workflow ("if the account is new, then ...") processing.

I decided to use the "Close Account" as a true (even trivial), because its UI will be different from the UI of the open / change case. I will automatically turn off the account when the balance is just $ 0.00 as a general bank, because it is easy to imagine that the child will turn their account balance to zero, and in this case I don't want to re-set.

Finally, I decided to leave the "loan" use case. It is a nice feature of version 2, but now it doesn't need it.

Note that when doing these decisions, I am envisioning the details of the implementation (UI). After all, I am designing a computer program, so I need to consider its implementation in advance. However, I still tried to focus on the problem area as long as possible. I am assaulting to help the Domain-Level problem, but I am not designed, I don't do this. UI is a kind of auxiliary design tool that helps me clarify about the domain. This method is very different from the VB style recommended by the Alan Cooper, and the latter is the UI design driver design process. Here, the program will be generated from the conceptual model, and the UI is only a convenience of the concept model. Things such as "Backup", "Save" are not used, because they are not in the problem area. However, this also tells us how some of the procedures should work. Before using any program, don't have to "save", this use case is especially true. If deposit, that is, deposit. An additional operation that needs to be saved can be aware that deposit transactions are unnatural. I have to ensure that children in the age of ten will not consider what saved before withdrawing. If you consider it, then I can tell you, ask "save" operation and make "all work that gives me" become the same thing for the procedure - that is not particularly good. "Backup" is also the same. Either a side effect of changing an account status, the program should automatically back up; or the program must maintain an audit tracking to cancel the changes. "Any case where anything that does not appear in the UI should appear in the UI". Perhaps the exception may include "Help", but if the UI is very intuitive, it does not need to help. You may argue that the program should be aware of your behavior to see you need help and provide help at that time. Most configuration options never change by users, so this meaningless thing is unwise to make UI confuse. (Of course, there are also exceptions, like the configuration problem in the problem area, such as currency representation symbols, of course, it can also be done by detecting the current locale.)

The tentative use case list is as follows.

Child puts money into account children from account to extract money to assume the assumption analysis game parent account or change account parents close account

In the following two column articles, I will continue this exercise by explaining the "deposit" use case. I will show you a detailed note that uses an example specification itself and about what is doing.

Reference

Please refer to the top five parts I wrote about the OO design process series:

Getting Started Start Design Software Refining Problem Definition Verification Analysis Example, Introduction Application Delivery Please read the relevant content in Extreme Planning Wiki. Alan Cooper recommends the UI design driver design process. Please learn more about Alan Cooper in Uidesign.NET's InterView. Workflow chart (along with the remainder of UML) has a detailed description in Martin Fowler and Kendall Scott.

Design program dynamic (runtime) behavior

ALLEN HOLUB (Allen@holub.com) Chief Technology, Netreliance 2001 March

In the previous column article, I introduced the concept of formal use case demonstration. Several sections of this column will discuss some use cases. They are a complex topic and covers a lot of information, so we have to spend some time thoroughly considering these issues. We focus on this month is how to determine which use cases should be used, as well as other things that should be considered when planning cases.

Creating a use case Let's take a look at the definition of the use case last month:

The use case is a single task with some useful results executed by the end user of the system.

Looking at the Allen Bank Problem in the first few months, several use cases have been in my mind: children deposit the money into the account child from the account to extract the money child or parents View the book, the busholder account, Parental change account parents close CLOSIING Account Bank loan to children (will be completed in version 2)

At this stage, this list is just a conjecture. As the process is insequent, other use cases will certainly be found. In addition, some use cases may be too large, so that they must decompose into small pieces. (Typically, the implementation of the use case should not exceed one month when the implementation level (IMPLEMentation-Level) is performed. In fact, for rough estimates, each use case is a good moon. Some methods - Such as Kent Beck's XP - requires a smaller use case that can be implemented within two weeks.) Please note that we do not list the low-level atomic operation - such as calculating interest because they are not independent use cases. But these use cases will almost become a child.

Now that since I have written something, you can start designing. Looking at the previous list, I have a few ideas. First, I can't affirm "deposit" and "withdrawal" are the use cases that can be separated. The alternative method may be similar to the "completed transaction", "transaction" is a deposit or withdrawal operation. Two use cases with the same workflow are of course equivalent, but I still don't know if my problem belongs to this situation. Currently, I will keep two use cases, because in the user's opinion, they look different, and their appearance results are clearly different. (Deposit increase the balance and reduce the balance. "Complete the transaction" modified the balance.)

When focused on "Viewing Passbook", I can't determine if it is a use case. It does not have a special result and the passbook is likely to be displayed during other use cases. After considering, I change this case "What is the assumption analysis (What-if) game", it does have a result: understanding the financial plan.

Next, I consider opening an account, closing and changing an account. Similarly, although the user seems to be significantly different, I can imagine that the workflow of "opening" and "closing accounts" will be the same. The UI will of course be the same - only some fields may be blank when they open an account. These subtle differences can be branched with a simple condition in the workflow ("if the account is new, then ...") processing.

I decided to use the "Close Account" as a true (even trivial), because its UI will be different from the UI of the open / change case. I will automatically turn off the account when the balance is just $ 0.00 as a general bank, because it is easy to imagine that the child will turn their account balance to zero, and in this case I don't want to re-set.

Finally, I decided to leave the "loan" use case. It is a nice feature of version 2, but now it doesn't need it.

Note that when doing these decisions, I am envisioning the details of the implementation (UI). After all, I am designing a computer program, so I need to consider its implementation in advance. However, I still tried to focus on the problem area as long as possible. I am assaulting to help the Domain-Level problem, but I am not designed, I don't do this. UI is a kind of auxiliary design tool that helps me clarify about the domain. This method is very different from the VB style recommended by the Alan Cooper, and the latter is the UI design driver design process. Here, the program will be generated from the conceptual model, and the UI is only a convenience of the concept model.

Things such as "Backup", "Save" are not used, because they are not in the problem area. However, this also tells us how some of the procedures should work. Before using any program, don't have to "save", this use case is especially true. If deposit, that is, deposit. An additional operation that needs to be saved can be aware that deposit transactions are unnatural. I have to ensure that children in the age of ten will not consider what saved before withdrawing. If you consider it, then I can tell you, ask "save" operation and make "all work that gives me" become the same thing for the procedure - that is not particularly good. "Backup" is also the same. Either a side effect of changing an account status, the program should automatically back up; or the program must maintain an audit tracking to cancel the changes. "Any case where anything that does not appear in the UI should appear in the UI". Perhaps the exception may include "Help", but if the UI is very intuitive, it does not need to help. You may argue that the program should be aware of your behavior to see you need help and provide help at that time. Most configuration options never change by users, so this meaningless thing is unwise to make UI confuse. (Of course, there are also exceptions, like the configuration problem in the problem area, such as currency representation symbols, of course, it can also be done by detecting the current locale.) The list of tentative use cases is as follows.

Child puts money into account children from account to extract money to assume the assumption analysis game parent account or change account parents close account

In the following two column articles, I will continue this exercise by explaining the "deposit" use case. I will show you a detailed note that uses an example specification itself and about what is doing.

Reference

Please refer to the top five parts I wrote about the OO design process series:

Getting Started Start Design Software Refining Problem Definition Verification Analysis Example, Introduction Application Delivery Please read the relevant content in Extreme Planning Wiki. Alan Cooper recommends the UI design driver design process. Please learn more about Alan Cooper in Uidesign.NET's InterView. Workflow chart (along with the remainder of UML) has a detailed description in Martin Fowler and Kendall Scott.

Design program dynamic (runtime) behavior

ALLEN HOLUB (Allen@holub.com) Chief Technology, Netreliance 2001 March

In the previous column article, I introduced the concept of formal use case demonstration. Several sections of this column will discuss some use cases. They are a complex topic and covers a lot of information, so we have to spend some time thoroughly considering these issues. We focus on this month is how to determine which use cases should be used, as well as other things that should be considered when planning cases.

Creating a use case Let's take a look at the definition of the use case last month:

The use case is a single task with some useful results executed by the end user of the system.

Looking at the Allen Bank issues in the first few months, several use cases have been in my mind:

Child putting money into an account child from an account to extract money a child or a parent viewing a passbook Parent Account Parental Change Account Parent Close Account (Closing Account) Bank loans to children (will be completed in version 2)

At this stage, this list is just a conjecture. As the process is insequent, other use cases will certainly be found. In addition, some use cases may be too large, so that they must decompose into small pieces. (Typically, the implementation of the use case should not exceed one month when the implementation level (IMPLEMentation-Level) is performed. In fact, for rough estimates, each use case is a good moon. Some methods - Such as Kent Beck's XP - requires a smaller use case that can be implemented within two weeks.) Please note that we do not list the low-level atomic operation - such as calculating interest because they are not independent use cases. But these use cases will almost become a child. Now that since I have written something, you can start designing. Looking at the previous list, I have a few ideas. First, I can't affirm "deposit" and "withdrawal" are the use cases that can be separated. The alternative method may be similar to the "completed transaction", "transaction" is a deposit or withdrawal operation. Two use cases with the same workflow are of course equivalent, but I still don't know if my problem belongs to this situation. Currently, I will keep two use cases, because in the user's opinion, they look different, and their appearance results are clearly different. (Deposit increase the balance and reduce the balance. "Complete the transaction" modified the balance.)

When focused on "Viewing Passbook", I can't determine if it is a use case. It does not have a special result and the passbook is likely to be displayed during other use cases. After considering, I change this case "What is the assumption analysis (What-if) game", it does have a result: understanding the financial plan.

Next, I consider opening an account, closing and changing an account. Similarly, although the user seems to be significantly different, I can imagine that the workflow of "opening" and "closing accounts" will be the same. The UI will of course be the same - only some fields may be blank when they open an account. These subtle differences can be branched with a simple condition in the workflow ("if the account is new, then ...") processing.

I decided to use the "Close Account" as a true (even trivial), because its UI will be different from the UI of the open / change case. I will automatically turn off the account when the balance is just $ 0.00 as a general bank, because it is easy to imagine that the child will turn their account balance to zero, and in this case I don't want to re-set.

Finally, I decided to leave the "loan" use case. It is a nice feature of version 2, but now it doesn't need it.

Note that when doing these decisions, I am envisioning the details of the implementation (UI). After all, I am designing a computer program, so I need to consider its implementation in advance. However, I still tried to focus on the problem area as long as possible. I am assaulting to help the Domain-Level problem, but I am not designed, I don't do this. UI is a kind of auxiliary design tool that helps me clarify about the domain. This method is very different from the VB style recommended by the Alan Cooper, and the latter is the UI design driver design process. Here, the program will be generated from the conceptual model, and the UI is only a convenience of the concept model.

Things such as "Backup", "Save" are not used, because they are not in the problem area. However, this also tells us how some of the procedures should work. Before using any program, don't have to "save", this use case is especially true. If deposit, that is, deposit. An additional operation that needs to be saved can be aware that deposit transactions are unnatural. I have to ensure that children in the age of ten will not consider what saved before withdrawing. If you consider it, then I can tell you, ask "save" operation and make "all work that gives me" become the same thing for the procedure - that is not particularly good. "Backup" is also the same. Either a side effect of changing an account status, the program should automatically back up; or the program must maintain an audit tracking to cancel the changes. "Any case where anything that does not appear in the UI should appear in the UI". Perhaps the exception may include "Help", but if the UI is very intuitive, it does not need to help. You may argue that the program should be aware of your behavior to see you need help and provide help at that time. Most configuration options never change by users, so this meaningless thing is unwise to make UI confuse. (Of course, there are also exceptions, like the configuration problem in the problem area, such as currency representation symbols, of course, it can also be done by detecting the current locale.) The list of tentative use cases is as follows.

Child puts money into account children from account to extract money to assume the assumption analysis game parent account or change account parents close account

In the following two column articles, I will continue this exercise by explaining the "deposit" use case. I will show you a detailed note that uses an example specification itself and about what is doing.

转载请注明原文地址:https://www.9cbs.com/read-25096.html

New Post(0)