Software Design and Development - Prelims

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

Function call

Specified data type returned, calls a function The identifier used to name a function also has a data type. This data type defines the type of data that will be returned by the function.

Storyboard * Features * Purpose

- shows the general design of each interface - shows navigation between interfaces

Metalanguages - railroad diagrams - sequence

Just symbols on a line <letter> <letter>

Metalanguages - railroad diagrams - selection

<option 1> | <option 2> 2 or more branches parallel to each other

Algorithm

A set of explicit and unambiguous finite steps which, when carried out for a given set of initial conditions, produce the corresponding output and terminate in finite time. Flowchart or pseudocode Sequence, selection, iteration or repetition

Defragging * What it is * When it happens

Over time the file system on all hard disk drives becomes fragmented after deletions and movement. Therefore its moved around to improve compression

Internal documentation * Purpose * Features * Examples

- meaningful variable names (intrinsic) - readability of code - comments - white space - indentation

Summary of functions of the operating system

- provide interface to hardware - provide interface to user - provide interface to software applications - control the concurrent running of software applications - manage system resources

Metalanguages - EBNF * What is it? * What does it represent?

(Extended Backus-Naur Form) EBNF is a text-based metalanguage. It can be readily produced using standard characters. Is a metalanguage used to define the syntax of any programming language

Generations of programming languages - Higher level languages * What is it? * What does it interact with? * Why does it exist?

(Imperative/procedural) Simplify the programming process allowing programmers to concentrate on solving problems rather than dealing with hardware systems. Eg. Cobol, Prolog or Java and C++ High-level code (source code) translated → machine language (object code) appropriate to a particular CPU. Easier and faster to write in Easier to read and mainatin

Summary of software approaches

(Most formal, costly, long, expertise, size, complexity and quality) Structured, agile, prototyping, RAD, End user (least formal, costly, long, expertise, size, complexity and quality)

Summary of initiation and running of an app by the operating system

* Locate and load * Hand control to application * Start fetch-execute cycle for the application * Minimum software requirements

Code taken from the internet * Ethical and legal considerations * Pros and cons * What needs to be done?

* May have a licence or copyright over it * Check the terms of service of the source * Ensure you have authorization to use code (email them) * Document and reference the source Saves time Reduces cost Modules and variable names could conflict Different language or version Missing dependencies (libraries) Misunderstanding of code

Algorithms - error checking

* check every path through an algorithm * boundary values (Above, below and in)

Pseudocode * Rules

* for each procedure or subroutine BEGIN name END name *For binary selection IF condition THEN statements ELSE statements ENDIF For multiway selection CASEWHERE expression evaluates to A: process A B: process B OTHERWISE: process ... ENDCASE For pre-test repetition WHILE condition statements ENDWHILE For post-test repetition REPEAT statements UNTIL condition For FOR/NEXT loops FOR variable = start TO finish STEP increment statements NEXT variable Underline subroutines

Algorithm benefits

- ease of development - ease of understanding - ease of modification

End user approach - characteristics

- end user as the developer and maintainer - typically uses RAD and/or prototyping - the developer is the client, therefore there are no communication issues - small budget and/or short time period for development

User interface * Factors that make up good UI * 3 categories

- factors affecting readability - use of white space - effective prompts - judicious use of colour and graphics - grouping of information - unambiguous and non-threatening error messages - legibility of text, including: - justification - font type (serif vs sans serif) - font size - font style - text colour - navigation - recognition of relevant social and ethical issues - consistency - appropriate language for the intended audience Aesthetic, logic, control

What are the key ASCII codes?

0 --> 48 A --> 65 a --> 97

Conversions between binary and decimal * Max binary number per byte

1 binary digit is a bit 8 bits make a byte split into columns add each column with 1 and 0

Conversions between hexadecimal and decimal * Max hex number per bit

1 symbol makes up 4 bits 2 symbols make up a byte Divide by 16, the remainder is the end symbol, the result is the first symbol

Metalanguages - EBNF * Syntax * Syntax to define data types and structures * Syntax to define control structures

= 'is defined as' | indicates a choice between alternatives (or) terminal symbol - there is no need for further definition of this item. It may be a symbol or a reserved word (such as PRINT, IF...) < > Used to specify a term that will be subsequently defined [ ] --> optional part of a definition { } --> optional repetition (0 or more times) ( ) --> grouping elements together Letter = A | B | C --> A or B or C IDENTIFIER Identifier = <Letter> {<Letter> <Digit>} Letter then either letter or number until you want to exit ASSIGNMENT STATEMENT LET <Identifier> = <Identifier> A valid assignment statement could be LET C = B24A

Data dictionary * Columns * Why they're important

A data dictionary is the repository where identifiers, their data type and the scope of usage is held. Scope: The extent to which a variable is available for use. Global variables are available for use by all subroutines. Local variables are available to an individual subroutine A separate data dictionary is created for each module, database and file Data item, data type, format, number of bytes required for storage, size for display, description, example, validation

Record * Define * Example

