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
How is readability of code achieved?
Using meaningful identifiers (variable and procedure names)
Internal Commentary
White space and indentation to make code logic clear
Use of local variables and creating modular code - this makes the modules re-usable in other parts of the program
What is alpha testing?
By programmers responsible for the application in parts
Who performs beta testing?
The clients
Corrective maintenance
Users encouraged to report any errors during program usage
Developers will cover all costs of this kind of maintenance which is of use to them as they can then replicate errors and provide a solution
Adaptive maintenance
Used when a programs environment/design changes - OS, Computer system etc.
Depending on predictability of the change in circumstances, negotiations may be made but ultimately the client will cover the cost of this kind of maintenance
Perfective maintenance
When the client requests changes which were not in the original software specification, perhaps due to changes in requirements or legislation.
This involves revision of the entire system and ultimately is very expensive - the client covers the cost.
What is meant by stating “software development is an iterative process”
-
What is reliability?
How well a program operates without stopping due to design faults