1.2 - Software and software development Flashcards
What is software?
All programs that run on a computer.
e.g. Applications software = Outlook.
e.g. Systems software = operating systems, windows.
What is software development?
Going from the initial idea to the final product.
What are the 5 stages of software development?
- Analysis.
- Design.
- Implementation.
- Evaluation.
- Maintenence.
What happens in the analysis section?
- System analyst gets info about what current system dows + what new system needs to do.
- Done by intervieweing users, questionaires from large groups of people, observing current system + look at documentation.
- Output = ‘system specification’ or ‘user requiremnts’. Defines what the system will do but not how.
What are the 5 things that happen in the design stage?
- Description of the data: data type, format + validations.
- Database design (If needed).
- Input screens, output screens + reports.
- How the data will be processed.
- How the software will be tested.
Algroithm -> Pseudocode/flowchart.
What 3 things happen in the implementation stage?
- Code + test the software.
- ** Writing user + technical documentation.**
- Installing the software for the user.
What are the 4 testing stratergies?
- Black box.
- White box.
- Alpha.
- Beta.
What is BLACK BOX testing?
INDEPENDENT of the code used in the program.
looks at program specification + creates set of test data that covers all the inputs/outputs/program functions.
What is WHITE BOX testing?
Depends on code logic, tests, test each path through the code at least once.
What is ALPHA testing?
Done by software devel;opers in-house team by the user, reveals errors + ommisons in the definition of the system requiremnets. User may discover that the system does not do exactly what they wanted.
What is BETA testing?
When commercial software is being developed. (Given to potential users, use the software + report any faults. e.g. MS windows, MS word, Sage accounts etc).
What happens in the Evaluation stage?
- Does it all work?
- Test every aspect of the software to make sure it does what it is meant to.
- Evaluated against original specification.
What are the 3 types of Maintenance?
- Corrective.
- Adaptive.
- Perfective.
What happens in CORRECTIVE maintenance?
Bugs usually found when software put into action, no matter how thoroughly it was tested.
What happens in ADAPTIVE maintenance?
Over time user requirements will change +{ software is adapted to meet new requirements.
What happens in PERFECTIVE maintenence?
Even if software works well, it’s improved so its faster, easier to use + has more functionality.
What 3 features define the waterfall model.
- Each stage is completed + documented before moving on.
- End product not seen until completed. - any changes made means project has to be started again.
When is the waterfall model used?
- Requiremnets = clear + fixed.
- No ambiguous requirements.
- Technology is well understood.
- Project = short.
What are the 4 positives of the waterfall model?
- Simple to understand + use.
- Every stage is seperate + self contained with well defined outcomes + written documentation.
- Relatively straightfoward to manage.
- Works well with smaller projects where requiremnets are very well understoord.
What are the negatives of the waterfall model?
- NOT MUCH USER INVOLVEMENT after the analysis stage when specification document is achived.
- No working software is produced until late in the cycle.
- User presented with the FINAL PRODUCT + if not quite what required, TOO LATE to make changes.
Define the spiral model.
- The 1st 4 basic steps (Analysis, design, implementation, evaluation) are followed + software project pases through the phases repeatedly.
- Each succesive loop round the spiral generated a now, more refined prototype until the software meets all the requirements.
When is the spiral model used?
- Medium to high risk projects.
- When users unsure of their needs and what the possibilities are.
- When the requirements are complex.
- Large projects, may take years to develop, so new technologies may develop + significant changes occur.
What are the 5 positives of the spiral model?
- Well defined steps = easy to manage.
- Software produced at early stage so problems + issues are indentified early.
- User gives feedback on each new prototype + any required changes can be made early in the process.
- Added functionality can be added during the process.
- End result is more likely to be what the user wants.
What are the 3 negatives of the spiral model?
- time consuming - longer development time.
- System more costly to develop because of the time involved.
- Not suitable for smaller models.
Define the agile Model.
- Software developed in incremental cycles.
- Each version builds on previous functionality.
- Good for small, time critical projects.
- Limited planning is needed to get started.
When is the agile model used?
When new changes need to be implemented + in an expanding or developing business where users need are continuously changing + developing.
What are the positives of the agile model?
- Rapid, continuous delivery of useful software leads to customer satisfaction.
- Customers, developers + testers constantly interact with one another.
- Working software is delivered frequently, within weeks rather than months.
- Software is easily adapted to changing circumstances.
- Late changes in requirements can be implemented.
What are the negatives of the agile model?
- Lack of emphasis on necassary design + documentation.
- Project can fail if customer isn’t clear about desired final outcome.
What is extreme programming?
(In agile software development)
- Frequent releases of software made in short development cycles.
- Indented to improve productivity + responsiveness to changing customer requirements.
What can happen in large projects?
Personel change, requirements change, technology advances, costs spirling upwards can cause a project to be cancelled.
What is rapid application development?
- Workshops + focus groups gather requirements rather than a formal document.
- Prototyping is used to continually refine the system in response to the user feedback.
- Each part of the system is produced within a strict timelimit - maybe not perfect but good enough.
- Software components are reused whenever possible.
What is a programming paradigm?
A style or way of programming.
(Some support one or multiple)
What languages are used in procedural programming?
- Python
- Basic
- C#
What languages are used in object oriented programming?
- Java
- C++
- Visual Basic
- .Net
- Python
What languages are used in declarative programming?
- SQL (Structured Query Language)
- Prolog
What languages are used in functional programming?
- Haskell
- Javascript
- Logo
What is imperative programming language?
languages consist of a series of instructions that tell the computer what to do with the input in order to solve the problem.
What is structured programming?
- a programming paradigm (Way of writing a program).
- Uses the constructs SEQUENCE, SELECTION, ITERATION, RECURSION.
- Modular techniques split a large program into managable chunks.
(Type of procedural programming)
What language is an example of declarative programming? (explain)
- SQL statements describe the program that is to be solved + the language implementation finds the best way of solving it.
(Creates, amends + querys databases)
Logic Programming
(Part of declarative programming)
- Paradigm that expresses the logic of a computation without expressing its control flow.
- Consits of logical statements.
- Uses Prolog
What is Prolog?
- Based on FACTS and RULE, has a logical relationship.
- e.g. likes(tom, jenny) /* Tom likes Jenny */
- It querys the database of facts.
- Variables have a capital letter.
- Doesn’t define how problem is solved - instead states the facts + rules associated.
- FACT = unconditionally true.
- RULE = true based.
What are the rules of prolog?
IF a is true,
THEN b is true.
e.g. Lions eat meat
Larry is a lion
Therefore, Larry eats meat.
How do you execute a program with prolog?
State the goal, then on given conditions. It allows Prolog to determine whether the add/change/delete rules.
What is backtracking?
- Selects a route through maze of FACTS + RULES. Continues till goal is achieved or no routes are found.
What is an important feature of declarative programming?
- Backtracking (Used for expert systems e.g medical diagnosis, oil exploration, tax regulations etc), (Useful for processing natural language, e.g. English).
What are the features of Object Oriented Programming?
- Makes it possible to abstract details of implementation from the user.
- Reusable + easy to maintain. e.g. Python, Delphi, VB, .NET.
- Objects have attributes + methods.
- ## Objects interact with one another + all processing is done by objects.
What are attributes?
Object Oriented Programming
An objects data.
What are methods?
Object Oriented Programming
They are operations on the attributes of an object.
Example of program to simulate a frog hopping from a lilypad to lilypad in a pond.
Object Oriented Programming
Object = Frog.
Attribute = colour, length of hop, position.
Method = hop.
What is Class?
Object Oriented Programming
Defines attributes + methods the common characteristics and behavious of objects.
What is a constructor?
Object Oriented Programming
To create objects based on the class.
What is encapsulation?
Object Oriented Programming
- Attributes and methods are wrapped into a single entity. (Fundamental principle).
- It is information hiding. (The attributes are hidden and only accessed/changes through the object methods. The methods are required to set (SETTERS) and retrieve (GETTERS) an objects attribures.)
- To be able to interact with an object, the methods must be public.
- Put a - for private. Put a + for public in the attributes.
What is defining a class?
Object Oriented Programming
- Methods + attributes belonging to a class are specified here.
What is inheritence?
Object Oriented Programming
- “Relationship amoung classes where subclasses share all of the attributes and methods of a parent class”
- Can have own methods + attributes in addition.
What is polymorphism?
- Inherited class may have method + attributes that do not exist in the parent class may redefine methods that define the parent class.
Polymorphism = many forms of something
An example of polymorphism.
Object Oriented Programming
Parent bird have method EAT.
Subclass Parrot define this as EATING seeds.
Subclass Eagle define this as EATING meat.
What is SOURCE CODE?
The programmers code.
What is OBJECT CODE?
It is the compilers code.
What does an interpreter do?
- It translates high level languages into machine code.
- There is no obejct code produced .
- Stops when there is a syntax error.
Why is a language low level?
(Assmebly language)
- Because the instructions directly correspond to the machine code.
What characteristics of a low-level language?
- Mnemonics represent operational codes.
- 2/3/4 - character codes represent all machine code instructions.
- Different assembly languages for each type of processor.
- Assembler translates assembly language program into machine code for execution.
What is the Little Man Computer?
(LMC)
Imaginary + very limited instructon set.
Made by Dr Stuart Madnick in 1965.
What does ADD do?
(Assembly Language)
- Instruction = add
- Numeric code = 1xx
- Description = Adds the contents of the memory address xx to the accumulator.
What does SUB do?
(Assembly Language)
- Instruction = subtract
- Numeric code = 2xx
- Description = Subtracts the contents of the memory address from the accumulator.
What does STA do?
(Assembly Language)
- Instruction = store
- Numeric code = 3xx
- Description = Stores the value in the accumulator in the memory address xx.
What does LDA do?
(Assembly Language)
- Instruction = load
- Numeric code = 5xx
- Description = Loads the accumulator with the contents of the memory address xx.
What can assembly language do?
- Data can be entered by user + stored in memory.
- Variables shown with a DAT statement.
- All Calculations carried out in the accumulator.
- Output statement displays the contents of the accumulator.
- LMC has 11 instructions + imaginary computer has 100 locations.
What is immediate addressing?
Operand holds an actual value.
What is direct addressing?
Operand holds the address of the value.
What is indirect addressing?
Operand is the location holding the address of the value.
How is a machine code instruction formated?
- Typically 16 bits.
Operation code / operand(s)
basic machine operation / addressing mode
010001 01 00000011
What does the addressing mode do?
(Machine code instruction)
It specifys whether the operand represents:
- Actual value to be used in a calculation.
- Memory address of a value to be used.
- Memory address of a register/memory location holds the memory address of the value to be used or
- An index.