Grady Booch talks .NET and software development art

zhaozj2021-02-16  52

Grady Booch talks .NET and software development art

MSDN MAGAZINE

In

glory

Translation

Grady Booch is internationally recognized by the groundbrening work in the software architecture, modeling and software engineering process (Software Engineering Process). Since the founding of Rational Software in 1980, he has been chief scientist of the company. Grady is one of the earliest developers of unified modeling languages ​​(UML). He is the authors of Six Computer Science Bestselves, including "The Unified Modeling Language User Guide" (AdDison-Wesley, 1994). MSDN Magazine recently seized GRADY, asked him to talk about Microsoft .NET and Visual Studio .NET's impact on the world development world.

MSDN MAGAZINE:

How do you describe the trends and changes you have developed in the past five years? How do you describe your impact on these trends?

Grady:

Last summer, I was invited to do an important speech on software future at the International Conference on Software Engineering. As Alan Kay said, "The best way to predict the future is to invented it." We will of course help some of the future things for future. But considering that many people are doing the same thing, I decided to meet with about 500 people from around the world. That 500 people essentially include members of each computer association (ACM) (ACM) and IEEE working in software engineering, each healthy map spirit winner, many CTOS, CIOS, and some CEOs. From it, I summed up some conclusions about business and software itself. In fact, I will focus on the latter.

Undoubtedly, the emergence of web has changed everything, which is not only reflected in how we deliver applications, but it is also a means of building applications. We see that many people use the web as the virtual conference space of their projects, I think this is a significant significance.

In my opinion, the general trend of software engineering is indeed worthy of our discussion. I think that as a whole industry, in the late 1990s, I have begun to understand the best practices for software development. What can be made, what can't, and all kinds of tools for system finishing these practices. Of course, since then, there have been some interesting development results like XP. Here, I don't mean Windows XP, but refer to the original definition of Extreme Programming this term. I think it brings some interesting ideas about the social dynamics and psychology of the small team. The current reality is that the XP and Rational Process are not opposed to each other, but complementary. In fact, if you look at the scale of the organization you have, especially those who create web-oriented, they tend to maintain moderate scale. The truth is that no team is an island, and these teams tend to work with other teams. Therefore, on every level, you really need the appropriate process.

From a technical point of view, I think it should be understood in this order to understand a few major things that have occurred in the past five years: the first is to be mainstream for object-oriented technology; the second is the creation of UML, it lays a general language for us And the foundation of the software blueprint; the last point, the work mode concept of the best representative of the "four group". The true meaning of the pattern is that they represent another increase in abstract hierarchies. In fact, if you look at the entire history of software engineering, it is actually a process of improving the abstraction level to mitigate complexity. Object-oriented technology behind the design mode is just a general trend. I think the approach like Microsoft .NET Framework, I symbolizes a knowledge of the industry: there are quite a few things in the middle layer to be compiled. It truly represents the right separation of interest - who creates an app, who must architecture infrastructure, because .NET brings a lot of infrastructure, and in the past ten years, organizations have tried to create their own infrastructure. . Further, it creates so many wonderful standards such as SOAP and XML, which makes organizations easy to create quite "sexy", fairly complex applications, and these applications can make huge contributions to their business. This is our situation today.

MSDN MAGAZINE:

What changes you expected to see in the upcoming years?

Grady:

This is exactly my true role: perspective now, insights in the future. For the next three to five years, I am particularly strong for the two upcoming things. The first, I call it a collaborative development environment (Collaborative Development Environments, CDE), I think this will be used immediately by the readers of MSDN Magazine. Let us think about thinking about the build process of Windows 2000. It is developed by people in a team that this team is so large that they cannot live in the room in the same physical sense. I have heard that this team usually uses Microsoft Netmeeting to keep in touch with a larger team. In the construction industry and manufacturing, we can see the same phenomenon. The use of web is the basis for development.

I believe that in the next few years, the same thing will appear for the software development environment. Compared to tradition, it really symbolizes a mutation - integrated development environment for collaborative development environments. It is centered on Web and Artifact, which means that tools will be more incompatible, and for different customers (Stakeholders), they can show different views. Today, there are many different technologies, like Netmeeting and WebEX for things for conferences and media sharing on the Web, and discuss groups, virtual conference spaces, and virtual project spaces on the Web. Nothing is the killer application, but many small things collaborated with each other form these CDEs.

