Please enable JavaScript.
Coggle requires JavaScript to display documents.
Unit 1 Topic 2.3, Extreme, Rapid, Translators, Unit 1 Topic 2.1, Since all…
Unit 1 Topic 2.3
Agile
Benefits
If an error is found, only one module has to be debugged since all modules should function independently from each other
Good to use if you are dealing with technologies with changing specification, as individual modules can be adapted to work with changing specification
Description
The agile project method involves rapid completion of individual small modules that perform one function, before immediately moving onto the next module.
-
The client is involved with every step of the process, meaning the initial analysis stage can be more relaxed
Drawbacks
-
Scope Creep - At risk of the client changing the scope, which puts the project off-course or makes it difficult to know where to draw the line on additional functionality
-
Spiral
Benefits
If an error is found, not too much backtracking will have to be done, as although it may not be modular, you can revert back to a previous prototype and work from there
-
Drawbacks
A risk manager is required to work on the project, otherwise problems may arise in the future
-
Description
The spiral project methodology involves repeatedly planning, resolving risks for, developing, testing and evaluating prototypes one after another until a finished product is produced.
Applications
- Moderately large projects
-
-
Waterfall
Drawbacks
-
If an error is found, development will be slowed significantly, as debugging a waterfall methodology project is very difficult - progress may have to be reset.
-
Description
The waterfall project methodology involves developing the project in a way that permanently changes the rest of the project as you continue. It is called the waterfall methodology, as it is easy to progress, but very hard to backtrack.
The client is only involved in the analysis and implementation stages, so the client's needs must be very clearly defined
Applications
- Projects with non-changing specification
- Projects that don't use new developing technology
Extreme
-
Benefits
-
Greater user satisfaction, as client can access updated prototypes quicker, even if they aren't perfect
Drawbacks
Very intense, requires a lot of experience and / or qualification
Released versions are more likely to have bugs, since development is rushed occasionally
Description
Similar to agile, the lifecycle is looped through but at each end of the lifecycle, a working program is developed and released.
-
Rapid
Applications
- Projects with longer timescales
- Projects with unclear specification / scope
- Projects with relatively small development teams
-
Drawbacks
Rather than knowing where you are going, you have to do a lot of the specification yourself, as the programmer drives the planning rather than the client
There is a risk of timescales becoming unexpectedly longer due to unanticipated client advice. This can make it unclear for programmers to decide a budget
Description
Rather than designing the program on paper / on a document, programmers will create a mock-up program. A client is in the company at all times to give constant feedback, so programmers immediately know where to improve.
Rather than producing prototypes, each release will be client-ready even if it is not the final release.
The rapid methodology is done using paired programming - each programmer works with somebody else on their module
-
Translators
Interpreters
Bytecode
Most languages are not cleanly compiled / interpreted - a combination of both compilation and interpretation is often used.
For example, java code is compiled into bytecode. This bytecode is then run through an interpreter in a virtual machine, so that the code is not hardware-specific.
-
Description
An interpreter is a translator that translates the program as it is being run, one line at a time. No executable files are output, but it will not be hardware specific.
Drawbacks
- Interpreter object code runs much slower than object code from a compiler, because the computer has to both translate and run your code.
- It isn't possible to make your program proprietary if it has to run on an interpreter, as the source code must be shared to run it.
Benefits
- Code isn't hardware specific
- It is easier and less time consuming to debug programs that run using interpreters
Compilers
Drawbacks
- Debugging the program will be slow and tedious, as the compiler translates the entire program in one go, which can take hours, and will only give an error report after it is finished.
Description
A Compiler is a translator that translates the entire program in one go, and outputs an executable file consisting of the resulting machine code - the object code. This object code will be hardware specific (to an extent).
Benefits
- The object code will run much faster, as no resources are spent on translating the program while it is being run.
- The compiler removes unnecessary processes within the code to optimise performance.
- Programmers can share their programs as proprietary software.
Assemblers
Description
An assembler is a translator that compiles assembly language into machine code so that it can be run.
-
-
Unit 1 Topic 2.1
Applications Software
Off-the-Shelf Software
-
Features
- Everybody gets the same copy of the software
- Significantly cheaper than purchasing bespoke software
-
Examples
- Games from "Stores" (Steam, Google Play etc)
- Most professional editing / production softwares (video / photo editors, DAWs etc)
- Most general purpose softwares
Bespoke Software
Description
Software that is custom-written under a specific brief from a client, to perform specific functions and have a specific layout.
Features
- Often bought by companies
- Significantly more expensive than off-the-shelf
- Often the software is not published onto stores after it is written
-
Proprietary
-
Features
- Users often have to purchase a license to use it
- There may be restrictions on how the software is used
Examples
- Most Professional Software
-
Open Source
Description
Licensed, free-to-use software, that has source code that users can download, edit and redistribute and/or sell under certain conditions that vary on the license.
Features
- Often, to redistribute the software, users must agree to make their distribution also open-source and use the same license
Examples
- Small Development Team Games
- Software that does not appear in "Stores"
Creative Commons
The creative commons license is the most common license used in software distribution. it gives anybody a standardised way to grant the public permission to use their content / creative work under a copyright, and conditions that they can decide.
-
Systems Software
Operating Systems
Functions
- Providing a user interface
- Handling Memory Management
-
-
Utility Programs
-
Examples
- Disk Defragmentation Software
-
Antivirus software uses heuristics to predict if a file may contain a virus - it looks at the object code of an executable file to see if it matches already existing malicious code patterns.
Compression software is used to archive folders and compress files, so that bandwidth usage is reduced during backup, and to optimise storage space
-
Library Programs
Functions
Plugging into other programs, often IDEs, so that users can add pre-defined subroutines to their programs
-
Translators
-
Functions
Translating high-level or low-level code into bytecode or / and then machine code so that it can be run by a processor
Since all processors have their own unique instruction sets, machine code made from assembly language cannot be universal – it will be hardware specific, therefore a translator is still needed.
-