Software Design Methodologies And Notations Flashcards
What is design?
Before any code is written, a design is created using a top down approach, breaking the problem down into smaller and smaller problems.
Involves systems analyst and project manager.
Examples include Pseudocode, Structure Diagrams and Wire Frames.
What is implementation?
Design is implemented by writing the program. The programming language that is used is determined by the problem, type of user interface and programmer experience.
Project manager allocates individual tasks to different programmers according to their skill set.
What is Analysis?
Defining a problem, and the boundaries of solution to that problem.
Involves conversation between the client and a systems analyst from the software company.
What is testing?
Testing occurs in distinct phases throughout the software development process. Each small part of code is tested to ensure it executes without crashing. Alpha testing takes places in house before beta testing by contracted specialists not involved in the creation of the software. The software is then tested on the customers own hardware through acceptance testing.
What is Documentation?
To produce documentation that will be distributed with the program? Two common documents are the user guide and technical guide.
This relies on input from the client, systems analyst and the programmers.
What is contained inside the user guide?
An explanation of how to use the features of the program
What is contained inside the technical guide?
Includes the minimum hardware specification required to use the program and details of how to install/set up the software.
What is evaluation?
The software company evaluates the success of a project. The identification of mistakes made may ensure that the next project is completed faster and with fewer errors, increasing the company’s profits. Evaluation of the software can identify efficiency savings that could have been made in coding or resource allocation such as memory usage.
What is maintenance?
Once software is complete it is common to return at a later date to change or update the software. There are three types of maintenance carried out by software companies.
Maintenance has become a commonplace with updates to games and apps appearing regularly due to increased download speeds thanks to the introduction of 3G, 4G and broadband telecommunications.
What are the three types of maintenance carried out by software companies?
Perfective - New features are added to the software to improve (perfect) it
Corrective - Bugs or errors discovered after completion of the software are fixed (corrected)
Adaptive - The software must be altered (adapted) due to an external influence, such as a change to the operating system on which the software runs.
What is rapid application development?
RAD takes advantage of the knowledge gained during the production in order to change the solution for the better.
RAD projects involve the development of small, quickly built prototypes to identify potential problems.
The client is shown working components of the software allowing them to give feedback and suggest changes before a complete working version is implemented later.
Once a prototype is accepted it can be used to build the finished component.
What is an agile methodology?
Influenced by the introduction of RAD in the 1980s.
Aims to improve customer satisfaction by delivering software in weeks instead of months - project success is measured on speed.
Small project teams are formed in single locations, nicknamed ‘bullpens’.
These teams contain a variety of skills, relying on conversation to make quick decisions and improve the developers ability to react should the clients requirements change.
What are the Disadvantages of agile methodologies?
- The types of decisions made by the project groups require experience.
- Lack of emphasis on design and documentation causes problems.
- Lack of proper design at the beginning of the project may make project timescale hard to predict.
- Client must be clear about group requirements so that project will be taken the right way.
Why is readability of source code important?
So that multiple programmers could come to it at any time and understand what is going on
Who is responsible for checking that source code is to an acceptable standard?
The developer
What is a software specification?
A legally binding document which describes exactly what the software will be able to do, not how it does it