I indirectly mentioned the concept of multi-view, guided me to the next great leap-xerox Parc Gregor Kiczales and other people creating the concept of AOP (aspect-oriented programming). In fact, Charles Simonyi is working in the intendingal programming, in fact, is similar. CHARLES, GREGOR and I possess the future of software and software research at the NSF meeting last summer, the National Science Foundation, NSF). Three of us recognize that there is certain basic things in how to achieve software development from multi-dimensional view. CHARLES has some realistic ideas about IP, Gregor is also. We clearly make it clear about the concept of multi-view and create a system architecture. I think, I think about the plan for the next few years, I think AOP will become interesting development. Remember: not AOP to replace OOP, we see all the work of AOP, especially as Gregor, which is a supplement to the industry has accompanying UML and OO technology. I think that one of my last thing is that the software is still the foundation of most of the world's critical industries. Even during economic shrinkage, business, organizations and individuals still depend on software. They have endless demand for our professional staff. This is a very exciting era.

MSDN MAGAZINE:

Do you think you have directly affected all the trends you just talk about?

Grady:

That's right, especially in the OO programming field. I think I can declare, or say, I will be happy to make a statement: I may publish the first papers using the OO design concept, that is dating back to 1982 or 1984. Through our common work, Bjarne Stroustrup and I know each other to a certain extent. In the late 1980s, he started a journey with me, because we found that his work in C and I have complementary each other in the object-oriented design work. Therefore, I think there should be my little credit in helping people use C aspects effectively.

