of a software tool that provides a number of functions which assist with the design, development and testing of software. ▪ Some of these functions are as follows:
database that stores every item of data, size of the data, the data types and a comment to explain what that data means – Provides a graphics/diagram production feature ▪ To aid drawing of data flow diagrams / flow charts – Code Generator ▪ Translate the computer language code into the required source code
as libraries of code – Provides project management tools ▪ Including scheduling of each stage of the system analysis / people management – Incorporates version control – Carries out report generation – Includes a prototyping tool ▪ Allow quick prototyping of dialogue screens, menus, reports etc.
main categories depending on what part of the lifecycle they are supporting. ▪ Upper CASE tools are used to support analysis. ▪ Lower CASE during development. ▪ Integrated CASE are useful throughout.
in this section is one that helps to produce diagrams. These tools have templates, a range of system components, intelligent connectors and other useful functions. Flow chart creators, such as Gliffy, will focus on allowing the user to quickly generate diagrams. ▪ Features such as intelligent connectors speed up the diagram creation process and improve accuracy.
and involved process and it is not just diagrams where CASE tools can help. ▪ The results of fact finding and the recording of requirements must be managed carefully and checked. ▪ Tools such as CaseComplete allow the recording and validating of requirements. In CaseComplete, requirements are recorded as use cases and described in detail. They can include test cases to validate that the requirements are correct.
feature collaboration features so that different members of the team can access all of the resources. This makes management of what could be potentially hundreds of documents much more streamlined. ▪ Design tools allow systems to be modularised ready for implementation. This goes beyond simply creating diagrams, but will look at how the code will be structured. ▪ Additionally, the user experience (or UX design) will have tools to help prototype interfaces. This type of design is sometimes known as wire framing.
supported though CASE tools and automated tests. ▪ Test plans and runs are recorded using these tools which can then link in with bug tracking software. ▪ A very popular free bug-tracking tool is Launchpad. This tool allows bugs to be reported, assigned and processed through the use of a web app. Launchpad also offers other features such as code reviews and translations.
environments or IDEs are really just collections of tools that make a programmer’s life easier. There are thousands of different IDEs, some are free, some cost money, some support many languages (some just one), but there is some functionality that is common to all. ▪ Most provide simple colouring that highlights key words like if or def. They also provide automatic line numbering and some even draw lines to show which constructs (for example, IF and ELSE) match each other. All these simple tools help make code easy to read.
code, most IDEs also provide a range of tools that are useful for debugging (finding errors). ▪ Error messages in IDEs are notoriously inaccurate but they do at least show you where the error is likely to occur. ▪ Due to the way syntax analysis occurs it could be that more than one rule of the language is broken when the coder makes an error. In these situations the compiler will have to make a choice about which one to use. That may or may not be informative to the developer.
IDE then produces an error log explaining that the program cannot be compiled and why. ▪ Notice that the error report tells the programmer the name of the file and the line number on which the error occurred as well as having a guess at what the error was. ▪ On large projects detailed error reports like this can save programmers lots of time.
execution of a program on a specific line of code. This can be useful for finding out exactly where a logic error is taking place or checking the value of variables at a specific point in the code.
will be produced in multiple files. ▪ This code will be compiled together in order to produce the final program. ▪ As there are numerous people working on the code base at any given time, formal methods must be employed to manage changes. ▪ Version management CASE tools will ensure that changes are carefully controlled through the use of a process of checking in and out code.
edited it can be checked out by a developer. ▪ When code is checked out no one else can edit the file and they will be informed who has the code and when it was checked out. ▪ When the changes have been made, the code will be checked back in. ▪ When code is checked in, a new version will be made. ▪ This means that the code before and after will be recorded.
is recorded, this means that changes can be rolled back. ▪ Rolling back a change means that one or more versions of the file will be discarded to go back to a more stable version. ▪ Also, the differences between versions can be shown to see exactly what new code has been added. This is crucial if a bug has been introduced!
all files can be typically ‘tagged’ with that milestone. That way specific stable builds of the software can be released without impacting new development. Beta builds tend to be released in this way. ▪ Also, versioning allows software to branch. When software branches a milestone is created, but two new code repositories are set up. This allows, for example, the easy creating of trial and pro versions of software without impacting the code they have in common.
the open source Git, as shown in the screenshot. In some projects, new features are developed in their own branches in order then merged back to the master branch once ready. This way developers can have more autonomy over the feature in question without worrying about impacting other developers.
tools; Computer-aided software engineering. ▪ Analysis and planning tools enable the developer to create diagrams quickly, such as UML, validate requirements and collaborate on every part of analysis. ▪ Design tools allow mock ups of software to be produced for verification purposes. ▪ Test plans and bug repositories have CASE tools, which help large- scale projects keep track of which tests were run and what bugs were produced.
the developer such as debugging, coding frameworks and the ability to manage larger code projects. ▪ Version management will monitor changes to code and will manage how code files are merged back into the master branch to avoid conflicts.
2. State one analysis or planning CASE tool. 3. State two features of a modern IDE. 4. Describe how program version management is used during the development of software.