In the field of software engineering, the Unified Modeling Language (UML) is a standardized visual specification language for object modeling. UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model.

General description
UML is officially defined at the Object Management Group (OMG) by the UML metamodel, a Meta-Object Facility metamodel (MOF). Like other MOF-based specifications, the UML metamodel and UML models may be serialized in XML. UML was designed to specify, visualize, construct, and document software-intensive systems.

UML is not restricted to modeling software. UML is also used for business process modeling, systems engineering modeling and representing organizational structures. The Systems Modeling Language (SysML) is a Domain-Specific Modeling language for systems engineering that is defined as a UML 2.0 profiles.

UML has been a catalyst for the evolution of model-driven technologies, which include model-driven development (MDD), model-driven engineering (MDE), and model-driven architecture (MDA). By establishing an industry consensus on a graphic notation to represent common concepts like classes, components, generalization, aggregation, and behaviors, UML has allowed software developers to concentrate more on design and architecture.[citation needed]

UML models may be automatically transformed to other representations (e.g. Java) by means of QVT-like transformation languages, supported by the OMG.

UML is extensible, offering the following mechanisms for customization: profiles and stereotype. The semantics of extension by profiles have been improved with the UML 2.0 major revision.

Methods
UML is not a method by itself; however, it was designed to be compatible with the leading object-oriented software development methods of its time (for example OMT, Booch, Objectory). Since UML has evolved, some of these methods have been recast to take advantage of the new notation (for example OMT), and new methods have been created based on UML. The best known is Rational Unified Process (RUP). There are many other UML-based methods like Abstraction Method, Dynamic Systems Development Method, and others, designed to provide more specific solutions, or achieve different objectives.

Modeling
It is very important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphical representation of a system's model. The model also contains a "semantic backplane" — documentation such as written use cases that drive the model elements and diagrams.

UML diagrams represent three different views of a system model:

Functional requirements view

 Emphasizes the functional requirements of the system from the user's point of view.
 Includes use case diagrams.

Static structural view

 Emphasizes the static structure of the system using objects, attributes, operations, and relationships.
 Includes class diagrams and composite structure diagrams.

Dynamic behavior view

 Emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects.
 Includes sequence diagrams, activity diagrams and state machine diagrams.

UML models can be exchanged among UML tools by using the XMI interchange format.

Diagrams
UML 2.0 has 13 types of diagrams, which can be categorized hierarchically as follows:

Structure diagrams emphasize what things must be in the system being modeled:

- Class diagram
- Component diagram
- Composite structure diagram (added in UML 2.x)
- Deployment diagram
- Object diagram
- Package diagram

Behavior diagrams emphasize what must happen in the system being modeled:

- Activity diagram
- State Machine diagram
- Use case diagram

Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the system being modeled:

- Communication diagram
- Interaction overview diagram (added in UML 2.x)
- Sequence diagram
- Timing diagram (added in UML 2.x)

The Protocol State Machine is a sub-variant of the State Machine. It may be used to model network communication protocols.

UML does not restrict UML element types to a certain diagram type. In general, every UML element may appear on almost all types of diagrams. This flexibility has been partially restricted in UML 2.0.

In keeping with the tradition of engineering drawings, a comment or note explaining usage, constraint, or intent is always allowed in a UML diagram.

Concepts
UML uses many concepts from many sources. For a definitive list, consult the glossary of Unified Modeling Language terms. Notable concepts are listed here.

For structure

- Actor, attribute, class, component, interface, object, package.

For behavior

- Activity, event, message, method, operation, state, use case.

For relationships

- Aggregation, association, composition, dependency, generalization (or inheritance).

Other concepts

- Stereotype. It qualifies the symbol it is attached to.
- Multiplicity notation which corresponds to database modeling cardinality, e.g., 1, 0..1, 1..*
- Role

Criticisms
Although UML is a widely recognized and used modeling standard, it is frequently criticized for the following deficiencies:

