Prototypes: Difference between revisions

From Computer Science Wiki
No edit summary
No edit summary
 
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[file:system_fund.png|right|frame|System Fundamentals<ref>http://www.flaticon.com/</ref>]]
[[file:system_fund.png|right|frame|System Fundamentals<ref>http://www.flaticon.com/</ref>]]


A prototype is an early sample, model, or release of a product built to test a concept or process or to act as a thing to be replicated or learned from. It is a term used in a variety of contexts, including semantics, design, electronics, and software programming. A prototype is generally used to evaluate a new design to enhance precision by system analysts and users. Prototyping serves to provide specifications for a real, working system rather than a theoretical one.<ref>https://en.wikipedia.org/wiki/Prototype</ref>


=== The purpose of prototypes ===
Prototypes are simplified versions of a system that are used to test and refine the requirements. They can be used to demonstrate the proposed system to the client in order to get feedback on the design and functionality of the system.
 
Prototypes are abstract representations of a system, often focusing on only one or two key aspects of the system.
They are important in testing as each component of the system can be tested before implementing, and to illustrate the working of the future system to the client<ref>http://ib.compscihub.net/wp-content/uploads/2015/04/1.2.8.pdf</ref>.
* Prototypes can be developed inexpensively and quickly.
* System designers and developers can very quickly adjust design based on client feedback. It is more difficult (and expensive) to change a system once it is done.
 
[File:Prototypes2.jpg]


There are several benefits to using prototypes to demonstrate the proposed system to the client:


# Prototypes allow the client to see and interact with a rough version of the system, which can help them better understand how the system will work.
# Prototypes allow the client to provide feedback on the design and functionality of the system, which can help the development team make necessary changes before the final version of the system is built.
# Prototypes can help the client visualize the final product and understand how it will fit into their business or organization.
# Prototypes can help reduce risk by allowing the client to identify and address any issues or concerns before the final version of the system is built.


== Real-world practical advice ==
== Real-world practical advice ==


This step is '''especially important''' when you are working with many different interdependent systems.
There is almost always a gap between what the client wants and what the designer THINKS the client wants. Prototypes help narrow the gap efficiently.
 
== Do you understand this material? ==
 
Please consider the following examples, and answer the questions:
 
=== Example 1 ===
 
This is a simple example:
 
A small business wants to plan a new system. The new system is a computer kiosk inside the store which allows customers to sign up for a email newsletter. If a customer signs up for a newsletter inside the store, they will get a 10% discount on their first purchase at the store. The owner hopes this 10% discount will be an incentive for customers to sign up for the email newsletter.  The business will then regularly  email the customers special offers and savings. The business owner expects to benefit from this system by having increased sales. The customers expect to benefit from this system by having access to special offers, to save money, and to see what is new and trendy at their store.
 
Question 1: Construct a suitable representations to illustrate system requirements
 
== Do you have an advanced understanding of this material? ==
 
=== Example 2 ===
 
This is a complex example:
 
A school of 900 students wants to plan a new system. The school hopes the new system is a secure web-based application which manages attendance data. The school administrators want to carefully track attendance for the students so it can identify when students have been absent for a customizable threshold. For example, the school might set a threshold of 5 absences within 30 days, which then automatically notifies the student, parent, and teacher there is a problem with attendance. The threshold might be 3 times within 10 days, or something like that. The system should keep track of attendance and tardies. The system should have customizable attendance codes. For example, "abscence for school trip", "excused abscence", "medical abscence" are all allowed abscence codes.  
 
School administrators expect to benefit by having data about attendance so they can support students and parents to be in school. School administrators also expect to benefit by giving parents and students information about attendance (so parents can support their children to be in school). Finally, school adinistrators expect to benefit by using attendance data to apply for government funding (as they can prove how many students were in class on a specific day).
 
Parents expect to benefit by knowing when their children are in school or miss school. This way parents can support their children to be in school. Being in school is a '''shared value''' that the school hopes the parents share.
 
Students expect to benefit by understanding how many days of school of they have missed. The school expects students to have a strong "ownership of learning" and manage their attendance.  
 
Question 1: Construct a suitable representations to illustrate system requirements


== Standards ==
== Standards ==
These standards are used from the IB Computer Science Subject Guide<ref>IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.</ref>


* Describe the purpose of prototypes to demonstrate the proposed system to the client.
* Describe the purpose of prototypes to demonstrate the proposed system to the client.


== References ==
== References ==

Latest revision as of 09:24, 9 January 2023

System Fundamentals[1]


Prototypes are simplified versions of a system that are used to test and refine the requirements. They can be used to demonstrate the proposed system to the client in order to get feedback on the design and functionality of the system.

There are several benefits to using prototypes to demonstrate the proposed system to the client:

  1. Prototypes allow the client to see and interact with a rough version of the system, which can help them better understand how the system will work.
  2. Prototypes allow the client to provide feedback on the design and functionality of the system, which can help the development team make necessary changes before the final version of the system is built.
  3. Prototypes can help the client visualize the final product and understand how it will fit into their business or organization.
  4. Prototypes can help reduce risk by allowing the client to identify and address any issues or concerns before the final version of the system is built.

Real-world practical advice[edit]

There is almost always a gap between what the client wants and what the designer THINKS the client wants. Prototypes help narrow the gap efficiently.

Standards[edit]

These standards are used from the IB Computer Science Subject Guide[2]

  • Describe the purpose of prototypes to demonstrate the proposed system to the client.

References[edit]

  1. http://www.flaticon.com/
  2. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.