A data structure containing data items that are related but not necessarily of the same data type. Used for database applications. Generally individual records contain all the information about a particular entity Fields must be named and each assigned a data type before use

User interface * Define * Charts

All the screens, elements and actions that allow users to communicate with software. Storyboarding

Parameters

Allow subroutines to access and alter the data items held in variables Actual parameters are real variables that contain data. Formal parameters are used within subroutines - effectively replaced by actual parameters whilst the subprogram is executing.

Floating (real)

Anything with a decimal The more decimal places we use the better the accuracy, however this involves larger and larger amounts of storage and faster and faster processors.

Control structures - multiway selection * Algorithm * Pseudocode

CASEWHERE expression evaluates to choice a : process a choice b : process b OTHERWISE : default process ENDCASE

Arrays * Define * Example

Array: An array is a collection of identical data elements individually accessed by an index or a subscript Data structure 1D Array 1 array - a = [a] 2D Array, an array within an array - a =[[a, b], [c,d]] 3D Array, an array within an array, within an array - a =[[[a, b][f,g]], [c,d]] eg. Surname(6) = Student.lastName --> Index 6 in surname is set to the data in the lastname field of the record Student

Algorithms - loading and printing arrays

BEGIN LoadArray Let i = 1 Read DataValue WHILE DataValue <> "xxx" Let Element (i) = DataValue i=i+1 Read DataValue ENDWHILE Let NumElements = i Display " There are" NumElements " items loaded into the array" END LoadArray BEGIN PrintArrayContents Let i = 1 REPEAT Display Element (i) i=i+1 UNTIL i > = NumElements END PrintArrayContents

Algorithms - add contents of an array

BEGIN SumArrayContents Let i = 1 Let total = 0 REPEAT Let total = Element (i) + total i=i+1 UNTIL i > NumElements Display " The sum of all of the elements in the array = " total END SumArrayContents

Define binary, decimal, hexadecimal

Binary --> Base 2 1, 0 representation Decimal --> normal base 10 hex --> Base 16, 0-F(15)

Abstraction/refinement - Structure chart * Purpose * Components

Blank circle with arrow - Data movement between modules or subroutines Filled in circle with arrow - Flag or control variable being passed Diamond at an intersection - A decision A curved line in the middle of a line - Repetition Rectangle - modules or subroutines Showing the separate modules or subroutines that comprise a system and their relationships

Abstraction/refinement - top down development * What is it? * Charts associated with it * Pros and Cons

Breaking a problem down into smaller and smaller parts to become more manageable Refined until each unit can be successfully implemented as a subroutine - stepwise refinement. Can be reused sometimes - change variable names and identifiers Show relation between modules

Bug

Bug: An error or defect in software or hardware that causes a program to malfunction. Debugging: the process of identifying and correcting bugs.

Sequential files * Define * Example

Can only be accessed from start to finish - to read or write to the middle of a sequential file requires accessing all the data prior to that position in the file. End of file (EOF) function → returns the Boolean value True when the end of a file has been reached → ensures errors do not occur due to programs attempting to read past the last character. Sentinel values within files to indicate the end of a sequence of data items e.g. "ZZZ" or 9999999.

Testing - boundary cases

Checked using test data above, below and equal to any values upon which decisions are based.

Understanding the problem - Context diagrams

Circle --> Process representing the entire system Curved arrow --> Flow of data Box --> external entity that is a source or sink of information Represent an overview of a system

Understanding the problem * 4 parts * What chart is most adequate for this stage?

Communication (ask the client) → informal or formal List of requirements → Ensures your understanding of the problem meets the needs of your potential users Research → existing system Identification of inputs and outputs Break down into units Decide on data types and design data structures Design a method of solving each component piece Context diagrams or IPOs

Variable

Containers for data items.

Data validation

Data validation: The process of validating data, checking whether the input is an expected input.

Debugging techniques vs debugging tools

Debugging techniques--> Done by a programmer debugging tools --> automated

Online help * Types * Purpose

Designed to teach users about the operation of some aspect of the software product Installation guides User manuals Reference manuals Tutorials. Online help (anything digital to do with software) eg. The contents view displaying like a user manual and the index being used like a reference manual. Online tutorials Wizards Tooltips (hover over)

Abstraction/refinement - Systems flowchart * Purpose * Components

Diagrammatic way to show the flow of data, seperate modules and the media used NOT PROGRAM FLOWCHARTS.

Combining code * Pros and cons * Issues and limitations * Ethical and social considerations

Different versions of the same language Different languages Programming environment Different techniques Copyright and creative commons still apply unless relinquished Must acknowledge code sources

Checking social and ethical impact of an app

Does the design of the software exclude some users? Is the product ergonomically sound? Does the product use code from other sources? Have the intellectual property rights of all involved been considered and upheld?

Control structures - iteration/repetition for/next * Algorithm * Pseudocode

FOR variable = start TO finish STEP increment statements NEXT variable

Error detection - Flags * What is it? * Why does it exist? * How does it assist in error detection and correction?

