Software perspective-from software engineering to business engineering

Source: Internet
Author: User
    • Business engineering
    • Business engineering practices
Soft Component Engineering

SoftComponent EngineeringIt is an effective, practical, and high-quality research to build and maintain using engineering methods.Software discipline. It involvesProgramDesign Language, Databases, software development tools, system platforms, standards, design patterns, etc..Since the concept of "software factory" was put forward in early 1970s, the Research and Practice on software production technology and software production management have been carried out mainly around software process and software reuse. The main achievements include: put forward a wide range of object-oriented languages and related object-oriented methods, vigorously carried out the research and practice of Computer Aided Software Engineering. Especially in recent years, software reuse and production, software component technology, software quality control technology, and quality assurance technology have been widely used.

The concept of software engineering was proposed mainly for the "Software Crisis" in 1960s. It first appeared at the NATO (North Atlantic Treaty Organization) meeting in 1968. Since the introduction of this concept, we have carried out research on development models, methods, and support tools around software projects. The main achievements include the waterfall model, the development of some structured programming languages (such as PASCAL Language and Ada Language) and structured methods. Methods and tools such as cost estimation and document review are provided around the project management. Looking at the end of 1960s to the beginning of 1980s, the main feature is that the system implementation technology is studied in the early stage, and development management and software quality are emphasized in the later stage.

IT and business integration bita (business and it

The IT and business themselves have a high degree of complexity, and now the software industry is not very well integrated with the processing of the two, so that the combination of the two complex things becomes more complicated, as a result, the software is more complicated from the perspective of business to implementation. This is a constant phenomenon and problem, so now one of the most popular keywords in the IT management field is bita (business and it
Alignment), that is, IT and business integration issues.

There are also some conceptual hypes in the IT industry, and bita has been stuck in conceptual hyping for a long time. Although it has aroused the attention and interest of the industry and the media, it cannot be truly implemented
Go to products and practices. SOA, woa, rest, web services,
Cloud computing is no longer a new term for us. They often appear in discussions about bita and how to integrate businesses into the development content.
Domain) in terms of concept, and there are not many discussions on the problem domain. When there is no technology, the solution domain will be more important, but when there are so many technologies, we should pay more attention to the problem domain, which is also carried out
One of the transformations required for model-driven development.

Although I have read some bita content, it is still very vague in terms of sorting out concepts. Although I still have a poor understanding of it, I also hope to record some things. If you are interested, I can discuss it together, below I willBusiness engineeringLet's talk about how to better integrate business with it.

Business engineering

Software Engineering is a well-known field for our technicians. It focuses more onTechnical aspects of Software DevelopmentIt is also proposed to better develop software. Although it is very important, it is not enough to look at development from the technical level alone.Business engineering. I searched on the Internet and explained architecture and engineering in business engineering. I think it is good. If you are interested, you can check it out.

There are two perspectives for software development: business functions or building software perspectives. For example, we use a mobile phone:

    • From the functional perspective, we do not need to know how the phone's internal circuit and internal system work, but how to use it to make calls and take photos.
    • From the perspective of mobile phone engineers, how to make and maintain

In the industry, there are also products that reflect these two perspectives and how to combine them, as shown in bps6.1 launched by panyuan, which mainly addresses business and technical integration of processes.

As developers, we used to describe how an application should work from the perspective of building. Sometimes we will draw some business flowcharts, but it is not a standard model.
They are also inconsistent. Sometimes, some functional design is usually the first, but it is only the design of basic functions. The description is not accurate, and many functional decisions are left to developers. Even if some technical staff say
But also lower-level models.Programming LanguageTo describe, such as class diagrams, activity diagrams, and other UML diagrams. I think this method is more discounted-
Instead of model-driven development. Even if these class diagrams are available, they are also drawn at design time and will not be referenced during implementation.

The dominant idea of business engineering is that the business leads application development, replaces the model of how to work, and uses precise and standardized models to describe application functions (what). More Application Models of openexpressapp Development Platform
Many of them start with what. In fact, the idea of business engineering has not recently emerged. The omg mda is a model description method independent of technology, but the development of MDA is not very good because it focuses on
From some class graph modelsCodeLow-level model. DSL focuses on models in specific fields, which bring about greater compliance and flexibility. Therefore, it has developed very well in the near future. DSM has a similar overview.
Reading is also a kind of idea I like, including MDE and Soba.Business engineering focuses more on how to automatically execute the function model.Instead of similar to the process in which MDA focuses on the conversion model, the openexpressapp class library will generate code, but the model will be generated through modeling tools.

The biggest change that comes with business engineering isBuild application solutions led by business personnel, Software engineers will be transferred to the Development of platforms and tools, and business application solutions will be learned by the business and know how to useStandard ModelModeling business personnel to build. Standardized models need to be emphasized in business engineering. DDD also has the concept of unified language. business personnel and IT personnel must also perform modeling based on a unified specification During modeling, without a unified language, it is difficult to automatically execute the model. The cartoon below expresses the obstacles brought about by inconsistent communication languages :)

With declarative models, business personnel can join the development process earlier to improve product quality. Through Business engineering, application software can be developed more quickly and respond to changes better.

Business engineering practices

Many people know business-driven development, but they all find it difficult. The business project described above is just a beautiful yearning. However, I don't think this is a yearning. In fact, many people have already taken this direction. I have dominated the openexpressapp development platform mainly in this direction, and the application is also good, roadmap is only a matter of time. I think it is good for technology and thinking. I would like to talk about the key points of practical business projects. You are welcome to give your own opinions.


Method support

Some concepts of the software factory are described in the software factory method:

Tool support

DSL tools and model-driven software factories.

    • DSL tools are used to define domain model languages. You can use tools to customize DSL models, such as Enterprise Architecture Modeling (EA), interface modeling (UI), and command extension) domain, rule modeling, report, and workflow models ).
    • The model-driven software factory is a complete platform that can be used to build products, including a series of DSL models that can be executed. The openexpressapp framework is part of the software factory.

Application Support

More information:  Large-scale product development method-product line engineering 100222.pdfOpenexpressappframework for open source information system development platform 


Welcome to reprint, reprint Please note: Reprinted from Zhou jingen []

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: 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.