You are on page 1of 18

Bahir Dar University

Faculty of Computing
Department of Software engineering
Course Title: Software Tools and practices
Course code: SEng2052
Assignment

Name ID
1. Dawit Zewdu Munie BDU1307571
2. Ephrem Habtamu Tadesse BDU1308250

Submission date:12/04/2015 E.C


Submitted to: Instructor Mintesnot A.
Table of Contents Page
number
Introduction................................................................................................................................................2
1. Software Requirement Tool....................................................................................................................3
1.1 Requirement modeling tools............................................................................................................3
1.2 Traceability Tools............................................................................................................................4
2. Software Design Tools............................................................................................................................5
3. Software Construction Tools..................................................................................................................6
3.1. Program Editors Tool.......................................................................................................................7
3.2 Compilers..........................................................................................................................................7
3.3. Interpreter.......................................................................................................................................8
3.4. A debugger.......................................................................................................................................9
4. Software testing tools...........................................................................................................................10
4.1 Test Generator Tools.......................................................................................................................10
4.2. Test Execution Framework Tools...................................................................................................11
4.3 Test Evaluation Tool........................................................................................................................12
4.4. Test Management Tools................................................................................................................12
4.5 Performance Analysis Tool.............................................................................................................13
5. Software Maintenance Tools............................................................................................................14
5.2. Re-engineering...............................................................................................................................15
REFERENCES..............................................................................................................................................17

1|Page
Introduction
A software or a programming tool is a set of computer programs that are used by the developers
to create, maintain, debug, or support other applications and programs.
Why Do Software Development Tools Matter?
All professionals need software designing tools in order to do their jobs. A carpenter needs an
assortment of hammers, saws, planes, tape measures and the like. An auto mechanic needs
wrenches and sockets, ratchets and impact tools. A plumber needs pipe wrenches, brazing tools,
saws, etc. Same way, software developer’s need the right software planning tools for
accomplishing their respective assignments. Software development tools play a very important
role in the IT field, although they are less substantial than the tools used by other professionals.

2|Page
1. Software Requirement Tool
Tools for dealing with software requirements. It’s classified into two categories: modeling and
traceability tools.

1.1 Requirement modeling tools


Tools used for validating, analyzing, recording, and eliciting requirements of the software are
considered as the software requirement modeling tools. Some of the tools and techniques of
requirement modeling are CRC cards, DFD (data flow diagrams), FSM (finite state
machines) and ERD (entity-relationship diagram). We will try to see in detail ERD cards.
  ERD (entity-relationship diagram)

ERD is also known as the Entity-Relationship Model. ERD was originally proposed by Peter
Chen. Entity means any object used to store information and are distinguishable, relationship
means connection, and diagram/model means a picture uses to represent something. So, ERD
is simply the diagram or model that is used to represent or show the relationship between the
entities or data objects that are stored in a database. A basic ER model is composed of entity
types (which classify the things of interest) and specifies relationships that can exist
between entities (instances of those entity types). The main components of the E-R model are an
entity, attributes, and relationship. It is a very easy way to represent the database design.  

ERD has numerous benefits, some of which are listed below:

Conceptually simple An ERD can be quickly created if relationships between entities and
attributes are known.
Visually explicit representation. The graphic can be used to quickly understand the
database structure.
Efficiency of communication Understanding how the database functions once it has been
completed is made easier by standard symbols representing various types of information.
High adaptability. Any other data model can be simply transformed from the ER data
model with a few little adjustments.

ERD has also its own disadvantages and some of them as follows:

3|Page
Limited portrayal of relationships. When compared to other data models, the model's
linkages are constrained.
There is no evidence of data manipulation. The model has only limited application
because the methods used to demonstrate data manipulation in ERD are relatively
complex.
No industry consensus exists for notation. It can be confusing to understand diagrams
since different developers use different notation standards.

1.2 Traceability Tools


The structure of your model and a Traceability diagram act as the starting points for tracing the
definition, design and implementation of a specific feature of a system or process. By applying
tools such as the Relationship Matrix and Traceability window, you can follow threads
through the model to determine how the feature is implemented and tested. We will in detail try
to see Traceability window and its pros and cons.

Traceability window

