Upgrade to remove ads
H446 Software Development
Terms in this set (66)
Q: What are the five stages of software development (in the waterfall model)?
A: Analysis, design, implementation, evaluation, maintenance. (ADIEM)
Q: What are the five software development methodologies?
A: The waterfall lifecycle model, agile methodologies, extreme programming, the spiral model, rapid application development methodologies.
Q: Briefly describe the analysis phase of software development.
A: The problem is defined, and the requirements are established.
This may include (DPFP):
Data - It's origins, uses and characteristics.
Procedures - what is done, where, when and how, and how errors/exceptions are handled.
Future - development plans and expected growth rates.
Problems - with any existing system.
Q: List and describe the considerations a designer may consider in the design phase.
User interface - Screens and dialogues, menus.
Data structure - How data will be held and how it will be accessed.
Input - content, format, sequence, frequency, medium (device).
Security - From accidental corruption or deliberate tampering/hacking.
Hardware - Selection of an appropriate configuration.
Output - (See input)
Processing - The algorithms and modular structure for the solution.
Q: Briefly describe the programming phase of software development.
A: The problem is repeatedly broken down into individual modules until each performs a single well-defined task. Then it gets coded.
Q: What is the difference between white and black box testing?
A: Black box testing is carried out independently of the code. A set of test data is created that covers all possible inputs and outputs of program functions.
White box testing is dependent on the code logic. Tests are created so every possible path is tested (but this won't detect missing functionality).
Q: What is the difference between alpha and beta testing?
A: Alpha testing is done by an in-house testing team.
Beta testing is done by a number of potential users and detects problems which may not have been anticipated.
Q: Briefly describe the implementation phase of software development.
A: The software will be given to the users and more testing will be done. New weaknesses/omissions are likely to surface.
Q: Briefly describe the evaluation phase of software development.
A: This may include a post-implementation review which is a critical examination of the system 3-6 months after implementation. Users will get a chance to discuss their views and improvements.
The solution should be evaluated on the basis of effectiveness, usability and maintainability.
Q: What four features will a post-implementation review usually focus on?
A: A comparison of the system's performance with the anticipated performance objectives.
An assessment of each aspect of the system against preset criteria.
Errors which were made during systems development.
Unexpected benefits and problems.
Q: Describe the waterfall lifecycle model.
A: Each phase (ADIEM) is completed in succession from beginning to end. Each step has specific outputs that lead into the next. A previous step can be returned to if necessary but developers must work back down through the following phases.
Q: Why is the waterfall lifecycle model not used much anymore?
A: The user/customer is involved in the analysis stage but then has little input until the evaluation stage.
The model was adopted from the manufacturing industry where changes to early phases had high-cost impacts to work already completed, so it was important to get each stage completed.
Q: Describe the spiral model.
A: Phases (ADIE) are completed consecutively in a spiral, each successive loop is more complicated and generates a more refined prototype until the model is finished.
Q: When would the spiral model be used over an agile approach?
A: The spiral model is used for larger-scale products (i.e.- products that take years to deliver.)
Q: What is an agile approach?
A: The stages of software development may not be completed in a linear sequence. Feedback will be obtained from the user throughout and developers do just enough modelling at the start to ensure the system is being developed in line with the user's needs.
Q: What are the four principles of the agile approach?
Keeping the model simple.
Rapid feedback from the user.
Understanding that user requirements may change during development.
Being prepared to make incremental changes as the model develops.
Q: Describe extreme programming.
A: A methodology that intends to improve software quality and responsiveness to changing requirements.
Frequent releases of the software are made in short development cycles. There are checkpoints at which new customer requirements can be adopted.
Ideas like pair programming, extensive code review, flat management structures are used.
Q: Describe rapid application development.
A: Major changes at late stages of development can lead to projects being cancelled or restarted, at great cost. This methodology was introduced as a response to this, promising much faster completion of major projects.
A protoype is created, then user feedback is given, then the prototype is refined and a new prototype is created based on the previous. That cycle is repeated.
Q: What are some of the ideas behind rapid application development?
A: Workshops and focus groups are made to gather requirements (instead of a formal document).
Prototyping is used to continually refine the system.
Each part of the system has a strict time limit the outputs of which will be good enough.
Software components are reused as much as possible.
Q: What are the benefits and drawbacks of the waterfall lifecycle model?
A: They are suitable for small projects which need careful supervision such as those undertaken by students or trainees.
The absence of user involvement is a serious drawback.
Q: Why are the spiral model and the agile approach an improvement over the waterfall lifecycle model?
A: They acknowledge that users cannot specify their requirements properly at the start because they don't understand what is possible.
Q: Where would extreme programming or rapid application development be used?
A: In large projects where there is danger of getting repeatedly sidetracked on suggested improvements. This stops the developers from chasing a moving target.
Q: What is an algorithm?
A: A set of instructions to perform a task.
Q: What are the properties of a good algorithm?
A: Produces the correct output for all valid inputs.
Contains clear and precisely stated steps.
Allows for invalid inputs.
Executes efficiently and in as few steps as possible.
Is understandable and modifiable.
Q: Give examples of applications of algorithms.
A: Internet-related algorithms.
Q: What is pseudocode?
A: A way of expressing a solution that can easily be translated into a programming language.
Q: How would one draw a trace table?
A: Track through the code in the same sequence as the computer and record each variable change (and its new value) in a trace table.
Q: What are the four major programming paradigms?
A: Procedural programming (including structured programming).
Q: Give examples of languages which support multiple paradigms.
A: Python, Delphi, Java.
Q: Give examples of languages which support procedural programming.
A: Python, Pascal
Q: Give examples of languages which support object-oriented programming.
A: Python, Delphi, Java
Q: Give an example of a language which supports declarative programming.
Q: Give an example of languages which support functional programming.
A: Haskell, Python, C#, Java.
Q: Describe declarative programming.
A: Statements are written that describe the problem to be solved and the language implementation decides how to solve it. (e.g.- SQL queries databases).
Q: Describe functional programming.
A: Functions are the fundamental building blocks of a program. Functions accept input data as arguments and return an output.
Q: Describe procedural programming.
A: A series of instructions which tell the computer exactly what to do to solve the problem. They're easy to learn and applicable to a wide variety of programs.
Q: Describe structured programming.
A: A subset of procedural programming which includes constructs of sequence, selection, iteration, and recursion.
Q: Describe object-oriented programming.
A: Classes are defined as descriptions of the state and behaviour of data. The programmer can then create instances of these classes (objects).
Therefore, it's possible to abstract details of implementation away from the developer and thus make code easier to maintain.
This is largely replacing procedural programming.
Q: In a program to record animals in a zoo, what might be the classes?
Q: What two things may a class have?
A: Attributes and behaviours.
Q: Define attributes.
A: The variables of a class, individual to each object.
Q: Define behaviours.
A: The functions of a class which will usually use that instance's attributes.
Q: Define inheritance.
A: A subclass of a class will have the same attributes and behaviours as the superclass. It may have additional attributes and behaviours or overwrite some attributes and behaviours.
Q: Define polymorphism.
A: A name referring to a language's ability to process objects differently depending on their class. (e.g.- subclasses can redefine the behaviours of superclasses).
Q: Define encapsulation.
A: Where an object's attributes are private and can only be accessed through the class methods.
Q: What is a constructor?
A: A behaviour defined in each class which is performed when it is initialised (and may declare it's attributes).
Q: What are the advantages of an object-oriented methodology?
A: Designers are forced to plan extensively.
Objects can be written and tested independently.
Once an object is written, it's implementation can be forgotten about.
New objects with slight differences to previous ones can easily be created.
Objects can be reused easily.
Writing code libraries is easier.
Software maintenance is easier.
Q: How does an assembler translate assembly code to machine code?
A: Assembly code is written in mnemonics which are then translated to their corresponding binary equivalent.
Q: What is the ADD command in LMC assembly code?
A: The contents of the memory address given are added to the accumulator.
Q: What is the SUB command in LMC assembly code?
A: The contents of the memory address are subtracted from the accumulator.
Q: What is the STA command in LMC assembly code?
A: The value in the accumulator is stored in the memory address given.
Q: What is the LDA command in LMC assembly code?
A: The contents of the memory address are loaded into the accumulator.
Q: What is the BRA command in LMC assembly code?
A: The address given will be loaded into the program counter and will be the next instruction to be executed.
Q: What is the BRZ command in LMC assembly code?
A: If the accumulator is 0, the address given will be loaded into the program counter and will be the next instruction to be executed.
Q: What is the BRP command in LMC assembly code?
A: If the value in the accumulator is 0 or positive, the address given will be loaded into the program counter and will be the next instruction to be executed.
Q: What is the INP command in LMC assembly code?
A: The user is allowed to input a number into the accumulator.
Q: What is the OUT command in LMC assembly code?
A: The contents of the accumulator are outputted.
Q: What is the HLT command in LMC assembly code?
A: The execution of the program is halted.
Q: What is the DAT command in LMC assembly code?
A: This is used to indicate a memory location, somewhat like a variable.
Q: What is the format of LMC binary instructions?
A: As operation code, 6 bits are used for the operation and 2 for the addressing mode.
8 bits are used for the operand.
Q: How does the LMC differ from a real computer?
A: There will be considerably more instructions (such as shift), and there will be up to 16 registers in place of a single accumulator.
Q: What are the four different addressing modes?
A: Immediate addressing, Direct addressing, Indirect addressing, Indexed addressing.
Q: What is the operand in immediate addressing?
A: The operand is the actual value to be operated on.
Q: What is the operand in direct addressing?
A: The operand holds the memory address of the value to be operated on.
Q: What is the operand in indirect addressing?
A: The operand is the location (usually of a register) which holds the address of the data. This enables a larger range of addressable locations.
Q: What is the operand in indexed addressing?
A: The address of the operand is obtained by adding a constant value to a general register (called the index register). The number of the index register and constant value are included in the instruction code. This is used in things like arrays.
Other sets by this creator
Y8 KS3 Computing
CAA Drone Theory Test