SDD Trial Paper Notes Flashcards

1
Q

Describe the impact of innapropriate data structures.

A

Early computers had limited ram and memory. To cut memory usage of dates in half, programmers developed their software to store this information as two-digit integers. This caused many crashes and miscalculations when the year 2000 came creating chaos for government organisations, banks and businesses dependent on such software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe the impact of computer malware.

A

Malware is software designed to damage or perform unwanted action on computer systems. Security measures include anti-virus, anti-malware and anti-spyware products. The three main types are:
o Viruses – replicate and spread upon execution of seemingly legitimate software.
o Trojan horses – pose as legitimate software and cause damage once executed. Used to spread malware to provide access to another user.
o Spyware gains the user’s information and provides it to another party.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the impact of reliance on software

A

The software development industry has the responsibility to ensure all produced systems are reliable and perform their functions accurately since so many sectors of society rely on them.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe the impact of social networking

A

Online virtual communities where thoughts and activities can be shared with peers. There are concerns of privacy due to the high level of information sharing as well as bullying.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe the impact of cyber safety

A

Cyber safety is about minimising the risk of cyber dangers. Security software and firewalls attempt to protect users but self protection is still necessary. A government initiative (cybersmart.gov) informs users about cyber safe practices in areas such as cyberbullying, identity theft and online purchasing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe the impact of huge amounts of information available through the internet

A

The internet is largely unregulated. Massive amounts of information are available often without a stated author. This leads to concerns regarding the credibility of information. Users should ask questions such as who the author is, if the information is up to date and if the information is unbiased before trusting it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the the rights and responsibilities of software developers.

A

• acknowledging the intellectual property of others
 Developers need to acknowledge all contributors to a software and ensure that they’re fairly compensated. This includes the team of developers, the developer of the coding language used, any third parties through which images or libraries of code were sourced.
• producing quality software solutions
 Quality assurance is used to ensure a standard of quality is met by software developers. This can be hard to achieve due to time and finance constraints. High quality products meet the customers expectations. Quality involves reliability, efficiency, integrity, flexibility, e.t.c. External factors such as hardware, operating systems, other software and run-time errors can affect quality. Compatibility must therefore be tested and error checking must be included.
• appropriately responding to user-identified problems
 Systems should be put in place to deal with user-identified problems such as support departments and severity classifications.
• adhering to code of conduct
 A code of conduct is a set of standards by which software developers agree to abide. These standards increase the quality of developed software across the industry.
• neither generating nor transmitting malware
 Developers have a responsibility to not create malware and regularly check their software for malware. Users have a right to malware free software.
• addressing ergonomic issues in software design
 Developing user interfaces that minimise strain and reduce the risk of injury. User’s work routine and conditions must be taken into account. Features to consider include consistency of elements, colours and fonts. User testing is used to evaluate the ergonomics of a software.
• ensuring software addresses inclusivity issues
 Responsibility to ensure that software is accessible to anyone regardless of differences such as cultural differences, gender and disabilities.
• ensuring individuals’ privacy is not compromised
 Users have the right to know if their information is being held. Users are protected under the Privacy Act 1988.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the concepts associated with software piracy and copyright and describe the different software licenses

A

 intellectual property is personal ownership of the creative ideas that develop from an individuals mind or intellect. This includes patents and trademarks.
 Plagiarism is appropriating or imitating someone’s ideas and manner of expressing them and claiming them as your own.
 copyright laws give the owner the sole right to reproduce their own work. This is covered under the Copyright Amendment Act 2017. Copyright laws provide economic incentives for creative activity.
 licensing issues
 licence conditions protect developer’s ownership of software they create. They determine what can be done with a software and are enforced by law.
 ownership versus licensing – Purchasing media that contains computer software doesn’t mean you own the software but rather that you own the rights to use the software under certain conditions outlined in your licence.
 collaboratively developed software
 Reverse engineering is the process of reading source code and translating it into an algorithm. This algorithm can then be modified and recoded in the same or another programming language. It is only legal if the software is owned by the developer carrying out the reverse engineering.
 Decompilation is the process of translating machine code into code that can be more easily understood by a programmer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How are networks used by developers developing software and users using netweork based software