The Traceability window is a highly helpful and adaptable traceability tool that you may use to
quickly examine the relationship chain of which any element is a component after opening a
Traceability diagram or a Package structure in the Browser window. The Traceability window
gives the modeler a hierarchical view of element connections, allowing traceability to be
visualized and queried as elements are traversed in the model. This tool is particularly powerful
because a modeler will often choose to hide diagram relationships but by selecting an element
in the diagram and viewing its connections in the traceability window all its relationships will be
displayed.
Advantages of Traceability Window are:
 Gives the modeler a hierarchical view of element connections
 Allowing traceability to be visualized and queried as elements are traversed in the
model.
 Helpful as modeler will often choose to hide diagram relationships 
 Locate related elements in the Project Browser
 View the properties of related elements
 Open the diagrams in which related elements are used

Disadvantages of Traceability Window

4|Page
 The Traceability window does not currently recognize extended relationship types
defined by Technologies such as BPMN; relationships defined by a Profile or
Technology are identified using their base UML type, so, for example, 'Realization'
relationships are each reported as UML 'Dependency' relationships
 There are a series of options that restrict the traceability to specified connector types;
these can be set to alter what is displayed in the window.

2. Software Design Tools


It is tools for creating and checking software designs.
There are many design tools developed to make the process easier and more efficient. As a
designer, you have the option to choose any software design tool that can help you develop
functional software prototypes and wireframes. The tools come with a wide range of features
such as analysis, team collaboration, data import and many others. Choosing the right software
design tool to use is critical towards attaining your desired end goals.

MATLAB
MATLAB is a programming, modeling and simulation tool developed by Math Works. A
programming environment for the development of algorithms, data analysis, visualization and
numerical calculation.
If you desire an advanced-level language and interactive environment for the purpose of programming,
visualization, and numerical computation, then MATLAB is the engineering design tool of choice. Popular
among millions of software developers and engineers worldwide, MATLAB supports the exploration and
visualization of collaborations and ideas across disciplines and helps put ideas into action.
Advantages of MATLAB:
 Ease of use: Because the language is so simple to use, it is optimal for the fast prototyping
of new applications.
 Platform Independence: MATLAB is supported on different computer systems,
providing a considerable measure of platform independence. 

 Predefined Functions: MATLAB comes complete with a huge library of predefined


functions that provides tested and prepackaged solutions to many primary technical tasks.

 Device-Independent Plotting: MATLAB has many basic plotting and imaging


commands. The plots and pictures can be displayed on any graphical output device
provided by the computer on which MATLAB is running. This facility makes MATLAB
an outstanding tool for visualizing technical information.

Disadvantages of MATLAB

5|Page
 Interpreted language: The first disadvantage is that it is an interpreted language and,
therefore, may execute more slowly than compiled language. This problem can be check
by properly structuring the MATLAB program.

 Cost: A full copy of MATLAB is five to ten times more costly than a conventional C or
FORTRAN compiler. This comparatively high cost is more than offset by the decreased
time necessary for an engineer or scientist to create a working program, so MATLAB is
cost-effective for businesses.

CATIA
CATIA, which stands for “computer-aided three-dimensional interactive application,” is a
software suite of computer-aided design, manufacturing, and engineering tools. This software,
created by Dassault Systèmes, is a popular solution throughout the manufacturing industries, and
especially among Original Equipment Manufacturers, to streamline design, analysis, and project
management. It is a software that offers 3D design, computer-aided engineering solutions, PLM, and computer-
aided manufacturing solutions. It is a commonly used software on a global scale. The program is frequently used
by Original Equipment Manufacturers (OEMs) and the manufacturing sector to improve the development,
managing, and analysis of new products.
Advantages of CATIA:
o Surface modeling module is extremely developed and successful.
o 2D drafting module is doing the job effectively (AutoCAD is no more required).
Disadvantages of CATIA
o Not user friendly interface (a bit improved with v6)
o Difficult mouse operations
Compare and contrast MATLAB and CATIA
 When assessing the two solutions, reviewers found MATLAB easier to use, set up, and administer.
Reviewers also preferred doing business with MATLAB overall.

 Reviewers felt that MATLAB meets the needs of their business better than CATIA.
 When comparing quality of ongoing product support, reviewers felt that MATLAB is the preferred
option.
 For feature updates and roadmaps, our reviewers preferred the direction of MATLAB over CATIA.

3. Software Construction Tools


Software Construction Tools are used to produce and translate program representation (for instance,
source code) which is sufficiently detailed and explicit to enable machine execution. With
skyrocketing construction costs, it's even more critical today to manage risks by using
construction software.

