Class Identification Via UseCase

Hi Friends.......
I know that use case is use for the purpose of requirment gatheringMy questios are
1---->How to Identify Classes through USE cases.
2----->Is Use Case is High Level Design
Thanks and Reagrd

I hope this would be usefull
A section from Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design and Iterative Development
9.5. Guideline: How to Find Conceptual Classes?
Since a domain model shows conceptual classes, a central question is: How do I find them?
What are Three Strategies to Find Conceptual Classes?
Reuse or modify existing models. This is the first, best, and usually easiest approach, and where I will start if I can. There are published, well-crafted domain models and data models (which can be modified into domain models) for many common domains, such as inventory, finance, health, and so forth. Example books that I'll turn to include Analysis Patterns by Martin Fowler, Data Model Patterns by David Hay, and the Data Model Resource Book (volumes 1 and 2) by Len Silverston.
Use a category list.
Identify noun phrases.
Reusing existing models is excellent, but outside our scope. The second method, using a category list, is also useful.
Method 2: Use a Category List
We can kick-start the creation of a domain model by making a list of candidate conceptual classes. Table 9.1 contains many common categories that are usually worth considering, with an emphasis on business information system needs. The guidelines also suggest some priorities in the analysis. Examples are drawn from the 1) POS, 2) Monopoly, and 3) airline reservation domains.
Table 9.1. Conceptual Class Category List. Conceptual Class Category
Examples
business transactions
Guideline: These are critical (they involve money), so start with transactions.
Sale, Payment
Reservation
transaction line items
Guideline: Transactions often come with related line items, so consider these next.
SalesLineItem
product or service related to a transaction or transaction line item
Guideline: Transactions are for something (a product or service). Consider these next.
Item
Flight, Seat, Meal
where is the transaction recorded?
Guideline: Important.
Register, Ledger
FlightManifest
roles of people or organizations related to the transaction; actors in the use case
Guideline: We usually need to know about the parties involved in a transaction.
Cashier, Customer, Store MonopolyPlayer Passenger, Airline
place of transaction; place of service
Store
Airport, Plane, Seat
noteworthy events, often with a time or place we need to remember
Sale, Payment MonopolyGame Flight
physical objects
Guideline: This is especially relevant when creating device-control software, or simulations.
Item, Register Board, Piece, Die Airplane
descriptions of things
Guideline: See p. 147 for discussion.
ProductDescription
FlightDescription
catalogs
Guideline: Descriptions are often in a catalog.
ProductCatalog
FlightCatalog
containers of things (physical or information)
Store, Bin Board Airplane
things in a container
Item Square (in a Board) Passenger
other collaborating systems
CreditAuthorizationSystem
AirTrafficControl
records of finance, work, contracts, legal matters
Receipt, Ledger
MaintenanceLog
financial instruments
Cash, Check, LineOfCredit
TicketCredit
schedules, manuals, documents that are regularly referred to in order to perform work
DailyPriceChangeList
RepairSchedule
Method 3: Finding Conceptual Classes with Noun Phrase Identification
Another useful technique (because of its simplicity) suggested in [Abbot83] is linguistic analysis: Identify the nouns and noun phrases in textual descriptions of a domain, and consider them as candidate conceptual classes or attributes.[5]
[5] Linguistic analysis has become more sophisticated; it also goes by the name natural language modeling. See [Moreno97] for example.
Guideline
Care must be applied with this method; a mechanical noun-to-class mapping isn't possible, and words in natural languages are ambiguous.
Nevertheless, linguistic analysis is another source of inspiration. The fully dressed use cases are an excellent description to draw from for this analysis. For example, the current scenario of the Process Sale use case can be used.
Main Success Scenario (or Basic Flow):
Customer arrives at a POS checkout with goods and/or services to purchase.
Cashier starts a new sale.
Cashier enters item identifier.
System records sale line item and presents item description, price, and running total. Price calculated from a set of price rules.
Cashier repeats steps 2-3 until indicates done.
System presents total with taxes calculated.
Cashier tells Customer the total, and asks for payment.
Customer pays and System handles payment.
System logs the completed sale and sends sale and payment information to the external Accounting (for accounting and commissions) and Inventory systems (to update inventory).
System presents receipt.
Customer leaves with receipt and goods (if any).
Extensions (or Alternative Flows):
7a. Paying by cash:
Cashier enters the cash amount tendered.
System presents the balance due, and releases the cash drawer.
Cashier deposits cash tendered and returns balance in cash to Customer.
System records the cash payment.
The domain model is a visualization of noteworthy domain concepts and vocabulary. Where are those terms found? Some are in the use cases. Others are in other documents, or the minds of experts. In any event, use cases are one rich source to mine for noun phrase identification.
Some of these noun phrases are candidate conceptual classes, some may refer to conceptual classes that are ignored in this iteration (for example, "Accounting" and "commissions"), and some may be simply attributes of conceptual classes. See p. 160 for advice on distinguishing between the two.
A weakness of this approach is the imprecision of natural language; different noun phrases may represent the same conceptual class or attribute, among other ambiguities. Nevertheless, it is recommended in combination with the Conceptual Class Category List technique.