A

• by the developer when developing software
 access to resources – graphical assets, source code, third party libraries
 ease of communication
 productivity – due to ease of communication and access to resources.
• by the user when using network based software
 response times – users will give up if response times are too long. Is affected by the external factor of server load
 interface design – By providing a visual response even if no network response has been received yet, users are more likely to continue using the program.
 privacy and security issues – Precautions must be taken to ensure sensitive data transferred across networks remains secure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Describe the software market

A

• maintaining market position
 Must consider product, place, price and promotion.
• the effect of dominant developers of software
 Competitors with high brand visibility and market share.
• the impact of new developers of software and new products
 New software breakthroughs are usually inventions of new thinking and therefore sell very well. New innovations will only sell well if they provide a huge advantage over existing products.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Descibe two software legal cases

A

 Microsoft vs Apple: Microsoft released windows after Apple released Macintosh leading to a legal battle where Apple tried to prevent Microsoft from using similar GUI elements to theirs in windows. The case was resolved with a settlement allowing both companies to distribute their OS.
 RACV vs Unisys: RACV was a motor vehicle insurer that contracted Unisys to design, supply and install a workflow management system to replace their paper-based system. Due to functionality and performance issues that Unisys failed to fix such as longer than expected document retrieval times, RACV took them to court for breach of contract and misleading and deceptive conduct. RACV was awarded approximately $3 million in damages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How can CASE tools be used in system development

A

 software version control: helps keep track of versions.
 test data generation: tests correct operation of modules, evaluates performance, checks error messages and can allow the user to compare outputs.
 production of documentation: Avoids delay in the production of documentation and can be used to create DFD’s structure diagrams and flow charts.
 production of code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe the methods of installation of new or updated systems

A

 direct cut over: involves the old system being completely removed and a new system being installed at the same time. Method is risky since data could be lost if the system fails and the old program would not be available to fall back on.
 Parallel: Both systems are run for a period of time allowing for issues with the new system to be recognised before it is fully installed thus minimising the risk of data loss.
 Phased: Involves gradually introducing parts of the new program and removing parts of the old program. Often used when the new program is still in development.
 Pilot: New system is installed for a small number of users before being installed and used by all once deemed satisfactory. Allows for live testing of the program and allows the initial users of the program to become experts who can teach others.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Describe employment trends in software development

A

 outsourcing: Outsource work to specialists if such skills aren’t available within the business. Can reduce cost and time and create higher quality results.
 contract programmers: Employed temporarily to efficiently write specific software products using their expertise.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe the changing nature of the developing environment

A

changing nature of the environment in which developers work while creating software solutions: Using the internet and networks to collaborate effectively over distances.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe the changing nature of applications

A

Widgets are small pieces of software the run with another or as part of a bigger software application. E.g. weather widget. Apps refer to applications commonly found in mobile phones that can be downloaded through app stores. Applets are small programs such as notepad and paint which carry out very basic tasks. Cloud computing involves running processes through a web server or client machine and saving files in web-based accounts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Describe the process of identifying the problem

A

 Carried out by system analysts in which they identify requirements for the solution and objectives for meeting these requirements.
 needs of the client
o functionality requirements: what the system will do and what it needs to achieve. Such requirements are usually features, properties and behaviors of the system.
o compatibility issues: compatibility with different OS, hardware such as graphics controllers, screen sizes and resolutions, browsers, e.t.c.
o performance issues: Performance in testing and real-world applications may be very different. Thorough and broad testing must therefore be used to identify memory management issues, refresh time lag, poor response times, e.t.c.
 boundaries of the problem: Define the limits of the problem. Anything exterior to the system is said to be its environment and systems must connect with it’s environment through an interface.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What considerations need to be made before determining if an existing solution can be used

A

 social and ethical considerations: May require users to acquire new skills. Older generation are more unwilling to accept technological innovations. Could result in less costs for businesses. Could also result in a loss of jobs for employees due to being replaced by technology. Copyright and privacy issues must also be considered.
 customisation of existing software solutions: It can be a cost-effective strategy for providing added functionality to a software. Open-source software can be customised to add new features to meet specific user requirements.
 cost effectiveness: Compare the cost of modifying existing solutions to developing a new product for which the latter will require considerations of hardware, software and personnel costs required for development.
 licensing considerations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Describe design specifications and the developers and users perspective.

