Software Engineering Flashcards
What does CASE stand for and what does it do, name some of the features
Computer aided software engineering
Software tools to help programmers
Some features are:
-form designer (interface generator) to create interfaces quickly and easily
-report generator to create reports
-source code generator (allows some code to be automatically written, possibly from dfd or form designer software)
-debugging tools
-project management tools
-version control
-repositories of reusable code
What are the two tools designed to help the software engineering process
CASE tools
Analysis and planning tools
What is included in analysis and planning tools?
Diagrams
Recording requirements
What do diagrams do in analysis and planning tools?
e.g. flow charts, data flow diagrams, UML, entity relationships etc.
Created by a software e.g. gliffy or Microsoft visio
Easy to move the elements around the screen and the arrows will automatically move and reroute the boxes they are attached to change location (intelligent connectors)
What do recording requirements do in analysis and planning tools?
Software that records user requirements, prioritise them, keep track of changes to requirements and version numbers:
Case complete
Jira
Used to produce complete planning and design documents for the end user or other developers
Allows test cases/scenarios to be created as requirements are entered, that can then be used during the coding and testing phases to ensure each step works as expected
What is interface design and what are examples of software used to do it
E.g. visio, gliffy
Used to draw UI, sometimes known as wire framing to give an idea of what the screens will look like and the flow between them
What is bug tracking and give examples of software used
E.g. bugzilla, Jira
Allows issues/bugs with software to be recorded and tracked
Programmers can add feedback to these issues and log their progress towards a solution
Once resolved the final solution is documented and the issue closed
What is unit testing
Unit tests - specify the tests that will need to be carried out and the expected results that will need to be achieved to prove that the code works correctly
Acts as quality assurance that will conform to expected requirements
These tests can be automated using software that carries out each of the tests, often daily and before any new versions are released
Unit testing is often built into IDEs (e.g. visual studio)
Why might test environments be used
To test the portability of software between different platforms such as Linux and windows
What is an IDE and what does it include
Integrated development environment
Consists of various tools that a programmer needs to create programs
And other tools to help them be more productive:
An editor to develop programming code
Automated error checking (highlighting code errors)
Tools for debugging code
Links to libraries of useful routines
Perhaps options to allow unit testing
What is a breakpoint
Used in debugging tools
The programmer can set a breakpoint on a line of code. When the line is reached the program will pause.
The user can check the current values of variables which can be examined and execution continued
Error reports in IDE tools
An error log is displayed when you try and run a program
Will include line numbers, details of errors, advice to the possible reason of the error
What is program trace/step through
Following a breakpoint the value of variables can be examined and then a button clicked to step through one line of code at a time
What is variable watch
Debugging tool
The programmer can specify a particular variable or variables to monitor and is informed when the value changes
What is a conditional breakpoint
Debugging tool
Breakpoint occurs when it is set to a particular value.
What is store dump
Debugging tool
View the contents of memory when a program crashes
What are post-mortem routines
Debugging tool
View the values of variables at the point where a program crashed
What are error diagnostics
Debugging tools
Useful error messages, advice or links to help pages/articles related to an error that occurs
Different versions of computer software are usually given version numbers
What is version control software
Many software development teams use VCS (version control software)
This assigns version numbers to each module following a change and to the program when compiled
It keeps a copy of each version so it is possible to access the code as it was at each stage.
Means that if a problem occurs with a particular version, you can roll it back to an earlier version that was working and start development again
Ensures that only one programmer can be editing a module at a time to avoid work being lost if two programmers were editing a copy at the same time
Essential for tracking bugs and issues in source code
version control software
E.g. Git
Can be local to a machine, stored on a sever or be distributed (cloud)
Each file is given a version number
Different developers can upload changes/revisions to a file and will be saved as two copies. Later, the changes can be merged together without losing any work along the way
Each file committed should have comments included to specify the changes made
Users of git Can revert back to earlier version at any times as git keeps a snapshot of every change made
Version management tools are commonly integrated into IDEs e.g. visual studio can communicate directly with github