This document discusses an application development class and homework assignment. It provides instructions for students to complete Class Work #2, which involves understanding software requirements, writing use cases, and designing UML class diagrams. The class work involves a text editor application and analyzing file management, text editing, syntax checking, and encryption/decryption features. Students are instructed to share their work through discussion in the online chat interface.
This document discusses an application development class and homework assignment. It provides instructions for students to complete Class Work #2, which involves understanding software requirements, writing use cases, and designing UML class diagrams. The class work involves a text editor application and analyzing file management, text editing, syntax checking, and encryption/decryption features. Students are instructed to share their work through discussion in the online chat interface.
This document discusses an application development class and homework assignment. It provides instructions for students to complete Class Work #2, which involves understanding software requirements, writing use cases, and designing UML class diagrams. The class work involves a text editor application and analyzing file management, text editing, syntax checking, and encryption/decryption features. Students are instructed to share their work through discussion in the online chat interface.
Dr. Ahmad Kazmi Department of Computer Science Faculty of Information Technology March 19, 2020 Application Development: Lecture 4 • Discussion on Class Work # 2 • Each Step Should be Understood by Each Student • Students Should do Their Part and Share using Attachments Via Chat • Do work on paper, Use Phone (or Web Cam) to take a Snapshot • Share Snapshot using Teams’ chat • Or email me • Students can Discuss Class Work Among Themselves, using Chat • Every Student Should Submit Their Work During Class • Complete Remaining Class Work and Submit before Next Class on The Portal • Use Submission on Portal • In case of any Issues email me your work • Class Work # 1 Code is Due • Class 3/19/2020 Work # 2 Code will be Due Before UCP Spring Next 2020 Application Class 11 am Tue March 24 Development 2 Class Work # 2: Uploaded • Download and Open Class Work 2 • Open your Solution for Class Work # 2 Share your List of Features, through the a. Understand Software Requirements chat interface i. Write All Requirements in terms of itemized Features List ii. Write Use Cases for the features Requirements: 3. Syntax Checking (As Is from the given description) 1. User can check syntax of any saved Java file by providing an absolute path. 1. File Management provides the following 2. To correct mistakes the user should open functionality file and edit 1. Creation of new text files with .java extension 4. Encryption/Decryption 2. Saving of changed files 3. User can encrypt a given saved file by 3. Deletion of files providing an absolute path. The original 2. Text Editing file is deleted and the encrypted file is 1. User types Java text on the command line and that saved as .enc text is saved in buffer whenever he hit the <enter> key 4. User can decrypted an encrypted file by 2. User can enter some key characters e.g. %%## to providing an absolute path. The encrypted indicate that he is done editing then the file is saved file is deleted and decrypted file is saved 3/19/2020 UCP Spring 2020 Application Development 3 as .java Class Work # 2 • Open your Solution for Class Work # 2 a. Understand Software Requirements i. Write All Requirements in terms of itemized Features List ii. Write Use Cases for the features Further Requirements: 5. Menu to select functionality of the application 1. 4 Options for the 4 Main Features e.g. File Management 2. Sub Menu for Features under the main options e.g. under main option File Management sub option of Creation of a new file
3/19/2020 UCP Spring 2020 Application Development 4
Class Work # 2 Share your Use Cases, a. Understand Software Requirements through the chat option i. Write All Requirements in terms of itemized Features List ii. Write Use Cases for the features • Use Cases capture the Use Scenarios of the Application • Should not consider trivial (few line) use cases • Consider the following main Use Scenarios: 1. File Management: 3. Text Editing : 1. File Creation with .java Extension 1. Text Entry • Normal Steps: Text Entry, Saving Text in a File • Normal Steps: Typing Text and Saving in a with .java extension Buffer, Check for “Stop Entry Condition” • Alternate Steps: File exists • Alternate Steps: Buffer is Full 2. Opening an Existing File 4. Syntax Checking • Normal Steps: Opening a file, saving the file • Normal Steps: Reading Text from a file, • Alternate Steps: File does not Exists Checking Text Syntax, Displaying Errors on 3. Deleting a File Screen • Normal Steps: Deleting a file • Alternate Steps: File does not Exists • Alternate Steps: File does not Exists 3/19/2020 UCP Spring 2020 Application Development 5 Class Work # 2 a. Understand Software Requirements i. Write All Requirements in terms of itemized Features List ii. Write Use Cases for the features • Use Cases capture the Use Scenarios of the Application • Should not consider trivial (few line) use cases • Consider the following main Use Scenarios: 5. Encryption/Decryption: 1. Java File Encryption • Normal Steps: Reading Text from a Java File, Encrypting Text, Saving Text in a File with .enc extension, deleting existing Java file • Alternate Steps: File does not exist 2. Java File Encryption • Normal Steps: Reading Text from a .enc File, Decrypting Text, Saving Text in a File with .java extension, deleting existing .enc file • Alternate Steps: File does not exist
3/19/2020 UCP Spring 2020 Application Development 6
Class Work # 2 Share your List of b. Complete UML Class Design: Classes • Use at Least 4 Classes • At least one inheritance relationship • At least one relationship from Aggregation, Composition or Association • Consider all Nouns for Classes with the following Restrictions • Must be proper noun and a verb derivative e.g. registration or login is wrong • Consider the main Entities involved Issue: These • File (class 1) Names are What is Syntax Checker? A Tool • Text (class 2) Derivatives of Same with Encrypter/Decrypter • Syntax Checker (class 3) Checker does checking and Verb • Encrypter (class 4) Encrypter/Decrypter change Text What are the Alternatives? • Decypter (class 5) Please Send your Check Tool (class 3) suggestions Process Tools (class 4) So Checker is a Check Tool through chat And Encrypter/Decrypter are Process Tools
3/19/2020 UCP Spring 2020 Application Development 7
Class Work # 2 b. Complete UML Class Design: • Use at Least 4 Classes • At least one inheritance relationship • At least one relationship from Aggregation, Composition or Association • For Inheritance Consider the 4 Classes • File (class 1) Share Inheritance Suggestion via Chat • Text (class 2) • Check Tool (class 3) • Process Tool(class 4) Tool is a Generic Class and Parent of Check Tool and Process Tool
3/19/2020 UCP Spring 2020 Application Development 8
Class Work # 2 b. Complete UML Class Design: • Use at Least 4 Classes • At least one inheritance relationship • At least one relationship from Aggregation, Composition or Association • For Aggregation, Composition Consider the 5 Classes • File Share Aggregation, • Text Composition Suggestion • Tool (Parent Class) via Chat • Check Tool (Child class ) • Process Tool(Child class ) Tool can be contained in File Or In Text Class? What is most appropriate? Text (Why?)
3/19/2020 UCP Spring 2020 Application Development 9
Class Work # 2: UML Class Diagram: Design A
3/19/2020 UCP Spring 2020 Application Development 10
Class Work # 2: UML Class Diagram: Design B
3/19/2020 UCP Spring 2020 Application Development 11
Class Work # 2: UML Class Diagram: Design C
3/19/2020 UCP Spring 2020 Application Development 12
Class Work # 2: UML Class Diagram: Design D
3/19/2020 UCP Spring 2020 Application Development 13
Class Work # 2: UML Class Design: (Alternate Designs)
Share your comments
on thisWhich Design Solution is the via Chat Best and Why?
3/19/2020 UCP Spring 2020 Application Development 14
Class Work # 2 c. Write Code for the classes in the UML and for Unit Tests for Each function • Test for File Management Upload Your Code on • Test for Syntax Checking the Portal under Submission • Test for Encryption/Decryption d. Test: Write Test Cases and then run these test cases to verify working of your application • One Test Case per Use Case e. Verify: Fill the following table (Assuming that all features, use and test cases areFeature numbered) Number Use Case # Test Case # Class 1.1. 1.1. 1.1. File, Text
3/19/2020 UCP Spring 2020 Application Development 15
Class Work # 2: Points to Ponder • Understanding Requirements • List all Features from the given description • File Management • Syntax Checking • Encryption/Decryption • Menu • Identify Main Use Scenarios • For each feature above • Write Use Cases for the Main Use Scenarios
3/19/2020 UCP Spring 2020 Application Development 16
Class Work # 2: Points to Ponder • Designing Class Diagram • Composition or Aggregation (for the time being consider these same) • Identifying Classes: • Consider if any class contains other classes • Consider Proper Nouns that may be Classes • File contain Text • And What are the Actual Entities • Text Contain Tool • File Management File • if a class has two many attributes and • Syntax Checking etc. done on Text functions, Consider moving some attributes • What is being done Tool (and functions) to a new class • This new class will be composed in the • Relationships between classes previous class • For Inheritance: • Tool • Consider Classes that are of the same type or • Association kind • When no the relationship and one class • Consider Creating a new Class containing uses (calls functions of) another class common attributes (and functions) for one of more class • Tool • Check Tool • Process Tool
3/19/2020 UCP Spring 2020 Application Development 17
Conclusion and Expectation • Understand the Process of Application Development • Application on the Given Requirements • Submit Code for Class Work # 2 on the Portal • Before Next Class at 11 am on Tue March 24, 2020 • Any Issues in Submission, Email me • For any questions • Email me at ahmad.kazmi@ucp.edu.pk • Send Message through Microsoft “Teams” • For Live Chat Sessions, I will be Available on “Teams” during the Following Hours: • Mon & Wed 11:20am to 1pm • Tue 3:30pm to 4:30pm • Fri : 4:30pm to 5pm • Also Available by Appointment 3/19/2020 UCP Spring 2020 Application Development 18