Tuesday 28 February 2017

 Process

Receiving a Facebook Message on the computer

 Input
 Visual: Chat pops up  /  Assigned Sound 
 Process Stored
 Visual Process stored as well as audio
 Short Term Memory
 Is aware that when sound plays and chat box opens that a message has been received. 
 Long Term Memory
 When reads who the message is from, may know what the message is about and whether too reply. 
 Output 
 Answers message. 

Thursday 23 February 2017

 Mental Model 

People perceive the world through their senses. This constant stream of information is then processed by the brain to form a 'mental model'.

 Advantages to conforming to standardised Design

Advantages to not conforming to standardised Design

Users will be use to the design and will have a better understanding of how to use the product.  
May make the product unique and stand out from other products. 
Quick and easy to use the application as users will know where tools are and how to use them. 
May be required for more advanced programmes, conforming may not be suitable for a more advanced programme. 
Skills are transferable between applications 

The time to learn how to use the product will be less as the user will not need to learn as many new things. 

Less training/learning need to be used, increasing productivity of business/users


Disadvantages to conforming to standardised Design 

Disadvantages to not conforming to standardised Design

May not be suitable for specific, more advanced applications. May need a new unique design to suit and work with the application/product. 
Users will not know how to use the system and may get confused. 

A manual or instructions may need to be produced as this design would be new to the user. 

Users are more likely to make mistakes. 





If Microsoft asked you to design a new user interface for a new emailing system,how would you make it look, and what would you do to it, would you build aconforming design or non conforming design?

The design for my new mailing system would conform to standardised design. This is because it should be a fairly simple and easy to use application to suit the purpose of emailing, it's not necessary for the design to be unique and stand out. By conforming it will make the system easier for users to use, less time will need to be spent on learning and the user will be able to transfer skills they have learnt by using other applications. 
The system will conform to the standardised design by having the exit button in the top right and it will use clearly labelled buttons that make it obvious when highlighted or selected by the use of colour. The system will also have a clearly labelled menu header, conforming to standardised design. 
























Tuesday 21 February 2017

Multi-user, Multi-tasking Operating System

They are highly sophisticated and are designed to handle many people running their programmes on the computer at the same time.

Examples of this kind of operating system include various versions of UNIX, Linux, IBM's z/OS, OS/390, MVS and VM.

Now the operating system has to manage:
  • Each user logged on to the system, their workspace and so on.
  • Allocate resources to the jobs they want to run.
  • Keep logs of how much processing time and resources they use
  • Work out the most efficient use of computer processing cycles
  • Maintain security
For example, a multi-user, multi-tasking operating system would need to be used for a server farm. 




Batch - 'A 'batch' is the name given to the task of doing the same job over and over again, the only difference being the input data presented for each iteration of the job and perhaps the output file.' 

A Batch process is a process that occurs over and over at a certain point in time. For example defragging in a computer. 

Real time - 'A real-time operating system is found in systems which aim to control a series of actions by using a computer.' 

Friday 10 February 2017

Processing systems

Batch processing
It is often not desirable to deal with a set of data inputs until a certain number have occurred or a set time has passed.  So they are stored until the system comes online to process the data in one 'batch' 

Examples: 
  • A stock control programme may store records of every item sold in a shop that day. Then, at the end of each day it calculates what needs to be ordered. 
  • An online competition stores all the entries until it is time to find the winner.
  • Electricity, gas and telephone bills are usually calculated on a monthly basis.
  • Producing monthly bank statements to send out to customers
  • Payroll runs which may be weekly or monthly

Interactive or Transactional System


Inputs are noted by the computer, but it deals with them after a short delay. It spends that delay handling other inputs and managing data movements.

The delay may be so brief that it looks to you as if it has happened straight away. But in terms of 'computer time', where each computer cycle is far less than a millionth of a second, it will have spent many cycles doing other things.

Examples: 
  • Booking pop concert tickets
  • Ordering books online
  • Handling bank accounts
  • Booking a holiday

Real Time Processing System
When Data is processed as it is given. 

Examples: 
  • Traffic lights
  • Heart rate monitoring
  • Aircraft control
  • Computer games

Thursday 9 February 2017

Specification Documents

Specification Documents for my coursework 

Scope of the System: The system will be used an a daily basis, logging all sales and reorders so it can keep track of stock levels for each product so the user will know when they need to reorder. However, when the data is added to the system it will not yet go as far as automatically sending messages to the suppliers to reorder stock. This would have to be done separate. It would also automatically update stock levels, financial figures such as profit/loss and it would automatically print receipt templates that the user can fill out and give to the customer when a sale is made. However it will not go as far as automatically generating custom receipts for each sale that would not have to be filled out by the user. 