Of course, for the creation of UML, Dr. Ivar Jacobson, Dr. James Rumbaugh and I am a key "inciteer". In fact, even if we are the original creator of UML, its development has also beyond what we imagined. We see that the UML is used to model business processes for real-time embedding systems, and in fact, someone is currently making UML to Web Servieces mapping work. I think it is very significant, because as a migration to increasingly complex things (like Web Services "has been" overlooked "language or XML itself), we found that when you care about scalability When there is a problem, there is a set of universal blue closures that allow all customers (Stakeholders) to make it greatly changed in the management of system complexity. The last thing to say is that I have been in playing with AOP and models and something like this, I am a guy.

MSDN MAGAZINE:

I heard that Microsoft is engaged in .NET, your first reaction is?

Grady:

I think this is great, because when I see people who have struggled in Microsoft and COM / COM world and non-Microsoft one CORBA technology, my reaction has always been, this complexity is far beyond They should have. So, I cheat the arrival of .NET, because it makes people have to compile the things you have to do. I also want to say .Net also symbolizes another increase in abstract hierarchy. Previously, there was nothing to rely on, so there will be multiple operating systems, so there is any middleware. Now, there is something like .Net, it improves the abstract level. Therefore, as a developer, I can focus on me and have fundamentally added added value - mainly in my business, I can worry about all the infrastructure below me. Anything that can reduce complexity and make me create high-quality applications faster, I welcome, and .net has done this. MSDN MAGAZINE:

Do you think .NET Framework changed the practice of object-oriented analysis?

Grady:

Ok, I want to answer this question from the perspective of methodology, but I will allow me to answer from the perspective of the team and the process. In the past few years, I have seen many organizations struggling to use all of these technologies, and there is a considerable technology to stir together, so that they should talk about what technology should be used, it is a challenging This situation is increasing. We have found that in the organization, there is a small number of people to "middleware" and "pipe" are of the chest, and the other part of the person has a business. However, let these two teams communicate with each other, but they have always made people. You are in chaos. Comrades engaged in the database is almost living in Schemas, and everything about it. Worse, you have the content of the content, and they bring additional complexity. These people know HTML, they can create a weird web page of the elf. Suddenly, a modern system appeared, a series of customers far more than the past complicated customers (Stakeholder). Therefore, these people have a challenging together. UML can help team implementation software development best practices, it has confirmed us.

As Microsoft .NET comes, what you see is that all these things can be more efficient to communicate. .NET improves the abstract level, as long as someone knows my business, I can easily use this business from my project independent or separated, and on these higher levels of abstraction Build work.

From the perspective of methodology, I think the appearance of .NET, and object-oriented technology is still unbelieving to complement each other. Because all we see all the structural systems that depend on this technology, the bones are still object-oriented. .NET (especially through web services) provides a set of objects, people can be interested in use.

I think. Net also created an opportunity for building a higher level of framework. In fact, about this effort, our Rational has something called reusable asset specification, ras, and Microsoft is one of the members of this community. This group consists of all large component manufacturers, and other IBM, Component Source, Flashline, and more. The initial motivation is to specify a common way of delivering resources, including code resources, test resources, distribution resources, version resources, and demand resources, all of which is related to the main framework. The RAS specification has been operated more than a year and is quite stable. We first deal with the .NET party. Now, this team's attention is focused on collecting potential non-.NET frameworks and other middleware, so we can deliver more advanced patterns. You can think this symbolizes another upgrade - from the design pattern of the "four group" into the framework. Once I deliver the frame (and, in the way, these congenital "is OO), I will provide a mechanism, the founder of the application can be based on application build work. Therefore, it has a bridge between .NET and previously delivered something. MSDN MAGAZINE:

Visual Studio .NET integrates quite a number of modeling characteristics, what do you think?

Grady:

I think this is great! This shows that Microsoft also recognizes modeling of modeling. I have always been clearly clear, but I will point out this, it is inevitable that there is "Wang Po selling melon". I think anything that can drive modeling is excellent. Here, I would like to mention another job of Edward R. Tufte, as well as his classic book "Envisioning Information" (Graphics Press, 1990) and "The Visual Display of Quantitative Information" (Graphics Press, 2001). According to his observation, appropriate model and proper abstraction, not only can help you handle complexity, but also help you look at the problem in a different way, so you can break through this complexity. This is all the UMLs. This is also the reason why the modeling is significant. Modeling helps you handle complexity, which also helps different customers (Stakeholders) communicate with each other. If I am a business person, I understand my business rules, but I really don't want to learn C # or Visual Basic, I just want to express these business rules in my own language. By the way, this is also the concept of the basic principles related to Charles Simonyi after IP. Put this problem to this level, just the location of UML. This is why I am happy to see more and more modeling support in Visual Studio .NET.

MSDN MAGAZINE:

With Visual Studio .NET, now it is easy to mix in multiple languages ​​in the same project. What is the special opportunity that it leads to, or, special problems, your view is?

Grady:

I used to be a blind language belief. As many years ago, I thought ADA is the language given by God. Then I found C , so I thought I was wrong, then I changed my belief. Then I saw SmallTalk again, then I saw other languages. I realized that I need some language that I applied to me. However, language selection is often not for technical considerations, as well as cultural decisions related to my team culture - what they used to use, they have already worked, and so on. I examine the existing large number of languages ​​- C #, C , Visual Basic and many other languages ​​in the same space. I am trust now, it's right, from some extent, they are different, but from another level, they are also poor difference. Unless I talk about the weird language like Clos (Common Lisp Object System), for me, the language is not too tight. We talk about the language used by most developers, it doesn't make much sense for me. This is something around those languages: its framework, its tools, and its components, and so on. The reality is that I found that only a little pitiful project only involves a language. I just talked about the architect of a cellular phone manufacturing company. He introduced me to the next generation of cellular calls, which will involve a major language, start from compilation, and have been going up. This is the actual situation of most projects. They are not using a language, they are not homogeneous, but heterogeneous. Whether you like or not, cultural (CULTURE) also requires organizations to handle multilingual issues. A group may use a single language, but as an overall organization, there is usually a variety of languages. Therefore, anything that can be paved in the bridge in these gaps, and anything that can knocked down these languages, it is great, this is the good at .NET.

MSDN MAGAZINE:

Have you used C #? What impact do you think?

Grady:

Let me reiterate, I have no longer being in the language for many years, so I don't care about the new language. I think, C # should have some wonderful features, and because it is not the only language I can use for .NET, this is a great thing. For C , in some respects, it is simple and elegant. In my things I have, I still mainly use C , but I work more than the system other than WEB-intensive.

MSDN MAGAZINE:

Another aspect about .NET is that it can use the coexisting assembly (Side-by-scruts). You think this is an advantage, or it may lead to a more hgful rate, because they can be easily repaired? (Translation: The different versions of the same assembly can be saved in the same machine or even in the same process.)

Grady:

For the release version of the Malaysi Tiger, I don't think it is only because they can be more easily repaired, the market will tolerate them more than before. Anything that promotes process (Process) is a positive progress. In Rational, we have ClearCase, which is a powerful tool because it supports multiple distributions and various views in system development. Today, you never only have a single distribution, especially in a distributed environment. You have different versions of different versions of different places, and you have to make changes. Therefore, we need to promote rapid, high quality, improve system issuance. MSDN MAGAZINE:

Do you have seen the guidelines for setting up a project architecture in Rational or other companies? Just like you can use the business template in Visual Studio. Is this way to have a precedent for success?

Grady:

First of all, I am a unrelated architectist. Here, in Visual Studio .NET, we have an IDE that allows the architecture to force the view to this world. In a sense, this allows some degree of multiDimensional development, and makes the architecture to get some control, this is a good thing. Now, whether the organization can control the architecture, confession, depends on their understanding of the importance of architectures. According to our experience, solid architecture is an excellent "prophet" project success. I don't mean the architecture of the field, but to a certain extent, the architecture of the important design decision system will be organized.

One of the things I do in Rational Company is to act as a project architecture consultant, so I actually made a lot of architectural work. About a year ago, I have worked with a large bank (just merged with another Swiss big bank). He examined the system they would build, I express his meaning from two aspects. First, he said that there is no enough PHDS in Europe to build what he needs to build. Second, he said that software is fundamentally, that is, bank, so they are doing, for the future, it is crucial. As a architect, he realized that many people may write code, not left, is right, there is a lot of major technical risks in front. The purpose of the architecture group is to establish a basic framework and a basic mechanism, all applications create this. By developing and verifying these things, we must ensure that they have to pass many other people, the architecture actually acts as a means of sniper risk. Speaking, I understand, just as Tom Gilb said, "If you don't actively sniper your risks in your project, they will actively snipe you." A major technical risk is whether there is a strong architecture. Speaking of architectures, I don't refer to "Tight-tight limitations", I refer to the critical mechanism for building applications.

MSDN MAGAZINE:

In this magazine, we can hear two distinct sounds. We have many developers who are extremely exciting to .Net, they have explored it, and even use Beta software to build and run Web Services. However, we have also been criticized by those who still work hard to handle a lot of legacy systems and still don't want to hear something about .NET. Do you have any suggestions about today's developers, what do you think they should do in the process of advance?

Grady:

Technical mixing has always been a challenge. You know, many legacy systems can make people immediately carry out business, however, they still have to advance to some new technologies. The .NET is indeed a very different construction system by web service. The system becomes the form of service to deliver, and these services use SOAP and XML through the firewall to transfer objects. In fact, this is the very natural direction of web intensive systems being developed. If you look at all W3Cs are doing, and Tim Berners Lee's concept of Semantic Web, all of these technologies are increasingly pushed in that direction. Therefore, this change is inevitable. I have given some universal guidance perspectives for some of the best development practices: architecture first, modeling, controlling change management, these are basic principles, they can make you The band of technology changes, and that is what you have to pay later. If you move from C to C #, there is no big jump; from Client / Server to a web-intensive system, it will be somewhat uncomfortable; but from today's Web-intensive system migrated to Web Services, there is not so Large action. I expect that we will see organization efforts to create their own web services, because they do not choose to build their systems on a public service, unless those common services are provided by platform members like Microsoft. . It handles trustory, availability, security, and scalability. Therefore, they will first create their own services to explore water, and then build their own systems on public services. MSDN MAGAZINE:

I heard a lot about design patterns and you also mentioned AOP. Do you include these people to give a general recommendation?

Grady:

For design patterns, it is absolutely included. All of all the teams with ultra-high productive forces have used design patterns. The greatness of design patterns is to provide a higher level of abstract communication. When I am in a project group, I said, "I should use a proxy mode", "or" you should use X mode ", they immediately understand what I mean. Moreover, the best project will also start to create their own model, great. Therefore, design patterns are based on certain platforms because they are more efficiently used as object-oriented technologies.

As for AOP, it has already existed some years. We have seen some thoughts have made fruit, but I still don't want to gamble my business on AOP. However, as a technique, it really evokes my interest. I pay attention to these things, and I am worried about it because I want to help people do the next leap to create a high quality system.

MSDN MAGAZINE:

Do you have any comments to add? Or, what additional news is willing to convey our readers?

Grady:

If you come to make a summary, I will emphasize three things. First, software development is still the most important industrial in the world, so our industry is still refueling the world economy. The quality and persistence of business is still dependent on software. Organization, the country, every person relies on software, and this situation will not change. If you have to say something, it is more important than time, the software will become increasingly important.

The second point I want to say is that software development is still extremely difficult. This is also why professional staff in this field, we must use all possible means to deliver the system on time, and ensure excellent quality, because in a sense, the world relies on us. The third thing I want to mention is that all this makes it for the software industry, is in an exciting era. I am very happy to see .Net takes the first step. From Rational's firmly adopting best practices, it is a supplement to Microsoft. I am happy to Ras specification, design model, and what I mention this. All of this is the contribution to the toolbox of individual developers, team developers, and teams to help them build high quality systems.

- Full text -

转载请注明原文地址:https://www.9cbs.com/read-27816.html

New Post(0)