# HG changeset patch # User meillo@marmaro.de # Date 1265804344 -3600 # Node ID aebbe3e76f5eb2863fc954c058c46df3d5a7a232 # Parent fbd7baf6a61f6592704b4bfdea0a5829084024f2 minor rework diff -r fbd7baf6a61f -r aebbe3e76f5e unix-phil.ms --- a/unix-phil.ms Fri Feb 05 16:40:51 2010 +0100 +++ b/unix-phil.ms Wed Feb 10 13:19:04 2010 +0100 @@ -28,7 +28,7 @@ .ti \n(.iu This paper discusses the importance of the Unix Philosophy in software design. Today, few software designers are aware of these concepts, -and thus most modern software is limited and does not use software leverage. +and thus most modern software is limited and does not make use of software leverage. Knowing and following the tenets of the Unix Philosophy makes software more valuable. .AE @@ -47,27 +47,28 @@ Introduction .LP Building a software is a process from an idea of the purpose of the software -to the finished program. +to its release. No matter \fIhow\fP the process is run, two things are common: the initial idea and the release. -But the the process inbetween can be of any shape. -The time of release and the maintainance work after the release are ignored here, for the moment. +The process inbetween can be of any shape. +The the maintainance work after the release is ignored for the moment. .PP The process of building splits mainly in two parts: the planning of what and how to build, and implementing the plan by writing code. -This paper focuses on the planning \(en the design \(en of software. -The here discussed ideas may be applied to any development process. -Though the Unix Philosphy does recommend how the software development process should look like, -this shall not be of matter here. +This paper focuses on the planning part \(en the designing of the software. +.PP +Software design is the plan of how the internals and externals of the software should look like, +based on the requirements. +This paper discusses the recommendations of the Unix Philosphy about software design. +.PP +The here discussed ideas can get applied by any development process. +The Unix Philosphy does recommend how the software development process should look like, +but this shall not be of matter here. Similar, the question of how to write the code is out of focus. .PP -This paper discusses the connection between software design and the Unix Philosphy. -Software design is the work between the requirements and the plan of how the internals and externals -of the software should look like. -However, the term ``Unix Philosophy'' was used but not explained yet. -.PP +The name ``Unix Philosophy'' was already mentioned several times, but it was not explained yet. The Unix Philosophy is the essence of how the Unix operating system and its toolchest was designed. -It is no limited set of rules, but what people see what is common to typical Unix software. +It is no limited set of rules, but what people see to be common to typical Unix software. Several people stated their view on the Unix Philosophy. Best known are: .IP \(bu @@ -102,7 +103,7 @@ .] .LP These different views on the Unix Philosophy have much in common. -Especially, the main concepts are seen by all of them. +Especially, the main concepts are similar for all of them. But there are also points on which they differ. This only underlines what the Unix Philosophy is: A retrospective view on the main concepts of Unix software; @@ -117,11 +118,13 @@ Importance of software design .LP Why should we design software at all? -It should be general knowledge, that a bad plan is better than no plan. +It is general knowledge, that a bad plan is better than no plan. As stated earlier in this document, the process of building a software means going from an idea to a release. The development process tells how to get from the idea to the release. -Software design tells how the built software should look like. +Software design is the shape of the built software. +This means, that different designs of a software would be different target points to go to. +Thus, the design of a software defines the global direction the development goes. .PP It is not enough that the released software offers all requested functionality. It is a misbelief that only function matters. @@ -138,7 +141,7 @@ Developers should, for their own best, have maintainability and extendability in mind when they design the software. .PP -Users of the software do not care about maintainability and extendability, +Users of the software, in contrast, do not care about maintainability and extendability, at least not directly. They care about usability and flexibility. They want the software to directly solve their problems.