Robustness In Web Design Computer Science Essay
Disclaimer: This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of UK Essays.
The purpose is to find a general definition for robustness analysis of web design system during the development process. Research currently robustness measures and analysis definitions, most of them are used for large software development or operating systems. Then considers one of currently definitions which might be most appropriate to robustness of web design, Failure Modes and Effects Analysis to identify and measure the robustness of the web system and it is based on the Jacobson''s analysis method that models the components of web design system.
Keywords: Robustness Jacobson analysis web design Failure Modes and Effects Analysis (FMEA)
Along with information technology, especially the rapid development of computer technology, tremendous changes in the network era brought websites have emerged. Meanwhile, there are many reasons may lead to web site does not work. Systemically, it makes very difficult to check all problems. However, when web site is designed, to use a measure to analysis a variety of problems which may lead to crash web site is very important. Not only can improve the robustness of the web site, but also have the ability to cope with some unexpected situation, in order to make the web site more stable and robust.
In computer science, the clear definition of robustness is not easy to be given, especially when it is noted with reliability . But it has ability to deal with errors during execution of a system.  It can be regarded as measurement criteria, apart from basic properties such as safety, stability and functionality, the robustness of overall web site is also important. In the process of web design, there is some robustness of measures to be discussed in order to enhance overall web site, in other words, it still could keep stable execution if some components of web site do not work in unexpected circumstances.
2. Main Part
2.1 What is robustness?
There are some explanations of robustness need to be discussed first. When the word ''robust'' used in computer science, adverts to computer applications that shows not only under usual conditions but also under uncommon conditions that emphasis expectation of its designers''. Productions made by computer such as web sites are typically buggy (i.e. include errors) and fragile, therefore not robust. It is difficult for a programmer to find and fix all the errors.
Second, there is one elegant way to distinguish reliability and robustness, the way is to look at the types of errors. From the perspective of web design, reliability problem is often caused by internal errors in website or component. Robustness problem is often caused by external errors, such as unexpected input.  After making clear these two concepts, for the features of errors of robustness can be developed corresponding measures.
2.2 Definitions of measures for robustness
The success criterion is in most cases:''if the system does not crash or hang, then it is robust''.
 Fuzz testing is a simple technology that has far-reaching effect to quality of the codes. In fuzz testing, it generates bad data randomly to attack an application, and then programmer observes what breaks. The technique of fuzz testing is that, it is illogical, automatic test and does not speculate which data will lead to be damaged like manual testing. Instead, test clutter of the application data deeply as much as possible. The result maybe leads programmer shock, because any logical thinking person would not think of that kind of errors. It is simple, but it can announce the important bugs in the application.
How does it work?
Realization of fuzz testing is very simple process.
1. Prepare a correct file and insert it in the program.
2. Generate random data to replace some parts of the file.
3. Observe what breaks.
First, generally, fuzz testing only finds very simple errors. Second, the bugs found severe sometimes, because fuzz testing is very popular in the world, real attacker can use the same tool and develop other destructive programs. Third, the randomly inputs to catch a boundary value condition is difficult.
Ballista is an approach to make the operating system crash to get exceptional parameters and the parameters are used for system calls, then to make other software get irregular termination instead of denoting errors gracefully. It is a ''black box'' testing. The goal of the Ballista is to test the robustness of the existing components. The results will apply as a class to a wide range of software components. But generally, the best situation is that, work on modules which take all inputs from a parameter list.
How does it work?
Ballista approach starts at bombard an application module with combinations of exceptional and unexceptional input values. The response of the system is measured for ''severe operating system failure'', a task ''hang'' or a task ''abort''. ''Severe OS failure'' is generally in the form of a machine reboot, ''hang'' is detected by a watchdog timer, and ''abort'' is detected by inspecting irregular termination of a child process. Ballista uses a list of test cases and runs a large number of these inputs.
Ballista is a very successful testing approach, but it is often used in operating system, not in web design. It also needs specific drive as workload to call kernel function. Therefore it is not easy to be expanded.  Another disadvantage of Ballista is that it is very difficult to generate test cases because the valid and invalid test data both must to be generated by input generator.
JCrasher is an approach to test robustness of Java program. It inspects the type of java class and constructs code fragments which will create instances of different types to test public methods under random test data. It is used to examine bugs caused by the program, if the program crash, it will throw an undeclared runtime exception. It does not require regulation except for offline testing of the cases which have caused a crash.
Disadvantage: The rewrite of classes is re-initializable, and they could exist in a separate compile phase, instead of at load time. It is a disadvantage because JCrasher does not support dynamic loading.
FMEA (Failure modes and effects analysis)
Failure modes and effects analysis (FMEA) is a procedure for analysis of potential failure modes within a system for classification by severity and likelihood of the failures. It is developed in three main phases which are severity, occurrence and detection. They determined the grade of robustness of the system. Before starting to use EMEA, the important work needs to be done first, is that confirms that robustness is included in the analysis.
1. Analysis and improves the safety, reliability and robustness of a product.
2. Reduces the potential for robustness concerns.
3. Detects, identifies and eliminates of potential problems early.
2.3 New idea in web design
Robustness concerns unexpected domain. To improve robustness, measures should be taken either enlarge the scope of specification, or make sure stability of system under unexpected situation. FMEA might be most appropriate of measuring robustness to web design. Because it can be used for robustness analysis of the specification of web design, and the results can be outlined, therefore designer can clearly understand the problems and find corresponding solutions. On the other hand, fuzz testing and JCrasher are most widely used in large software development, if the programming language of web design is JSP (Java service page), JCrasher can be used for measuring the robustness of java parts during web developing. Ballista is normally strongly used in operating systems. The robustness of web site is very important. Because  web system assessed through the HTTP protocol, it is difficult to control the input of users. The web system must have tolerance to unexpected errors from users'' input.
2.3.1 Preparatory work
Before applying FMEA, there are two essential works needed. First is to model the robustness of components for web design. Second is to design the worksheet.
188.8.131.52 Model the robustness of components :
One of the best ''use case diagram'' method is Jacobson''s analysis. To design a robust web, model the process of web system before develop codes is very important. Here, it is used to analysis formed web product,  there is a diagram for robustness diagram design.
The diagram is combined with class diagram and activity diagram. The part of the gap is robustness diagram. There are several features. It can be used to help developer to ensure the correctness of use case. It can be used to ensure use case to contain all the necessary branch of the process, thereby providing the correctness checks. It can be used to reduce the gap between analysis and design, and then ultimately complete the preliminary design.
The Jacobson''s use case diagram uses three stereotype elements :
1. Entity object, usually it is from real world, classes from the domain model.
2. Boundary object, it is used to interactive between users and system. Normally, it contains frame, diagonal, menus, and they are typically screens or web pages.
3. Control object, it is used to connect boundary object with boundary object.
Boundary object and entity object are nouns (objects) and controller is verb (action). And there are four interactive rules for these three stereotype elements when design robustness diagrams.
1. Nouns can connect to verbs (vice versa)
2. Nouns cannot connect to other nouns.
3. Verbs can connect to other verbs.
According to these rules, any component in web design can be designed as a robustness diagram. For example, if the component in web design is web login system, developer can draw the diagram and analysis the working processing for the existing component of the system.
Generally, it is not hard to find ''home page'', ''background login page'' are boundary objects according to analysis above text of use case. And the system provides input checking (in branch process), thus ''checking'' is controller object. System can displays error message, therefore ''display'' is another controller object. System will search the database to find the information form of the user, ''users'' information form'' and ''user information'' is entity objects, ''initial user information'' is controller object. Finally, the robustness of case is shown below.
Once developer has finished robustness analysis, they need to do a Preliminary Design Review . The session of Preliminary Design Review helps developer to ensure that robustness diagrams, domain model, and the use case text all match to each other. After robustness analysis, the developer could continue to next step of detailed design, and writing codes for it.
184.108.40.206 Design the worksheet:
When the robustness diagram is analysis, then developer could create worksheet to continue the analysis and measure, worksheet contains the important information about the system. All the items or functions of the worksheet should be listed in a logical manner.
The purpose of FMEA is to explore all possible failure modes of each control object model from the external operating environment (e.g. user input), the likelihood of detection possibility, and the severity of the impact to the robustness requirements of web system. It also can be used for each control objects. Results are usually introduced in a specially designed worksheet.
Example of FMEA Worksheet for login part
Control object Failure mode System Effect S
(Severity rating) Possible Cause(s) O
(occurrence rating) D(detection rating) CRIT
(critical characteristic) RPN(risk priority number) Recommended actions
Login control No response is produced at all Fail to respond to user''s interaction. Prevent further use of the system. 8 Error user input/ database contains incorrect/damaged data 2 5 N 80 Control the user input, and to prevent serious errors into the object.
Understand some parameters of the table. 
''S'' is Severity rating of the crash effect, 1 stands for no risk, 10 stands for critical.
''O'' is occurrence rating, similarly, the range of it is from 1 to 10, it is based on the web design specification
''D'' is detection rating, the value of it means the ability of detect the failures.
''RPN'' is risk priority Numbers, it is calculated by formula RPN = S x O x D. The highest severity of the failure mode might not necessarily to be treated firstly, but rather the highest RPN should be treated.
RPN can be regarded as a metric of robustness for the system, and the robustness will be improved if developers solve highest RPN.
There are several goals can be achieved:
1. Classify the robustness critical elements, that is, the part of application logic which is easy to failure or crash from external errors or abnormal situation.
2. Rank priority to the possible reasons causes of failure robustness.
3. Establish prevention measures, either eliminate possible causes or reduce the effect of web robustness.
Seldom methods to analysis and measure of robustness of web design. FMEA could establish the requirement to minimize the possibility of failure in order to improve robustness of the web system. And it can measure how the component of the web system might fail and how the failure affects to the system functions. But it cost much time to analysis the web product, because each component of the web product needs to be analysis. But it ensures the potential errors will not affect the whole web system. Although the method is based on the basis of practical applications, but it does not often apply to a real development process. The mathematical evaluation system of robustness could make the result clear. FMEA can be used both in the process of web design and formed web product. For a large web product development, FMEA might be appropriate measure to analysis the product.