Tuesday, October 8, 2013

(W3) The life cycle concept

We have discussed research method exercise done by different groups, it was quite interesting to hear the various approaches and techniques applied.



READINGS: SILVER BULLET, DESIGNING, ESTIMATING




No Silver Bullet Essence And Accidents Of Software Engineering- Brooks Jr., F. P.



Brooks makes a distinction between accidental complexity and essential complexity, and asserts that most of what software engineers now do is devoted to the essential, so shrinking all the accidental activities to zero will not give an order-of-magnitude improvement. Brooks advocates addressing the essential parts of the software process. While Brooks insists that there is no one silver bullet, he believes that a series of innovations attacking essential complexity could lead to significant (perhaps greater than tenfold in a ten-year period) improvements.



At the heart of the argument is the distinction between accidental complexity and essential complexity. Accidental complexity relates to problems that we create on our own and which can be fixed; for example, the details of writing and optimizing assembly code or the delays caused by batch processing. Essential complexity is caused by the problem to be solved, and nothing can remove it; if users want a program to do 30 different things, then those 30 things are essential and the program must do those 30 different things.



Brooks claims that we have cleaned up much of the accidental complexity, and today's programmers spend most of their time addressing essential complexity. One technology, that had made significant improvement in the area of accidental complexity was the invention of high level programming languages, such as Fortran at that time. Today's languages, such as C, C++, C# and Java, are considered to be improvements, but not of the same order of magnitude.



Brooks goes on to argue that there is a difference between "good" designers and "great" designers. He postulates that as programming is a creative process, some designers are inherently better than others. He suggests that there is as much as a tenfold difference between an ordinary designer and a great one. He then advocates treating star designers equally well as star managers, providing them not just with equal remuneration, but also all the perks of higher status: large office, staff, travel funds, etc.



The Chaos Model And The Chaos Cycle. ACM SIGSOFT Software Engineering Notes - Racoon, L. B. S



In computing, the Chaos model is a structure of software development.The chaos model notes that the phases of the life cycle apply to all levels of projects, from the whole project to individual lines of code.



* The whole project must be defined, implemented, and integrated.

* Systems must be defined, implemented, and integrated.

* Modules must be defined, implemented, and integrated.

* Functions must be defined, implemented, and integrated.

* Lines of code are defined, implemented and integrated.



The chaos strategy is a strategy of software development based on the chaos model. The main rule is always resolve the most important issue first.



The chaos model may help explain why software tends to be so unpredictable.It explains why high-level concepts like architecture cannot be treated independently of low-level lines of code.It provides a hook for explaining what to do next, in terms of the chaos strategy.
Full Post

No comments:

Post a Comment