Tuesday, July 13, 2004

Computer provide greater reliability than the devices they replace.

Computer can provide greater reliability than the devices they replace. Computer is a powerful tool that can make our life easier. It can process a lot of task within a second where human need to spend probably a day or 2 to do so. For example like some mathematic questions. Some computer’s software can handle those complicated questions in a fraction of seconds and the probability of getting errors are nearly zero because the software is developed by an expert programmers and have been tested and proven no error. Thus this kind of software can increase the productivity of human and in order to provide reliability than the device they replace.

Testing in Therac-25

Testing software and formal verification of software can remove all the errors; this myths is not totally right, because the software testing and formal verification only can remove all the identified errors. But not the newest or the unidentified errors. As we can see in the Therac-25’s article which state about the accidents that happen involve with the Therac-25, but the testing still one of the most important factors that can minimize the errors. The more testing we done the better reliability we get. Especially when the error connected with the user safety. As we know from the reading by Nancy Levenson, who adopt some part from paper about Therac-25 by E.Miller, director of the Division of Standard Enforcement, CDRH, in the conclusion of his paper, said, “FDA has performed extensive review of the Therac-25 software and hardware safety system, We cannot say with absolute certainty that all software problems that might result in improper dose have been found and eliminated. However, we are confident that the hardware and software safety features recently added will prevent future catastrophic consequences of failure.” From that statement we can see that the testing can not eliminated the errors that might be happen, its only can solve the errors that already detected.

Therac 25 of Four Myths

According the article “ An investigation of the Therac – 25 Accidents” based on my research from the Therac 25, I will understand that the Therac 25 in two years will cause the six of serious accidents occur to the patients between the 1995 and 1997. And commonly this accidents have happen lack of hazard analyze from the medical computer system, this is because the most of manufacturer and company lack of building the system with the quality assurance and does not taken the serious about the safety procedure to building the software perspective. However, at here I want to discuss about the four myths to regarding the safety of software, to find of these statement pertain to these Therac 25 case.

Now let go though one by one about those myths:

Myths 1: “Computers provide greater reliability than the devices they replace”
For this statements I support the computer provide the greater reliability then the device they replace. This is because the computers can perform the most of complex task that human cannot to accomplish it and produce the accurate result and output than the physical device. To date, the computers always develop by using to control the device into the machine. I give the simple instance; to date the many system is for all time to develop the safety device. Example The auto always provide the additionally safety devices to the human safely, such as the air bag, ABS system, Automatic System Lock Control and the LBS to protect the human safely. This safety device always control by the small chip computer. If without the computer control these devices, the safety device cannot follow the procedures to prompt up the air bag when you confront the accident. That is why I support the computer provide the greater reliability than the device they replace.

As conclusion for these Myths, “ the computer are man – made, therefore the error are always due to us. The computer error always link back to the human error, this is because the people control the computer function. If don’t know well about the computer functionality that might affect of our safely.

Myths 2: “Increasing software reliability will increase safely”

For these Myths, I wan to say that the Software may be correct in 100% reliability but it may not be 100% safety because of some problem from the human to make the mistake, for just now I mention that “ software system work and control by the people.” Increase the reliability not meaning the safety also is increased, but I believe high reliability can increase the most stability from the system.



Myths 3: “Testing software and formal verification of software can remove all the errors”
From these Myths, I no really disagree this statement. The software may cause many error or bugs cannot completely to be solve by the software engineer through the testing (test plan). As what I say, the testing and verification only can minimize the errors, but can’t totally to remove all the errors at the time. New errors will occur the new condition. The people cannot predict the new error occur in what time in what situation. Therac 25 is tested 2700 hours, but still cause errors exist, this is because the Therac 25 lack of documentation on software specification and software test plan.

As conclusion the documentation on software specification and software test plan is important procedures to test the software by the user, The system need to repeat test time by time, even though the Therac 25 tested 2700 hours, this is because the new errors always occurs when you solved the errors exist in the software.


Myths 4: “Reusing software increasing safety”
From these Myths. I agree reusing software is Safety, this is because reusing software that have been proven before and the people will have pass experience and flexible to using the software.

For these Myths, when we reusing the software, we need to make sure the reusing software was not having any errors with the system. Of course, the software engineer need to correctness to reuse the software before they create the Therac 25.

Monday, July 12, 2004

Invalidity of the 4 myths...

now I’ve changed face & not supporting the 4 myths... :P

1. Computers provide greater reliability than the devices they replace.
2. Increasing software reliability will increase safety.
3. Testing software and formal verification of software can remove all the errors.
4. Reusing software increases safety.
================================================================

1. It is not really true that computers always provide greater reliability then the device they replace... because there must have some operations that is more suitable for device to operate by itself mostly then by the software system... as software system might be too fast & too direct and so it may cause the device to malfunction or overworked... and even the device might have missed some of the commands issued by the software system because the device cannot catch up with the commands...