Objectives: 
  • Automatically update stock levels
  • Store all sales and orders made
  • Store customer details
  • Automatic financial figure reports produced 
In order for this to be successful and meet the objectives I would need to make sure each part of the business is made meeting the time constraints to ensure i am able to complete all objectives in time. I will also need to test each aspect of the system in order to be successful, making sure each objective is met. 

Timing: Time constraints should be implemented within the project to ensure that the project is met and completed in time., It will also provide motivation to get sections completed quickly in order to meet the deadline. A Gantt chart should be used to set the time constraints. 

Constraints: There is no budget for this task and the workforce contains one person. Therefore the project cannot cost to make and may take a longer period of time. 

Inputs: 
  • Sales tables/forms to input sales information 
  • Order tables/forms to input order information 
  • customer information tables/forms to input customer information 
Output: 
  • Financial figure reports
  • Receipts 

Design Specification 

Purpose: Designed to track stock levels of each product automatically. 

Screen Layout and Templates: Each screen within the system follows the house style of the business: Norfolk Cricket Bat Co. using the colour scheme of black and white.

Data Structures: The data will be stored in structured tables each on separate worksheets, separating information.  

Inputs: Data will be input using set user forms with drop-down boxes and buttons to easily input information. 

Outputs: Printed receipts, digital financial reports including graphs

Validation: Validation would be implemented within the system to ensure errors do not occur. For example validation checks would occur when entering customer information to check whether phone numbers have the correct number of digits and email addresses have the '@' symbol in. 

Tuesday 7 February 2017

Test Types

Test Types

Normal Data - Data that is within the normal range and will be accepted, for example testing a house number of 24 in a range of numbers. 

Extreme Data - Data that is on the extreme limits of the range but should be accepted e.g. if the validation says that price <=£100 then £100 should be tested as that is right at the outer limit.

Erroneous Data - Data that should fail should be tested. For the test mentioned previously, the test might be: enter £100.01


How could a tester evidence the tests they have done? 
To evidence testing a tester could take screenshots of them inputting the tests into the project and screenshot the results from this, evidencing the tests completed. The tester could also record a video of them going through each test, this will evidence the tests that they have completed and the results of this.

The tester would use a testing table to write in all their comments/results and add their their evidence of testing here also. This testing table would then be handed back to the developers/owner.

Friday 3 February 2017

RAD and Prototyping

RAD and Prototyping 

RAD

- Rapid application development. Rapid application development offers a solution that enables systems to be developed much faster. They do this by using the following approaches:

 - Use workshops and focus groups to gather requirements rather than a formal Requirement Document: The idea is to actively involve users for developing requirements rather than the analyst trying to collate everything to produce a Requirements Document.
 - Use prototyping to refine the system with heavy involvement of the user

 - Allocate strict time limits to develop each part of the system. The intent is to develop a system that is 'good enough' rather than one bloated with bells and whistles

 - Re-use software components already to hand: Use software libraries that have well-developed, stable functions
Use object orientated programming methods to develop software classes, all parts of the system can then use these classes
Use a software application framework
Image result for rapid application development model

Prototyping

A prototype represents some aspect of the full system - for instance a mock-up of the graphical user interface. A prototype allows the end user to see what the end project will look like and how it will work before the developer spends a large amount of time on it, making sure that the project is going to meet the requirements. 
A prototype is not a fully working system but it does provide an opportunity for the user to give feedback and suggestions for improvements. This may happen again and again until the full details are agreed between developer and user. Therefore prototyping is an 'iterative' process.
Any changes required are fed back to the developer and the Requirements Document is also updated every time a change is needed.
It is much cheaper to build a prototype and iron out the problems rather than go straight into the development of the main system and then find out there are problems
Evolutionary Prototyping 
The idea behind this is that an initial prototype is presented to the user. They provide feedback and suggestions for improvements.
These are actioned by the developer who then presents a more refined prototype. The user once more provides feedback. The process is repeated.
So at each stage the prototype 'evolves' towards the final system.
evolutionary
Throwaway Prototyping 
With 'throw-away' prototyping a small part of the system is developed and then given to the end user to try out and evaluate. The user provides feedback which can quickly be incorporated into the development of the main system.
The prototype is then discarded or thrown away, 
The objective of throw-away prototyping is to ensure that the system requirements are validated and that they are clearly understood.
The throw-away prototype is NOT considered part of the final system. It is simply there to aid understanding and reduce the risk of poorly defined requirements. The full system is being developed alongside the prototypes and incorporates the changes needed.

Agile Development 
Image result for agile software development


Using prototyping and RAD over SDLC 

