Features Overview

Project Management

Source Editor

Symbol Browser

Code Structure Highlighting

Source Flowchart Viewer

Call-Hierarchy and Data Flow Graph

Type-Hierarchy Graph

Static Code Analyzer

Source Code Metrics Checker

MISRA C Compliance Checker

Naming Convention Checker

User-Defined Actions

Automated Tasks

Command Shell

Documentation Generator

Docu-Parts Generator for Doxygen

Makefile Generator

Project Importer

Version Control Support

Source Code Formatter

Project Management

The Project Explorer gives you the possibility to work with the most important project resources - files. Thanks to the fact that the largest part of the project is visible via the Project Explorer as well as the well-organized and various shortcut menus, it is clear that you will use it often to start your research quest, but also to organize and develop your source code.

Source Editor

Editor is the basic and most often used DA-C functionality. Editor offers a large number of separate features, but is at the same time linked with all other features which makes it even more powerful. Editor, first of all, gives you the opportunity to create and modify source and text files. We try to make Editor keep up with the latest trends in the world of editors, to provide standard editor features which have come to the fore over a long span of years, but also to offer some non-standard functionalities. Therefore, like all editors, DA-C Editor has a large number of small but necessary functionalities and options.

Symbol Browser

Complete answers to simple, but common questions, such as: Where is this function declared? Where is it used? Where are assignments to this variable carried out? Which are all the types defined in the project? and many others are provided by the Browser. Browsers are designed to display results clearly, and also to provide easy movement to the place in the source for which it is relevant; it is possible to ask the next Browse question from them. Therefore, if there is something you would like to know about the project - ask the Browser.

Code Structure Highlighting

Code Structure Highlighting is a special source code display in Editor in which program structures are highlighted using colors and frames. In this way, the impression that a structured flowchart is displayed in Editor is created. There are several ways to highlight structure, several ways of coloring background or frames, so that Code Structure Highlighting, can, actually, appear in several different appearances, and can satisfy various developer tastes.

Source Flowchart Viewer

Although the source code is usually written as text, such text has its structure. But, when you analyze the code of a function it is sometimes difficult to recognize code blocks within it. DA-C has the ability to analyze the source code and display a Flowchart as the graphical-logical presentation of the edited function.

In other environments, Flowcharts are usually displayed by dividing the source code into fragments and displaying it within the drawn blocks. In such programs, where the entire code is displayed in a Flowchart, the diagram itself usually becomes too large - becoming practically useless. A part of such a diagram, which is currently displayed on the screen, is too small in relation to the size of the entire diagram for the structure of the code to be easily visible.

Instead of this approach, in DA-C Flowcharts are based on a different philosophy. As Flowchart is always synchronized with Editor, it is enough for the code structure to be displayed without the blocks displaying program code but only its comments. When details are set aside - it is much easier to see the code structure and logic. You can always start the actual code within the Editor, while certain actions pertaining to code structure can be carried out directly on Flowchart.

Call-Hierarchy and Data Flow Graph

The Call-Hierarchy and Data Flow Graph provides an overview of the function-data relation in the program. These graphs have many and varied uses. On the one hand, they can be used to display software system design and as such enhance software understanding and represent a valuable resource for software documentation. On the other hand, in everyday work with software, they provide a unique overview of the source and enable you to browse and manipulate it quickly.

Displaying parameters and data, graph manipulation (above all-grouping functions) make the Call-Hierarchy and Data Flow Graph a tool which not only helps you understand the software, but is also a great help in quality development and maintenance.

Type-Hierarchy Graph

The Type-Hierarchy Graph has been renovated in the new version and with its two modes now enables you to distinguish relations in the often tangled web of data on project.

Static Code Analyzer

Static code analysis is the DA-C "engine" because almost all other DA-C functionalities depend on it. Static analysis, which is based on the same principles as a compiler or linker, extracts all information on symbols from the source code of the project (functions, variables, constants, types, macros) and saves them in the SCA database. Information can be read from the SCA database at need, for example for creating a function Call-Hierarchy Graph. DA-C version 4.0 has the advantage that the assembler code is analyzed along with the C source code, so the usefulness of this hidden yet powerful functionality is all the greater.

Source Code Metrics Checker

The basic task of Software Source Code (SC) Metrics is to identify and measure the key metrics which affect software development. DA-C offers a solution which combines the usefulness of using Source Code Metrics and the facility of working in an integrated environment. Metrics reports provide from their own angle a qualitatively new outlook on the complexity and quality of the project. Source Code Metrics in DA-C are easy to use, allow a visual overview of metrics properties and are integrated into the project.

MISRA C Compliance Checker

C program language has a range of advantages for use in embedded software: compiler availability for various microprocessors, an efficient code, support for low-level communication with hardware, portability, etc.