2. Not really because reliability does not means there will not be any errors that awaits to be occurred, so there will also have the risk of occurring unexpected errors, which maybe critical to the system and even human lives & living things. As the case of therac20, it is said to be safe because it does not cause any problems or harm to humans, but it is actually not safe, as you know, the software is reused on therac25 and the incidents occurred are software errors from therac20.

3. Testing and verification cannot remove all errors because there are always some hidden parts that is not included in the testing plan and so, only when software are delivered and used by customers and users, then the error maybe found or identified, in some case, the error exist but never been identified & maybe only after new version is out, then they know the older version has error that is not identified.

4. Reuse software doesn't mean it will perceive safety, even though if that software has excellent past record of reliability and safety, because when the software is reused, it is implemented into different hardware system and/or different environment, where the software previously doesn't support the different hardware or environment. And mostly, reusing software will have made some modification and these modifications are not proved to be compatible or efficiently implemented into the software together with earlier version's functionalities. So, reusing software actually have to perform complete development procedures & phases, such as full complete design and detailed testing, which includes testing of previously existed functionalities.

The safety of the software is not easy to measure

Therac 25 case verifies that computer does not always provide greater reliability than the devices they replace. Therac 6 and Therac 20 are noted to have less damaging errors than it is in Therac 25. Therac 25 does not perform its intended function as it is required – it harms people. The failure of it also shows that the extension of the previous model not only provides lesser consistency but also a decrease in safety.

Reusing software means accumulating errors during the software development. The errors in the earlier deliverables will be added to those in the latter project. That is the reason why the proposed software generating from the reused software can contain the same errors and bugs as the previous one if it is not intended well. It is stated from the reading that “Reuse of Therac 6 design features or modules may explain some of the problematic aspects of the Therac 25 software”.

Testing software and formal verification of software cannot remove all the errors. It perhaps can reduce the errors because of the extensive testing, but still there will be residual software errors. There is no errors-and-bugs free software.

Sunday, July 11, 2004

Testing software is not enough to assure the safety of critical system.

There are several points or concepts why testing is not enough to provide safety:
First of all, testing cannot prove correctness. In other words, testing can show the existence of a defect, but not the absence of faults. The only way to prove correctness via testing would be to hit all possible states, which as we've stated previously, is fundamentally intractable.
Second, it is hard to predict the reliability of software based on testing only. To do so, it would require accurate statistical models based on actual operating conditions. The problem is that such conditions are seldom known with confidence until after a system is installed.
Third, even if you can test a product against its specification, it does not necessarily speak to the trustworthiness of the software. Testing can give us some idea concerning its relative reliability, but may still leave us distrustful with respect to the safety-critical areas of the system.
That is why we still have to recognize the limitations inherent in testing as a means of bringing quality to a system.

Saturday, July 10, 2004

the 4th myths are not always right

1st myth: Computers provide greater reliability than the devices they replaced??
I’m not fully agreed with this statement, because if we could see, paper and pen are the most traditional devices to be used in the older days and it is still in use nowadays because of its integrity, where people trust more over paper, because it is more reliable on some things.
2nd myth: increasing software reliability will increase safety??
I don’t agree with increasing software reliability will increase safety because you might have computer technology with high reliability but there will always be some error in every system. We will never be able to make a flawless system. Even the latest technologies have bugs and errors.
3rd myth: testing software and formal verification of software can remove all errors??
As I say before testing and formal verification will reduce major errors, but there always be error no matter what, even Microsoft with the Microsoft windows XP product had some weaknesses where they produced the service pack2 patch to fix the holes.
4th myth: reusing software increases safety??
I agreed with this statement because in some case by using the same software over and over again will make us realize what’s the weakness is and what’s the advantage. And will try to update or patch the holes it might have.

Friday, July 09, 2004

Software Myths are not always true at all cases

Increasing software reliability will increase safety. I am of the opinion that this myth is not true at all cases. Reliability is different with safety. Any method that can improve the reliability of software is helpful, but it is important to remember the difference between safety and reliability. Just because a system is reliable-- meaning it is operational for long periods of time -- does not make it safe. It is quite possible that when the software does fail it will put the system into an unsafe state, or even if it is operating correctly according to its requirements it may still perform an unsafe behavior. Safety does not come from correct software alone; it comes from understanding the system as a whole. No single component can make a complex system safe. There isn't a safety subsystem that can assure a system will always remain safe. Perfect software does not mean safe software, and buggy software can still operate without producing safety hazards