A

• specifications of the proposed system
 This is the standard framework used by a developing team to outline a software’s behaviour, intended use and non-functional requirements (has to do with the appearance of the program).
• developer’s perspective in consideration of:
 data types
 data structures: Involves variables which represent locations of data within a computer system. Programmers must determine how variables are to be stored and accessed and must also provide intrinsic variable names to help programmers follow the logic of the program.
 Algorithms: Use of pseudocode, flowcharts, a modular approach to coding.
• user’s perspective
 interface design: design must be consistent and ergonomic.
 social and ethical issues
 relevance to the user’s environment and computer configuration: User’s existing computer environment will influence specifications. Software must be compatible with OS and hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Describe design specifications and the developers and users perspective.

A

• specifications of the proposed system
 This is the standard framework used by a developing team to outline a software’s behaviour, intended use and non-functional requirements (has to do with the appearance of the program).
• developer’s perspective in consideration of:
 data types
 data structures: Involves variables which represent locations of data within a computer system. Programmers must determine how variables are to be stored and accessed and must also provide intrinsic variable names to help programmers follow the logic of the program.
 Algorithms: Use of pseudocode, flowcharts, a modular approach to coding.
• user’s perspective
 interface design: design must be consistent and ergonomic.
 social and ethical issues
 relevance to the user’s environment and computer configuration: User’s existing computer environment will influence specifications. Software must be compatible with OS and hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are system modelling tools? Describe and list the different types of system modelling tools.

A

 System modelling tools show the structure and functionality of a system. Acts as a guide for the developer.
o IPO diagrams: explains how inputs are transformed into outputs by processing.
o context diagrams: present an overview of the whole system by showing it as a single process with inputs and outputs. Shows data entering and information exiting the system without detailing the processes required.
o data flow diagrams (DFDs): Represents a system as several processes that form a single system. Shows the flow of data between processes.
o Storyboards: Shows the various interfaces in a system and the links between them.
o structure charts: Shows the sequence of processing by representing the separate modules in a system and their relationship in a top-down design.
o system flowcharts: represent the logic and movement of data between the system components including hardware, software and manual components.
o data dictionaries: comprehensively describe each data item in a system in terms of their names, size, data type, format, e.t.c.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is pseudocode and flowcharts

A

 Pseudocode uses English like statements with defined rules of structure and keywords
 Flowcharts are a graphical representation of code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are the communication issues between client and developer

A

• the need to consult with the client
 Conflicts can be avoided through good communication. Developers are familiar with the technical aspects of development and users are familiar with the operation of the current system and can provide useful feedback. Good communication empowers the user and acknowledges their knowledge and perspective.
• the need to incorporate the client’s perspective
 Developer and user are equally important in the success of the project. The developer must accept the user’s expertise and use it to better understand the system. User perspective must be considered in design.
• the need for the developer to enable and consider feedback
 Users should have the opportunity to provide feedback through formal channels such as regular meetings as well as informal channels when feedback can’t wait until the following meeting. System development will proceed well if constructive criticism and two-way communication is achieved.
• the need to involve and empower the client during the development process
 Users are likely to experience resistance to change through new software that changes their workspace. By making them a part of the design process and giving them a sense of ownership of the product, developers can minimize this resistance. Giving users the ability to make decisions that will affect their work is empowering for them.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is quality assurance?

A

• Explicitely defining criteria on which the quality of the product will be judged. Putting in place processes to the ensure quality criteria is met. Ongoing process of ensuring quality is met.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is sequential and event driven software

A

Sequential involves screens that follow one after the other with minimum user input required. Data is acquired from outside the program. Event-driven involves data items being accessed from within the program and the user controlling the order of processing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is sequential and event driven software

A

Sequential involves screens that follow one after the other with minimum user input required. Data is acquired from outside the program. Event-driven involves data items being accessed from within the program and the user controlling the order of processing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is benchmarking?

A