- Language bloat. UML is often criticized as being gratuitously large and complex. It contains many diagrams and constructs that are redundant or infrequently used. This criticism is more frequently directed at UML 2.0 than UML 1.0, since newer revisions include more design-by-committee compromises.
- Problems in learning and adopting. The problems cited above can make learning and adopting UML problematic, especially when required of engineers lacking the prerequisite skills.
- Only the code is in sync with the code. Another perspective holds that it is working systems that are important, not beautiful models. As Jack Reeves succinctly put it, "The code is the design." Pursuing this notion leads to the need for better ways of writing software; UML has value in approaches that compile the models to generate source or executable code. This however, may still not be sufficient since it is not clear that UML 2.0's Action Semantics exhibit Turing completeness. "All models are wrong, but some models are useful."
- Cumulative Impedance/Impedance Mismatching. As with any notational system, UML is able to represent some systems more concisely or efficiently than others. Thus a developer gravitates toward solutions that reside at the intersection of the capabilities of UML and the implementation language. This problem is particularly pronounced if the implementation language does not adhere to orthodox object-oriented doctrine, as the intersection set between UML and implementation language may be that much smaller.
- Aesthetically Inconsistent. This argument states that the adhoc mixing of abstract notation (2-D ovals, boxes, etc) make UML appear jarring and that more effort could have been made to construct uniform and aesthetically pleasing representations.
- Tries to be all things to all programmers. UML is a general purpose modeling language, which tries to achieve compatibility with every possible implementation language. In the context of a specific project, the most applicable features of UML must be delimited for use by the design team to accomplish the specific goal. Additionally, the means of restricting the scope of UML to a particular domain is through a formalism that is not completely formed, and is itself the subject of criticism.
- Dysfunctional interchange format. While the XMI (XML Metadata Interchange) standard is designed to facilitate the interchange of UML models, it has been largely ineffective in the practical interchange of UML 2.x models. (A modeler can empirically verify this shortcoming herself by defining a UML 2.x model in one tool, and attempting to import it into another tool without loss of information.) This interoperability ineffectiveness is attributable to two reasons: First, XMI 2.x is large and complex in its own right, since it purports to address a technical problem more ambitious than exchanging UML 2.x models. In particular, it attempts to provide a mechanism for facilitating the exchange of any arbitrary modeling language defined by the OMG's Meta-Object Facility (MOF). Secondly, the UML 2.x Diagram Interchange specification lacks sufficient detail to facilitate reliable interchange of UML 2.x notations between modeling tools. Since UML is a visual modeling language, this shortcoming is substantial for modelers who don't want to redraw their diagrams.

Many modeling experts have written sharp criticisms of UML, including Bertrand Meyer's "UML: The Positive Spin", and a paper presented by Brian Henderson-Sellers at the MoDELS/UML conference in Genova, Italy in October 2006.

Reference:
http://en.wikipedia.org/wiki/Unified_Modeling_Language

Posted by 알 수 없는 사용자
,

XPath

Computer/Terms 2008. 4. 16. 13:27

XPath (XML Path Language) is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values (strings, numbers, or boolean values) from the content of an XML document. The current version of the language is XPath 2.0, but because version 1.0 is still the more widely-used version, this article describes XPath 1.0.

The XPath language is based on a tree representation of the XML document, and provides the ability to navigate around the tree, selecting nodes by a variety of criteria. In popular use (though not in the official specification), an XPath expression is often referred to simply as an XPath.

Originally motivated by a desire to provide a common syntax and behavior model between XPointer and XSLT, XPath has rapidly been adopted by developers as a small query language, and subsets are used in other W3C specifications such as XML Schema and XForms.

Reference:
http://en.wikipedia.org/wiki/Xpath

Posted by 알 수 없는 사용자
,

XSL Transformations

Computer/Terms 2008. 4. 16. 13:24

Extensible Stylesheet Language Transformations (XSLT) is an XML-based language used for the transformation of XML documents into other XML or "human-readable" documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into HTML or XHTML documents for web pages, creating a dynamic web page, or into an intermediate XML format that can be converted to PDF documents.

As a language, XSLT is influenced by functional languages, and by text-based pattern matching languages like SNOBOL and awk. Its most direct predecessor was DSSSL, a language that performed the same function for SGML that XSLT performs for XML. XSLT can also be considered as a template processor.

XSLT is Turing complete.

Reference:
http://en.wikipedia.org/wiki/Xslt

Posted by 알 수 없는 사용자
,