The end user may not fully understand what the project being made is, therefore if a prototype was to be made it would help the end user to understand the project and make sure it will meet the requirements. Therefore prototyping would be beneficial on large projects over the SDLC in order to make sure that the developer does not spend large amounts of time and money on a project that the end user does not want. As well as this a working system is available early on in the process. The user can identify possible improvements which can be made before the system is completed, where as they will not get this opportunity if the developer uses the SDLC. Using prototyping and RAD will make the end user feel more involved in the project meaning they will 'buy' into it. The prototype will allow the end user to get a feel and use the system, reducing the amount of training that they will need if the developer was to use SDLC, It will also be much cheaper 


Discuss the effectiveness of the System Development life cycle when designing mobile phone applications for a one person development company?

The System Development life cycle (SDLC) is a method of ICT development that could be used when designing mobile phone applications by a developer. The systems development life cycle is the process of stages which occur during the development of a new ICT system. The stages include; Definition; Investigation and analysis; Design; Implementation; Testing; Installation; Documentation; Evaluation and Maintenance.

The SDLC could be used by the developer to design mobile phone applications. It will allow the developer to break down the project into set easy to follow stages that the developer can work through. This will help the developer to make sure all of the necessary tasks needed for completing the mobile application will be met. The SDLC's systematic approach allows you to thoroughly plan for contingencies, risks, finances, resources, etc. It is a very phased approach with clear definitions between one phase and the next, allowing you to make a more structured plan with specific deadlines and deliverables. However If only one person is using the SDLC to design mobile applications it will be very time consuming, the developer will have follow all of the steps which can take time meaning the single developer may not be able to meet deadlines. As well as this if there is a problem with the phone application or a new mobile operating system for mobiles came out it would mean the application would need to be changed. To make amendments it would be very difficult, time consuming and expensive to do so if the single developer was using SDLC. Therefore I feel using prototyping may be more effective when designing mobile applications, this is because.  

Thursday 2 February 2017

System Development Life Cycle

System Development Life Cycle

The system development life cycle is the process of stages that occurs during the development of a new system. There are 5 main stages of the system development life cycle which include; Requirements analysis; Design; Implementation; Testing; and evolution. This breaks the project down into tasks which can then be worked upon. 
Within my ICT course work: developing a stock control system, I used the system development life cycle to break down and work through my work. First I completed the requirement analysis stage within my work. In this stage I analysed the requirements of the system I was to create. To do this I interviewed the client seeing exactly what he wanted from the system, giving me a set of requirements that he wanted the system to meet. I was then able to analyse these requirements and from this create a final set of requirements for the system that I was to meet. 
Within the coursework after the completion of the requirement analysis stage I then completed the design stage of the systems development life cycle. In this stage I created a set of designs that I could create an implement in future stages to create the system. Within this stage I also gained client input making sure the designs for each part of the system were suitable and I also had to make sure the designs would meet the requirements of the system set in the previous stage. Within the design stage I also created a testing plan that will be used to test the system, making sure it  meets all requirements in the future testing stage. 
After the completion of all the designs for the system I moved onto the next stage of the systems development life cycle: Implementation. Within this stage I then used the designs to create each part of the system that is specified, making sure they meet the requirements set in previous stages. I developed all aspects of the system within this stage, making sure the system had all adequate inputs and outputs that were required. 
After the development of the system in the implementation stage I moved onto the testing phase, within this phase I tested each aspect of the system. Using the test plan created in the design phase I went through each test for the system making sure the system works and meets all requirements. If the system did not pass the set tests I would make adequate changes to make sure the system is able to pass the test and can meet requirements.


System Development Life Cycle Task 
Developers will use the System Development life cycle to break down projects into set easy to follow stages that the developer can work through. Using this method it means if there are multiple developers they can easily separate the tasks so the project is completed overall and the tasks can be combined at the end. 
Using the system benefits developers as it gives them a simple set of stages that the developers can work through, helping to improve the efficiency of the project and making sure nothing is missed within the project. Using this life cycle also means that documentation or products are made frequently at the end of each stage that can be reviewed by the clients, This means that tweaks can easily be made at the end of each stage ensuring, the project meets the clients needs and requirements. Finally, using this cycle means if there are multiple developers each developer could be given a part of the system to work on and these tasks could be combined at the end of the project, saving time. 
However, if there were multiple developers each completing a different task it means that they would have no work once they have completed there task, unless multiple projects were being run at once. It may also be more time consuming as it means there are a set of stages that the developers should work through which may not be completely necessary, wasting time. Finally; another disadvantage is that is it encourages stiff implementation instead of creativity. There are requirements that must be met and that is all that developers complete.