Flags: a Boolean variable used to check if a section of code has been executed. Normally the flag is initialised to false and then set to true if the section of code is executed. - used to check if a section of code has been executed - can be used as part of the logic of a solution or as an error detection process By examining the value of the flag, the programmer can determine the execution path through the code.

Metalanguages - railroad diagrams * What is it? * What does it represent?

Graphical method used to define the syntax of a programming language

Control structures - binary selection * Algorithm * Pseudocode

IF condition THEN process 1 ENDIF IF condition THEN process 1 ELSE process 2 ENDIF

Identifier

Identifier - The name given to a variable, subroutine or function. In most languages identifiers are comprised of letters, digits and the underscore character. They must commence with a letter.

How do you identify the following from an algorithm: * Input * type and purpose of variables * Processes * Output

Identifying control structures - Logic Understanding the variables that have been used - logic, purpose and processing

How are the structured and agile approaches different?

Less formal

Testing - peer checking

Informal, where a peer or colleague comments upon and provide feedback. More collaborative attitude and less pressure to get it right

Understanding the problem - inputs and outputs * How are they gathered?

Input into a process is known as data and the output as information Outputs often will themselves become the input into other processes Communication and research

Types of documentation for developers

Internal and intrinsic

Structured approach - maintaining

Life span (avg 10 years) - upgraded to include new functionality and to improve existing functionality

Error detection - Logic

Logic errors: when programs do not correctly work as anticipated. The program may continue to execute, albeit incorrectly. loop may repeat fewer times than required, resulting in some data not being processed. (using a < rather than a <=)

Maintainability

Maintainability: A measure of the ease with which source code can be understood and modified.

Testing - desk checking

Manual process. Each statement in the algorithm is evaluated by hand and the results written on a table. Column for each identifier used within the algorithm. As the value in an identifier changes the new value is written beneath the previous value. In this way, a full record of all the changes that have occurred is maintained.

Abstraction/refinement - define: * Module * Subroutine

Module: a number of distinct but interrelated units from which a program may be built up or into Subroutine: a set of instructions designed to perform a frequently used operation within a program.

Testing - stepping line by line

Most programming environments (IDEs) provide a method of stepping line-by-line through code. This allows programmers to examine the contents of identifiers and follow the execution path precisely.

Procedure call

No specified data type returned, calls a subroutine Used by the programming language to locate the subprogram within the source code. The procedure's name, together with any parameters, is the statement used to execute the procedure.

Control structures * Define

One or more programming language statements that control the flow of a computer program.

Error detection - Debugging output statements * What is it? * Why does it exist? * How does it assist in error detection and correction?

Output statements - can be strategically placed within the code to indicate execution has passed through that point - additional print statements in the code for use in the debugging process - used to identify which sections of the code have been executed - used to interrogate variable contents at a particular point in the execution of a program

Global variables vs local variables * Scope * Pros and cons

Parameters are not variables they are identifiers used to communicate data through subroutines. Global variable: available to other modules within the project Local variable: can only be accessed by the subroutines in which they are declared then are erased when it finishes Scope: The extent or range of operation of an identifier. Where in a program, a given identifier may be accessed

Maintaining code * Why is it important?

Part of the software development cycle changing user requirements. upgrading the user interface. changes in the data to be processed. introduction of new hardware or software. changing organisational focus. changes in government requirements. poorly implemented code.

Metalanguages - railroad diagrams * Syntax * Syntax to define data types and structures * Syntax to define control structures

Rectangles --> non-terminal symbols, that is, symbols that will be further defined. Circles or rounded rectangles --> terminal symbols. (symbol or a reserved word) These elements are linked by paths to show all valid combinations.

Abstraction/refinement - data flow diagram * Purpose * Components