Involves creating a set of tasks that can measure the speed with which a computer system will perform a task. Allows for comparison between different combinations of hardware and software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

How does the performance requirements of technology affect whetehr they should be used by developers.

A

Does the selected technology have the minimum hardware requirements to the run the software in regards to available RAM, minimum operating system, processor type and speed, e.t.c.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Describe EBNF and railroad diagrams

A

 Railroad diagrams: Graphical method for representing the syntax of a programming language. Rectangles enclose non-terminal symbols. Circles enclose terminal symbols. Paths connect them and the diagram is read from left to right.
 EBNF: Extended Backus-Naur Form. <> represent non-terminal elements (defined elements). | represents an alternative. {} represents elements optionally repeated. [] represents optional elements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Compare and contrast compilation and interpretation?

A

 compilation: High-level languages, or source code, can’t be directly understood by a processor. Instructions must first be converted into binary, that is, machine-executable code. Source code is machine independent since it can be used on several different processors. Machine code is very processor specific. One method for converting source code to machine code is compilation. Compilers take source code and produce a complete translated file. Compilation is CPU specific meaning the produced file can only be used on machines with the same CPU. Unwanted code such as comments are removed to improve efficiency. Each time a change is made, the whole program must be recompiled. Compilation is slower at testing for errors and all errors are reported at the end of the process.
 Interpretation: Is slower at translating and produces less efficient object code as each line is translated as it is loaded into memory. Line by line translation and execution. Advantage of faster error detection as error feedback is provided as the error is found allowing for early detection of runtime errors. Users are required to have the interpreter on their computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What are the steps in the translation process

A

 lexical analysis including token generation: Source code is broken up into lines of code and formatting and comments are removed. Elements from the source code are created into recognisable elements by using the rules set out by language syntax. These elements are then assigned tokens of one of two categories. Either elements defined by the source language such as reserve words or elements created by the programmer such as variables. Elements in the second category are sorted in a data dictionary for easy reference for the translator.
 syntactical analysis including parsing: Arranges tokens in a sort of hierarchical structure called a parse tree. This allows the computer to understand the programs logic. Building a parse tree involves representing the relationship between tokens
 Semantic analysis/type checking: Detects the data types within tokens and gives this information to the translator. It then detects incompatible operations between different data types.
 code generation: converts tokens into machine executable code. It involves the generator traversing a parse tree and creating appropriate machine code when tokens form a machine command.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

What are some good programming practices

A

 a clear and uncluttered mainline: Software should be coded with a clear modular approach and the mainline should be clear and uncluttered so that it is easy to follow. This means that subroutines are coded and tested separately which is better for maintenance purposes.
 one logical task per subroutine: The function of a subroutine should be specific and describable through its title alone.
 use of stubs: Stubs are incomplete functions that have the same name and interface as the final form but are simpler. They usually only contain an output statement to indicate that the subroutine was called. Used in testing.
 Writing for subsequent maintenance: Coding should be done in a way that makes future maintenance easier. This can involve clear internal documentation, intrinsic variable names and clear indentation within control structures.
 version control: During coding, programmers should regularly save their work to prevent loss and allow for different versions of the program to exist. Version control allows developers to continue developing complete code by releasing updates through new versions. It also allows developers to fall back on previous versions.
 regular backup: regular backup should be done on multiple device to prevent absolute loss.
 recognition of relevant social and ethical issues: social and ethical issues to be considered include intellectual property, thorough testing and documentation for future developers and maintainers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What are the different types of errors?

A

o syntax errors: Involved in the translation process as they prevent the translating of high-level code into object code. These errors are detected as a result of lexical and syntactical analysis.
o logic errors: Occur as a result of syntactically correct code that does not complete the required task. Such errors occur in the running of the program.
o runtime errors: Errors that occur during execution. Includes:
– arithmetic overflow: incorrect use of data types and data structures. Usually occurs when the result can’t be stored properly.
– division by zero
– accessing inappropriate memory locations

34
Q

What are the different methods for error detection

A

