软件设计思想的变化(13 年前)

下面是对一片文章的摘要. 看完以后告诉你它的出处.

  Source Code“The final goal of any engineering activity is the some type of documentation. When a design effort is complete, the design documentation is turned over to the manufacturing team. This is a completely different group with completely different skills from the design team. If the design documents truly represent a complete design, the manufacturing team can proceed to build the product. In fact, they can proceed to build lots of the product, all without any further intervention of the designers. After reviewing the software development life cycle as I understood it, I concluded that the only software documentation that actually seems to satisfy the criteria of an engineering design is the source code listings.”


软件工程的一系列活动最终是为了产生某种文档
,而能满足软件工程设计要求的唯一文档: source code

(Domain Driven 一书也提到的概念) 

Refinement “The software design is not complete until it has been coded and tested. Testing is a fundamental part of the design validation and refinement process. The high level structural design is not a complete software design; it is just a structural framework for the detailed design. We have very limited capabilities for rigorously validating a high level design. The detailed design will ultimately influence (or should be allowed to influence) the high level design at least as much as other factors. Refining all the aspects of a design is a process that should be happening throughout the design cycle. If any aspect of the design is frozen out of the refinement process, it is hardly surprising that the final design will be poor or even unworkable.”


重构的重要性.


What is Design

“The software design is not complete until it has been coded and tested. Testing is a fundamental part of the design validation and refinement process. The high level structural design is not a complete software design; it is just a structural framework for the detailed design. We have very limited capabilities for rigorously validating a high level design. The detailed design will ultimately influence (or should be allowed to influence) the high level design at least as much as other factors. Refining all the aspects of a design is a process that should be happening throughout the design cycle. If any aspect of the design is frozen out of the refinement process, it is hardly surprising that the final design will be poor or even unworkable.”

“Also consider how the process of software development is changing. Once upon a time we had the waterfall process. Now we talk of spiral development and rapid prototyping. While such techniques are often justified with terms like "risk abatement" and "shortened product delivery times", they are really just excuses to start coding earlier in the life cycle. This is good. This allows the build/test cycle to start validating and refining the design earlier. It also means that it is more likely that the software designers that developed the top level design are still around to do the detailed design.


明白设计的目的到底是什么, 空泛的没有得到检验的设计是没用的. 尽早开始编码检验和精化设计.

 

Test "Note that testing is not just concerned with getting the current design correct, it is part of the process of refining the design."


测试驱动开发的思想

 

Language“This says that the collective subconscious of the software industry instinctively knows that improvements in programming techniques and real world programming languages in particular are overwhelmingly more important than anything else in the software business. It also says that programmers are interested in design. When more expressive programming languages become available, software developers will adopt them.”


想想前不久的
people orient language

 

原文 " What is software design " from the C++ Journal in 1992.from the C++ Journal in 1992.

你的思想和它差多少?13年后的设计思想又有多少变化?当时的思想在现在的书中还不断频繁出现.而十三年前的技术现在还有多少在用?


题外话 有谁对RDF OWL Sementic Web比较熟悉,能否介绍一些书籍和学习材料,谢谢!!

你可能感兴趣的:(设计)