Represent a system as a number of processes that together form a single system Circle --> process Arrow --> Flow of data between processes, data stores and external entities ( can flow back and forth (label) Rectangle --> External entity (person, organisation, source or sink) Open ended rectangle --> Data store (electronic or paper)

Checking the solution meets the original requirements

Requirements should have been written in such a way that they could easily be evaluated.

Error detection - Runtime

Runtime Errors: occur when for some reason the computer is unable to continue executing instructions. Exception: essentially a type of runtime error Math divisions, floating points, out of range, infinite loops

File compression * What it is * When it happens

Save storage space, reduce file size prior to transmission

Problem statement

Should state clearly every step of what the algorithm does

Inclusivity - Summary

Should take into account the different users who will likely use the product. cultural background economic background gender disability

Error detection - Stubs * What is it? * Why does it exist? * How does it assist in error detection and correction?

Stub: a small routine that takes the place of a yet to be written subroutine or is substituted for an existing subroutine when attempting to locate the cause of an error. - used to check the flow of execution - used to replace subroutines/modules during testing to check if that section of the code is the cause of an error Allows the flow of execution to be checked before lower level subroutines are coded, by testing upper level subroutines

Error detection - Syntax

Syntax errors: Result when source code statements do not adhere to the rules of the programming language. Detected as the source code is translated into object code, translator, normally an interpreter or a compiler, is unable to understand code that contains one or more syntax errors. LSC

Testing * What data should be selected to test? * Ways of testing

Test data sets aim to ensure that all processes are thoroughly checked and verified, and should be thorough but it should also be efficient. - data that tests all the pathways through the algorithm - data that test boundary conditions 'at', 'above' and 'below' values upon which decisions are based - data where the required answer is known - data which is outside the expected values

Error detection - Boundary cases * What is it? * Why does it exist? * How does it assist in error detection and correction?

Test upper lower and middle limits

String

The Unicode system uses up to 32 bits and is designed to include all the possible characters and marks used in all the languages of the world. American Standard Code for Information Interchange - A coding system for characters using 7 bits. Most other coding systems incorporate ASCII.

Modularity

The ability to reuse modules as a result of their independent nature. Reuse modules as black modules, know what goes in and out but not what happens inside

Testing - Path coverage testing

The order in which statements are executed will affect the processing therefore every path through the algorithm or code must be executed by our test data if we are to be sure of its correctness.

Documentation for developers when modifying

The source code design specifications system models eg. system flowcharts, data flow diagrams, structure charts IPO charts data dictionaries algorithms screen designs and storyboards

Data types

The type of data - integer - string - floating point/real - boolean - Date - Currency

Maintaining code * How can code have maintainability ensured

USE OF VARIABLES OR CONSTANTS INSTEAD OF LITERAL CONSTANTS MEANINGFUL NAMES FOR VARIABLES, SUBROUTINES AND MODULES Intrinsic documentation EXPLANATORY COMMENTS IN THE CODE Internal documentation USE OF STANDARD CONTROL STRUCTURES Sequence selection iteration repetition APPROPRIATE USE OF WHITE SPACE WITHIN SOURCE CODE Blank lines A CLEAR AND UNCLUTTERED MAINLINE Minimal actual processing, but a series of calls to subroutines. ONE LOGICAL TASK PER SUBROUTINE

Boolean

Used to store logical data; the only possible data items being either true or false (or yes or no), 0 or 1

User feedback

Verbal, written, survey, formal/informal

Backups * Considerations and processes

Version labels, regular

Testing - Structured walk through

WILL SMITH PHOTO Developers walk the group step-by-step through each aspect of the program. Formally work through its functionality. For feedback - restricted to either verbally or written comments ( reduces stop start and interruption of work flow/thought structure.) Demonstration of the product and its design

Integers

Whole numbers both negative and positive If an integer data type is chosen then you must be absolutely certain that fractional values will never be required or even stored as part of a computation. A 2 byte or 16 bit integer is able to store whole numbers in the range -32768 to 32767

Automated debugging tools

done by software automatically Breakpoints - halt execution and allow the contents of variables at that point to be interrogated and even changed. Single line stepping - causes execution to halt after each line of code is executed. A single key press causes the next line to execute. Watch expressions - can be used to display the contents of variables during execution. They can also cause execution to halt when a certain condition becomes true.

Language syntax * Where is it found? * Define metalanguages * Define syntax

meta-languages in manuals and help documentation Syntax: the structure of statements in a computer language. Metalanguages: a form of language or set of terms used for the description or analysis of another language. Used to describe the syntax of another language

Control structures - iteration/repetition pre/post * Algorithm * Pseudocode

pre-test WHILE condition is true process(es) ENDWHILE post test REPEAT process UNTIL condition is true

Control structures - Sequence * Algorithm * Pseudocode

process 1 process 2 ... ... process n

Software structure * What are 3 key points of developing good software structure?

use of a clear uncluttered mainline and subroutines - use of a modular approach - use of stubs to represent incomplete modules

Metalanguages - railroad diagrams - iteration/repetition

{<option 1>} circle above

Rapid application development approach - characteristics

- lack of formal stages - use of existing routines - use of appropriate applications to develop the RAD solution - drag and drop programming environments - common application packages such as spreadsheets, databases - communication between developer and client - short time period - small-scale projects - small budgets

Ergonomics - appropriate messages to the user

Well worded, use full words and sentences, not abbreviations and codes. Be unambiguous, positive and provide insight as to how to respond to the message Many users will inadvertently hit the Return/Enter key --> default option will not cause some potentially destructive action such as deleting or saving.

Reverse engineer:

Usually means the process of decompiling the product. Most agreements do not allow licensees to reverse engineer their products.

Summary of the Fetch-Execute Cycle * Steps * Role of hardware at each step

1. Fetch The instruction at the address in memory indicated by the program counter, is read into the instruction register. The program counter is then incremented to point to the next instruction. 2. Decode Control unit makes sense of the instruction. It then directs other components to load any required operands into the appropriate registers. 3. Execute Instruction is actually carried out. For most instructions, the services of the ALU are used. 4. Store Results are stored in one or more of the general-purpose registers. A further instruction is needed to move the results to RAM.

Define virus and malware

Virus: A type of malware that is able to copy itself either within a single system or to other systems. Malware: Malicious software that deliberately causes some undesired result. Malware includes viruses, adware, spyware, Trojans and worms.

Initiation and running of an app by the operating system * Locate and load * Hand control to application * Start fetch-execute cycle for the application * Minimum software requirements

1. The application is located on secondary storage. Checks requirements, allocates a certain area of RAM, area for actual executable file and storage areas for application. App loaded into its allocated section of RAM. Instructions relating to the execution of the application are loaded. 2. OS allocates CPU time to the application. App has control of the CPU during its allocated CPU time. OS switches between apps 3. Fetch-execute cycle begins processing the instructions that form the app

Backup copy:

A copy of the software made for archival purposes.

Agreement:

A mutual arrangement or contract between parties.

Intellectual property

A product of the intellect, the fruits of mental labour, such as an expressed idea or concept, that has commercial value. Covered under Copyright Act 1968

SAAS *What is it * What does it cover and its limitations * Pros and cons * Examples

A third-party provider hosts applications and makes them available to customers over the Internet Removes the need for organizations to install and run applications on their own computers or in their own data centers. Lowers cost for businesses Scaleable Automatic updates Accessible Service disruptions, Unwanted changes to service offerings, possibility of security breach Google suite, salesforce, zendesk

Privacy * Why is it important to protect a users identity and data?

About protecting an individual's personal information Personal information - any information that allows others to identify you Outlined in Ten National Privacy Principles Legal requirement Ethical

Virus checking * What it is * When it happens

Aim to prevent viruses and other malware before they are executed by the system. Scan all executable files entering the system looking for known virus signatures or potential patterns in the code that may cause unwanted processing.

Creative commons *What is it * What does it cover and its limitations * Pros and cons

Alters how copyrighted material may be used without charge. Not recommended for software- do not deal with the distribution of source code. For artistic works such as photographs, music, film and other media types - CCL can be modified to suit specific needs Most permit copy and distribution for non-commercial purposes with credit to original creator.

Warranty:

An assurance of some sort - a guarantee. Software products normally contain limited warranties. They may guarantee the medium work correctly.

Liability:

An obligation or debt as a consequence of some event.

Functions of the operating system - provide interface to software applications * What does it do/what happens?

Application interface provides a method by which application software can communicate with the operating system. Able to utilise many of the computer system's functions without worrying about the details of how the process is accomplished.

Off-the-shelf software * What is it? * Pros and cons

Application software is designed to perform some specific task for user Pre-packaged software products Some off-the-shelf packages can be customised (COTS) Eg. MYOB - Mind Your Own Business - Accounting software

What is batch job scheduling and emulation?

Batch job scheduling Batch jobs allow a number of processes to be performed sequentially therefore task scheduling utility can be used to execute the batch job at specific times Emulation Enables existing software applications to continue to operate on newer versions of the operating system.

Structured approach - testing and evaluating * What is it? * What would be done?

Before distribution - testing for errors in the code and testing of performance of the product under real conditions. Evaluation by sample users to ensure it meets the user's requirements

Inclusivity - gender

Both genders should be included in the SDD process Gender neutral terms when referring to user

Name CPU components and how they achieve their purpose

Bus interface - communication channel between the CPU and primary storage (RAM). Sends and receives instructions and data, fixes timing Code cache - storage for instructions that are likely to be needed in the near future. Branch predictor - attempts to guess the most likely next instruction (Assists the Decode/Prefetch Unit to get instructions ready in advance) Decode/Prefetch Unit - performs most of the control functions and handles the execution of some instructions. (Interprets and directs) ALU - perform the bulk of the actual processing functions. Registers - temporary storage areas used by the ALUs during execution (operands required to execute instructions, results obtained after execution) Data Cache - very fast memory area for storage of data that may soon be needed or is needed repeatedly. Floating Point Unit (FPU) - performs all non-integer calculations. Dedicated to performing computations with floating point numbers.

() Command line interface * What is it? * Why is it important? * Pros/cons

CLI: (Command line interface) text based, where user is given a prompt and they enter commands or inputs to the system First method of interaction and browsing of computers Required users to have extensive knowledge of syntax and config Long and hard to navigate Useful for automated tasks and servers

Identify the skills required in software development

Communication skills - Formal (email/interview) - Informal (text/phone call) - Aggressive (bombard) - Passive (observation) - Spoken/written/verbal/non-verbal Ability to work in teams Creativity Design Skills Technical skills Problem-solving skills - Brainstorming - Critical path analysis - S.T.A.I.R. - (Statement of the problem, Tools available, Algorithm, Implementation, Refinement) Attention to detail

Interpretation vs compilation

Compilation - executable file sent Pros: ready to run, often faster, source code kept private Cons: not cross platform, inflexible, requires the extra step Interpretation - source code sent Pros: Cross platform, easier to debug, simpler to test Cons: Interpreter required, often slower, source code public

Translation - Compilation * What is it? * What happens? * Why is it important? * What are its issues?

Compilers translate the entire source code into object code. Object code is combined with other linked files to create the final executable files. Optimises by removing comments and allocates specific variable names that makes it run fast Executes fast, no translation required at run time

Inclusivity - economic background

Requires that the technology is available at a cost that is economically viable for the widest possible audience Quality and cost Nature of the market (market needs) Feasibility Reduce cost by managing SDD process Ensure products are sold at realistic prices Stick within competition and government regulation

Open source (GNU licence) *What is it * What does it cover and its limitations * Pros and cons

Covered by copyright law, however licences like GPL (general purpose licence), remove many traditional copyrights. Source code developed collaboratively - modified and redistributed. Author must be recognised and modified products must be released using the same OSL. OSL users can freely use and modify software without fear of legal challenge → encourages collaboration and encourages sharing of ideas Installed and used without restriction

Freeware *What is it * What does it cover and its limitations * Pros and cons

Covered by copyright. Can be copied, distributed and altered - Modified products must also be freeware. Source code may be distributed with the executable code. Free

Shareware *What is it * What does it cover and its limitations * Pros and cons

Covered by copyright. Copies can be made for archival or distribution purposes. Cannot be modified or reverse engineered. Source code is not distributed. As many copies as you want

Commercial licence *What is it * What does it cover and its limitations * Pros and cons

Covered by copyright. One archival copy can be made as a backup Cannot be modified, distributed or reverse engineered. Source code is not distributed or available to end users. Strict usage outline Purely for use and can't be customised

Site licence *What is it * What does it cover and its limitations * Pros and cons

Covered by copyright. Specify either: Number of machines on which the software can be installed or Specific location where the software may be installed on any number of machines. Extend commercial or shareware license - used on multiple machines at reduced cost.

Inclusivity - cultural background

Cultural background - beliefs and language of different cultures be considered when designing software. Eg. Dates, currency, numbers

Prototyping approach - process

Defining and understanding the initial problem - Observing current system Planning and designing the prototype Each prototype --> modification of initial plan, where data structures, modules and algorithms will be added and existing ones changed. Documentation kept current, retained and show evolution Implementing the prototype Collection of screens with little or no real processing occurring → stub Test and evaluate the prototype Program tested by the programmer Redefined problem New and changing requirements will occur as each prototype is trialed by the users

Generations of programming languages - Declarative languages * What is it? * What does it interact with? * Why does it exist?

Describes what the problem is rather than how it can be solved. The program works out a method of solution as it executes.

Structured approach - key characteristics

Distinct formal stages, Long time Each stage is completed sequentially Large-scale projects, where performance and reliability are vital requirement Large budgets Large team of analysts, designers, programmers and clients Large audience will use the final product Minor errors are costly and magnified later

Generations of programming languages - Machine Code * What is it? * What does it interact with? * Why does it exist?

Each machine language instruction contains two parts, an operation code (opcode) and one or more operands. 2 + 2 = 4 (operand) (opcode) (operand) (opcode) (operand) (opcode) In CPU

What are the events that have led to the need for SLA's?

Ease of reproduction and copy - copies can be made anonymously. (SLAs prohibit the illegal reproduction of their products.) Collaborative development history - multiple authors and other software used in your software (Legally ensures author's IP rights are respected and enforced.) The current open environment of the Internet - easy sharing and transfer (Licence agreements must be written with reference to international patent and copyright laws if they are to protect the intellectual property rights of the developers.)

() Visicalc * What is it? * When? * Why is it important? * Pros/cons

Electronic spreadsheet software 1979 Removes need for paper ledgers First multiplatform piece of software - used on multiple processors GUI Importance: Input, processing and output all merged into a single interface Scrolling ability of the window (left, right, up and down) Instant recalculation of cells as contents changed Inclusion of a status and/or formula line Ability to replicate a range to any other range Relative and absolute referencing Formulas could be entered using minimal keystrokes Cursor moves are used to select cells and ranges Basic

Copyright * What is it * What is it covered by * What does it do?

Ensures developers are financially rewarded for their intellectual efforts through laws of copyright, enforceable by courts. Automatically covered under The Copyright Act 1968

Relationship of hardware and software - processing software instructions by hardware * Fetch execute cycle

FDES Instruction time (I-time) and execution time (E-time). Instruction time Fetching the instruction from memory and then decoding it. Execution time Executing the instruction and storing the result. Constant pace dictated by system clock. At each tick of the clock a part of the fetch-execute cycle occurs.

Generations of programming languages - Assembly language * What is it? * What does it interact with? * Why does it exist?

First attempt to make programming languages more human like Use mnemonics to represent different commands available in the assembler language. Eg. add ax means add to accumulator and is far easier to remember than 10100001

Licence:

Formal permission or authority to use a product. Does not give users ownership, rather the right to use the software.

Hardware - control devices * Examples * Purpose * How is data captured, stored, manipulated or displayed

Function that directs the other components within the processor to perform their functions at the correct time and in the correct order. Both processing and control are integrated within the central processing unit (CPU). Computers contain four basic parts; the arithmetic logic unit (ALU), the control unit (CU), memory and input/output devices. CPU contains the ALU, the control unit and registers. Registers: memory areas used to store instructions, addresses and data currently being used by the CPU. CU interprets and directs ALU to perform. The data and the result from the ALU's processing are stored in the CPU's internal registers.

Hardware - input devices * Examples * Purpose * How is data captured, stored, manipulated or displayed

Function that obtains data from outside the system Keyboard, mouse, scanner, radio frequency identification (RFID), barcode reader, graphics tablet, microphone Transferred to processing

Hardware - storage devices * Examples * Purpose * How is data captured, stored, manipulated or displayed

Function that reads, writes and retains data CD, DVD, flash drive, hard drive Primary storage - main memory Works with processor, fast - registers within the CPU, cache, physical RAM (random access memory), ROM and virtual memory Needs power to retain data eg. RAM Secondary Storage Far greater storage capacity Does not require power to retain data Magnetic storage - hard drive Optical storage - spinning disk engraving Flash memory

Hardware - output devices * Examples * Purpose * How is data captured, stored, manipulated or displayed

Function that sends data outside the system Laser printer, inkjet printer, cathode ray tube (CRT), LCD display, plasma display, CD writer/burner, DVD writer/burner, data projector, speakers From processor

Inclusivity - disability

Functionality that allows software to be used and accessed by a wide range of users Visual disabilities Speech generation and Braille utilities Colour blindness - Red Green contrast (Eg. Internet links in blue and underlined) Braille keyboard overlays and stickers Hearing Cues along with sounds Live caption app - Speech to text Physical disabilities Eye gaze - control computer with eyes

() GUI * What is it? * When? * Why is it important? * Pros/cons

GUI: (Graphical user interface) Arose from Xerox project Application to personal computing and accessibility to use Easier to navigate Easier for personal computing Not as easy for automated tasks

How does a keyboard work

Input Springed keys pressed down to complete an electrical circuit --> switches and circuits to translate keystrokes into signals the computer can understand --> positioned above a key matrix which has a set of rows of wires and columns of wires --> processor compares location of signal from key matrix to a character map stored on keyboards microprocessor and a ROM chip --> transmits a binary signal (commonly using ASCII) to the computer to represent the key pressed.

Software * What is it and its role? * How does it relate and interact with the computer system?

Instructions and programs that control the hardware causing it to perform some function Word processor, OS, web browser, spreadsheet or a programming language environment.

SLA

Intended to enforce the intellectual property rights of software developers Protect developers from legal action should their products result in hardship or financial loss to purchasers.

Translation - Interpretation * What is it? * What happens? * Why is it important? * What are its issues?

Interpreters translate source code statement by statement then immediately executed Significant processing overhead resulting in poor performance Used to test not to run Slow

Explain LSC

Lexical analysis Examines each element of the source code to ensure it is a legitimate part of the high-level language. Like checking the spelling in a written document. Checks if it's legitimate Syntactical analysis Checks the grammar or syntax of the source code is correct. Like checking a written document has correct grammar and punctuation. Code generation. Machine code is generated.

Summary of the generations of programming languages

Low-level languages - Machine/processor dependant, can only be used on the same CPU instruction set. First generation - machine languages Second-generation - assembler languages. Third generation - High-level languages - Machine independent, can be used on different CPUs Fourth and subsequent generations - Declarative languages - Machine independent Fifth generation - Pure AI - Machine independent

Functions of the operating system - control the concurrent running of software applications * What does it do/what happens?

Memory and storage Each process must be allocated sufficient memory in which to execute. This memory must be reserved for the exclusive use of that process, otherwise problems occur if processes infringe on each other's memory areas. The operating system ensures that each process receives enough of the processor's time to function correctly.

Procedures * What is it and its role? * How does it relate and interact with the computer system?

Modes of action that personnel perform to initiate and complete tasks. Backup procedures, how to load paper into the printer, or how to load a file.

Embedded license installation counts * What it is * When it happens

Monitor the number of computers where each software application has been installed - checks if within SLA count

Functions of the operating system - provide interface to hardware * What does it do/what happens?

Most devices communicate through a driver. Drivers: programs that translate messages into those that can be understood by the device. Drivers are separate from the operating system and are usually supplied with each new hardware device.

Agile approach - key characteristics

No need for detailed requirements and complex design documentation Small team, multi-skilled members Fast Collaborative team and users allows the solution to be refined throughout Working version at each iteration Responds well to changing specifications. Closely collaboration Often whiteboards involved

Public domain *What is it * What does it cover and its limitations * Pros and cons

Not covered by copyright. Copies and modifications can be made without restriction. Source code may be distributed with the executable code.

Poor ergonomics * Impacts

OOS - occupational overuse syndrome Reduces productivity Causes health issues

Summary of operating systems and utilities

Operating system: Organises and controls the hardware and other software used by the system - file compression − defragging − virus checking − embedded licence installation counts Manage and control the resources of the system Come packaged with various utilities to assist in the management of various system functions e.g. creating directory structures, copying and deleting files, defragmenting hard drives, performing backups, altering system settings, etc.

How does a speaker work?

Output Convert electromagnetic waves into sound waves using magnets Permanent magnet - doesn't move or change polarity Other magnet is an electromagnet coil Electric current from processor is sent through the electromagnet, it is either attracted to or repelled away from the permanent magnet. Causes the diaphragm or cone to vibrate

Personnel * What is it and its role? * How does it relate and interact with the computer system?

People involved in using the system Users, network administrators, support teams, maintenance techs and engineers.

Structured approach - defining and understanding the problem * What is it? * What would be done?

Precise requirements that clearly define each aspect of the problem (will later test the success) System analysts: experts in determining and defining requirements - List outputs, generate required inputs and create models showing the data flow

Ergonomics - consistency of user interface

Provide a consistent method of reversing actions. Users like to explore software applications and are therefore likely to initiate processes that they later wish to reverse. Intuitive

Types of operating systems

Real-time operating systems (RTOS) - Perform tasks immediately and at regular timings (eg. machinery) Single-user, single-task operating systems - Manage so one single task can complete Single-user, multi-tasking operating systems -Multiple programs, one single computer. OS allocates CPU time to each program Multi-user operating systems Access to the system's resources by many users.

Program:

Refers to the computer software. This usually includes both executable files and included data files.

Ergonomics - effectiveness of screen design

Screen elements that are logically connected should be grouped together, and navigation should follow the natural flow of the task Busy screens → confusion. 50% white space Don't use tabbed dialogues inappropriate icons Sticking to standards Explain the rules. Develop a simple set of rules that apply to your entire application. Use interface elements correctly. Use colour appropriately Use fonts appropriately. Easy to read, Use consistently, Alignment of data entry elements.

Event driven programs vs sequential

Sequential programs Distinct start and end. Instructions are executed one after the other. Inflexible Event driven programs Listen for and then respond to certain occurrences or events by executing a particular section of the code. Flexible Viewed as a collection of inter-related modules

Social and ethical issues

Social - Friendly companionship. Living together in harmony, rather than in isolation Ethical - Dealing with morals or the principles of morality. The rules or standards for appropriate conduct or practice

Limited use:

Software licences do not give purchasers unrestricted use of the product. (eg. restricted to a single machine, Copying prohibited except for archival or backup purposes, no product alteration or modification

Privacy * How can privacy be maintained and protected?

Software must: Reason for collection and use Allow user to access their records Correct inaccurate information Disclose the details of other organisations that may be given information from the system Purpose of holding the information Describe the information held and how it is managed * Encryption of sent information * Non-identifiable data where possible * Ensure the user can see the data stored * Remind the user of privacy principles * Password policy

Software

Software: The set of instructions used to direct the operation of the hardware causing it to solve some problem

Structured approach - implementing * What is it? * What would be done?

Solution is coded in a programming language using module designation Ensures each programmer adheres to the planned solution and assists in correct module interaction Given system models, the nature and names of relevant data structures together with algorithms. Once all modules are complete they are combined and tested

Why does software need to be translated?

Source code is a collection of statements written in a high-level language - makes no sense to the CPU so must be translated into machine language to work LSC Lexical analysis Syntactical analysis Code generation.

Structured approach - planning and designing * What is it? * What would be done?

Structures that will hold the data used during processing are designed Data structures are carefully documented and if built well reduce programming required Modulation described using an algorithm description language

Term:

The period of time the agreement is in force. Usually commences immediately after terms and conditions have been accepted, and remains in force as long as the terms and conditions are upheld.

Hardware * What is it and its role? * How does it relate and interact with the computer system?

The physical components of the system, including the input, processing, storage and output devices Keyboard (in), mouse(in), hard drive(storage), microprocessor, monitor(in/out), router(in/out/storage) and printer (in/out/processors) Hardware ineractions Input --> [(Processing (control))<-> storage]--> output

Data * What is it and its role? * How does it relate and interact with the computer system?

The raw information input into the system which is transformed into information. eg keyboard inputs and mouse inputs

Functions of the operating system - provide interface to user * What does it do/what happens?

User interface (in a similar way to App interface) provides a consistent means of communication with the user. UI component of the OS usually sits on top of the main operating system.

Ergonomics - Ease of use

Users should feel they are in control of the computer Apps should support novice and experienced users Shortcut keys and advanced functionality options Response time → input, function, output. Should be less than 0.1 seconds Response times > 1 second cause users to act and perhaps reboot or cancel operations → bad perception of software

Ergonomics - Summary

effectiveness of screen design ease of use appropriate messages to the user consistency of the user interface

Prototyping approach - characteristics

modeling of a proposed solution or part of a solution progressive refinement of the model in response to feedback Concept prototypes - produced to assist in the determination of requirements, they are then discarded. Evolutionary prototypes - develop over time and finally become the final operational product through a simplified software development cycle, where after each cycle a new prototype emerges


संबंधित स्टडी सेट्स

chapter 42 male reproductive all

View Set

Physics - 3.8.1.3 - Radioactive decay - A Level

View Set

Abnormal Psychology Chapter 9 notes

View Set

Chapter 11, 12, 13, 14 Quiz - Texas Government - Governing Texas Chapter 11, 12, 13, 14

View Set

PP - Taxes and Shelters (Types of Taxable income)

View Set

Progressive Era: Muckrakers & Social Reforms

View Set