On the other hand, certain factors have a negative effect on the accuracy and quality of the code: the possibility for typographical errors which result in compiler warnings; syntax which enables the writing of clear code but also an illegible coding style; hard to grasp language constructs, for example, complex operator priority rules; incomplete definition in semantics standard of certain parts of the language.

Document Guidelines for the Use of the C Language in Vehicle Based Software, published by the Motor Industry Software Reliability Association (MISRA), specifies a C language subset well suited to embedded systems to security level three locked.

Within static code analysis, DA-C implements checking compliance with the greatest part of the standard rules which protect the code in accordance with the MISRA rulebook.

Naming Convention Checker

DA-C gives you the possibility to bring in certain conventions relating to the naming of project symbols, and to check whether the names you have defined in the project correspond to the conventions assigned. If the names of the symbols in your project are standardized, then finding your way around in the project is much easier. In this way you can tell, by looking at what follows a variable name, what its type is, whether the variable is local, static, global, and so on.

User-Defined Actions

User-Defined Actions provide DA-C with two important possibilities: cooperation and adaptability. In the project, you can define several of your own actions which will call some other tools - such as make or simulator or your favorite word processor - in other words, everything you would like to have close at hand. You define actions using several dozen macros offered - so that you can open or save a file in DA-C, but also view all project modules, as well as a number of other things, which shows the extent of DA-C's adaptability. Of course, using a macro combination you can get new quality and a DA-C suited to the needs of your project.

Automated Tasks

DA-C enables you to automate any combination of menu clicks, see command line parameters.

Command Shell

The Command Shell feature provides you with an overview of the output of character-mode applications started from DA-C. Character-mode applications can be called within a User-Defined Action or separately via the command line.

During software development, the most often used character-mode applications are compilers, assemblers, linkers, whose typical output contains error reports. Command Shell supports such tools by recognizing errors from their output and providing operations for working on them as it does with all other error which DA-C static code analysis reports.

Documentation Generator

The software documentation process is a permanent process which lives as long as the software production process does. The magnitude of software documentation and the differentiation of the documentation process from the software development process results in outdated documentation. The documentation generator is a solution which synchronizes the development process with the software documentation process.

The basic idea behind the documentation generator is to write documentation templates instead of documents. These documentation templates, beside the classic content like to that of any other Microsoft Word document, contain the code using which current data is taken from the DA-C project. This code is written with a specially developed language - DGML. On the basis of documentation templates, DA-C generates up-to-date software documentation.

The documentation generator will help you with documentation specification so much so that you can form quality documentation templates, that is, as the end product, quality software documentation, even without knowing DGML.

Docu-Parts Generator for Doxygen

With DA-C you may generate Docu-Parts for Doxygen to include those in the software reference documentation. You may define graphics import in Source with Doxygen command "\image html GraphicsName.jpg", DA-C may find it and generate graphics, according scripts embedded in DXY Script File. On this way your documentation will be always up to date, no "Save As..." for graphics will be needed. The Scripts are saved in one "myProject.dxy" file, and every Script my be created with DA-C Documentation Generator Wizard.

Makefile Generator

Maintaining makefiles has always been a tedious but necessary job which consists of the creative part - selecting and configuring tools which are necessary for the software build process, and the formal part - specifying files which need to be built together with their dependencies. Makefile generator works on the principle of a makefile template. This template specifies the creative part of the build, while the makefile generator forms and fills a list of files and their dependencies in accordance with the DA-C project and with information obtained from the source code. In this way, you will make makefiles only once, and the complete list of files can be maintained exclusively from DA-C.

Project Importer

Importer enable you to create an equivalent DA-C project from the configuration of some other environment (Editor, IDE, VCS database, etc). This is the easiest and fastest way to use all DA-C functionalities for existing projects supported by other tools.

Version Control Support

Most of today's projects, especially those developed as a team effort, based their configuration management on one of the existing Version Control Systems. DA-C offers, via its plug-in system, the possibility of integration with VCS products of well known world manufacturers. Also, DA-C offers the possibility of integration with any VCS for which there is, the now widespread, SCCI driver. VCS commands are naturally integrated into the DA-C environment, and special care has been taken with file manipulation from Project Manager.

Source Code Formatter

Due to different developer habits as well as to source reuse (in its entirety or in parts) from other projects and examples, it is very difficult - despite project rules - to keep the source "spick and span". The formatter is a tool which can help developers and reviewers to view the code and work with it - precisely in the way in which they are accustomed, while at the same time complying the rules of writing source on their project. The formatter is fully configurable. This means that it can be not only adjusted to all rules of formatting source on project, but also adjusted to accommodate all tastes.