Software design is a (1) process.It requires a certain (2) of flair on the part of the designer. Design can not be learned from a book. It must be practiced and learnt by experience and study of existing systems. A well (3) software system is straight forward to implement and maintain, easily (4) and reliable. Badly (3) software systems, although they may work, are (5) to be expensive to maintain, difficult to test and unreliable.