Similar Messages

  • Set fields of derived class in base class constructor via reflection?

    Does the Java Language Specification explicitly allow setting of fields of a derived class from within the base class' constructor via reflection? The following test case runs green, but I would really like to know if this Java code is compatible among different VM implementations.
    Many thanks for your feedback!
    Norman
    public class DerivedClassReflectionWorksInBaseClassConstructorTest extends TestCase {
    abstract static class A {
        A() {
            try {
                getClass().getDeclaredField("x").setInt(this, 42);
            } catch (Exception e) {
                throw new RuntimeException(e);
    static class B extends A {
        int x;
        B() {
        B(int x) {
            this.x = x;
    public void testThatItWorks() {
        assertEquals(42, new B().x);
        assertEquals(99, new B(99).x);
    }

    why not just put a method in the superclass that the subclasses can call to initialize the subclass member variable?In derived classes (which are plug-ins), clients can use a field annotation which provides some parameter metadata such as validators and the default value. The framework must set the default value of fields, before the class' initializer or constructors are called. If the framework would do this after derived class' initializer or constructors are called, they would be overwritten:
    Framework:
    public abstract class Operator {
        public abstract void initialize();
    }Plug-In:
    public class SomeOperator extends Operator {
        @Parameter(defaultValue="42", interval="[0,100)")
        double threshold;
        @Parameter(defaultValue="C", valueSet="A,B,C")
        String mode;
        public void setThreshold(double threshold) {this.threshold = threshold;}
        public void setMode(String mode) {this.mode = mode;}
        // called by the framework after default values have been set
        public void initialize() {
    }On the other hand, the default values and other metadata are also used to create GUIs and XML I/O for the derived operator class, without having it instantiated. So we cannot use the initial instance field values for that, because we don't have an instance.

  • My Canon MG4150 printer won't connect. Im using OS X10.7 which says is compatible. Its identifies via USB and says downloading, but then comes up with software unavailable error.

    My Canon MG4150 printer won't connect. Im using OS X10.7 which says is compatible. Its identifies via USB and says downloading, but then comes up with software unavailable error. Any ideas?

    Hi Pebbles2313,
    It sounds like you have an issue with your printer software. You may find some of the software necessary to run your printer through the following link:
    OS X: Printer and scanner software available for download - Apple Support
    http://support.apple.com/en-is/HT201465
    Thanks for being a part of the Apple Support Communities!
    Cheers,
    Braden

  • My Canon MG4150 printer won't connect. Im using OS X10.7 which says is compatible. Its identifies via USB and says downloading, but comes up with software unavailable error.

    My Canon MG4150 printer won't connect. Im using OS X10.7 which says is compatible. Its identifies via USB and says downloading, but then comes up with software unavailable error.

    Try downloading the driver directly from Canon's web site.

  • Networking - Identification via MobileMe??

    Hi, I have 3 Macs speaking with each other...normally fine...
    But I want to use the Identification via UserID and PW. when to connect to one of the Macs...
    When I enter a shared Volume in the Finder Window - left side, sometimes it connects with my MobileMe Account and gives the Access free.... Is there a possibility to stop that, so for connection you´re forced to enter the UserID and the PW..?
    Thanks
    Chris

    Yeah...in meantime, i deleted also the mobile me key for the network access and did, what you described.... Thanks!!!!

  • Syntax - runtime class identification

    I'm going thru a sample on runtime class identification: http://javaalmanac.com/egs/java.lang/IsClass.html. Here's the code fragment:
    cls = java.lang.Cloneable.class;
    isClass = !cls.isInterface(); // false
    I can find "java.lang.Cloneable" but can't find "java.lang.Cloneable.class" from J2SE documentation/object hierachy: http://java.sun.com/j2se/1.5.0/docs/api/
    Thanks.

    Question 1:
    "The token class" means ".class"?I think they mean the token "class", and "." isn't part of the token, but basically, yes.
    The word "token" just means "something that the compiler, when parsing, can view as a separate item meaning something in the code".
    So "the token class" means "the token: 'class'", if that helps.
    Question 2:
    So, "java.lang.Cloneable.class" is really an
    object/instance of type "Class" - with
    name="java.lang.Cloneable"?Yes. So:
    Class someclass = java.lang.Cloneable.class;
    // is the same as:
    Class someclass = Class.forName("java.lang.Cloneable");basically.

  • VSA to set in- and outbound vc-class atm via radius

    Hello,
    does anyone know if it is possible to apply an inbound 'vc-class atm 'and also an outbound 'vc-class atm' dynamicaly via a vendor specific attribute. I found 'atm:vc-qos-policy-in' respectively 'atm:vc-qos-policy-out' but that doesn't seem to work.
    What I want to do is limit the up- and downstream bandwidth of DSL-Dialin connections.
    Thanks in advance
    Mark

    PPPoE session limits created in a VC class using the "pppoe max-sessions" command take precedence over the limits created with the "pppoe limit per-vc" command. PPPoE session limits created on a PVC and ATM PVC range take precedence over limits created in a VC class.

  • Calling EJB facades via class instantiated via reflection?

    We are loading plugins via Java reflection. Anything instantiated via newInstance() does not appear to have access to the Local interface.
    Right now, to get to the session bean we must use the Remote interface. This is annoying due to the performance, and seems completely unnecessary when everything is operating in one JVM.
    Tests were done to print out the JNDI namespace and the local interfaces don't seem to be accessible. Any advice?

    My project consists of an EJB package and WAR. I have not had any problem calling the local facades from JSP, Servlet, or web service in the EJB package.
    Further, I can use XStream reflection and do local EJB calls.
    It baffles me why I can't do the local calls in some classes via InitialContext lookups.
    I will post test code next week.

  • How to load a class dynamically (via reflection) in a jsf-component

    Hi all,
    I am writing my own jsf component and I would like to do it generically. Therefore I have an attribute, where the developer can pass a fully qualified classname, which I want to use to instantiate. But I have a Problem with the classloaders, everytime I get a ClassNotFound-Exception during debugging.
    Does anybody know how it is possible, to to get the most parent classloader?
    Currently I am even not able to load a class, which is in the same package like all other compontent-classes.
    Thank you very much in advance
    Thomas

    Within web applications, I believe it is recommended to use Thread.getContextClassLoader(). Keep in mind that web applications require different classloader semantics than regular Java applications. The class loader which gets resources from the WAR is favored over others, even when this violates the normal class loading conventions.

  • Can I reference static class vars via a string?

    Hi all,
    I am trying to set the value of some static vars but I need to reference the class with a string rather than a proper constructor. In AS3 I can do this with:
    var ref:Class = getDefinitionByName(classDefinitionAsString) as Class;
    ref[varNameAsString] = newValue;
    I can't find an equivelant approach that will work in AS2 though. I have tried:
    var ref:Object = new [classDefinitionAsString];
    ref[varNameAsString] = newValue;
    This seems to just create an Object and as the vars that I am trying to access are static I don't really want to be using 'new' I just want to reference the vars.
    Is this even possible in AS2 and if so can anyone explain how I might do this?
    Cheers for any help

    I seem to have found a solution that works (for now at least). Not quite sure of the details
    but this does it for me.
    http://dynamicflash.com/2005/03/class-finder/

  • CMD executions in table class interface via ABAP

    Hi SDN Community,
    Would it be possible to code in ABAP , and Command statements that can be placed in the web templates.
    can this be done in the Table class interface.
    For example, the command to expand a hierarchy node that is produced in RSRT2, is
    CMD=SET_DRILL_STATE&DATA_PROVIDER=DP=234D5W1FC9W6311O66UCVSRN9E2&IOBJNM=4D5W27AIW32VTOY02REHCSL6Y&TOGGLE_STATE=X
    How can this if possible be placed in a Table Class Interface, and coded in ABAP to achieve the expansion of the hierarchy node.
    thank you.
    Simon

    Hi Thomas,
    I have been working with a brilliant ABAP'er, and together we
    implemented a solution in the START method, that makes use of the
    following methods and expands all the hierarchy nodes at start.
    And this class can be omitted in the Print all view we have formulated
    as only a collapsed view has been specified there.
    thank you.
    Simon
    I found this all in that class interface CL_RSR_REQUEST
    for N_R_REQUEST
    for N_R_DATA_SET
    Initial Value: Set Drilldown State of a Hierarchy
    Description: 'SET_DRILL_STATE'
    this looks like the method that gets executed. what do you think?
    can you code this in the program
    constants C_CMD_SET_DRILL_STATE type RSRCMDID
    value 'SET_DRILL_STATE'. "#EC NOTEXT
    methods SET_DRILL_STATE
    importing
    value(I_AXIS) type RRXAXIS optional
    value(I_POSITION) type I optional
    value(I_FOCUS_IOBJNM) type RSIOBJNM optional
    value(I_DRILLSTATE) type RRXDRILLSTATE optional
    value(I_TOGGLE) type RS_BOOL default RS_C_FALSE
    !I_R_PARAMETER type ref to CL_RSR_PARAMETER optional
    exporting
    !E_KEEP_LAST_LINES type I
    !E_KEEP_FIRST_LINES type I
    !E_NEW_LINES_FROM type I
    !E_NEW_LINES_TO type I
    !E_NODE_POSITION_FROM type I
    !E_NODE_POSITION_TO type I
    exceptions
    NO_PROCESSING
    X_MESSAGE .

  • Specific class methods via reflection?

    I need to get the methods of a class, but not the methods that are inherited by the class, but just those implemented in the actual class.
    I tried this way:
    public class MethodsTest {
        private int prim;
        private String joc;
        public String getJoc() {
            return joc;
        public void setJoc(String joc) {
            this.joc = joc;
        public int getPrim() {
            return prim;
        public void setPrim(int prim) {
            this.prim = prim;
        public static void main(String[] args) {
            // get the methods
            MethodsTest mt = new MethodsTest();
            Class clz = mt.getClass();
            Method[] mtz = clz.getMethods();
            System.out.println(Arrays.toString(mtz));
            // it prints all methods.
    }but it prints all methods, from this class and from the superclasses:
    [public java.lang.String com.datamedical.testes.xml.MethodsTest.getJoc(),
    public void com.datamedical.testes.xml.MethodsTest.setJoc(java.lang.String),
    public int com.datamedical.testes.xml.MethodsTest.getPrim(),
    public void com.datamedical.testes.xml.MethodsTest.setPrim(int),
    public static void com.datamedical.testes.xml.MethodsTest.main(java.lang.String[]),
    public native int java.lang.Object.hashCode(),
    public final native java.lang.Class java.lang.Object.getClass(),
    public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException,
    public final void java.lang.Object.wait() throws java.lang.InterruptedException,
    public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException,
    public boolean java.lang.Object.equals(java.lang.Object),
    public java.lang.String java.lang.Object.toString(),
    public final native void java.lang.Object.notify(),
    public final native void java.lang.Object.notifyAll()]

    http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#getDeclaredMethods()

  • Transaction propagation via plain Java classes?

              Hello,
              I have a question on transaction propagation in the following scenario:
              1. a method of EJB1 with setting "Required" is invoked.
              2. the method creates a plain Java class and invokes a method of the class
              3. the class's method invokes a method of EJB2 with setting "Required".
              Is my understanding of EJB spec correct, when I assume that the transaction created
              when the first EJB method was called will be propagated through the plain Java
              class (supposedly via association with current thread), so the second EJB will
              participate in the same transaction?
              Thank you in advance,
              Sergey
              

    Yup, current transaction is associated with the current thread.
              Sergey <[email protected]> wrote:
              > Hello,
              > I have a question on transaction propagation in the following scenario:
              > 1. a method of EJB1 with setting "Required" is invoked.
              > 2. the method creates a plain Java class and invokes a method of the class
              > 3. the class's method invokes a method of EJB2 with setting "Required".
              > Is my understanding of EJB spec correct, when I assume that the transaction created
              > when the first EJB method was called will be propagated through the plain Java
              > class (supposedly via association with current thread), so the second EJB will
              > participate in the same transaction?
              > Thank you in advance,
              > Sergey
              Dimitri
              

  • Access the Parameters of a SequenceCall via API

    I would like to access several characteristics, like name and value, of the parameter(s) of a SequenceCall via the TestStand API,
    but it didn't work.
    First I get the object reference of the Class SequenceCallParameters via Class SequenceCallModule.Parameters. Now I
    can determine the correct number of parameters via SequenceCallParameters.Count. Cause that works, I think I am on
    the right way. To access the property object of a specific parameter, I get the object reference via SequenceCallParameter.Item and
    the Method AsPropertyObject of the Class SequenceCallParameter.
    I thougth with this reference I could access the properties of the parameter via the PropertyObjectClass, but I didn't get the correct information resp. I didn't know at which property the objectReference really points to.
    I add an example sequence. I would get the information from the Sequencecall via the PreStepCallback.
    I hope someone has an idea. Thank you in advance.
    Regards Carsten
    Attachments:
    Example GetParameters from SequenceCall.seq ‏64 KB

    CKone,
    You can use the API to access the parameter properties.
    Once you get the parameter item you can treat that object as a SequenceCallParamer object.
    The SequenceCallParameter object contains several of the properties you were  trying to access:
    SequenceCallParameter
    Use objects from the SequenceCallParameter class to configure and obtain SequenceCallParameter-specific information for an item in the SequenceCallParameters collection class.
    Properties
    Name (Read Only)
    PassByReference (Read Only)
    Type (Read Only)
    UseDefaultValue
    UserData (Read Only)
    ValidEvaluationTypes (Read Only)
    ValueExpr
    I modified your sequence file to use this object.
    Hope it helps.
    Antonio Lie
    Attachments:
    Example GetParameters from SequenceCall35.seq ‏65 KB

  • Transmission of XML Documents in a vector via WebService using Axis

    Hello,
    I'm trying to transmit several XML documents (belonging to a DICOM-Study) from WebService Provider to WebService consumer.
    This is my server/provider:
    public static Vector<Document> returnPatientStudies(String PatientID)
    DocumentBuilderFactory factory  = DocumentBuilderFactory.newInstance();
    DocumentBuilder        builder  = factory.newDocumentBuilder();
    File x = new File(PATH + "patient.xml");
    Document document = builder.parse(x);
    DCM2XMLFiles.add(document);This code works fine if it's executed locally in a JAVA class or via http/GET (http://.../axis/services/Gateway?method=returnPatientStudies&PatientID=123456).
    After using Axis' WSDL2Java-Tool I wrote a client:
    public static void main(String[] args) {
    GatewayServiceLocator locator = new GatewayServiceLocator();
    try {
         Gateway gateway = locator.getGateway();
         Vector<Document> documents = Gateway.returnPatientStudies("123456");
    ... Everytime I try to invoke this client-side class, I get an "org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize."
    Obviously the client gets confused by the XML content of the vector I'm trying to transmit (this error also occurs if I transmit XML files constisting only of a single empty element <empty />).
    I think this is a simple problem, since one single XML Document can be transmitted and gets displayed on client side, but I don't have a clue how to solve this vector<Document> problem. Hope someone can help me.
    Thanks

    Hi thanks for your answer.
    I am striving to make this webservice as universal as possible. I have only been returning dumps to my calling page to try and get a view of what's going on inside the component when I call it as a webservice. I wouldn't dream or returnin these back the client.
    The major core of this idea was to create a single component that acts as a facade for a number of other components. Because of this the component needs to accept and return a dynamically variable number of arguments. Because of this I selected xml as this seemed like the ideal solution; I can pass in an out some xml that contains all the arguments. I was hoping to reuse some internal functions to provide external webservices, and use this facade architechture to add a layer of security and logging which doesn't exist with the current functions.
    Do you have any suggestions of how I could best acheive something along these lines? Has someone already created a framework or methodology for creating webservices with Coldfusion which would provide this sort of functionality out of the box?
    Thanks again
    Jim

Maybe you are looking for

  • Modal page opening from link

    Hello, I would like to open a modal page (Skillbuilders) via a link. That is why I have  created a button with a dynamic action that opens the modal page. This REGION button is hidden (not rendering). I have this code as regions source: {code} <a hre

  • Update address-independent telehpone of BP

    Hi all, We need to change address-independent telephone numbers of business partner. When such record already exists (telephone numbers are maintained), this can be done using function module 'BAPI_BUPA_CENTRAL_CHANGE' with TELEFONDATANONADDRESS. How

  • Need help logging ing

    Hi there, I need help logging in when it asks for username,password and host string. I know it's prob simple but i'm new to this. Please help me!! thanks, Julie.

  • Web Interface - Username and Password.

    I have a question when i put my IP address i need to put a password and username. Where i can get dose things ?

  • Getting the best possible DVD encodes out of Compressor

    Is there a decent guide somewhere about how best to set Compressor DVD encode projects up? I take it using the standard two-pass encode settings probably isn't ideal and some tweaks would possible yield better results. I just read this on another sit