written 6.9 years ago by | modified 2.9 years ago by |
Subject: Software Engineering
Topic: Engineering and Modeling Process
Difficulty: High
written 6.9 years ago by | modified 2.9 years ago by |
Subject: Software Engineering
Topic: Engineering and Modeling Process
Difficulty: High
written 6.8 years ago by |
1)The Reason It All Exists
A software system exists for one reason: to value to its users. All decisions should be made with this in mind. Before specifying a system requirement, before noting a piece of system functionality, If the answer is no, don’t do it. All other principles support this one.
2)KIS (Keep It Simple)
Software design is not a haphazard process. There are many factors to consider in any design effort. All design should be as simple as possible, but no simpler. This facilities having a more easily understood, and easily maintained system. This is not to say that features, even internal features, should be discarded in the name of simplicity. Indeed, the more elegant designs are usually the simple ones. Simple also does not mean “quick and dirty.” In fact, it often, takes a lot of thought and works over multiple iterations to simplify. The pay-off is software that is more maintainable and less error-prone.
3)Maintain the Vision
A clear vision is essential to the success of a software project. Without one, a project almost unfailingly ends up being “of two minds” about itself.
4)What you produce, others will consume
Seldom is an industrial- strength software system constructed and used in a vacuum. In some way or other, someone else will use, maintain, document, or otherwise depend on being able to understand your system. . The audience for any product of software development is potentially large. Specify with an eye to the users.
5) Be Open to the future
A system with a long lifetime has more value. In today’s computing environments, where specifications change on a moment’s notice and hardware platforms are obsolete after just a few months, software lifetimes are typically measured in months instead of years. Systems that do this successfully are those that have been designed this way from the start. Never design yourself into a corner.