Model-driven SOA helps improve development team efficiency

Source: Internet
Author: User
Tags object model

Most of the friends who have applied software development are familiar with the traditional development lifecycle: The application begins with a business analyst drawing a business sketch on paper or in a flowchart tool, which is defined, and then delivered to the developer, designed, coded, assembled, and then applied to the business analyst for testing. , the business person tests the features outlined in the original design sketch, discovers the problem, reports a bug, and draws the developer to modify the code. Over and over again, the final delivery of the software is very rare and design 100% fit, most of the business staff and developers to compromise each other results. It is also ideal for the business people to be directly involved in the tests, most of which are tested by specialized testers who test their understanding of the business design, and their understanding of the business is biased against business analysts and developers.

It can be found that throughout the development lifecycle of the application software, a great deal of human and material resources have been spent on communication and misunderstanding to correct communication. In order to solve the communication problems, especially the communication between the business people and the technicians, many models are introduced in the software development process. The model can provide an abstraction to the problem to some extent and can be used as a common symbol for effective communication between different fields.

When it comes to models, you'll think of the usual database design of ER models, UML for application design, and some other business process models. With the continuous improvement of software development tools, many models can produce the application code directly, and can generate corresponding model according to the implementation code, as long as they provide complete requirement description. Most of these models come from the technical domain, such as the ER model and the models in UML. The bidirectional engineering between the model and the code greatly facilitates the design and maintenance of the application system. Changes to the model are faster and more efficient than changing the code, and avoids the misunderstanding of the model by hand coding. Relatively speaking, the model from the business domain can only be used as the tool of requirement description, and cannot directly map to the implementation of workflow and business system. And the advent of SOA has made a difference.

One of the important factors that makes SOA a hot topic in the industry is the abstraction of the modules of the application system, while providing a business-oriented and technology-oriented methodology. Object-level abstraction in object-oriented model-class, Object, attribute, event, etc.-is the first attempt by the technical field to make the business domain better understand the application system by imitating the existence of the objective world. SOA pushes this attempt to a successful step, with a higher level of abstraction, allowing the business function module-or "service"-to include more business-related factors and completely hiding the technical details of the implementation behind the standard interface interface. A higher abstraction of the "service" fits the abstract granularity of the business process model. The familiar model of business people can map directly to the implementation of workflow and business system.

So, SOA lets model-driven development Enter the business level, and business people, not technicians, become the innovation subjects at this level. In the lifecycle of software development, the "service" is assembled into the link of composite application (composite application), and the Division of labor is more clear and reasonable. The business analyst has the opportunity to directly generate the required business process implementation through the model, reducing the misunderstanding of communication with the technical staff. Technicians can focus on the implementation of specific business modules, especially for fully defined interfaces. Model-driven development follows the idea of agile development, in the cycle of prototype creation and refinement, business model, object model and data model, and so on all levels of the model is continuously complete, until the application system can be directly generated. And then the system maintenance becomes the maintenance of the model. The bidirectional project between the application system model and the implementation is further extended to the higher business process level, and the modification of the business system is done directly to the model, which is efficient, fast and reduces errors.

In short, model-driven SOA, with a higher level of business function abstraction, achieves two-way engineering of business models and business systems to help improve the efficiency of development teams

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.