Testing software and formal verification of software can remove all the errors. It is quite impossible to make complete software testing. Mechanical devices are different with software. Mechanical devices are linear; if you test the endpoints and the middle of an input on a mechanical device you can get a pretty clear picture of how well that device functions. While, software is non-linear. Any potential input to a software artifact could cause a failure, and the degree of failure does not relate to the amount of error in an input. One bit flipped can crash an entire operating system, but the same piece of software may deal well with completely corrupt packets. No real system can be made completely safe. That is why software testing cannot be done perfectly.



Thursday, July 08, 2004

The reality has deviated from software myths

Based on my perception, I disagree with the myths regarding to the safety of software. Many accidents had happens in regard to safety critical machine. The myths believed by many people had caused some accidents that deadly harmed people. Because of these myths, many people were overconfident and complacent with the software created by human. They believed that good quality software must be able to run in any hardware and operational platform. Many experts said “if the software can work well now, it must be able to work well later in other platform”. This is one of the factors that will cause safety critical accidents. One of the examples of accidents except therac 25 is Ariane 5. This accident has similar case with therac 25. The manufacturer had reused the same code from the previous version Ariane 4 without good testing. They believed that code reuse that presented good performance must be able to run well also in Ariane 5.
Safety critical accidents had proven that the reality has deviated from the software myths. The third software myth said that computer provide greater reliability than devices they replace. Even though the software does not break or wear out (corrosion, random failures), software as pure design fails due to design errors. These are abundant, even in thoroughly tested software that has been in use for a long time.

The fourth software myth said that increasing software reliability will increase safety. I disagree with this statement because software reliability can be increased by fixing the errors but it doesn’t affect the safety. Moreover, safety critical errors are ultimately due to requirement-specification errors and safety is not software’s property but system’s property.

The fifth software myth said that testing software and formal verification of software can remove all the errors. In fact, formal verification can only prove that the system satisfied the specified requirements. Many software critical errors are specification errors.
The sixth software myth said that reusing software increases safety. Conversely, reusing software components may increase reliability in some situations, but necessarily safety. It may cause new critical risks. Generally, codes reuse can be safe if the codes are being reused in similar hardware and operating platforms. Hence, in some cases, the myths do not apply to software critical system and have deviated from the reality.

Find some of critical problem in Therac

After I study In the Therac 25 accidents articles, I will found the a few of accidents occur to the patients, and this accidents have happen lack of risk analyze from the computers system, human resources, laws and reporting the software system.

At this article, I will found that the Therac 25 have to reuse the Therac 6 module and therac 20 routine, the (AECL) Atomic Energy Commission Limited will confident and believe that no problem on the software of the Both Therac. Finally the system will run the complex cause many errors to the software and make the some one die by using the system.

By this point we know that, some time the reusing software is cannot actually can increasing the system safety, even thought that would affect the human safety

Some doubts about 4 myths

According to the point number 1 and 2, i do not agree with the statement number one, human itself can not depends on the reability of the computer itself, even though it said that nowdays the computer reability is high. when the software is more secure, the more of hackers will upgrade themselves to penetrate those security. We can not deny that the hackers are smarter than the good people who build the reliability of computer.

For number 3: as we know, Microsoft is one of gigantic company that specialized in software. But what happened during the launched of Microsoft XP? When Bill Gates demonstrated it, THE BLUE SCREEN HAS APPEARED. When you say that testing and formal verification can remove all of the errors, have you think that Microsoft has many testers? Do not try to say that they did not test and verify the product frequently. If such gigantic company does the mistake, how about the other software housing?

My point for number 4 almost the same as number 3: Microsoft always upgrade Windows Operating System to become more stable and stable. For my experience, The most stable Windows product is Windows 98, even though the features are not as good as Windows XP. Do you know about the virus that only attack the users that use Windows XP operating system, i forgot the name of the virus. When you connect to internet, the trigger will be on mode and there is message box that asky ou to close all of your applications because the computer will be shut down automatically in 60 seconds. I belive that Microsoft XP is the upgrade version from the previous windows, SO THE REUSE OF SOFTWARE DOES NOT GUARANTEE THE SAFETY OF YOUR COMPUTER.

i support the 4 myths

1. Computers provide greater reliability than the devices they replace.
2. Increasing software reliability will increase safety.
3. Testing software and formal verification of software can remove all the errors.
4. Reusing software increases safety.
Evaluate the truth of each of these statements as they pertain to the case

