specifications of the proposed system
developer’s perspective in consideration of:
data types
data structures
algorithms
user’s perspective
interface design
social and ethical issues
relevance to the user’s environment and computer configuration
There are various data types understood by a computer's processing.
An integer is a whole value that has no decimal points attached. Integer actually means to be complete within itself.
A real value can actually have any value, the importance of a real value is that it is considered like a recurring decimal.
A float is similar to a real value but slightly less versatile. A float eventually stops containing data after a certain amount of decimal points. A float can contains what looks to be recurring decimal but when used in calculations it returns values which look like non recurring decimals. Khoa and lachlan's calculator can calculate using recurring decimals as the australian approved do not. This is due to the different data types used in the calculators software.
A boolean is a simple yet capable of almost anything. Booleans simply represent a yes or no value, 1 or a 0, on or off. Booleans can be used to store simple yes or no responses such as a key being pressed down or a player moving or not.
A string can hold values which are apart of the ASCII or UNICODE values. Strings can display words, number and other languages using more symbols than ASCII can provide.
Although binary is not a data type used in 3rd generation coding. Binary is a data type understood by computer as it is really all they understand after the rest of these data types have been compiled and processed. Binary is a base two number set containing either 0 or 1 which represents a transistores power state which are either off or on respectively. Binary as layers of gates creates your simple “if”, “and” and “or” gates which allow scientists to predict the sun's date of death as well as allow the 19 year old Instagram influencer to reach her many fans, such versatility created with this data type.
A qubit is the quantum equivalent to a binary bit. Using laws of quantum mechanics such as the polarization of a photon or the spin state of an electron. Similarly to how a transistor power state represents a 0 or 1, the particular spin of an electron or polarisation of a photon can also represent a 0 or 1 used to process. The benefits of a qubit compared to conventional binary bit is that switching states of a transistor from on to off takes time. As Well as some of the smallest transistors range in size of 12 nm to 20 nm. As transistors grow smaller a process which allows electrons to simply tunnel through a transistors makes conventional transistors unreliable. Having transistors the size of electron reliably process is a huge leap in technology.
Data structures were developed to enable efficient data access and modification.
A linear data structure has data one after the other. An array is an example. Withholding consecutive data in a row, accessible using indexing, Homogeneous is a data type similar to linear, the only difference is all data types are the same. Such as an array of integers, these are also accessed through indexing but the array is required that the one data type is both requested and input.
Non-linear data structures contain no specified order and can web in any direction. These data structure can be accessed randomly, like RAM which is randomly accessed memory.
Dynamic data structures shrink and expand to fit the data within itself. It also adjust location in memory and the order of data making it almost all type of data structure. This is fantastic for larger databases where having an unnecessary amount of data values allocated takes up terabytes. For example having 25 bits of data allocated for names where as someone named khoa with 4 letter leaves 2
The word abstractions mean to have a quality of ideas compared to the quality of working. Rather than writing the same code over and over, functions can be used which perform the same code when called upon. Similarly to functions in math, there is an input, the function processes the input and then provides an output. This basic structure is used to create efficient and resource productive code. Using functions can create modularity to a system. Having functions of walking and functions for damage create systems all within the one program.
Planning in this way can make it easier for development and easier to plan section by section. Additionally having non dependant modules creates versatility. Modularity separates code into sections.
Algorithms will plan for the modules in the system. Before beginning the project, the developer must plan and write algorithms for every component and module in the system. This will include designs, data dictionaries and storyboards.
An algorithm is a sequence of instructions or set rules that are followed to complete a task. Algorithms contain specific symbols to represent what happens with the data. Using these symbols, completing a flow chart can visual display the algorithm order.
The terminator is representative by a square with semi circular left and right sides. It symbolises the beginning and end of an algorithm.
An input output shape shown as a parallelogram. It symbolises an input of data, user controls or other information fed into the process.
Process is simply an action which modifies the data being sent through. If this means move the player or multiply the value by a certain amount. Shown as a rectangle.
A decision or more commonly known as an if statement. Symbolises a test within the data stream which results in another action, such as player input means follow this data flow or follow the other if there is no payer input. Represented by a diamond shape.
Flow lines simply show the flow of data in the flow chart. Represented by arrowed lines, these lines connect all type of processing units within the flow chart.
A subroutine is similar to a function where is has an input and output. Although we may use functions as a void to run blocks of code, like in maths subroutines were created as an input output functionality. Smaller components which do not need such a in depth explanation of simple systems apart of a larger one can be represented as a subroutine. Represented as a three vertical rectangles stacked together.
A delay is self explanatory, it is simply a delay in the code before processing. This pauses all processing. Represented by the same symbol as the terminator only split down the middle.
A display is simply the process of displaying or outputting information to the user. Displaying can be done on multiple devices such as a computer monitor, speakers or through haptic feedback.
Algorithms can be used for calculations, data processing and automated reasoning tasks. They begin at an initial state or input, followed by a series of instructions that describes its flow of data until an output occurs.
Data flow diagrams are depictions of how data flows through a system in relation to inputs, processes and outputs.
A data flow diagram is made to provide an overview of the project solution, before actually creating it.
Data Flow diagrams will allow developers to understand the data flow between modules and better understand the overall system and the relation each module has to each other
This is an example of a data flow diagram for an IPT assessment. As you can see all the shapes are there representing the specific roles.
The design specifications are the "Blue print" for the software project. they are the planning documents which will be the tools for designing and building the products of the project.
The oftware developers / engineers will refer to the specifications constantly to make sure they have a clear understanding of the requirements.
The specifications will include consideration of the two different perspectives or points of view. The users perspective and the developers perspective.
The developer is thinking about..
Data types.
Algorithms to use to process the data.
Variables to hold the data.
Design approaches.
Modelling the system.
Documentation to keep track and manage the project and to maintain it after it is operating.
These specifications will create standard framework under which the term of developers must work. These are specifications that will not directly affect the product from the user’s perspective but will provide a framework in which the team of developers will operate. The modelling methods will be specified. The method and depth of algorithm description to be used, how data structures, data types and variable names are to be allocated and any naming conventions that should be used should all be specified. A system for maintaining an accurate data dictionary needs to be specified. In other words, a framework for the organisation of the development process is set up so that each member of the development team will be creating sections of the solution that look, feel and are documented using a common approach.
Once these specifications have been developed a system model can be created to give an overview of the entire system. These system models will lead to the allocation of specific tasks for completion by team members, whilst at the same time an overall direction of the project can be visualised.
The users thinks about the project in terms of...
The user interface / what is on the screen.
The messages that appear on the screen.
The graphics / pictures, lines, frames, buttons, icons, etc.
The formats of the displayed data. Names of data.
Ease of use / ergonomics.
Specifications developed form the user’s point of view should include any design specifications that influence the experience of the end-‐user. Standards for interface design will be specified to ensure continuity of design across the project’s screens, for example, user of menus, colour and placement. The wording of messages, design of icons and the format of any data presented to the user need to be determined and a set of specifications created, for example font user for prompts and user input, the size of icons and the tone of language used.
Ergonomic issues should also be considered and taken into account as part of the design specifications. Consider: which functions will be accessed most? Which functions require keyboard shortcuts? What is the order in which data will be entered? Are the screens aesthetically pleasing? Such questions need to be examined and a standard set of design specifications generated.
System models can assist in determining user-based design specifications screen designs and concept prototypes. It is vital that software developers acknowledge the contribution users make to the development of design specifications. Communications and in particular feedback form users are especially important at this early stage.