Tuesday, June 23, 2015

Problems Faced By Motor Disability Persons In HCI

                    Computer trainers often comment on the fact that conventional devices are hard to use whose fingers might not be as steady or mobile anymore. Moreover Limited muscular control can cause lack of coordination or involuntary movement or impede movement altogether. Wide range of problems are faced by physical / motor disability persons in accessing computers, Some of them are as follows.

  • Pressing key board keys continuously- A physically challenged user can find pressing key board keys continuously for typing to be laborious due to limitations in motor control.
  • Long key press problem- An alphanumeric key is unintentionally pressed by differently enabled user for longer than the default key repeat delay because of slow typing speed.
  • Additional key press problem- During typing, A key adjacent to the intended key may be activate accidentally.
  • Key bounce problem- The end user may unintentionally presses the intended key more than once.
  • Difficulty in using hot keys- Some times it is not even easy for normal users to use hot keys. So, obviously motor disabilities find it more difficult to use SHIFT, CTRL and ALT keys with the combination of any other Keys.
  • Keys transposition error- When two keys are typed in the wrong order, a transposition error has occurred. Motor disabilities usually face this problem.
  • Mouse pointing problem- Mouse pointing is there in almost every operation of mouse like selecting one icon, among so many icons and closing an active window with mouse etc. So, pointing is the most fundamental mouse operation and also one of the most difficult for motor disabilities because Mouse pointing involves moving pointer in a desired direction and positioning at required place.
  • Navigation problem- For example in Debian based systems, if user wants to open gedit text editor, then user needs to navigate through Applications ->Accessories ->gedit. This requires three mouse button clicks which is inconvenient for some kind of motor disabilities.
  • Selection of text- involves to hold down mouse button and drag or hold down Shift key and press right arrow continuously. So, physically challenged people face problem in selection of text.
  • Hand-eye coordination problem- Hand-eye coordination is the ability of the vision system to coordinate the information received through the eyes to control, guide, and direct the hands in the accomplishment of a given task. Some kind of motor disabilities suffer from this problem because their hands doesn't give them enough support to process information received by eyes.
  • Drag and drop problem- Once a drag had been started, the most common difficulty is in raising the mouse button in the correct position at the end of the drag. Another common problem is in holding down the mouse button while moving the mouse to the target.

Sunday, June 14, 2015

C and C++ Code Counter - A Software Metric Tool

         CCCC ( C and C++ Code Counter) a software metrics tool. CCCC  analyses and  reports measurements of source code in C, C++, and Java. It was developed to augment programmers' instinctive application of  numeric  rules  of thumb about what constitutes high or low quality products with an automated analysis tool. CCCC processes the files listed on its command line.  If the  file names include ‘-’, read a list of files from standard input.

         CCCC will provide the following details/information of the code modules.
  • MVG = McCabe's Cyclomatic Complexity
    A measure of the decision complexity of the functions which make up the program.The strict definition of this measure is that it is the number of linearly independent routes through a directed acyclic graph which maps the flow of control of a sub-program. The analyser counts this by recording the number of distinct decision outcomes contained within each function, which yields a good approximation to the formally defined version of the measure. 
  • NOM = Number of modules
    Number of non-trivial modules identified by the analyser. Non-trivial modules include all classes, and any other module for which member functions are identified.
  • LOC = Lines of Code
    Number of non-blank, non-comment lines of source code counted by the analyser.
  • COM = Lines of Comments
    Number of lines of comment identified by the analyser
  • L_C = Lines of code per line of comment
    Indicates density of comments with respect to textual size of program
  • M_C = Cyclomatic Complexity per line of comment
    Indicates density of comments with respect to logical complexity of program
  • IF4 = Information Flow measure
    Measure of information flow between modules suggested by Henry and Kafura. The analyser makes an approximate count of this by counting inter-module couplings identified in the module interfaces.

Installation: CCCC is included in most of the linux operating systems repositories. You just need to type the following command to install CCCC on debian based systems.

- sudo apt-get install cccc

If the tools not available in your linux system repository you can download it from http://sourceforge.net/projects/cccc/ .

Usage: To know the usage of CCCC type the command man cccc in your terminal. A typical command of cccc usage is as follows.

- cccc your_sourcefile_name.cpp

The above command will generate a html page with name cccc.html in your present working directory, which provides the above mentioned information of your modules in the your_sourcefile_name.cpp. A sample cccc.html screen shot is as follows.