1. Computer provides greater reliability than the devices they replace I really support this because when there is reliability then there will be a safer system or devices. When we have a reliable thing or device that means we will get a better satisfaction on the service just like computers nowadays where computers today is pretty perfect for our need nowadays, I’m no saying it always be reliable, most of the accident happened related with computer is not really the computer’s problem, it usually human error which causes the computer error.
2. Increasing software reliability will increase safety it is not always because most of the time software reliability is already meet the need of what the word “reliable” means but sometimes human error is the cause for every mistakes on the system, either the user or the builder.
3. Testing software and formal verification of software can remove all the errors. When we’re talking about the logic; yes I agreed, because testing makes perfect, when we emphasizes on the testing then we will be able to find most of the error but not all of them until it is perfect. Because in every system there will be bug that needs to be fix either with upgrading the version or by delivering the new patch to fix the hole in the system.
4. Reusing software increases safety is true because we already know the risks of the older software that we’re using and by learning from the past experience we could protect our selves by upgrading the older system into the new one. By updating using patch upgrading the features to what is needed, but make sure update until the requirement needed to be, no need to be more then what it is needed.

Wednesday, July 07, 2004

The 4 myths of Leveson in Therac25

I support the 4 myths listed by Nancy Leveson. I do agree on her statement that computers provide greater reliability than the device they replace. Therac 25 provides greater reliability than its older versions – Therac 6 and Therac 20. While Therac 6 and Therac 20 only capable of producing Xrays in a 6 MeV and 20 MeV dual mode respectively, Therac 25 with its new electron acceleration feature can deliver either photons at 25 MeV or electrons at various energy levels. It needs much less space to develop comparable energy levels and also more economic to produce. Refer to the reading, the Therac 25 is notably more compact, more versatile and easier to use than its previous versions it replaces.

As the software reliability increases, the safety of the system will raise. Increasing the software reliability means increasing the stability and consistency of the system – resulting in less software failures and breakdowns.

With testing and formal verification, the errors on the software will be much reduced. The rigorous testing must be performed each time a modification is made in order to ensure the modification does not affect the safety of the system. It also ensures that both hardware and software perform as designed when installed. If these testing and maintenance actions are run extensively, it is believed that almost all the errors can be removed.

My last point is that reusing software also can increase safety. Because the software has been previously installed and implemented, all the errors and bugs reported can immediately take into actions. The software generated from this fixed software, of course is more reliable and secure. Therefore, reusing the software increases safety.

Four myths of safety of software by Nancy Leveson

Computers provide greater reliability than the devices they replace.
Where is reliability??


In my opinion, I don’t agree that computers can provide reliability than the devices they replace. From my opinion, I think most of the computers or software they use are not custom made or specialize in their field. That’s mean the software they use cannot perform it intended function depend to the different environmental. So if there is any changes for environment then for sure the software need to do some changes. As a result, where is reliability?? Beside that, certain programming software for example like C++, java and so on develops computer software and human being develops these programming. I believe that there are no perfect human out there and human do mistakes. In this case, where is the reliability of computers again??




Increasing software reliability will increase safety?? I don’t think so…

As we know in the accident occurred in Therac 25, the software could consider as the most powerful at least the developers thought so. But as a result, Therac 25 cause 6 people died within 3 years. I don’t think the developers never increase software reliability. And the main problem is the software will not suitable for the operating system or the updated software it self. So as a conclusion, I don’t think that increasing software reliability will increase safety.



Testing software and formal verification of software canOT remove all errors.

In my opinion I don’t think that testing and formal verification of software can remove all errors. As we know, testing can detect and reduce errors but not totally remove all errors. Errors can be many types, for example there are some errors, which are not affected the whole system. I mean some programs still can run with errors occurred in the system, and this depend on how big and hazard the error is.


Reusing software increase safety?? Well, I don’t think so…

I don’t agree reusing software can increase safety. As we know, reusing software means that we take the software which had been used by other system and that system cant guarantee that there are no errors inside. Reusing software can cause more errors because the errors have been carry forward to the new system plus the new errors occur in the new system. Reusing the software, which is not specially design for the system, may cause some unsuitable among the software and the operating system. It also depends on the environmental changes too. So I don’t think that reusing software can increase safety.



Therac 25: Safeware: System Safety and Computers

There is no total safe software that available in the market, because mostly the software not ready yet to be in the market and doing testing over and over again towards one software will be take long time and quite costly.
It’s proven in these points:
1. Computers not provide greater reliability than the device they replace, because the computer’s operating system not really protects the hardware of the system, which lead to failure of the system and probably harm the user.
2. Increasing software reliability will not increase safety because when we increase the reliability there might the operating system and the updated software not match or not suitable so, it will lead to failure of the system work in synchronize ways.
3. Testing software and formal verification of software cannot remove all the errors. Because how perfect the software is there is should be small errors that will be occur, whether in the first few time the users use or in the future of the using the software.
4. Reusing software will not increases safety, almost same like the first two points the reusing software could lead to failure of the system to work or to run, since the software is have possibility to not able match with the operating system.

Mainly the system will is not 100% perfect when it was develop, somehow the software itself need to be tested over and over again. As we know that the market of the software was compete each others and it will lead to less testing processes, which mean lead to less cost and as long as the software are ready to sell over the market.