Please enable JavaScript.
Coggle requires JavaScript to display documents.
Systematic Approach to Problem Solving Org by AQA Specification - Coggle…
Systematic Approach to Problem Solving Org by AQA Specification
Analysis
Be aware that before a problem can be solved, it must be defined, the requirements of the system that solves the problem must be established and a data model created.
Investigate the "As Is"
Requirements of system must be established by interaction with the intended users of the system. Interview people who are involved with the current system "Requirements gathering"
Create structured survey questions to assist with analysis
Useful for locating problem areas.
Review current files/system/paperwork to ID data requirements of the new system
Feasibility study
An analysis of whether it is possible or desirable to create a system
Preliminary report for the original requestor of the system
Possible suggested solutions
Doing nothing
Having bespoke software written for you
Writing software yourself
"Off the shelf"
The process of clarifying requirements may involve prototyping/agile approach.
Why you might need a new system
Old systems may be built for smaller data systems
New technology may cause the old systems to become outdated
Current systems may in inflexible and inefficient
New technology may bring new opportunities
Commercial reasons = e.g. creating new demands from customers
New platforms and operating systems
Increased processing power
Increased network power
Students should have experience of using abstraction to model aspects of the external world in a program.
Abstraction
Problem abstraction
Decomposition/Recomposition
example
Decomposition = Breaking a problem down into subproblems
Recomposition = Building solutions from sub-problems
Ant and food example
To complex in way it's presented?
Reducing a problem down to a known solution
Data Abstraction
New, compound data structures can be created from existing ones
Likewise stacks, queues, graphs and other abstract data types
Have no (or little) interest in how these are represented
just interactions
We can program with numbers such as 12.3213
Functional Abstraction
(Mapping of domain to the co-domain)
Always returns the same value based on identical inputs
Takes zero or more inputs
The computational method is hidden
Procedural
abstraction
Actual commands are hidden – only reliant on the inputs
A procedure is a block of instructions for carrying out some task
For example, the procedure to draw a square may take two inputs (say length and line colour)
Information hiding
e.g. OOP
Abstraction by Generalisation
Tree Example Diagram
Potential use - OOP with classes
Representational Abstraction
The more simple the model the less realistic
Removal of unnecessary details
Example - Tube map
see GCSE slides
What it is...
Possibly include information on
Data model
types of data and how they relate to each other (abstract)
Current systems
Something completely new
Augmenting something that currently exists
Data
Volume
Singlesystem
Network
Data flow diagram
Stakeholders
Consider Stakeholder management
Suppliers
Directors who provide financial signoff
Manage
Users
Internal or external to the company
Find out the requirements of the system
What it must do
The first stage of system development when the problem is identified, researched and alternative solutions are proposed.
Includes
Understanding what prompted the need for the new system
Defining the problem
Experience note: Surprising how often the problem isn't defined enough. Can lead to eventual suggestions based on it that don't fix the original issue. Also, in real world scenarios, there is also a chance the problem and priority might change over the course of the project. Having a well defined problem statement can also help with arguing to stakeholders for a solution
example: Problem statement I was give = Data isn't pulling through properly
gathering information
Carrying out a feasibility study.
Logic Problems
example
All men are mortal. Socrates is a man. Therefore Socrates is mortal
All dolphins are mammals, Some mammals are dolphins
Sophie is a mammal, so…Sophie could be a dolphin or may not
Tracy is a dolphin, so…Tracy is definitely a mammal
If it is raining then you will get wet
It is raining
Therefore you will get wet
You are wet
Therefore.....don't know why. Can't assume
You are not wet
Therefore it is not raining
Can Alice Drive - Logic Puzzle
All and Some. = Logic quantifies
A and B universal True and False
IF A --> B
A is true
Then B is also true
Just because B is true doesn't mean A is true
B is not true
Then A is also not true
AND
A and B are true
Therefore A
Therefore B is True
OR
A or B is true
A is not true
Therefore B
B is not true
Therefore A
Notes from me.
In large companies this is often performed by Business Analysts
identifying and prioritizing parts of the SVS, and products and services that require improvement, as well as opportunities for innovation
evaluating and proposing actions that can be taken to create the desired improvement. Actions may include not only IT system changes, but also process changes, alterations to organizational structure, and staff development
documenting the business requirements for the supporting services to enable the desired improvements
recommending solutions following analysis of the gathered requirements and validating these with stakeholders.
analysing business systems, business processes, services, or architectures in the changing internal and external context
Lean
Used for finding gaps and issues in manufacturing.
Now been adapted for use of in technology
ITIL 4 is a methodology that can be used.
Techniques
Department of finance
SWOT Analysis
Design
Be aware that before constructing a solution, the solution should be designed and specified,
Students should have sufficient experience of successfully structuring programs into modular parts with clear documented interfaces to enable them to design appropriate modular structures for solutions.
Modular design allows for more that one person to work on the solution
"Top down" design approach
Def = related top the modular approach, this starts with the main system at the top and breaks it down into smaller and smaller units, like a family tree
Data Flow Diagram
Symbols
def = a visual method of showing how data passes around a system
Example - Meter Readings
for example
planning data structures for the data model,
designing algorithms,
designing an appropriate modular structure for the solution
designing the human user interface
Algorithm
Why?
User Feedback
Efficiency – analyse in terms of space and time
Correctness – use testing and logical reasoning
Constructing
Expressing
English
Pseudocode
Can check using trace tables
Example from Past Paper
purpose was to create new array without duplicates
Use the best format to express the solution to the specific format
Doesn't matter which programming language you're using.
Flowcharts
Iteration
Selection
Assignment
Sequence
What is it?
That always terminates
Need to return a result
That completes a task
Sequence of steps
must be in order
At this stage a description of the algorithms that will be used should be included.
May be appropriate to write the pseudocode to ID the main functions
Data Dictionary
def = a list of all the data being used in the system including name, length, data type and validation
"A database about a database"
Example in
Access
Variable table and Data Structures.
def = a list of all the variable that a program will use, including names and data types
Volumetrics.
Data both now and in the future
consider throughput of the data
how much data the system can handle at once.
May need to restrict the number of users at any 1 time.
Will impact choice of storage media. and backup
The human - computer interface
def = any form of communication between the computer and the user.
examples
GUI is the most common
layout of buttons on a phone
flight controls on an aircraft
Aspects to consider to design an effective HCI
Ease of use
Target audience
technology
Ergonomics
Be aware that design can be an iterative process involving a prototyping/agile approach.
What it is.....
Concurrency and parallelism
e.g. multiple instances accessing the same data
Security needs
distributed/network
Designing UI
Visual to the code
Plan modular structure
Subroutines
Structure/hieracry chart
OOP = clases and interation
Design algorithms
prototype in code good initial test
Data structures from data model
Abstract data type?
Stack of dictionaries.
OOP?
Classes
Design model
Waterfall method
Diagram
Iterative Model/Agile
Diagram
Test Driven design
Diagram
Def = the second stage of system development where the algorithms, data and interface are designed.
Implementation
Be aware that the models and algorithms need to be implemented in the form of data structures and code (instructions) that a computer can understand.
Students should have sufficient practice of writing, debugging and testing programs to enable them to develop the skills to articulate how programs work, arguing for their correctness and efficiency using logical reasoning, test data and user feedback.
Be aware that the final solution may be arrived at using an iterative process employing prototyping/an agile approach with a focus on solving the critical path first.
What it is....
Implementing the design in code
Waterfall methods
Agile
Implementation = 3rd stage of system development where the actual code and data structures are created.
Some sections may be dependent on others
Where application is written using the tools id'd in feasibility study.
Automation
Process of going from models and abstractions to action
Implement algorithms as programs
Implement data models as data structures
Executing code
Prototypee
a stripped down version of a while system built at the design stage to test whether the concept works
Testing
Be aware that the implementation must be tested for the presence of errors, using selected test data covering normal (typical), boundary and erroneous data.
Students should have practical experience of designing and applying test data, normal, boundary and erroneous to the testing of programs so that they are familiar with these test data types and the purpose of testing.
It should also undergo acceptance testing with the intended user(s) of the system to ensure that the intended solution meets its specification.
Students will only need to provide evidence of user feedback not details of the tests carried out by the end user.
What it is....
Example questions
Psuedo code of a subroutine = How many tests are needed?
Test 2
Test 1
Example test data
Erroneous: A/B/Bob/100000000 (large number)
should have error checking to check it doesn't crash
Boundary: 9, 10
Typical: 3, -2
FUNC A(x)/IF x < 10 / RETURN true / ELSE / RETURN false /ENDFUNC
Separate to this is acceptance testing with end users
Known as User Acceptance Testing
Calc testing
Test data can be:
Erroneous
Data clearly incorrect and therefore you would expect the program to catch the error
Boundary
Data that are on the extremes of the acceptable range. Min and max values just inside and outside of range.
Normal/typical
Data that the system is expected to handle as they are within an acceptable range.
Test data required to check for presence of errors
assert tells the code what should be true or false
Development testing
Black box testing
def = using test data to test for an expected outcome
doesn't examine how
def = testing that takes place during the development of the program
White box testing
def = checks all pathways through the code, looking inside it and potentially adding extra commands to check what is happening
testing every aspect of a routine or proceudre.
Unit testing
def = testing carried out on just on just one module or component of the whole system
incorporates both white and black box testing
once each one tested, the units can then be put together to form larger units
integration testing used to check they work together as expected.
System Testing
def = a range of tests carried out on the system once it has been completed.
Alpha testing = carried out on the finished system
Involves creating test data in house.
tests system under normal conditions
This is the stage at which a beta version is sometime released to a small group of users.
test data fed back to developers to enable bugs to be identified and fixed.
def = the forth stage of development that includes a range of test using a variety of data
Evaluation
Know the criteria for evaluating a computer system.
What it is....
Should be evaluated (not necessarily immediately) on:
Functionality
Does it do what its supposed to?
reliability
Proportion of how oftern the system is "Up" or "Down" (Live or not)
Ease of use
is the level of complexity appropriate to the user?
Ease of implementation
How easy is it to transfer the old system to the new system?
Performance
Does the system meet the performance criteria?
Cost effectiveness
Cost to implements. Were they justified?
E.g. Will it cost less to run in the long term
Time it takes to perform a task = does it decrease the time taken. Will it mean the company saves money on wages in the long term?
Was there a security risk to no updating the system? is the cost to implement less than the potential risk?
Was the update requested by an outside body. Regulatory changes from an ombudsman were required to keep banking license.
Ease of maintenance and adaptability
How easy is it to fix faults or add new modules?
Longevity
How future-proof is the system?
The criteria for success should be defined in the analysis
compares actual final product to initial specification
suggestions for any final improvements
will restart the cycle if required
def = the final stage of system development where the system is judged according to certain criteria