1.7 software engineering Flashcards
what are the facilities typically available in CASE (computer aided software engineering) tools
- these are software tools to help developers
- form designer (interface generator) to create the interface quickly (like the vb form designer)
- report generator to create reports quickly and easily (eg. charts/tables)
- data flow diagram/ flow chart design software
- source code generator to allow some of the code to be automatically written, possibly from the data floe diagrams or forms from the form designer software
- debugging tools
- project management tools which allows access to calendar tools, Gantt charts, critical path analysis tools etc, to keep the project on track and allocate jobs to team members
- version control which keeps track of program versions
- repositories of reusable code, which allows repositories/ libraries of useful code to be created and used
what software packages are used to assist system analysis
- a flowchart software or a UML software can be used to analyse an existing system structure - these pieces of software allow the developers to produce complete planning and design documents for individual cases such as the end use of another developer
- analysis software tools are also available to be used in requirements engineering and management - this software can be used to record and monitor requirements, use and test cases
- other examples: data floe diagrams, entity relationships can be created using Microsoft Visio - it is easy to move the elements around the screen
what software packages are used to assist system design
- designing a system structure can be completed using flow chart software or UML software
- UX and UI designers use wireframing and mock up tools for user interfaces and experience
- collaborative code editors could be used to produce pseudocode for review by developers
- other examples: visio and gliffy
what software packages are used to assist version management
- program version management software is store, record and analyse different stages of code development
- version software can be submitted through a version control system (eg. Git to an online repository hosting solution to track and records the changes in projects and file, eg. GitHub)
- version management software is useful when multiple developers are working on a single project, it ensures one developer does not overwrite another developers code
- version management software can also be used to roll-back software if a program becomes corrupt during the development process
what software packages are used to assist system testing
- quality assurance/ control software to test that a solution conforms to internal and external standards
- test environments can be used to test the portability of software on different platforms such as Linux and Windows
- version control repository can be used to report, monitor and analyse code errors, defects and bugs
- built in automated testing features within IDESs, such as breakpoints, to generate unit and system performance testing
what does the case complete software do
- allows test cases/ scenarios to be created as requirements are entered, that can then be used during the coding and testing phases, to ensure that each step works as expected
- can be used to record user requirements, prioritise them, keep track of changes to requirements and version numbers
- they can be used to produce complete planning and design documents for the end user or other developers
what is bug tracking and examples
- software such as Bugzilla and Jira allow issues/ bugs with software to be recorded and tracked
- programmers can add feedback to these issues and log their progress towards a solution
- once an issue is resolved, the final solution can be documented and the issue closed
what is unit testing and test automation
- in modern programming, (normally agile), unit tests are defined before the code is written
- these unit tests specify the tests that will need to be carried out and the expected results that will need to be achieved in order to prove the code works correctly
- this acts as quality assurance that a solution conforms to expected standards
- programmers are expected to not only write their subroutines and modules but also ensure that the routines to test them are kept up to date
- many of these tests can be automated using software that carries out each of the tests, often daily and certainly before any new versions are released
- unit testing is often built into modern programming IDEs such as Visual Studio
- test environments might also be used to test portability of software between different platforms, such as Linux and Windows
explain the typical features of an IDE
- an IDE consists of various tools that a programmer needs to create programs and usually other features to help them to be more productive:
- an editor to develop programming code:
- keywords may be highlighted in different colours
- code might be automatically indented
- intellisense can automatically suggest code you
could chose to enter - automatically creates an ‘end if’ when an ‘if’ is
entered
- automated error checking (highlighting coding errors)
- usually buttons or menu items to allow code to be compiled or interpreted and run
- tools for debugging
- links to libraries of useful routines
- options to allow unit testing
- editor: this allows the programmer to enter, format and edit source code to produce a program
- compiler: this converts source code into executable machine code to allow a program to run, once complied, a program can run at any time
IDE TOOLS : Error reports
- when you try to run a program (that might be complied or interpreted), a log of errors is displayed explaining why the program will not run
- will include line numbers, details of errors, perhaps advice as to the possible reasons for the error
what are the debugging tools provided by the IDE
- program trace/ step through
- break points
- conditional break points
- variable watch
- store dump
- error diagnostics
- post-mortem routines
DEBUGGING TOOLS: breakpoint
- the programmer can set a breakpoint on a line of code, when the line is reached, the program will pause
- the current values of the variables can then be examined and then execution continued
- allows the programmer to temporarily halt execution in order to ascertain the value of variables at that point
DEBUGGING TOOLS: program trace/ step through
following a breakpoint, the value of the variables can be examined and then a button clicked to step through the code a line at a time
DEBUGGING TOOLS: variable watch
the programmer can specify a particular variable/s to monitor and is informed when the value changes
DEBUGGING TOOLS: conditional breakpoint
breakpoint occurs when it is set to a particular value