· 9 years ago · Aug 03, 2017, 02:22 AM
1Software Development Notes
2
3
4Study Design
5http://www.vcaa.vic.edu.au/Documents/vce/computing/ComputingSD-2016.pdf
6Data Types
7Data types are the particular forms that an item of data can take including numeric, character and boolean, and a specific type is characterised by the kind of operations that can be performed on it.
8String
9Alpha-numeric data that can be from zero to infinite size depending on available memory size and language limitations.
10Integer
11A number that is not a fraction; a whole number. Can be both positive or negative numbers for example 157 or -123,435,657.
12Boolean
13Data Type for which values can only be binary logical options such as True or False, On / Off, 1 or 0 or Yes or No.
14Currency
15Data type used exclusively for financial operations. Utilises a high-precision fractional part to prevent bad rounding of cents.
16Floating Point (Decimal or Real)
17Type that stores numbers with fractional parts, such as 1.2753
18Character (Char)
19Individual alphanumeric data type to store one single ASCII character of data usually in 2 bytes of memory.
20
21The Importance of Data Types:
22A data type dictates what kinds of operations can be performed on variables and by extension the degree to which that variable can be manipulated-Data types should be chosen based on what a variable must do.
23Different data types have different storage sizes and thus affect how much memory a variable uses, affecting processing power and rate of calculations involving that variable.
24Data Structures
25Array
26Special variable which can hold more than one value at a time.
27A series of objects which are the same size and type. For example you could have an array of integers or characters. Array of anything that has a defined data type.
28Array Key Points
29Each element has the same data type
30Array stored with no gaps between elements
31Arrays can have more than one dimension
32A one dimensional array is called a vector
33A two dimension array is called a matrix
34
35Array (Integer Index)
36Single data type storage of multiple values, where each value is referenced through an index number, usually starting with 0; index [0] being the first item stored in the array.
37Record (Field Index)
38A record is a collection of fields of the same length, possibly of different data types, typically in a sequence. Each item in the record is accessed using a field index in a more meaningful manner than the simple integer index of an array.
39Associative Array
40An abstract model for data structures composed of a collection of (key, value) pairs; the key is the identifier for a piece of data(the value). Once an associative array is within a hash function, values can be accessed by searching for their keys.
41Hash Table
42A data structure implemented to allow easy navigation of associative arrays, database indexes, etc. It does this by converting index values into unique numbers through a hash function, allowing the data associated with that index to be instantly retrieved without the requirement of searching.
43Queue
44First Item In, First Item Out
45Stack
46First Item In, Last Item Out
47
48File Formats
49CSV Format
50Comma Separated Value format is one of the most common file formats, comprised of a text file wherein items of data are separated by commas. CSV files provide a convenient standard for transferring information between software solutions
51XML Format
52EXtensible Markup Language is a method of encoding data in a file that is accessible and easy to read for both software solutions and people. It structures data around user-defined ‘markup’ metatags and a hierarchical layout through spacing, indents, ect.
53
54Key Differences between CSV and XML:
55Simpler CSV (comma separated value) data files only contain raw data. XML has field names, structure.
56XML data contains no information about how the data should be presented. The same XML data can be displayed in many different ways.
57In a CSV file the exact number and types of data need to be known in advance for a software solution to read it.
58JSON
59Javascript Object Notation is a simple data transfer format used to maintain the structure of the data without any information regarding its presentation. It is less descriptive than XML and more descriptive than CSV. It is commonly used to transfer data between web applications.
60
61Representing designs(Design Tools)
62Data Dictionary
63A data dictionary is a design tool which summarises what data a solution will require as well as the properties of that data. It is generally formatted as a table listing all required data for a program alongside descriptions and further metadata.
64
65Data dictionaries are used to:
66Design the structure of a program or database,
67Act as a reference source during development
68Assist in software maintenance and upgrade after implementation.
69
70
71Object Description
72A table that simply lists all of the necessary properties of an object, such as it’s size, position, caption, name, ect. Only the properties relevant to the object’s class would be listed and properties with satisfactory default values do not need to be included in the table.
73Mock-up
74A design tool for creating the appearance of a solution, often drawn-up representations of user interfaces, screen displays and visual outputs.
75Mock-ups generally show:
76Positions of elements
77Relative sizes
78Margins, borders
79Alignment of objects
80Colours
81Image contents
82Headings, text blocks
83Navigation controls
84
85
86Pseudocode
87A written description of a programming algorithm unbound by the strict rules and conventions of code. The main purpose of pseudocode is outlining the ideas and meaning behind an algorithm and any structure in the algorithm should generally serve to further outline the code’s logic.
88VCAA Pseudocode Rules:
891. The = symbol is only used for logical testing
902. The ↠symbol is used for assignment
913. Code indentation is always used to show lines of code are controlled by
92selection structures or iteration structures
934. Keywords can be arbitrary, but they must also be consistent.
945. Blocks of pseudocode should start with BEGIN and finish with END.
95Add. ‘Internal Documentation’ can be included in pseudocode to explain specific aspects such as the meaning of keywords.
96
97
98
99
100Language Features
101Instruction
102A simple command directing an action the code should carry out.
103Procedure
104Also known as a subroutine, a procedure is group of instructions that together perform a specific task within the program. Procedures are often repeatedly called to by other parts of the program to carry out their task and generally do not interact with other sections of the program beyond the scope of that task. Procedures can be differentiated from functions by the fact that they do not return an output.
105
106The act of breaking down large blocks of code into different procedures is known as modular programming.
107Method
108A action that can be carried out on an object of a specific class, such as ‘button.press’.
109Function
110A procedure that is called upon to calculate and return output. Functions can be further differentiated from procedures by the fact that functions posses a () after their name, e.g. SORT(); within these parentheses parameters can be entered to control how it performs its calculations.
111
112Control Structures
113A block of code that dictates which lines of code will be executed, often based on an analysis of variables. There are three types of control structures:
114
115Sequence: Default control structure in which lines are read in order(from top to bottom). An example of this would be the GOTO command.
116
117Selection: Control structure that executes some code if a variable meets certain conditions; IF loops are an example of this.
118
119Iteration: A control structure that repeatedly executes(loops) a block of code for as long as a variable meets certain conditions. This can be seen in WHILE and FOR loops.
120
121Sorting Techniques
122Suitability
123The type of sort used should be the fastest for the data set whenever possible. More complex sort algorithms, such as Quick Sort, are much faster on larger data sets, but may be no faster or even slower on smaller data sets than a simpler algorithm, such as a Bubble Sort.
124Complexity
125Complexity of the algorithm used to perform the sort usually has an inverse relationship with sort time. The more complex the process the faster the sort performs. However, complex algorithms can be slower or no faster than simple algorithms when the number of items to be sorted is smaller.
126
127Sort Time
128Sort time depends on the number of items needing to be sorted and the algorithm used to sort these items. The more complex the algorithm the shorter the sort time will be, in general. Simple algorithms can be used when the number of items is small, but for larger lists, simple sorts, such as a Linear Sort, will result in longer sort times compared with more complex algorithms, such as Quick Sort.
129Selection Sort
130A selection sort examines each item in an array by finding the lowest item and swapping this lowest item with the item at the start of the array. At the end of the sort the numbers are lowest to greatest. Selection sorts are very simple, but can take a long time to sort large lists.
131
132Quick Sort
133Quick sorts are both efficient and fast, but far more complex than selection sorts. Quick sorts use the method recursion or they can also utilize a stack as well to perform the sort. The sort selects a pivot value from the list and then partitions all other items around the pivot; items lower to the pivot’s left and and items higher to the right. These sublists can then be recursively sorted with new pivot values.
134Search Techniques
135Linear Search
136The only way to search unsorted data and the simplest, easiest search algorithm to write, a linear search checks each item in a data set(through comparison with the search item) until it finds the desired item. As the maximum amount of comparisons is always equal to the amount of items in the set, a linear search works best for small sets but will be highly inefficient for larger sets of data.
137Binary Search
138A binary search is an efficient and swift way of searching through a dataset, but requires such lists to be sorted first. The search operates by dividing a list in two and deciding which partition will contain the search object. This process is then repeated with the half containing the object until the search item is located.
139Data Validation
140Existence Check
141A check if the user has inputted data.
142Range Check
143A check if the inputted data is within the range of acceptable values.
144Type Check
145A check if the input is of the correct data type.
146Testing
147A process of testing a solution to determine if it functions correctly, meeting all user needs and fulfilling both functional and nonfunctional requirements. Testing is generally done during or after development and is not the same as evaluation.
148Trace Table
149A tool for testing the behaviour of algorithms in pseudocode through step-by-step, line-by-line manual calculations to ensure expected output is obtained. This process can be represented in table format to display the logical progression of each line and to ensure all pathways within the algorithm are shown and that all variables and constants are represented.
150Test Data
151Data that is designed to test the parameters of what a solution considers ‘acceptable input’ to make sure its validation functions correctly and that its algorithms can correctly process all desired inputs.
152Documenting Test Results
153Documenting test results is important in order to obtain proof that tests have been carried out and to create references for future tests and development. A good way to record testing data is in a testing table, which records the specific tests carried out how successful the tests were and what measures were taken to correct any errors that were found.
154Internal Documentation
155Unexecutable lines in a program’s code left by developers that serve as notes on methods and syntax. They are intended to be read by programmers, not users. Internal documentation increases maintainability of code as it can explain how particular sections of code operate to new programmers and assist with the memory of programmers returning to the solution.
156Purpose of Internal Documentation
157Provides a simple description, describing what is occurring and includes information not necessarily easily understood by looking at the code itself. It can assist the creator of a solution at a later date to remind them of what the code does and assists future programmers who wish to modify the software solution.
158Characteristics of Internal Documentation
159Describe the functions of key variables and procedures
160Explanation of the naming and coding conventions
161References to code that have been sourced
162Revision information
163Contributions
164Does not have an effect on efficiency, compilation ignores comment lines
165Naming Conventions
166A naming convention is the designation of elements of a program with names that are easily understood, short and convey meaning about that element’s purpose. Such conventions should be applied to the naming of all variables and subroutines within a solution. These can aid the programmer in remembering the names of functions, variables, and other objects, ensure all element names are compatible with the programming language used, assist new programmers in understanding the solution and can help with future maintenance of the solution. Examples of naming conventions are the Hungarian Notation(three letters at start of element name indicate that element’s class), CamelCase(Capitalise words and remove spaces for names) and Python’s PEP 8 document.
167
168ANALYSIS
169Collecting Data / Determining Needs
170Evaluating an existing or new information system or helps to determine requirements for a new solution.
171
172The efficiency and effectiveness of a data collection method should be considered before applying it.
173Survey
174Questionnaire distributed among stakeholders. Containing mostly tick the box style questions along with sections for more detailed comments.
175
176Focus mainly on Quantitative data.
177Cheap and time-efficient way to gather data from many stakeholders.
178Unobtrusive and easy to fill out.
179Unreliable; subjects may not answer every question.
180Rigid structure makes it impossible to gather data beyond the set survey questions.
181Interview/Focus Group
182One on one interviews conducted on specific stakeholders within an information system.
183
184
185Personal nature of interviews allows for a flexible line of questioning that cannot be provided by methods such as surveys.
186Interviews can generate large amounts of qualitative data.
187Time consuming to organise and carry out.
188Expensive to set up.
189Intrusive; interview subjects may not always be cooperative or tell complete truth.
190Observation
191Viewing the workings of an information system and its various parts(including people) function naturally and gathering notes on what is observed.
192
193Detailed, reliable and extensive qualitative data.
194Unlike interviews or surveys, does not rely on secondhand accounts; reflects what really happens rather than what people say happens.
195Can reveal facts that interview or survey questions may not anticipate.
196Time consuming.
197Very intrusive and may irritate stakeholders.
198Features of Functional and Nonfunctional Requirements
199Functional Requirements
200A functional requirement is a task that a software solution must be able to do
201Non-Functional Requirements
202A non-functional requirement is a quality or characteristic a software solution must possess, such as ease-of-use, maintainability, correct language, etc.
203Solution Constraints
204Constraints are limits on developer freedom in designing a solution and conditions that affect the operation of a solution.
205Economic
206Economic constraints include the amount of resources available for the development of the solution, the amount of resources available for the maintenance of a solution and the price the final solution may be sold to customers for.
207Legal
208Legal constraints are the laws which govern the development and operation of a solution. In Australia, laws such as the 1968 copyright act prevent you from stealing other’s code for development while the privacy act 1988 prevents you from creating a solution that secretly harvests personal information from customers.
209Social
210Social constraints are restrictions based around the beliefs, attitudes and values held by wider society. They include restrictions on violence and sexuality depicted by media, taboos around religious imagery and controls on other offensive material that solutions could involve. Additionally, solutions may be expected to protect users from harassment or scamming.
211Technical
212Technical constraints generally concern the hardware and software a solution must operate with. Some solutions may be expected to run on certain devices(such as company-issued laptops) or be compatible with certain pieces of software. Solutions based on mobile devices should consider screen size, resolution and available processing power. Solutions may also be expected to follow technical conventions, such as depicting onscreen keyboards in the QWERTY format.
213Useability
214 Solutions must accommodate the needs of the user in order to ensure their continued use. This can be done through minimising the amount of learning needed to understand a solution, incorporating systems to account for user errors(e.g. an undo button) and through constructing the solution with the user’s needs and characteristics in mind, e.g. using simple language in a UI designed for children.
215Solution Scope
216 The scope defines what the solution can and cannot do as well the system’s boundaries and the extent of user interaction. Fundamentally, it identifies the responsibilities and parameters within which the solution must operate, however often in the course of a project these boundaries are fluid and liable to change as the project progresses.
217Factors
218The scope of a solution is always directly influence by the solution’s constraints and in almost all cases the scope will fall within the boundaries of the constraints. The scope may additionally be affected by:
219
220The client’s needs
221Needs and attitudes of the target user base
222Results of data collection
223Overall project goals
224Development team needs and desires
225Scope Creep/Feature Creep
226 Though the scope should not be absolutely rigid, too lose a scope can lead to ‘feature creep’, in which the Scope is continually expanded and new features are introduced by an enthusiastic developer only to have the project become bloated and unmanageable by all the extra work that must now be done to meet this new scope.
227Software Requirements Specification (SRS)
228Features
229 The SRS document provides a complete outline of a solution’s functional and non-functional requirements, constraints and scope, bringing together all data from analysis. It additionally can contain design tools such as mock-ups, use case diagrams and data flow diagrams.
230Purpose
231 To comprehensively compile all of the analysis phase into one document and provide a complete breakdown of a solution into component parts, providing input to the designing stage and serving as a useful reference for all other parts of the Problem-Solving Methodology.
232DESIGN
233Generating Design Ideas
234Design ideas are rough, basic outlines of strategies to solve problems; they are almost never fully-formed workable ideas but generally methods of approaching issues. Several design ideas should always be proposed and then judged using criteria such as development speed and cost, ease of development, functionality. Ideas that pass this criteria can be integrated into the final product.
235Techniques
236Brainstorming spontaneously produce many rough concepts and ideas without fear of rejection or ridicule.
237Mind maps-Free form documents in which ideas are proposed and then linked to other ideas.
238PMI(Plus/Minus/Interesting) diagrams that break down big ideas into smaller parts for consideration.
239
240
241Evaluating Alternative Design Ideas
242In the evaluation of alternative design ideas, it is important to consider the constraints and scope of a solution, as well as client and user needs.
243Criteria
244 When evaluating a design idea against other design ideas, consider the following:
245
246Ease of implementation
247Advantages/disadvantages over other ideas
248It’s relation to functional and nonfunctional requirements of a solution
249It’s resource and time cost compared to other proposals.
250
251Efficiency
252The measure of how much time, cost and effort is applied to achieve the intended result
253
254Measures of efficiency in a solution:
255Speed of processing
256Functionality:
257Cost of file manipulation
258Effectiveness
259The measure of how well a solution achieves its intended results
260
261Measures of effectiveness in a solution:
262Completeness: Accuracy of the inputted data given the appropriate input data
263Readability: The quality of the outputted data
264Attractiveness: Appeal of the user interface
265Clarity: The quality of the outputted data
266Accuracy: How precise the outputted data is
267Accessibility: How usable the software is
268Timeliness: The usefulness of the data depending on how long processing time was
269Communication of message: Clarity/ understanding of the produced data
270Relevance: How necessary the data is
271Usability: Ease of use of the program
272
273Measure of effectiveness of an information management strategy
274Integrity of data
275Security
276Ease of retrieval and currency of files
277
278Measure of effective networks
279Reliability
280maintainability
281
282Design Tools: Depicting interfaces between Solutions, Users & Networks
283UML
284 Unified Modelling Language(UML) is a standardised modelling language that ecompasses a large variety of diagrams useful for representing aspects of a software solution. Each UML diagram is strictly defined allowing them to be easily understood and comparisons and references simple to create.
285Use Case Diagram (UCD)
286A diagram that depicts the functional aspects of a system, including the system’s goals and how people and organisations interact with the system to achieve their goals. UCDs are useful in many parts of the Problem Solving Methodology, being useful for analysis as well as training.
287
288
289SYSTEM BOUNDARY
290Symbol: Rectangle drawn around all use cases
291A representation of the confines of the system, denoting what is within(use cases) and without(actors)
292ACTOR
293Symbol: Human Figure
294Denotes an external entity, often a person or organisation, that interacts with the system. Connect exclusively to use cases.
295USE CASE
296Symbol: Ellipse with function written inside
297Represents a function within a solution
298ASSOCIATION
299Symbol: Line between actors/use cases
300Represents an interaction that can occur between a use case and an actor(s). Use cases and actors can have many different associations, but an actor should never have an association linking it to another actor.
301INCLUSION
302Symbol: Dotted arrow with ‘<<Includes>>’ written in
303Reflects links between use cases, indicating that the functionality of a use case can be utilised by another use case.
304EXTENDS
305Symbol: Dotted arrow with ‘<<extends>>’ written in with a condition ‘{}’
306Denotes the functionality of a use case contributing or enhancing another use case under specific circumstances. Often conditional, such as an actor being an administrator with special privileges(in which case the condition becomes ‘{is administrator}’
307Data Flow Diagram (DFD)
308 DFDs serve as a diagrammatic representation of how data moves through a system and how it is modified by that system’s processes step-by-step, as well as how data is stored and how it is used.
309
310ENTITY
311Symbol: Small rectangle with label
312A representation of a person, organisation or agent outside the system that either provide data or receive data. Data cannot flow between entities and entities can only represent what is outside the system.
313DATA FLOW
314Symbol: Arrow with label
315Denotes data moving between entities, processes and data stores along with a label showing what the moving data actually is. Data flows must always lead somewhere; there can be no ‘arrows to nowhere’
316DATA STORE
317Symbol: Label within two vertical black lines
318Represents a storage location within a system and is labelled with the name of the file or location. A data store only holds data, not process or modify it. Additionally, data cannot flow between data stores directly, nor can data flow directly between entities and data stores.
319PROCESS
320Symbol: Numbered circle with a label
321Denotes an activity that receives data and modifies or transforms it in some way. Processes are numbered in the order that they occur and contain a description of the task they perform. A process must always produce some data when it receives a data flow and in most cases data should be transformed in some way by a process or additional data flows should be created.
322
323Context Diagram
324 A unique type of DFD that focuses exclusively on an organisation’s interactions with external actors that supply or receive data from the organisation; it contains no information on the internal processes of an organisation. They can also be known as ‘level 0 DFDs’
325
326
327 A context diagram contains ALL THE FEATURES OF A STANDARD DFD, except all processes are replaced by:
328
329ORGANISATION
330Symbol: Labelled large circle
331A representation of the organisation itself within the context diagram. It represents all the inner processes of the organisation’s systems and is behaves like a regular DFD process, however often sends and receives many more data flows.
332
333Solution Design Considerations
334Usability
335A measure of user-friendliness, whether or not a piece of software is clear in its use or intuitive in design etc.
336Reliability
337A measure of how long a piece of software can operate in its environment.
338
339Portability
340The ability for a piece of software to be cross compatible, how easy it is for it to be migrated to a different environment, i.e. different operating system, coding language etc.
341
342Robustness
343A measure of a software’s ability to withstand bad input or bad data.
344
345Maintainability
346A measure of how easy a piece of software is to be edited or reviewed, this is based on organisation of code and notes left by a developer.
347
348Affordability
349A measure of resources a program may take to develop in the form of money and subsequently time.
350
351Security
352A measure of a solutions resilience to various deliberate threats, including DDOS attacks, physical theft of data or remote theft of data through hacking.
353
354Interoperability
355A solutions ability to work with other systems or solutions with little effort from the user.
356
357Marketability
358The measure of a solutions qualities that would allow it to be sold amongst a wide audience.
359DEVELOPMENT
360
361Project Management
362Gantt Chart
363A project management tool that displays the tasks that need to be completed in a project and visualises the project timeline, the time needed for each task, the dependencies between certain tasks, the project’s critical path and milestones in the development timeline.
364
365Milestone
366A point in a project’s development(typically visualised as a task of zero duration on project management tools) that marks significant points in the project timeline.
367
368Dependency
369A dependency refers to a task in a project that cannot begin unless another task earlier in the project’s timeline is completed beforehand.
370
371Resource
372 Project resources include personnel, hardware, software as well as a variety of other items such as hiring venues for consultations. All project resources are only available in finite amounts and use of resources must be planned carefully.
373
374Critical Path
375In project management, the critical path is the sequence of tasks of the longest duration, thus representing the minimum time it will take for the task to be completed without delay.
376
377Gantt Chart Creation Process
3781.Task Identification
379 The process of identifying and then listing every task in a project, ensuring they are all within the scope.
380
3812.Sequencing
382 Sequencing refers to the process of ordering of the project, including the identification of dependencies and milestones.
383
3843.Time Allocation
385 Deciding how much times each task will take and thereby creating the critical path and lag/lead times.
386
3874.Resource Assignation
388 Deciding upon the allocation of resources to each task.
389Recording Project Progress
390 Projects almost never progress smoothly as planned without variations in resources or schedules and thus it is important to monitor and document changes to the plan in order to accommodate these changes.
391Annotation
392Project managers should annotate their planning documents as tasks change or additions are catered for.
393Task Adjustment
394 Task adjustment is the modification of the dependencies, time , resources,(etc.) that are assigned to a task in response to the current conditions of the project.
395Timeframe Adjustment
396 Timeframe adjustment refers to the modification of overall timeframes within the project and additional factors such as resource bookings and testing times in response to the adjustment of earlier tasks.
397Log
398 A log is a record, written by the project manager, of all changes made to a project and the impact of these changes. It is useful for filling in project workers on changes made to the project and for reporting changes in the plan to superiors.
399Project Plan Effectiveness
400
401Evaluation Strategies for project plans & solutions
402Efficiency
403 Efficiency is the measure of the time, cost and effort required in the planning and execution of a project.
404Effectiveness
405 Effectiveness is the measure of how well a project plan fulfills its role in guiding the progress of a project.
406Security
407Data Protection
408 Legislation such as the 1988 Privacy act mandates that software solutions must protect the data they store, both through physical means and digital. Physical security includes barrier techniques(locks, doors, alarms) and biometrics(Fingerprint scanners, photographic IDs), while digital techniques include encryption through protocols such as TLS(Transport Layer Security, which is packaged with Secure Sockets Layer and encrypts files sent over the web) as well as HTTPS(A protocol for secure information transfer over the internet)
409Authentication
410 Solutions must ensure that those accessing stored data have the necessary levels of authority by authenticating those who attempt access. This can be achieved through systems like password protection, SSO(single sign-on) and access restrictions(levels of access)
411Application Architecture
412 The process of identifying the components, and their interrelationships, of a software solution that meets all technical requirements while optimising common quality attributes such as performance and security.
413Mobile
414 Mobile device design can be challenging due to the varying specifications of the devices you are developing for. Factors such as screen size, available memory and storage space can vary between different phones. To accommodate different devices mobile application architecture can be constructed as either ‘thin layer’ or ‘rich client’.
415Rich Client
416A ‘rich client’ solution perform the majority of its processing on the mobile system the solution is based on. While such design can require the client to own fairly powerful mobile devices, it does not need the developer to invest in back-end servers and security infrastructure to support the solution.
417
418Thin Client
419A ‘thin client’ mobile solution delegates most of its processing to an external, developer-owned server rather than the actual device the solution is operating on. While such design is accommodating of all kinds of devices, it requires the developers to maintain comprehensive server and security infrastructure.
420
421Peer-to-peer
422 ‘P2P’ is a distributed application architecture in which tasks or work are distributed between peers of equal standing. Peers will generally manage or share their own connections without the need of a server(thin layer).
423Internet
424 Internet-based applications are almost completely device independent, being instead based on browsers. However such applications place server maintenance and security at the forefront of priorities.
425Goals/Objectives
426Organisational
427Organisation Goals: The long term plan and why the organisation exists
428
429Organisation Objectives: The short term goals of the the organisation and is measurable
430Mission Statement: Broad statement about an organization's goals
431Information System
432System goals: What each system in an organisation is aiming to achieve. System goals generally align with organisational goals in some manner but are much more specific to that particular system.(If an org goal is ‘improve efficiency’, a system’s goal may be concerned with making that system more efficient.)
433
434System Objectives: Quantifiable, specific targets that a system can reach in order to take steps towards overall system goals. Are often numerically based(like ‘perform task A 5% faster’).
435Laws
436Privacy Act 1988
437Laws that set out the ways in which an organisation can collect, use or distribute personal data.
438
439Collection: Organisations should only collect personal information that is necessary for one or more of its functions
440Use and Disclosure: Organisation must not use or disclose information about an individual for any secondary purpose other than its original purpose for its collection
441Data Quality: Organisation must ensure personal information it collects, uses or discloses is accurate, complete, and up to date
442Data Security: Organisation must ensure personal information collected is protected from misuse
443Openness: Organisation must clearly express its policy on its management of its personal information
444Access and Correction: Organisation must provide access to the individual own personal information
445Identifiers: Organisation cannot use a unique identifier for an individual instead of another organisation’s identifier
446Anonymity: Organisations must allow individuals the option of not identifying themselves
447Transborder data flow: Organisations must not transfer personal information about an individual to a foreign country without consent
448Sensitive Information: Organisations must not collect sensitive information about an individual unless consent is given by the individual, or law requires collection
449Privacy and Data Protection Act 2014
450APP 1: Open and transparent management of personal information
451APP 2: Anonymity and pseudonymity
452APP 3: Collection of solicited personal information
453APP 4: Dealing with unsolicited personal information
454APP 5: Notification of the collection of personal information
455APP 6: Use and disclosure of personal information
456APP 7: Direct marketing
457APP 8: Cross-border disclosures
458APP 9: Adopted, use or disclosure of government related identifiers
459
460Copyright Act 1968
461In Australia, if you are the creator of a work, you own that work automatically.
462Owners have the right to:
463Choose when and how their work will be distributed
464Incorporate technological protections to guard their work
465Take legal action against those who use your work without permission
466
467The only exceptions to this law are works of review, research, parody or reporting. Additionally, 10% of a reference book can be legally copied without permission.
468
469 OSS(Open source Software) and CC(Creative Commons) are licenses that allow work to be distributed with certain conditions(For example, a work protected by CC may not be used commercially)
470Spam Act 2003
471 The Spam Act is designed to regulate the sending of unsolicited emails, texts, SMS, etc. It does not include voice communications or physical mail. It only takes a single unsolicited email to be considered spam.
472 The act mandates:
473Emails and messages should only be sent to those that have consented to receive them.
474Emails and messages should clearly identify their sender
475Emails and messages must allow recipients to remove themselves from mailing lists and request not more transmissions.
476Additionally, organisations are not allowed to partake in ‘address harvesting’ and the acquisition of customer addresses without the customer’s knowledge.
477
478Charter of Human Rights and Responsibilities Act 2006
479 A protection for basic freedoms and rights of all Australian, including freedom from forced labour and freedom of religion. Sections 13, 14 and 15 are relevant to SD.
480 13: A person has a right to his or her privacy and the right not to have their lives unlawfully or arbitrarily interfered with.
48114: A person has the right to freedom of thought, conscience, religion and belief and are not limited in the ways they can express these beliefs.
48215: A person has a right to freedom of expression provided this expression respects the rights and reputation of others and is in accordance with national security, order and public morality.
483
484File Access
485File size
486 The size of the data that needs to be stored is an important consideration when choosing storage medium and file type.
487
4881000 bytes = 1 KB
489
4901000 KB = 1 MB
491
4921000 MB = 1 GB
493
4941000 GB = 1 TB
495
496
497
498Storage medium
499 A storage medium is any technology used to place, store and eventually retrieve data. Examples of storage mediums include CD-ROMs, USB drives, portable ZIP drives and file servers.
500
501 Device memory utilises primary storage(RAM) and secondary storage(hard drive). Primary storage is a high-speed medium that can quickly be accessed to store temporary data for an application. Meanwhile, secondary storage is slower to access and should house permanent data that is only accessed occasionally such as files.
502File organisation
503Serial File
504A file containing sets of data of the same type stored in the order that it was entered. Searching a serial file requires a sequential comparison of all stored items. They are simple and fast to create but slow and awkward to use later on.
505
506Random Access File
507A random access file stores records of the same defined length with a strict, predictable structure; as a result of this you can instantly find and retrieve desired records from a random access file. This makes them fast and convenient to use but the constraints on record length may lead to either wasted storage space or cut off data.
508
509File Management
510Security
511
512Archiving
513Removing old data which is used infrequently by transferring it to a external storage such as a flash drive, tape, disc or external HDD and thereby freeing up space; the old data must not remain in its original location.
514Backup
515Copying all files to a secure location as a recovery for a system failure. Unlike archiving, backups should not move the original files from their location.
516
517Backup Types
518
519Full Backup
520A backup of all files in a backup set. It requires a large amount of storage space and takes the longest amount of time to prepare, however it is also the fastest to restore as it only requires the most recent full backup files. Additionally, it can be inefficient as all files are backed up(even if they haven’t been changed since that last full backup) and holding several full backups in a files system takes up a large amount of storage space.
521
522Differential Backup
523 A backup of all files that have been modified or added since the last full backup. Differential backups are fairly efficient and relatively fast to perform, although restoring the backup requires both the last full backup and the last differential backup. The amount of storage space required for differential backups varies and duplicates can take up large amounts of space.
524
525Incremental Backup
526 Incremental backups are backups of all the files added since the last full backup, differential backup and incremental backup. They are the fastest backup to perform and generally require the lowest amount of space however they are the slowest to restore as the last full backup, differential backup and all recent incremental backups are required to fully restore all data.
527Disposal
528
529Characteristics of Data
530Accuracy
531The quality of the data from the inputted source
532Timeliness
533How relevant the data is depending on the speed of processing and the data type
534
535Reasonableness
536How sensible the data is depending on the software uses
537Authenticity
538How true and legitimate the data is
539Correctness
540
541Data Management Practices
542Data Mining
543 Data mining is the process by which as much useful information is gleaned from a dataset as possible in order to draw deeper conclusions from the data. However data must be obtained from a variety of sources, not all of which can be reliable and as such the larger the data set the more unreliable the conclusion.
544Effect on Stakeholders of Information Systems
545Advantages
546
547Disadvantages
548
549Data Integrity Loss
550How
551 Data integrity can be compromised by a number of different threats: malware(such as trojans), accidents(such as forgetting to backup) and event-based threats outside of operator control(such as a power failure). Additionally, poor system data management can lead to inefficient systems that regularly lose data and can be a result of poor organisation, a lack of standards or conflicts between systems.
552Impact
553 The loss or other compromise of a system’s data can impair the standard functions of the system and ultimately cost the organisation operating the system both time and money.
554Networks
555Wired
556A network in which all devices are connected by a networking cable such as CAT6 or RJ-45. Usually used in an office to connect all towers and servers
557Wireless
558A network where devices are connected through Wi-Fi or Bluetooth to each other. A server is usually connected to a WI-Fi Router which then connects to the devices. Commonly used for Mobile Devices. Many Companies make use of both Wired and Wireless Networks.
559Intranet
560An form of Internal Internet commonly protected by a firewall for the outside internet. Used in a School, Office.
561Internet
562
563Virtual Private Networks (VPN)
564 A private network setup across public network infrastructure which uses encryption to secure data that is sent across the network.
565Threats
566Accidental
567Accidental threats are threats performed without malicious intent. It can be caused by human error or by an employee being tricked and manipulated.
568Deliberate
569Deliberate threats are threats performed with malicious intent. They can include hacking, an individual cracker or a criminal organisation.
570Events-based
571Are non malicious threats are caused by events occurring that are outside the control of the users such as natural disasters, computer failures and software failures.
572Physical & Software Control of Data
573Security of data
574
575Communication of data
576
577Sharing data between Information Systems
578Role of:
579Hardware
580
581Software
582
583
584
585
586
587Technical Protocols
588TCP/IP
589Transmission Control Protocol/Internet Protocol is the basic communication protocol suite of the internet(though it can also be used by private networks).
590The transmission control protocol manages the assembly of data into packets that can be sent as well as the disassembly of received packets back into data.
591The Internet Protocol ensures that sent data goes to the right destination by directing towards a location based on its specific IP address.
592Tracing User Activity
593By tracking user activity and monitoring behaviour, organizations are able to optimize applications for their user base and thereby improve user satisfaction. Additionally, monitoring user activity can protect solutions from the actions of potentially hostile users.
594Tools
595UAM-User activity monitoring software which can use visual forensics, user activity alerting and user behaviour analytics to log and monitor user activities. UAM is primarily utilised for protection.
596Keyloggers can monitor user keyboard inputs.
597Techniques
598In-building surveys and prompts into the solution can be an easy way for solutions to be updated on user thoughts and actions without violating user privacy.
599Problem-solving Methodology
600Analysis - Analysing the problem.
601Solution Requirements
602What output is the solution to provide? What data is needed to produce the output? What Functional requirements are needed for the solution. What is the Solution required to do, and what non-functional requirements should it have.
603Solution Constraints
604What conditions need to be considered when designing the solution? Eg. Economic, technical, social, legal, usability.
605Scope of Solution
606The scope states the boundaries or parameters of the solution. It identifies the area of interest or what aspects of the problem will and will not be addressed by the solution.
607
608Design - How the Program will operate and achieve solutions required
609Solution Design
610PLanning how the solution will function and its appearance. The Solution Design typically involves identifying what specific data is required and how the data will be named, structured, validated and manipulated.
611Evaluation Criteria
612What measures will be used to judge whether or not the solution meets the requirements? These criteria should arise from the solution requirements identified in the analysis stage.
613Development
614Manipulation (Coding)
615Electronically “Building’ or creating the solution to the design that was created. However it may warrant modification to the original design in order to create a working system.
616Validation
617Checking the reasonableness of the data being input. Can be both manual and electronic. Proofreading is a manual technique when a human scans the data for errors. Electronic validation is when the validation is built into the system.
618Testing
619Testing whether the the solution does what in was intended to do:
620Establishing what tests to use
621Determining what data will be used
622Determining expected results
623Conducting the test
624Recording actual results and comparing to the expected results
625Correcting any identified errors.
626Documentation
627Writing any internal and user documentation, including those within the UI (User Interface), to support the functioning and use of the solution
628EVALUATION
629Strategy
630The creation and implementation of strategies designed to determine to what extent the software solution met its requirements. This includes the identification of the data that needs to be collected based on criteria from the design phase, the creation of a timeline specifying the data collection period and the actual use of various methods and techniques for collecting data(interviews, surveys, etc.).
631Report
632The creation of a report that details the extent to which the final solution met the criteria of the user. It should be based on criteria outlined in the design stage of the PSM.