Design a simple class using uml notation

Assignment Help Python Programming
Reference no: EM132735749

BN108 Programming for Networking - Melbourne Institute of Technology

End to End encryption - What app messages

Learning Outcome 1: Describe the fundamental principles of object-oriented programming;
Learning Outcome 2: Interpret a user's needs while dealing with simple program specifications;
Learning Outcome 3: Design a simple class using UML notation;
Learning Outcome 4: Create a simple application based on UML design and the incremental development process of coding, debugging, and testing;
Learning Outcome 5: Apply basic control structures - sequence, repetition, and selection - to program development;
Learning Outcome 6: Produce simple interactive applications.

Assignment Specification

The development of this application helps the students to understand the value of encryption and decryption in the technical elements. Also, it gives better understanding of how web application uses encryption and their need to implement it. The assignment enables the student not only to learn the concept and importance of End to End encryption but also to implement it for real-time communications. It enables the students to apply principles of abstraction and problem solving in an object-oriented programming language. Further, it empowers the students to apply knowledge of programming constructs in developing a complete application.

Assignment description:

End-to-end encryption is a system of communication where the only people who can read the messages are the people communicating. No eavesdropper can access the cryptographic keys needed to decrypt the conversation-not even a company that runs the messaging service.

End-to-end encryption transforms messages into unintelligible chunks of data as soon as a user presses send. From there, the message isn't reconstituted into something understandable until it reaches the receiver's device. For example, the chats using WhatsApp communications are not stored in plaintext on WhatsApp's servers. Nor is the company able to decrypt users' messages to access them since it does not hold the encryption keys. So, WhatsApp will be unable to be compelled to hand over messaging data - even if served with a warrant by authorities demanding access. Thus, providing safe communications.

In this assignment the students shall code programs for encryption and decryption based on incremental development processes of designing, coding, testing and debugging. This assignment involves the following tasks:

1) To Design and develop an UML representation or a detailed flow chart to encrypt and decrypt the messages that are being communicated.
a) The message shall constitute all the printable characters on the keyboard.
b) Any encryption algorithm such as substitution, reverse cipher etc. may be used by the students.
2) To convert the flowchart/ UML to a python program and test for various cases.
3) A GUI (optional) may be designed to feed in and display the encrypted and decrypted messages.
4) The program has to display the encrypted messages along with the time to encrypt and decrypt the messages.
5) The program should show the successful encryption and decryption for a minimum of ten
(10) messages being communicated.

The assignment report has to include the following sections:
• User Requirements:
o Include all the user (assignment) requirements here.
o For example: the input message, key to encrypt, encryption method, time required for encryption and decryption, encrypted message to be displayed etc.

• Analysis
Analysis often requires the programmer to learn some things about the problem domain and that information the user will have to provide. Also, it should specify what the program is going to do. In this case the problem domain would be the logic used to encrypt and decrypt as per the algorithm. The user shall provide the messages to be communicated.

• Design:
The design phase has to describe how the program is going to do the desired task. This usually involves writing an algorithm or a flow chart in fact, algorithms are more often written in a somewhat stylized version of English called pseudocode.
Although there are no precise rules governing the syntax of pseudocode, in your pseudocode you should strive to describe the essential elements of the program in a clear and concise manner. Note that this pseudocode closely resembles Python code, so the transition to the coding step should be straightforward.

• Implementation Phase:
In this phase the complete code in python without any syntax and semantic errors must be completed. The complete code with proper indentation has to be pasted here along with sample inputs and outputs.

• Testing: Only thorough testing can build confidence that a program is working correctly. Testing is a deliberate process that requires some planning and discipline on the programmer's part. It would be much easier to turn the program in after the first successful run to meet a deadline or to move on to the next assignment. But your grade, your job, or people's lives might be affected by the slipshod testing of software.

Once all the errors are debugged, set of all possible inputs are to be provided. Even though the range of the input numbers on a computer is finite, testing all of the possible combinations of inputs would be impractical. So, the challenge is to find a smaller set of validity checks of encryption and decryption.

In summary:
The program has to perform the following:
• Read the text to be communicated along with date of birth as a key to encrypt and decrypt the messages.
• Display both the encrypted and decrypted text messages.

