Professional Documents
Culture Documents
Genre: Comparative
Audience: Client
Task:
You work as a programmer for Centenary Software. You have been assigned to a project and have to manage
all stages of the software development cycle.
Your client is an undisclosed military branch. They require a new way to transmit secret messages between
bases. You need to design an encryption algorithm. You then need to implement a simple program which can
encode plaintext to ciphertext and can decode ciphertext back to plaintext.
Your client has further requested that the application be made using JavaScript. Your boss has specified that
you must properly comment your code in case someone else needs to modify it.
Your final submission will include word processed documentation, addressing all aspects of the software
development cycle as outlined below. It will also include your application in .html format.
Rationale – 1 paragraph describing why this problem needs to be solved in the first place.
Target Audience – Who will be using the finished application?
List the Functional Requirements of your program – that is, the things the program must be able to
do to be considered a success.
List the Functional Constraints of your program (including types) – that is, the things that impact on
the designer and impact the way in which they achieve the functional requirements.
Describe, in a paragraph, how your encryption algorithm works. Be sure to refer to any existing
encryption algorithms you may have modelled your algorithm on (eq Caesar, Transposition etc.)
Create a flowchart which steps through your encryption algorithm. Be sure it has a start and end and
does not contain any infinite loops.
Create your solution in JavaScript. You may use HTML tags to improve how your application looks, but
it is important to remember you are being marked on functionality, not visuals.
Ensure your code is adequately commented. As a minimum, comments should accompany variable
declarations, functions and complex if statements.
o Briefly describe how an existing encryption algorithm works (such as Caesar, Vigenere,
Enigma or Public Key etc.). Compare and contrast your algorithm to the chosen existing
algorithm. Some points to consider: how easy is it to break? Does a frequency analysis reveal
any of the characters? What would happen if a particular phrase or word is used in every
transmission?
discerning selection and informed selection and selection and validation partial selection and fragmented selection and
validation of data, taking validation of data, taking of data, taking account of validation of data, taking validation of data, taking
Knowledge and
Understanding
understanding
managing and
account of privacy and account of privacy and account of aspects of
Collecting,
security requirements security requirements requirements privacy and security privacy and security
requirements requirements
discerning definition and informed definition and definition and partial definition and fragmented definition and
decomposition of decomposition of decomposition of decomposition of decomposition of
Defining
discerning planning and informed planning and planning and partial planning and fragmented planning and
and managing
Collaborating
Evidence of
management of digital management of digital management of digital management of digital management of digital
projects using an projects using an projects using an projects using an projects
iterative approach iterative approach iterative approach iterative approach
Feedback: