Presentation is loading. Please wait.

Presentation is loading. Please wait.

Process methods in ZERO-DEFECT software engineering.

Similar presentations


Presentation on theme: "Process methods in ZERO-DEFECT software engineering."— Presentation transcript:

1 process methods in ZERO-DEFECT software engineering

2 process methods in ZERO-DEFECT software engineering INTRODUCTION What are zero-defect methods? “Zero-defect methods are practices that aim for zero defects in the software before software is built.”

3 process methods in ZERO-DEFECT software engineering INTRODUCTION Why zero-defect methods? Software testing can only remove about 73% of defects on average Software testing can be impossible to carry out in specific end systems (asynchronous entities, embedded systems) “The expensive and inefficient phase of software testing can be avoided with the use of zero-defect methods.”

4 process methods in ZERO-DEFECT software engineering INTRODUCTION About Sitoni Oy Sitoni Oy is a software engineering, consulting and training company established in 1991 Its software aims for elastic management and handling of data The software seeks to abandon predefined definitions of processed data

5 process methods in ZERO-DEFECT software engineering INTRODUCTION About Sitoni Oy The software attempts to manage large heterogeneous flows of data and solve the demanding data processing problems relating to them Continue?

6 process methods in ZERO-DEFECT software engineering INTRODUCTION The work consists of two parts Research part  Researching Sitoni zero-defect concepts Development part  Developing the media for the researched concepts

7 process methods in ZERO-DEFECT software engineering PHASES OF THE WORK Phases of the work: Preliminary Study Analysis / Requirements Definition Design Implementation QA / Testing / Deployment

8 process methods in ZERO-DEFECT software engineering PHASES OF THE WORK Preliminary study Project plan Schedule with phases and milestones Development web site (for the supervisor)

9 process methods in ZERO-DEFECT software engineering PHASES OF THE WORK Requirements Definition Division of requirements (content part, web site part) Definition of individual requirements and their priorities Combining the content requirements into larger entities

10 process methods in ZERO-DEFECT software engineering PHASES OF THE WORK Design Designing of the linguistic issues of the content part Designing of the web site (“User Interface”, appearance, markup language, highest level use cases, script intended functions, etc.)

11 process methods in ZERO-DEFECT software engineering UML USE CASE EXAMPLE

12 process methods in ZERO-DEFECT software engineering Implementation Writing of the content part Implementing the web site by the design  Standard markup language XHTML 1.0  Modular design  User-agent dependencies avoided PHASES OF THE WORK

13 process methods in ZERO-DEFECT software engineering CONTENT EXAMPLE Content Example: The WndProc function (WinAPI)

14

15 process methods in ZERO-DEFECT software engineering CONTENT EXAMPLE Adding basic zero-defect concepts to the default form of the WndProc function Removing of extra return statements so that the function complies with an axiom of one input – one output Adding basic parameter checking  Is the hwnd handle valid? (IsWindow)  Safety limits for msg parameter Making code layout systematic and to support zero-defect concepts

16 process methods in ZERO-DEFECT software engineering WEB SITE EXAMPLE Web site Example: PHP-function “Gathers date, time, IP-address, user-agent information and writes them to a text file (log). The current entry is not appended to the end of the text file but previous entries are read from the file first and then the current entry is written to the beginning of the file followed by the previous entries. The relative path of the log file is given as a parameter ‘$file_name’. The maximum limit of the size of the text file size is given as parameter ‘$filesize_limit’. When this limit is exceeded it will overwrite the file and start from 0 bytes. This function does not return anything.” write_hit_log ($file_name,$file_size)

17 process methods in ZERO-DEFECT software engineering WEB SITE EXAMPLE function write_hit_log ($file_name,$file_size_limit) { $truncate_ok_flag = FALSE ; $rewind_ok_flag = FALSE ; $write_ok_flag = FALSE ; $file_size = NULL ; $in_buffer = NULL ; $out_buffer = NULL ; $date = &get_server_date (0) ; $time = &get_server_time (0) ; $ip_address = &get_remote_address (); $user_agent = &get_user_agent () ; $file_handle = NULL ; settype ($truncate_ok_flag,"boolean") ; settype ($rewind_ok_flag,"boolean") ; settype ($write_ok_flag,"boolean") ; settype ($file_size,"integer") ; settype ($file_size_limit,"integer") ; settype ($file_name,"string") ; settype ($in_buffer,"string") ; settype ($out_buffer,"string") ; settype ($date,"string") ; settype ($time,"string") ; settype ($ip_address,"string") ; settype ($user_agent,"string") ;

18 process methods in ZERO-DEFECT software engineering WEB SITE EXAMPLE if ($file_name != NULL) { if ($file_size_limit > 0) { $file_handle = fopen ($file_name,"r+") ; if ($file_handle != FALSE) { $file_size = filesize ($file_name) ; if ($file_size < $file_size_limit) { $in_buffer = fread ($file_handle,$file_size) ; $out_buffer = $date. ",". $time. ",". $ip_address. ",". $user_agent. "\n". $in_buffer ; $rewind_ok_flag = rewind ($file_handle) ; if ($rewind_ok_flag != FALSE) { $write_ok_flag = fwrite ($file_handle,$out_buffer) ; if ($write_ok_flag != FALSE) { ; } else { echo "\nAn expected event has happened in the PHP script: Unable to write to the file\n" ; } } else { echo "\nAn expected event has happened in the PHP script: Unable to rewind the file pointer\n" ; } } else { $truncate_ok_flag = ftruncate ($file_handle,0) ; if ($truncate_ok_flag != FALSE) { $rewind_ok_flag = rewind ($file_handle) ; if ($rewind_ok_flag != FALSE) { $out_buffer = $date. ",". $time. ",". $ip_address. ",". $user_agent. "\n" ; $write_ok_flag = fwrite ($file_handle,$out_buffer) ;

19 process methods in ZERO-DEFECT software engineering WEB SITE EXAMPLE if ($write_ok_flag != FALSE) { ; } else { echo "\nAn expected event has happened in the PHP script: Unable to write to the file\n" ; } } else { echo "\nAn expected event has happened in the PHP script: Unable to rewind the file pointer\n" ; } } else { echo "\nAn expected event has happened in the PHP script: Unable to truncate the file\n" ; } fclose ($file_handle) ; } else { echo "\nAn expected event has happened in the PHP script: Unable to open a file\n" ; } } else { echo "\nAn expected event has happened in the PHP script: Invalid filesize parameter\n" ; } } else { echo "\nAn expected event has happened in the PHP script: Invalid filename parameter\n" ; } ?>

20 process methods in ZERO-DEFECT software engineering QA / Testing / Deployment Website quality controlled with validation services provided by W3C Content quality controlled by linguistic checking Testing carried out by viewing the web site with several different browsers Deployment consists of setting-up the web site on the client’s web server PHASES OF THE WORK

21 process methods in ZERO-DEFECT software engineering Future Development Studying of zero-defect methods profoundly and on a wider scale Results combined into a full scientific specification of the process The study could be published as an appending specification or a full-length book Adding the interactivity level of the web site FUTURE DEVELOPMENT

22 process methods in ZERO-DEFECT software engineering Conclusions CONCLUSIONS The project succeeded in terms of the required specification and defined schedule The pragmatic orientation diminishes the scientific value of the content part Sitoni zero-defect concepts are independent and extremely contrary to “normal” SE methods  A hope that this thesis work enlightens the world of zero-defect programming

23 process methods in ZERO-DEFECT software engineering


Download ppt "Process methods in ZERO-DEFECT software engineering."

Similar presentations


Ads by Google