6|Page
3.1. Program Editors Tool
Code editors are tools typically used by programmers and web developers to write and edit code that
saves the time to develop a software and increases the quality to a software inturn.

Visual Studio Code


Visual Studio Code is a desktop source code editor that runs on Windows, macOS, and Linux. It is compact but
effective. It contains built-in support for JavaScript, TypeScript, and Node.js and a robust ecosystem of extensions
for other programming languages and runtimes (including C++, C#, Java, Python, PHP, Go, and.NET). It is, by
far, the most popular code editor, with over 5,000 Stargazers and 1,000+ contributors on GitHub.
A super-fast source code editor is at the core of Visual Studio Code, making it ideal for everyday usage. With
hundreds of languages supported, VS Code makes it easy for you to get started right away and be productive with
features like syntax highlighting, bracket matching, auto-indentation, box selection, snippets, and more. You can
traverse your code with ease thanks to intuitive keyboard shortcuts, simple modification, and community-
contributed keyboard shortcut mappings.
For serious coding, tools with more code understanding than merely blocks of text are frequently beneficial. Code
refactoring, sophisticated semantic code understanding and navigation, and IntelliSense code completion are all
features that come standard with Visual Studio Code.
Advantages of Visual Studio Code (VS Code)

 Robust plugin architecture replete with fantastic add-ons that make developer life delightful.
 Integrated Terminal window allows you to stay in one application to perform most required
tasks.
 Customization options are robust. It is easy to modify VS Code to your own specifications.
 It's free! Hard to believe such a well made, well maintained, robust software is a free download.
 Command+P/Command+Shift+P key commands will improve your workflow dramatically.

Disadvantages of Visual Studio Code(VS Code)

 Inconsistent methods to change settings. Sometimes must be done in the JSON file. Sometimes
in the UI.
 Application error messages sometime appear without enough information to resolve them.
 Does not have built in functionality to display SVG file preview.

3.2 Compilers
A Compiler is a software that typically takes a high level language (Like C++ and Java) code
as input and converts the input to a lower level language at once. It lists all the errors if the
input code does not follow the rules of its language. This process is much faster than
interpreter but it becomes difficult to debug all the errors together in a program.  A compiler is
a translating program that translates the instructions of high level language to machine level
language. A program which is input to the compiler is called a Source program. This program
is now converted to a machine level language by a compiler is known as the Object code.

7|Page
Borland C++
This is the oldest and cheaper compiler which do not have any competitors in the market.

Borland is a C++ integrated development environment and it is most widely used in the 90’s

works well in MS-DOS Prompt and Windows. They make simple editing features making their

code easier and simple.

Advantages of using Borland C++ compiler

 Improved performance
 Reduced system load
 Protection for source code and programs
 Improved productivity and quality

Disadvantages of Borland C++ compiler

 No longer supported - Old version of less popular compiler


 Newer, better supported free compilers exists
 Much smaller community compared to GCC or MVCC
 Less access to new technologies
 Doesn't support new C++ features

3.3. Interpreter
Interpreter can be termed as system software which has the capability to read and execute the

program, rather you can say interpret programs. This interpretation includes the source code of

high-level language, programs that are pre-compiled as well as scripts. It is to be noted that,

interpreter interprets program line-by-line, which means it translates one statement at a single go.

It executes instructions written in a high-level language. Interpreters enable other programs to

run on a computer or server. They process program code at run time, checking the code for errors

line by line.

8|Page
PyPy
PyPy is a replacement for CPython. It is built using the RPython language that was co-
developed with it. PyPy is an impressive compliant alternative implementation for the
Python programming language. PyPy is supportable for Python 2.7, Python 3.5 as well as
Python 3.6 versions.
Advantages of PyPy
o Speed: thanks to its Just-in-Time compiler, Python programs often run faster on PyPy. 
o Memory usage: memory-hungry Python programs (several hundreds of MBs or more)
might end up taking less space than they do in CPython.
o Compatibility: PyPy is highly compatible with existing python code. It
supports cffi, cppyyy, and can run popular python libraries like twisted, and django. It
can also run NumPy, Scikit-learn and more via a c-extension compatibility layer.
o Stackless: PyPy comes by default with support for stackless mode, providing micro-
threads for massive concurrency.

Disadvantages of PyPy
o It doesn’t work well with C extension
o I only works well with long running program
o It doesn’t do a head of time compilation

3.4. A debugger
A bug is when a flaw in logic is coded, or an implementation is flawed. A debugger is a software
development tool that helps us hunt down where we went wrong in the code. Then we can begin
to unravel the mistake. A debugger is a computer program used by programmers to test and
debug a target program. Debuggers may use instruction-set simulators, rather than running a
program directly on the processor to achieve a higher level of control over its execution. This
allows debuggers to stop or halt the program according to specific conditions. 
Very early on in our careers as developers, we start using debuggers to help us fix our logical
flaws faster. But not all debuggers do the same thing. Here are the 11 debuggers in 2021 that you
should know about.
GDB (The GNU Debugger)
GDB stands for the “Gnu DeBugger.” This is a powerful source-level debugging package that
lets you see what is going on inside your program. You can step through the code, set
breakpoints, examine and change variables, and so on.  GBD allows you to run the debugger on

9|Page
your machine against the program that’s running on the remote machine. The debugging tools
include the ability to place breakpoints for inspection, step through processes and observe
variables.
Advantages of GDB(The GNU Debugger)
 If a core dump happened, then It helps to show what statement or expression did the
program crash on
 If an error occurs while executing a function, It helps to show what line of the
program contains the call to that function, and what are the parameters
 It helps to show what are the values of program variables at a particular point during
execution of the program
 It helps to show what is the result of a particular expression in a program
Disadvantages of GDB(The GNU Debugger)
 Even though GDB can help you in finding out memory leakage related bugs, but it is not
a tool to detect memory leakages.
 GDB cannot be used for programs that compile with errors and it does not help in fixing
those errors.

4. Software testing tools


Software Testing tools are the tools which are used for the testing of software. Software
testing tools are often used to assure firmness, thoroughness and performance in testing
software products. Unit testing and subsequent integration testing can be performed by
software testing tools. These tools are used to fulfill all the requirements of planned testing
activities. These tools also works as commercial software testing tools. The quality of the
software is evaluated by software testers with the help of various testing tools.

4.1 Test Generator Tools


A test generator is a specialized software tool that generates false or mock data for use in
testing software applications.

DATPROF
DATPROF is a Dutch company, founded in 1998, that specialises in test data management. Its
clients, which are concentrated in Europe but stretch to North America and the Pacific regions,
include ING, Thomas Cook and the Dutch government. Moreover, it boasts a 95% customer
retention rate. DATPROF simplifies getting the right test data at the right moment. With
DATPROF Privacy you can mask your test data and generate synthetic data. Your customer
data is protected, but software teams can still use representative.

Advantages of DATPROF

 Manage and refresh your test data environments from one central platform.
 Preserve data characteristics
 High performance on large data sets
 Consistent over multiple applications and databases
 Built-in synthetic data generators
10 | P a g e
 Supports CI/CD integration (continuous integration vs. continuous delivery)

Disadvantages of DATPROF

 Time spent searching for test data


 Costs of high network traffic
 Delta’s of the original resource
 Single point of failure
 Batch processing conflicts

4.2. Test Execution Framework Tools


A testing tool in software testing refers to a Test execution Framework tool or simply a tool
that can run tests. A Test execution Framework tool is also known as a test running tool.
Cypress
Cypress is a JavaScript-based end-to-end testing framework that doesn't use Selenium. It is built
on top of Mocha and runs in the browser simplifying asynchronous testing. Mocha is a testing
framework for JavaScript and tests should be written using Mocha’s BDD interface. Cypress can
be configured to use Cucumber as well. 
Advantages of Cypress
 Cypress framework captures snapshots at the time of test execution. This allows QAs or
developers to hover over a specific command in the Command Log to see exactly what
happened at that particular step.
 One doesn’t need to add explicit or implicit wait commands in test scripts, unlike
Selenium. Cypress waits automatically for commands and assertions.
 Developers or QAs can use Spies, Stubs, and Clocks to verify and control the behavior
of server responses, functions, or timers.
 The automatic scrolling operation ensures that an element is in view before performing
any action
 Earlier Cypress supported only Chrome testing. However, with recent updates, Cypress
now provides support for Firefox and Edge browsers.
 As the programmer writes commands, Cypress executes them in real-time, providing
visual feedback as they run.

Disadvantages of Cypress
 One cannot use Cypress to drive two browsers at the same time.
 It doesn’t provide support for multi-tabs
 Cypress only supports JavaScript for creating test cases
 Cypress doesn’t provide support for browsers like Safari and IE at the moment.

11 | P a g e
 Limited support for iFrames

4.3 Test Evaluation Tool


Test evaluation tools are generally tools that help and used to evaluate tests. Test & Evaluation
(T&E) is the process by which a system or components are compared against requirements and
specifications through testing.
Exam Soft
ExamSoft is a test evaluation tool and web-based portal that requires an internet connection to
access.
Advantages of ExamSoft
 It has options to have calculators, prevent students from going back on questions, and
allows students to eliminate answer choices as they go through the questions. It also
allows students to mark a question in order to come back to it.
 Nice for in person quiz in class. No direct video screen monitoring but it will close
background apps but require proctor in exam. Good experience of giving quiz and in
classroom exam.
 Loved the fact that grading took a lot quicker, and the analysis behind the exam was more
thorough which resulted in a more fair exam overall (professors would drop questions
that 'performed poorly').
Disadvantages of ExamSoft
 It does take a long time to load on some students' computers, but for the most part, most
students don't have a problem with this.
 The program is designed to be as secure as possible, due to the obvious nature of its
purpose. By doing so though, it can affect the students personal computer in an
unpredictable manner. 
 Not user friendly. 

4.4. Test Management Tools


The term “Test Management” encompasses anything and everything that we do as testers and we take the help of
the best and most efficient test management software to perform this task. Tools for test management are used to
organize testing activities, report the progress of quality assurance activities, and maintain information on how
testing is to be done. The testing methodologies used by the tools vary, and as a result, so do their feature sets. They
are typically used to manage numerous environments, run or acquire execution data from automated tests,
maintain and schedule manual testing, and enter data about discovered flaws. The possibility of shortening the
testing process exists, and test management technologies enable quick access to data analysis, collaborative tools,
and simple communication between various project teams. To simplify test case design from the requirements,
several test management platforms provide capabilities for requirements management.
practiTest logo

12 | P a g e
A rising star in the test management tool market, PractiTest is a SaaS end-to-end QA management system with
some of the most advanced and interesting features. With PractiTest, testers are able to focus on quality and their
actual work rather than side tasks.
Focusing on efficiency and visibility, PractiTest’s dashboards and reports set a new standard of data intelligence.
Using their unique and customizable filters, you can efficiently organize your requirements, create & run tests
(Automated, Scripted, and Exploratory), track bugs and generate reports.
It integrates seamlessly with the leading bug tracking tools like JIRA, Pivotal Tracker, Bugzilla, and Redmine as
well as various automation tools such as Selenium, Jenkins, etc. Their API can ensure further customization for
other process needs.

Advantages of practiTest logo


Quantitative analysis
Valuation
Risk management
Work flow analysis
Disadvantages of practiTest logo
Column size of graph
Search results
History results popup

4.5 Performance Analysis Tool


Performance analysis tools are tools that support the application developer in tuning the application's performance
for a given architecture. They measure performance data during the execution of the application and provide
means to analyze and interpret the provided data and to detect performance bottlenecks.
AppDynamics
An Application Performance Management (APM) solution like Cisco AppDynamics can assist your company in
making crucial, strategic choices. AppDynamics makes use of artificial intelligence (AI) to improve insight into
your IT architecture, resolve application issues, and stop them from happening again. AppDynamics helps
identify and manage the working of applications in the cloud environment and in the servers. The
availability of the applications, along with its working range, is also notified with AppDynamics.
Intelligence software and tools are offered along with AppDynamics to improve the working of
the tool.

Advantages of AppDynamics
 Dependency View of Technical component for a business application
 Transactions visibility
 Predictive Intelligence

13 | P a g e
 Transaction drill down and root cause identification
Disadvantages of AppDynamics
 Advance Technologies which leverages multiple framework languages
 Predictive Intelligence in real Integration with other event sources
 Network Infrastructure in details
 SLI and SLO

5. Software Maintenance Tools


Software maintenance tools are one of software tools involves modifying the existing software system and
recording all the modifications made to it and it has a great impact on the maintenance of the software and it’s
overall performance in turn.

5.1 Comprehension Tools


Code comprehension tools include overviews, cross references, and visualizations to make it simpler to
comprehend and explore existing code bases. Unlike technologies that help during initial development, they
support software developers throughout software maintenance.
The reader's ability to understand the program is crucial. While some people prefer a top-down approach, others
prefer to comprehend a program from the bottom up. The developer can choose what to read with the help of the
code comprehension tools.
Syntax Highlighting
Syntax Highlighting is a function of editors that uses color, different fonts, or graphical modifications to indicate
the syntax of specific source code components.
Advantages of Syntax Highlighting

 It becomes easier to read code and recognize its structure. Color highlighting is not
important for a machine, but it is for developers. As a result, code reviews, for example,
are (selectively) easier.
 The implementation of code is easier, because the highlighting is done in real time and
typing errors can be detected faster. Wrong keywords can also be identified more quickly
because they are not colored. This leads to a higher performance during development,
especially since modern editors no longer suffer from performance losses due to
coloring / converting.
 In many editors and development environments, the highlighting scheme can be
individually adapted, so that the fun of developing is also increased.

Disadvantages of Syntax Highlight


 Syntax highlighting doesn't improve legibility.
14 | P a g e
 It encourages you to skim through code rather than understand it.
 It makes you focus on syntax errors rather than real bugs, and it gets in the way of your learning.

5.2. Re-engineering
Software re-engineering is the analysis and modification of a system to create a new version of it. Software re-
engineering is the term used when the Re-Engineering philosophy is applied to the software development process.
It has a favorable impact on software price, quality, customer service, and delivery time. By re-engineering the
software, we can increase its effectiveness and efficiency.
Tools used in Business Process Reengineering can include organizational charts, workflow analysis,
benchmarking, job descriptions, business process mapping, and others.
Benchmarking does more than let you know how to obtain output. It also lets you understand the output of your
competitors. This process, which can take on one of four general systems, allows you to implement metrics and
the best practices of your industry so that you can start doing things better, cheaper, and faster. Here are some of the
key pros and cons of benchmarking to consider if you’re thinking about including this process for your business.
Advantages of Benchmarking?
 It gives you a performance improvement: because you’re looking at the best practices of each business
task which must be completed, benchmarking allows you to locate areas where you might be inefficient.
You are also able to compare how your performance matches up to the rest of your industry.
 It inspires creativity: many organizations get stuck in the “We’ve always done things this way” trap. As
time progresses, standards evolve. Processes improve. It’s not comfortable to be innovative sometimes,
but it must be done to stay current with the competition. Benchmarking helps a business provide the
measurable goals.
 It places the focus on change: benchmarking forces you to set and then follow a minimum standard of
excellence. It is often based on a combination of best practices and competitor standards that have been
analyzed in each specific industry. In return, you receive a focus on change that encourages ongoing
learning at every level of the organization.
 It creates a deeper understanding: benchmarking helps an organization know itself on a deeper level. It
also forms relationships with the competition and helps a company explore what the world is offering for
ideas.
 It enables comparison of performance measures in different dimensions, each with best
practices for that particular measure.

Disadvantages of Benchmarking
 It doesn’t really measure effectiveness: when you’re instituting best practices, you are examining specific
efficiencies under a microscopic lens. What you are not doing is measuring how effective your processes
happen to be.

15 | P a g e
 Benchmarking is important, but it can’t be the only thing a business does in order to institute change. It is
simply part of the process that will help you reach an end goal.
 There tends to be a certainly level of complacency: the biggest trap of benchmarking occurs when a
business is able to exceed the standards of their competition.
 It remains inadequate to measure the overall effectiveness of such metrics. 
 The danger of complacency and arrogance.

REFERENCES

1. https://www.smartdraw.com/entity-relationship-diagram/

16 | P a g e
2. https://www.sparxsystems.com/enterprise_architect_user_guide/15.0/model_navigation/traceability_tools.html
3. https://4dsysco.com/what-is-catia
4. https://code.visualstudio.com/docs
5. https://www.infoworld.com/article/3385127/what-is-pypy-faster-python-without-pain.html
6. https://www.sciencedirect.com/topics/computer-science/gnu-debugger
7. https://www.lambdatest.com/learning-hub/test-execution-tool
8. https://www.guru99.com/top-20-test-management-tools.html
9. https://www.wwt.com/article/what-is-appdynamics-ciscos-apm-solution-explained
10. https://lukasatkinson.de/2017/what-is-a-source-code-comprehension-tool/
11. https://www.geeksforgeeks.org/software-re-engineering/
12.https://en.wikipedia.org/wiki/Syntax_highlighting#:~:text=Syntax%20highlighting%20is%20one
%20strategy,find%20errors%20in%20their%20program.

17 | P a g e

You might also like