UNIT - 6
Software Tools
Q1) Explain Software tools for program development?
A1)
A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object.
The history of software tools began with the first computers in the early 1950s that used linkers, loaders, and control programs. Tools became famous with Unix in the early 1970s with tools like grep, awk and make that were meant to be combined flexibly with pipes. The term "software tools" came from the book of the same name by Brian Kernighan and P. J. Plauger.
Tools were originally simple and light weight. As some tools have been maintained, they have been integrated into more powerful integrated development environments (IDEs). These environments consolidate functionality into one place, sometimes increasing simplicity and productivity, other times sacrificing flexibility and extensibility. The workflow of IDEs is routinely contrasted with alternative approaches, such as the use of UNIX shell tools with text editors like Vim and Emacs
Software development tools can be roughly divided into the following categories:
1) Performance analysis tools
2) Debugging tools
3) Static analysis and formal verification tools
4) Correctness checking tools
5) Memory usage tools
6) Application builds tools
7) Integrated development environment
Software Development Tools also called Programming Tools, Integrated Development Tools, Software Development Kits, Software Developer's Kits, Design Tools, Application Development Software, Application Deployment Tools, Application Development Tools, SDK, Development Tools, Tools, Software Engineering Tools, Applications Frameworks, Development Kits, Program Development Tools, IT Tools, Frameworks, Software Tools, and Information Technology Tools.
A software developer's kit (SDK) is a set of programs used by a computer programmer to write application programs. Typically, an SDK includes a visual screen builder, an editor, a compiler, a linker, and sometimes other facilities. The term is used by Microsoft, Sun Microsystems, and a number of other companies.This term is sometimes seen as software development kit.
Q2) Explain Editors and its types?
A2)
Editors or text editors are software programs that enable the user to create and edit text files. In the field of programming, the term editor usually refers to source code editors that include many special features for writing and editing code. Notepad, Wordpad are some of the common editors used on Windows OS and vi, emacs, Jed, pico are the editors on UNIX OS. Features normally associated with text editors are — moving the cursor, deleting, replacing, pasting, finding, finding and replacing, saving etc.
Types of Editors
Therre are generally five types of editors as described below:
Ex : Teleprinter, edlin, teco
Ex : sed editor in UNIX
Ex : vi, emacs, Notepad
Ex : Netbeans IDE, gEdit.
Q3) Explain Some other editors in brief?
A3)
Ex : Acme, Coderoom, FocusWriter
Buffer: Buffer holds the text to be edited. The text may come from a file or a brand new text that you want to write on a file. A file only has one buffer associated with it.
Windows: Windows provides a view to the buffer to see what the buffer holds and edit and modify it. A buffer may have multiple windows. Any changes made in any of the windows will be reflected in all other windows associated with the same buffer. Once the last window associated with a buffer is closed, the file gets hidden. But if you have made any changes to the buffer and not have written them into the disk, it may not allow you to close the window.
Ex : CKEditor, SnapEditor, designmode by Internet Explorer.
Q4) Explain Editing Process?
A4)
We all by now understand that editors are the program which is used to create, edit and modify a document. A document may include some images, files, text, equations, and diagrams as well. But we will be limited to text editors only whose main elements are character strings.
The document editing process mainly compromises of the following four tasks :
The above steps include filtering, formatting, and traveling.
User Interface of editors: The user interface of editors typically means the input, output and the interaction language. The input devices are used to enter text, data into a document or to process commands. The output devices are used to display the edited form of the document and the results of the operation/commands executed. The interaction language provides the interaction with the editor.
Q5) What is Editor Structure?
A5)
The command language processor accepts commands, performs functions such as editing and viewing. It involves traveling, editing, viewing and display. Editing operations are specified by the user and display operations are specified by the editor. Traveling and viewing components are invoked by the editor or the user itself during the operations.
Editing component is a module dealing with editing tasks. The current editing area is determined by the current editing pointer associated with the editing component. When editing command is made, the editing component calls the editing filter, generates a new editing buffer. Editing buffer contains the document to be edited at the current editor pointer location.
In viewing a document, the start of the area to be viewed is determined by the current viewing pointer. Viewing component is a collection of modules used to see the next view. Current viewing can be made to set or reset depending upon the last operation.
When display needs to be updated, the viewing component invokes the viewing filter, generates a new buffer and it contains the document to be viewed using the current view buffer. Then the viewing buffer is pass to the display component which produces the display by buffer mapping. The editing and viewing buffers may be identical or completely disjoint. The editing and viewing buffers can also partially overlap or can be contained one within the another. The component of the editor interacts with the document from the user on two levels: main memory and the disk files system.
Q6) Define Debug monitors?
A6)
Debug monitors give debugging support for a program. A debug monitor executes the program being debugged in its own control thereby giving execution efficiency throughout debugging. There are debug monitors which are language independent and can handle programs written in several languages. For illustration-DEC-10.
Debug monitor give the following facilities for dynamic debugging:
1. Setting breakpoints into the program
2. Initiating a debug conversation while control reaches a breakpoint.
3. Displaying variable's values
4. Assigning new values to variables.
5. Testing in defined assertions and predicates including program variables.
Q7) Explain in detail Programming Environments?
A7)
Though Environment Setup is not an element of any Programming Language, it is the first step to be followed before setting on to write a program.
When we say Environment Setup, it simply implies a base on top of which we can do our programming. Thus, we need to have the required software setup, i.e., installation on our PC which will be used to write computer programs, compile, and execute them. For example, if you need to browse Internet, then you need the following setup on your machine −
If you are a PC user, then you will recognize the following screenshot, which we have taken from the Internet Explorer while browsing tutorialspoint.com.
Similarly, you will need the following setup to start with programming using any programming language.
In case you don’t have sufficient exposure to computers, you will not be able to set up either of these software. So, we suggest you take the help from any technical person around you to set up the programming environment on your machine from where you can start. But for you, it is important to understand what these items are.
Text Editor
A text editor is a software that is used to write computer programs. Your Windows machine must have a Notepad, which can be used to type programs. You can launch it by following these steps −
Start Icon → All Programs → Accessories → Notepad → Mouse Click on Notepad
It will launch Notepad with the following window −
You can use this software to type your computer program and save it in a file at any location. You can download and install other good editors like Notepad++, which is freely available.
If you are a Mac user, then you will have TextEdit or you can install some other commercial editor like BBEdit to start with.
Compiler
You write your computer program using your favorite programming language and save it in a text file called the program file.
Now let us try to get a little more detail on how the computer understands a program written by you using a programming language. Actually, the computer cannot understand your program directly given in the text format, so we need to convert this program in a binary format, which can be understood by the computer.
The conversion from text program to binary file is done by another software called Compiler and this process of conversion from text formatted program to binary format file is called program compilation. Finally, you can execute binary file to perform the programmed task.
We are not going into the details of a compiler and the different phases of compilation.
The following flow diagram gives an illustration of the process −
So, if you are going to write your program in any such language, which needs compilation like C, C++, Java and Pascal, etc., then you will need to install their compilers before you start programming.
Interpreter
We just discussed about compilers and the compilation process. Compilers are required in case you are going to write your program in a programming language that needs to be compiled into binary format before its execution.
There are other programming languages such as Python, PHP, and Perl, which do not need any compilation into binary format, rather an interpreter can be used to read such programs line by line and execute them directly without any further conversion.
So, if you are going to write your programs in PHP, Python, Perl, Ruby, etc., then you will need to install their interpreters before you start programming.
Online Compilation
If you are not able to set up any editor, compiler, or interpreter on your machine, then tutorialspoint.com provides a facility to compile and run almost all the programs online with an ease of a single click.
So do not worry and let's proceed further to have a thrilling experience to become a computer programmer in simple and easy steps.
Q8) Explain User interfaces?
A8)
User interface is the front-end application view to which user interacts in order to use the software. User can manipulate and control the software as well as hardware by means of user interface. Today, user interface is found at almost every place where digital technology exists, right from computers, mobile phones, cars, music players, airplanes, ships etc.
User interface is part of software and is designed such a way that it is expected to provide the user insight of the software. UI provides fundamental platform for human-computer interaction.
UI can be graphical, text-based, audio-video based, depending upon the underlying hardware and software combination. UI can be hardware or software or a combination of both.
The software becomes more popular if its user interface is:
UI is broadly divided into two categories:
Command Line Interface (CLI)
CLI has been a great tool of interaction with computers until the video display monitors came into existence. CLI is first choice of many technical users and programmers. CLI is minimum interface a software can provide to its users.
CLI provides a command prompt, the place where the user types the command and feeds to the system. The user needs to remember the syntax of command and its use. Earlier CLI were not programmed to handle the user errors effectively.
A command is a text-based reference to set of instructions, which are expected to be executed by the system. There are methods like macros, scripts that make it easy for the user to operate.
CLI uses less amount of computer resource as compared to GUI.
Q9)What are the Application specific GUI components?
A9)
A GUI of an application contains one or more of the listed GUI elements:
Other impressive GUI components are:
Q10) Explain User Interface Golden rules?
A10)
The following rules are mentioned to be the golden rules for GUI design, described by Shneiderman and Plaisant in their book (Designing the User Interface).