o use of flags: Flags are Boolean markers placed in the code to signal a change in status.
o methodical approach to the isolation of logic errors: The programmer may use the comment tool to stop certain parts of code from running to systematically find the precise location of an error.
o use of debugging output statements: Temporary lines of code added to display the value of a variable. May also be used to state that a part of code has been reached.
o peer checking: Involves the checking of code along with another person.
o desk checking: Test data is used to compare actual results to expected results.
o structured walkthrough: More formal than peer checking. No attempts are made at correcting problems only feedback is given.
o comparison of actual with expected output

35
Q

What are the different software debugging tools

A

 use of breakpoints: Technique in which execution may temporarily or permanently stop. Used to check variable contents before and after processes occur. Breakpoints are placed in areas where error may exist to locate the source of error.
 resetting variable contents: Changing the data stored in variables while the program is running often by using breakpoints. Can be used to check which values are giving errors.
 program traces: Allows the programmer to view progress of the program execution in detail. Line execution is tracked which is useful for following the flow of statements. A trace log is often created which developers can use to identify errors.
 single line stepping: Involves halting the execution of the program after every line or statement. A keystroke is usually required to do this. Used more often for subroutines rather than the whole program.

36
Q

What is a logbook

A

 log book: Log kept by the development team to track all steps taken in the development process. Annotated and dated regularly to avoid missing entries of important steps or tests.

37
Q

What are the different types of user documentation?

A

o user manual: Paper or online external documentation that is user-friendly such that it is understandable by the everyday user. Provides instructions for the user on how to use the software effectively. The manual should include information on how to get started, how to use common functions, troubleshooting, e.t.c.
o reference manual:
o installation guide: Provides information on how to install the program. This includes minimum hardware specifications and details of any known conflicts with other software. It is useful to include screenshots in an installation guide as it allows users to easily compare what stage they are at.
o Tutorial: Guides the user through the steps of working with the features of a program. Tutorials train the user on how to use the program.
o online help: Provides updated solutions to various problems. Gives the user support and information through the internet, e.g. FAQ’S. Has the advantage of making information easy to update but the disadvantage of requiring an internet connection.

38
Q

What are the different types of technical documentation?

A

o systems documentation: Provides a description of the operation of the program including the use of subprograms and any special features of the code. Should include documentation on how to configure that hardware and software required.
o Algorithms: Primarily used during program design to provide a clear description of the steps carried out to solve a problem. Allows maintenance programmers to determine the programs structure.
o source code: Programming code that makes up a program. Documentation within the source code are in the form of comments and intrinsic information.

39
Q

What hardware requirements are required to implement software. Include discussion of drivers and extensions.

A

 minimum configuration: Commercial software products will usually have a minimum configuration on which software will reliably run. It includes information such as the type of CPU, the amount of RAM required, the OS under which the system will run, e.t.c.
 possible additional hardware: As programs become more complex, they require greater hardware requirements. This may be a need for more RAM or discrete graphics cards. There may also be a need for other Input/Output devices such as barcode scanners.
 appropriate device drivers or extensions: Drivers are additional small programs required to run or execute tasks carried out by peripheral devices. Extensions are files that usually reside within the OS and assist in the execution of some programs, e.g. Dynamic link libraries. If such add-ons are required for the effective operation of a program, they should be provided by the software developer to the user or have instructions on how to download and install them.

40
Q

Describe the two steps involved in testing software solutions

A

Testing a software solution involves validation which is the process of comparing the solution to design specifications and verification which is the process of ensuring that the software performs its function correctly.

41
Q

Describe the three levels of testing

A

 module
o test that each module and subroutine functions correctly: Can include black box (functional testing) and white box testing(structural testing). Black box testing checks a modules inputs against expected outputs and actual outputs. It can identify runtime errors and overflow errors. Types of black box testing include equivalence partitioning where a range of different data types are checked, range checking, where the upper and lower limits are checked and critical value checking where conditional values are checked. White box testing checks the procedures or processes within each module to determine correctness and verify a code’s overall usability, security and design effectiveness. Types include statement coverage testing in which test data is chosen to test each module statement and decision condition testing where test data is selected to test each module decision.
o use of drivers: Driver programs may be used to provide inputs and outputs.
 program