Submission Guidelines:
Your assignment should be completed according to the General Guidelines for Presentation of academic work. Your submission should contain the following:
The assignment Word file that will be submitted shall include:
a) Link to a video to be included in the word document along with following details:
i) Video to include explanation to the logic used to encrypt and decrypt and key generation along with the demonstration of the program and various test cases of the program
b) UML/flow chart
c) Complete program in Python without syntax errors (cut and paste the complete code).
d) Must include appropriate and sufficient comments in the source code.
e) Screen shots of initial compilation results with syntax errors.
f) Troubleshooting the syntax errors
g) Sufficient screen shots showing all possible outputs obtained. The file name must have your student ID as part of its name.

1) Documentation should follow the standard submission guidelines as below:
I. Front page - indicating your name and student ID, teaching staff (Lecturer's and tutor's name), a statement of what has been completed and acknowledgement of the names of all assisted you.
II. List of references used (IEEE style) - Reference sources must be cited in the text of the report, and listed appropriately at the end in a reference list. Only IEEE referencing style is acceptable for this assignment.
2) The assignment must be submitted using Moodle. The page numbers of the assignment must be clear on each page. The report document must be checked for similarity through Moodle/Turnitin while submitting it. Please refer to the study skills unit staff (CoL)if you need further assistance.
3) A video with explanation to the logic used to encrypt and decrypt and key generation along with the demonstration of the program and various test cases of the program.

Attachment:- Programming for Networking.rar

Reference no: EM132735749

Questions Cloud

What is the correct amount of accounts payable : What is the correct amount of accounts payable? Work-in-process inventory costing $20,000 was sent to an outside processor for plating on December 30,2016.
The metamorphosis by franz kafka : what character do you sympathize and/or identify most from ? Why? Does your response conform to or contradict the text's overall argument
Efficiency of the production operation : Research the process of producing an expensive product (assume that it is something that must cost at least $1,000).
Define period cost and enlist ten examples with explanation : Define period cost and enlist 10 examples with explanation. Define cost Accounting and enlist 10 example of product cost with explanation
Design a simple class using uml notation : Describe the fundamental principles of object-oriented programming and Create a simple application based on UML design and the incremental development process
Estimate of the nominal interest rate on new bonds issued : The bonds sell at a price of $1,353.54, and the yield curve is flat. What is the best estimate of the nominal interest rate on new bonds issued in 5 years
What is the mad of the forecast : Consider the actual and forecast values contained in the table.
What is evergreen markup percentage : Statement the cost of goods sold per unit is $24.42. What is Evergreen's markup percentage based on cost of goods and based on variable cost per unit?
What is the bond capital gain or loss yield : A 10-year, 12% semiannual coupon bond with a par value of $1,000 may be called in 4 years at a call price of $1,060. What is the bond capital gain or loss yield

Reviews

Write a Review

Python Programming Questions & Answers

  Write a python program to implement the diff command

Without using the system() function to call any bash commands, write a python program that will implement a simple version of the diff command.

  Write a program for checking a circle

Write a program for checking a circle program must either print "is a circle: YES" or "is a circle: NO", appropriately.

  Prepare a python program

Prepare a Python program which evaluates how many stuck numbers there are in a range of integers. The range will be input as two command-line arguments.

  Python atm program to enter account number

Write a simple Python ATM program. Ask user to enter their account number, and print their initail balance. (Just make one up). Ask them if they wish to make deposit or withdrawal.

  Python function to calculate two roots

Write a Python function main() to calculate two roots. You must input a,b and c from keyboard, and then print two roots. Suppose the discriminant D= b2-4ac is positive.

  Design program that asks user to enter amount in python

IN Python Design a program that asks the user to enter the amount that he or she has budget in a month. A loop should then prompt the user to enter his or her expenses for the month.

  Write python program which imports three dictionaries

Write a Python program called hours.py which imports three dictionaries, and uses the data in them to calculate how many hours each person has spent in the lab.

  Write python program to create factors of numbers

Write down a python program which takes two numbers and creates the factors of both numbers and displays the greatest common factor.

  Email spam filter

Analyze the emails and predict whether the mail is a spam or not a spam - Create a training file and copy the text of several mails and spams in to it And create a test set identical to the training set but with different examples.

  Improve the readability and structural design of the code

Improve the readability and structural design of the code by improving the function names, variables, and loops, as well as whitespace. Move functions close to related functions or blocks of code related to your organised code.

  Create a simple and responsive gui

Please use primarily PHP or Python to solve the exercise and create a simple and responsive GUI, using HTML, CSS and JavaScript.Do not use a database.

  The program is to print the time

The program is to print the time in seconds that the iterative version takes, the time in seconds that the recursive version takes, and the difference between the times.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd