// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.6.0" ), 
    UMLPackagePath ( "CIM::Application::DeploymentModel" ), 
    Description ( 
       "The CIM_SoftwareFeature class defines a particular function or "
       "capability of a product or application system. This class "
       "captures a level of granularity describing a unit of "
       "installation, rather than the units that reflect how the "
       "product is built or packaged. The latter detail is captured "
       "using a CIM_SoftwareElement class. When a SoftwareFeature can "
       "exist on multiple platforms or operating systems (for example, "
       "a client component of a three tiered client/server application "
       "that runs on Solaris, Windows NT, and Windows 95), the Feature "
       "is a collection of all the SoftwareElements for these "
       "different platforms. In this case, the users of the model must "
       "be aware of this situation since typically they will be "
       "interested in a sub-collection of the SoftwareElements "
       "required for a particular platform. \n"
       "SoftwareFeatures are always defined in the context of a "
       "CIM_Product, using the CIM_ProductSoftwareFeature association. "
       "Features are delivered through Products. Optionally, "
       "SoftwareFeatures from one or more Products can be organized "
       "into ApplicationSystems using the "
       "CIM_ApplicationSystemSoftwareFeature association." )]
class CIM_SoftwareFeature : CIM_LogicalElement {

      [Key, Description ( "The scoping Product\'s identification." ), 
       MaxLen ( 64 ), 
       Propagated ( "CIM_Product.IdentifyingNumber" )]
   string IdentifyingNumber;

      [Key, Description ( 
          "The scoping Product\'s commonly used name." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_Product.Name" )]
   string ProductName;

      [Key, Description ( "The scoping Product\'s supplier." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_Product.Vendor" )]
   string Vendor;

      [Key, Description ( "The scoping Product\'s version." ), 
       MaxLen ( 64 ), 
       Propagated ( "CIM_Product.Version" )]
   string Version;

      [Key, Override ( "Name" ), 
       Description ( 
          "The Name property defines the unique label by which the "
          "SoftwareFeature is identified. This label should be a "
          "human-readable name that uniquely identifies the element "
          "in the context of the element\'s namespace." ), 
       MaxLen ( 256 )]
   string Name;


};
