1. Technical Field
The disclosure generally relates to a software application feedback collection system and a software application feedback collection method.
2. Description of Related Art
Software application feedback is often extremely valuable for developers to provide continuous improvement in software development. However it is not sufficiently efficient enough to get user feedback in a way that users can post their feedback to software developers initiatively via a call center, an email box, or an online forum. Therefore, there is room for improvement in software application feedback collection.
Many aspects of the embodiments can be better understood with reference to the following drawings. The components in the drawings are not necessarily drawn to scale, the emphasis instead being placed upon clearly illustrating the principles of the embodiments. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The disclosure is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
In general, the word “module”, as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, Java, C, or Assembly. One or more software instructions in the modules may be embedded in firmware, such as EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable media include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives.
In one embodiment, the storage system 110 may be a magnetic or an optical storage system, such as a hard disk drive, an optical drive, or a tape drive. The network adapter 130 may be a network interface card using a specific physical layer and data link layer standard such as Ethernet or Wi-Fi. The network 30 may be a local area network (LAN) or a wide area network (WAN), such as the Internet.
At least one operating system (OS) is installed in the computing device 10, which manages computer hardware resources and provides common services for execution of various software applications. A user can install one or more software applications in the operating system.
The creating module 101 may check whether there is a feedback file in the storage system 110. When there is no feedback file in the storage system 110, the creating module 101 can create a feedback file in the storage system 110. The feedback file may store feedback information of a software application installed in the computing device 10. In one embodiment, the feedback information is stored in the feedback file in an extended markup language (XML) format. The creating module 101 may further associate a unique version number with the created feedback file to identify the feedback file and facilitate feedback management for developers.
The usage recorder 102 may obtain usage information regarding usage of a software application and store the usage information in the feedback file. The usage information may include number of times that a software application has been started, total time that a software application has been run, and/or timestamp that a software application is started for every time.
The exception recorder 103 may acquire exception information regarding an exception of a software application and store the exception information in the feedback file. The exception of the software application may be a failure of the software application to start correctly or a failure of the software application to run with less than expected functionality.
The print recorder 104 may record print information regarding print object, paper size and print timestamp in the feedback file. The print recorder 104 can collect a preference of a user by recording the print information. The preference may reflect which type of print object, what size of paper and what time a user prefers to print.
The sending module 105 may determine whether a predetermined criterion is met. When the predetermined criterion is met, the sending module 105 can send the feedback file to the developer server 20 via the network 30. The predetermined criterion may be stored in the storage system 110. The predetermined criterion may be detection of an event that a timer triggers every a period of time, such as 5 days, or detection that size of the feedback file reaches a threshold, such as 2 MB.
In one embodiment, in order to enhance the security of the feedback file, the sending module 105 may encrypt the feedback file before sending the feedback file to the developer server 20 and delete the feedback file after sending the feedback file to the server. The deletion of the feedback file can also save space of the storage system 110.
Most of operating systems have a set of built-in system tools or services that may be utilized to collect software application feedback. Take the ANDROID™ for example. If the operating system of the computing device is ANDROID™, the usage recorder 102 may invoke a package manger, which is one of standard components provided by ANDROID™, to obtain usage information of a software application. The package manger is designed to record information about the process of installing, running, upgrading, configuring, and removing software applications for ANDROID™. When an event or exception of a software application occurs, a log stream will be generated by ANDROID™. The exception recorder 103 may acquire exception information by monitoring the log stream. ANDROID™ provides a standard component called paper out manager service that manages print jobs. The print recorder 104 may obtain print information by monitoring the paper out manger service.
In step S301, the creating module 101 checks whether there is a feedback file in the storage system 110. If there is no feedback file in the storage system 110, the flow goes to step S302, otherwise the flow goes to step S303.
In step S302, the creating module 101 creates a feedback file in the storage system 110.
In step S303, the usage recorder 102 obtains usage information regarding usage of a software application and stores the usage information in the feedback file.
In step S304, the exception recorder 103 acquires exception information regarding an exception of a software application and stores the exception information in the feedback file.
In step S305, the print recorder 104 records print information regarding print object, paper size and print timestamp in the feedback file.
In step S306, the sending module 105 determines whether a predetermined criterion is met. If the predetermined criterion is met, the flow goes to step S307, otherwise the flow ends.
In step S307, the sending module 105 sends the feedback file to the developer server 20 via the network 30. In order to enhance the security of the feedback file, the sending module 105 encrypts the feedback file before sending the feedback file to the developer server 20. In one embodiment, the sending module 105 deletes the feedback file after the feedback file is sent to the developer server 20.
It is to be understood, however, that even though numerous characteristics and advantages have been set forth in the foregoing description of embodiments, together with details of the structures and functions of the embodiments, the disclosure is illustrative only and changes may be made in detail, especially in matters of shape, size, and arrangement of parts within the principles of the disclosure to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.
Depending on the embodiment, certain steps or methods described may be removed, others may be added, and the sequence of steps may be altered. It is also to be understood that the description and the claims drawn for or in relation to a method may include some indication in reference to certain steps. However, any indication used is only to be viewed for identification purposes and not as a suggestion as to an order for the steps.
Number | Date | Country | Kind |
---|---|---|---|
99141307 | Nov 2010 | TW | national |