<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷途書童

    敏感、勤學、多思
    隨筆 - 77, 文章 - 4, 評論 - 86, 引用 - 0
    數據加載中……

    Driving Design with Use Cases

    We need to see more use case and Unified Modeling Language examples" is a demand we hear fairly often these days. Although we present a fairly extensive example in our first book, Use Case Driven Object Modeling with UML (Addison-Wesley, 1999), we recently convinced Addison-Wesley to let us produce a companion workbook, in which we will dissect the design of an Internet bookstore, step-by-step, in great detail. This will involve showing many common mistakes, and then showing the model with its mistakes corrected.

    This article is the first in a series of five that will provide a prepublication look at the annotated example from the workbook (to be called Applied Use Case Driven Object Modeling, conveniently enough) as it evolves. We'll be following the process detailed in our book (also known as the ICONIX process), which sits somewhere between the very large Rational Unified Process (RUP) and the very small Extreme Programming (XP) approach.

    The ICONIX process is use case driven, like RUP, but lacks a lot of the overhead that RUP brings to the table. It's also relatively small and tight, like XP, but it doesn't discard analysis and design like XP does. This process also makes streamlined use of UML while keeping a sharp focus on the traceability of requirements. And, the process stays true to Jacobson's original vision of what "use case driven" means, in that it results in concrete, specific, readily understandable use cases that a project team can actually use to drive the development effort.

    Each of the articles that follow this one will address an essential aspect of the process by focusing on one of the four critical diagrams used in the Iconix process. These four articles will have the same basic look and feel, with these shared elements:

    • A "top 10" list that describes modeling errors to avoid.
    • A diagram that shows two or three violations of these top 10 rules, as committed by students in classes that we've taught.
    • Another diagram that shows corrections of the erroneous material.

    Best of Breed
    Figure 1 shows the "big picture" for the process. The diagram portrays the essence of a streamlined approach to software development that includes a minimal set of UML diagrams and some valuable techniques that take you from use cases to code quickly and efficiently. The approach is flexible and open; you can always select from the other aspects of UML to supplement the basic materials.

    Figure 1. The "Big Picture" for Use Case Driven Object Modeling

    The diagram portrays the essence of a streamlined approach to software development that includes a minimal set of UML diagrams and some valuable techniques that take you from use cases to code quickly and efficiently.

    The second article will discuss domain modeling. This is the task of discovering classes that represent the things and concepts related to the problem that a system is being designed to solve. We'll describe how the domain model serves as a glossary of terms that people can use in writing use cases.

    Domain modeling involves working outward from the data requirements to build a static model of the problem domain relevant to the proposed system. We'll point out how the approach emphasizes domain modeling more than RUP, and certainly more than XP.

    The third article will discuss how to write use cases that detail the scenarios that the users will be performing. We'll describe how to write complete and unambiguous use cases that describe individual aspects of system usage without presuming any specific design or implementation.

    Use case modeling involves working inward from the user requirements to start building adynamic model of the solution space for the proposed system. We'll talk about how use cases, by extension, drive the entire development effort.

    The Forgotten Diagram
    The fourth article in the series will discuss robustness analysis, a practice that originated with Ivar Jacobson but was dropped from the Rational implementation of UML. This involves analyzing the narrative text of use cases, identifying a first-guess set of objects that will participate in those use cases, and classifying these objects based on the roles they play.

    • Boundary objects are what actors use in communicating with the system.
    • Entity objects are usually objects from the domain model.
    • Controllers serve as the "glue" between boundary objects and entity objects.

    We'll show how robustness analysis, which serves as preliminary design within the process, provides the missing link between analysis and detailed design.

    The fifth and last article will discuss interaction modeling, the phase in which people build the threads that weave their objects together and enable them to start seeing how the new system will perform useful behavior. We'll demonstrate how to build sequence diagrams, which enable designers to perform three key tasks:

    1. Allocate behavior among boundary objects, entity objects, and controllers that will become full objects in the model.
    2. Show the detailed interactions that occur over time among the objects associated with each use case.
    3. Finalize the distribution of operations among classes.

    We'll explain how the detailed, design-level class diagrams that result from interaction modeling represent a suitable foundation for moving into the coding phase of a project.

    We'd like to point out three significant features of this approach.

    First, it's iterative and incremental. Multiple iterations occur between developing the domain model and identifying and analyzing the use cases. Other iterations exist, as well, as the team proceeds through the life cycle. The static model gets refined incrementally during the successive iterations through the dynamic model (composed of use cases, robustness analysis and sequence diagrams). Please note, though, that the approach doesn't require formal milestones and lots of bookkeeping; rather, the refinement efforts result in natural milestones as the project team gains knowledge and experience.

    Second, the approach offers a high degree of traceability. At every step along the way, you refer back to the requirements in some way. There is never a point at which the process allows you to stray too far from the user's needs. Traceability also refers to the fact that you can track objects from step to step as analysis melds into design.

    Third, the approach offers streamlined usage of UML. The steps that we'll describe in the upcoming articles represent a "minimalist" approach-they comprise the minimal set of steps that we've found to be necessary and sufficient on the road to a successful OO development project. By focusing on a subset of the large and often unwieldy UML, a project team can also head off "analysis paralysis" at the pass.

    E-Commerce Example
    We'll demonstrate these aspects of the ICONIX process in the context of an on-line bookstore. The focus will be on the customer's view of the system.

    Article two will describe how to build a domain model that has loosely coupled classes, each of which does one thing well.

    Article three will discuss how to write small, concise use cases that capture functional requirements in terms of user actions and system responses in a way that's easy for readers to understand at a glance.

    Article four will demonstrate how to do robustness analysis in order to tighten up use cases and make it easier to head into detailed design.

    Article five will explore sequence diagrams, which we'll use to allocate the behavior specified by use cases to the objects mentioned in those use cases.

    See you next month.
    http://drdobbs.com/184414677 



    posted on 2012-03-24 04:14 迷途書童 閱讀(1033) 評論(1)  編輯  收藏 所屬分類: 隨感系統設計

    評論

    # re: Driving Design with Use Cases  回復  更多評論   

    不錯啊
    2012-03-24 09:18 | tb
    主站蜘蛛池模板: 亚洲成AⅤ人影院在线观看| 成人福利免费视频| 免费在线观看黄色毛片| 亚洲国产欧美一区二区三区| 中文字幕免费在线观看| 亚洲第一网站免费视频| 91在线老王精品免费播放| 亚洲va在线va天堂va不卡下载| 国产一区二区免费视频| 亚洲人成在线播放网站岛国| 在线观看永久免费| 亚洲AV无码乱码在线观看代蜜桃| 好男人www免费高清视频在线| 亚洲日韩乱码中文字幕| 免费看a级黄色片| 色网站在线免费观看| 亚洲婷婷国产精品电影人久久| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 1000部无遮挡拍拍拍免费视频观看| 精品无码一区二区三区亚洲桃色 | 国产精品亚洲综合网站| 亚洲国产成人久久综合一区77| 黄网站色视频免费观看45分钟| 久久夜色精品国产亚洲av| 久久国产精品免费观看| 亚洲乱码一二三四五六区| 国产成人免费高清激情视频| 亚洲国产AV一区二区三区四区| 亚洲AV中文无码乱人伦在线视色 | 欧洲一级毛片免费| 亚洲AV男人的天堂在线观看| 国产一区二区三区免费在线观看| 污网站免费在线观看| 亚洲精品成人无限看| 青青青免费国产在线视频小草| 久久亚洲AV成人无码国产电影 | 亚洲av日韩av无码黑人| 四色在线精品免费观看| 97在线免费观看视频| 亚洲日本人成中文字幕| 亚洲人成网站色在线入口|