You are on page 1of 18

APPLICATION DEVELOPMENT

SPRING 2020
BS CS Elective

OOP: Class Work 2


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

You might also like