o test that the overall program (including incorporated modules and subroutines) functions correctly: Program testing ensures that modules work together and that the mainline program performs correctly. Can be done through top-down or bottom-up testing.
 system
o test that the overall system (including all programs in the suite) functions correctly, including the interfaces between programs
o acceptance testing: Checks if a program meets the customer requirements. Can be a part of system testing.

42
Q

How is live testing conducted?

A

 large file sizes: Use of large files will highlight problems associated with data access. Often systems that perform at acceptable speeds with small data files become unacceptably slow when large files are accessed.
 mix of transaction types: Testing needs to include random mixes of transactions as problems can occur when data is altered by another transaction.
 response times: Time taken by the system to respond to data input. Live data allows for the simulation of real response times. Processes that are likely to take a while should provide user feedback such as a progress bar.
 volume of data (load testing): Large amounts of data should be entered into the new system to test the application under extreme loads. Multi-user products should be tested to check whether large numbers of users will affect the system.
 effect of the new system on the existing systems in the environment into which it will be installed

43
Q

What are the stages of the software development cycle

A

defining the problem, plnningand prototyping, building, checking and finally modifying/maintaining which is an ongoing process.

44
Q

Describe the fetch execute cycle

A

Instructions sent to the CPU are comprised of an operation code and a memory address. CPU’s have registors, accumulators, program counters and instruction registers that are involved in the fetch execute cycle. A register is a temporary storage location within the CPU. An accumulator is a type of register for short-term storage of arithmetic and logic data in the CPU. A program counter is a register that contains the address of the instruction being executed at the current time. As each instruction is fetched, the program counter increments its stored value by one. The instruction register holds the instruction being executed or decoded. The fetch execute cycle starts by fetching the instruction from primary memory and placing it in the instruction register. Then the program counter is set to this instrcutions address and increments by one. The instruction is then decoded and operands are loaded from memoryinto a register. Operands represent data that is to be manipulated or operated on. The instruction is then executed, usually by the ALU, and the result is stored in an accumulator

45
Q

List some emerging technology

A

Biometric devices are security identification and authentication devices that recognise the identity of a living person based on characterisitics such as fingerprints or facial images.
RFID uses electromagnetic fields to automatically identify and track tags attached to objects.
Scanning pens are portable devices that can scan lines of text and upload them to a computer.

46
Q

Describe the min and max value finder

A

finding maximum and minimum values in arrays: Locates the greatest or smallest value in a given array. The first element in the array is stored in a temporary variable called Min/Max. Then a repeat loop is used to compare each element in the array to the saved element. If an element is found to be bigger/smaller than the saved value, it replaces it as well as the index for the saved value. Finally, the max/min element and its index are printed.

47
Q

Describe the binary search

A

Used for sorted arrays. Takes the middle value of the data set and determines in which part the element is to be found or if the middle value itself is said element. This process is repeated until the value is found.

48
Q

Describe the Selection sort

A

An ascending selection sort looks for the largest value in the array and swaps it with the last element. A descending one would instead move it to the first element. In a selection sort there is a sorted and unsorted area. After each pass, the largest value from the unsorted section is moved to the sorted section.

49
Q

Describe the insertion sort

A

An insertion sort has a sorted and unsorted section. The sorted section initially contains one element and after each pass, the following element is inserted into the correct position in the sorted part.

50
Q

Describe the bubble sort

A

Elements are compared in pairs and swap where neccessary. One element will move to their correct position after each pass.

51
Q

What is a sequential file

A

Sequential files contain records organised by the order they were entered. The order is fixed.

52
Q

What is a relative file

A

Relative files contain records that are identified by their ordinal position in the file meaning that the can be accessed both randomly and sequentially.

53
Q

Describe the process for creating a sequential file

A

First the file must be opened. A for loop is used to GET then WRITE each part of the record into the file sequentially until all records have been added. Finally the file is closed

54
Q

What is an array of records

A

An array in which each single element consists of a record.

55
Q

Define and draw a half adder and write out its truth table

A

Half adders add together two input variables to produce a sum and a carry. There is no forwading of carry to the next bit which is why it’s called a half adder.

56
Q

Define flip-flops and draw an RS flip-flop and write out its truth table

A

Store binary data in logical elements. Can only be in one of two states at any given time and will remain in that state until commanded otherwise.

57
Q

Define and draw a full adder and write out its truth table

A

Comprised of two half adders. Capable of taking cary in into the next bit

58
Q

Recite sum of products and product of sums

A

SOP uses truth table rows with output 1. 0’s are turned into 1’s.
POS uses truth table rows with output 0. 1’s are turned into 0’s

59
Q

Recite the demorgan theorem and the absorption law.

A

Not(A+B) = Not(A) x Not(B)
Not(AB) = Not(A) + Not(B)
A+Not(A) x B = A + B
A(Not(A) + B) = A x B

60
Q

What is involved in reporting of the testing process?

A

• documentation of the test data and output produced
 use of CASE tools: Documentation should state the scope of testing, test inputs and expected results, the evaluation criteria, a description of the test environment, the types of tests to be conducted and the modules being tested. CASE tools that could be used for this include word processors and test data generators.
• communication with those for whom the solution has been developed, including:
 test results: Language must be non-technical. Developers should rank issues in terms of severity. Developers should be upfront and honest about the capabilities of the product.
 comparison with the original design specifications: Developers should address any requirements and design specifications that have not been adequately fulfilled.

61
Q

What is involved in evaluating the software solution?

A

• verifying the requirements have been met appropriately: Developers must verify that the software solution has both functional and structural quality. Functional quality has to do with how well the software complies with or conforms to a given design based on requirements. Structural quality has to do with how well the software meets non-functionak requiremebnts that support the delivery of the funcitonal requirements such as maintainability.
• quality assurance: Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality.

62
Q

What is involved in post implementation review?

A

• facilitation of open discussion and evaluation with the client: Through open discussions and client evaluiations such as acceptance testing, clients are able to determine whether their requirements have been met to a standard and if they should accept the new system.
• client sign off process: Once acceptance testing is complete and te client is happy with the end product, the client can sign of on the project.

63
Q

What is involved in modifying code to meet changed requriements?

A

• identifying reasons for change in source code: Software maintanence occurs as a result of a need to meet changing requirements, to correct problems or errors in the solution or due to changes in the operating environment. Examples include poor logic on code, efficiency improvements, security improvements, hardware/software changes, e.t.c.
• locating of sections to be altered: When an error is detected in a program, developers must be able to find the location within the source code. This process can be simplifdied through well documented and structured code.
• determining changes to be made: Changes due to logic will require source code changes, changes due to interface design may require layout adjustments.
• implementing and testing solution: Implementation could occur through minor scource code adjustements, a patch which may include several minor code adjustments, new version implementation which may include redisgn of severa functions, software reengineering if several modules need improving or a completely new system development. All changes must be thooughly tested before being implemented. Regression testing is the process of retesting a program when changes have been made.

64
Q

What is involved in documenting changes?

A

• including relevant comments in the source code to highlight the modification: Accurate and up to date documentation must be included when making changes to software. Documentation of source code may include modification notes within source code headers, comments, process diaries, e.t.c.
• updating associated hard copy documentation and online help: In cases where changes made affect manuals and help systems, they can be accompanied with release notes, addendum to manuals, reprint of manuals or reinstall of help files.
• using CASE tools to monitor changes and versions

65
Q

Describe the code for creating a sequential file

A

First Begin and open filename for output. Then repeatedly GET data for each record and “write filename from…” this data using a counted loop for i=1 to number of records. Then create a sentinal value for the file by setting all values in the record to equal a certain sentinal value (e.g. ‘xxx’) and “write” this final value. Finally close the file.

66
Q

Describe the code for printing the contents of a sequential file

A

First begin then open filename for input and read all details from filename. Then WHILE record values don’t equal(<>) the sentinal value display all record details and read all record detail. Finally close filename.

67
Q

Describe the code to append records to an existing sequential file

A

First begin and open filename for append. Prompt user to enter details for the record being added and tell them to enter the esntinal value when done. Then WHILE record vaues don’t equal sentinal value “write filename from …”, repeat the prompts and “get” data from user. Finally, close filename.

68
Q

Describe the code to create a relative file

A

First begin a open filename for relative access. Then using a counted loop for i=1 to number of records in file, promt the user to enter details, get the details as well as the key field for the specific record being entered and “write filename from… using keyfieldnumber”. Finally close filename.

69
Q

Describe the code to read records from a relative file

A

First begin and open filename for relative access. In a repeat loop, promt user to enter the keyfieldnumber of the record they wish to access and to enter a certain value when done. Then “get keyfieldnumber” and “read filename into… using keyfieldnumber”. Then IF record found display record details ELSE display error message. ENDIF and set repeat loop to end when keyfieldnumber = snding value. Finally close the file.

70
Q

Describe the code to update record in a relative file.

A

Begin and open filename for relative access. Prompt user to enter keyfilenumber for record they wish to access and to enterr a certain value when done. Then “Get keyfilenumber”. Then While keyfilenumber <> the certain value, set flag to 0, “Read filename into… using keyfilenumber”. If record is found confirm the record with user, ELSE display error message and change flag value. IF flag value is 0 and reply is yes THEN “Get new data” and “Write filename from…. using keyfilenumber”. Finally close file.

71
Q

Describe the code to generate a unique set of numbers

A

Set range of numbers (99). Repeat “let r=Random(98)+1 UNTIL flag(r) = 0.

72
Q

Describe the code to extract data from a string

A

First Begin and “Get stringname”. Then “Let charactertoextract = the number character it starts at. Then “Extract from charactertoextract (for ‘range(e.g. 2 characters’) from stringname into storage”. Finally display storage.

73
Q

Describe the code to insert a string into another string

A

First begin and “Get initialString, NewWord”. Then let L equal the length of initialstring, found equal 0 and i equal 1.
REPEAT
“extract from the ith character from initialstring into CheckLetter”. IF CheckLetter = “…” “THEN extract from the 1st character (for i-1 characters) from initialstrong into firstpart” and “extract from the (i+1)th character (for L-i characters) from initialstring into secondpart. Then let NewString=firstpart+NewWord+secondpart and set found to equal 1. Endif and i=i+1
UNTIL 1>=L or found = 1
If found =0 THEN print “delimiter could no be found” ELSE print NewString
END

74
Q

Describe the code to delete a string from another string

A

First begin and “Get InitialString, StringToGo”
Let LString= length of InitialString and Lword= Length of StringToGo. Let found = 0 and i = 0.
REPEAT
“extract from the ith character (for Lword characters) from InitialString into CheckforWord”. “extract from the (i+Lword)th character (for(LString-Lword-i+1) characters) from InitialString into SecondPart”. “Let NewString = FirstPart+SecondPart” and set found to equal 1. ENDIF and i=i+1
UNTIL i>=LString OR found=1
If found =0 THEN print “the word couldn’t be found in the string” ELSE print NewString
END

75
Q

Compare and contrast the different types of software licenses

A

Refer to book

76
Q

What are the ASCII values you need to know?

A

SPACE: 32
A-Z: 65-90
a-z: 97-122
DEL: 127

77
Q

Discuss the different methods for representing numbers in binary.

A

Sign and modulus: the left most bit represents sign (1 means negative and 0 means positive).

Ones complement: Swap 1’s and 0’s

Two’s complement: take one’s complement and add 1 to it. Ignore any carries past the number of digits.

78
Q

How to convert between decimal and hexadecimal?

A

decimal to hex: divide decimal by 16, take the remainder and take it’s hexadecimal equivalent. This is repeated until the result equals zero. The hexadecimal remainders flipped in terms of order provide the final hexadecimal number.

Hex to decimal: Take the last digit and multiply it by 16 to the poewr of 0, take the second digit and multiply it by 16 to the power of one. Repeat this for all digits and add the results.

79
Q

Describe ASCII and Unicode

A

ASCII stands for the American Standard Code for information interchange. It has 128 characters including English characters control characters such as ESC and special characters such as +. There is an extended ASCII table which includes some European characters and has 256 characters.

Unicode has 1114112 characters pf which the first 128 are the same as ASCII. It covers all languages except Chinese and Korean

80
Q

How to convert from decimal to IEEE-754 Excess 127

A

Refer to book