Personalized design layout for application software

Techniques regarding personalizing one or more design layouts of a user interface for application software are provided. For example, one or more embodiments described herein can comprise a system, which can comprise a memory that can store computer executable components. The system can also comprise a processor, operably coupled to the memory, and that can execute the computer executable components stored in the memory. The computer executable components can comprise a design component that can generate a design layout of a user interface for application software by adjusting an initial design layout of the user interface based on interactions via the user interface and a design perturbation preference associated with the initial design layout.

BACKGROUND

The subject disclosure relates to personalizing one or more design layouts of a user interface for application software, and more specifically, to altering a design layout based on past interactions with the user interface and one or more design perturbation preferences.

Application software can be accessed and/or utilized via one or more electronic devices via one or more user interfaces. For example, one or more user interfaces can enable an individual to interact with application software via one or more computer devices, such as a smartphone. A design layout can define the positioning of one or more objects of the application software within the user interface. Traditionally, a standard design layout is developed for the user interface irrespective of the user's preferences. Thereby, the resulting design layout can necessitate a large amount of navigation through the user interface by the user in order to transition from one object of interest to another.

Adaptive user interfaces can personalize the design layout by learning a user's behaviors, available electronic devices, and/or abilities. However, conventional adaptive user interfaces can generate a personalized design layout that is substantially different than the standard design layout associated with the application software. Users familiar with the standard design layout can find it difficult to navigate the personalized design layout due to the differences. Thus, conventional adaptive user interfaces can personalize the design layout to the detriment of user navigation of the user interface.

SUMMARY

According to an embodiment, a system is provided. The system can comprise a memory that can store computer executable components. The system can also comprise a processor, operably coupled to the memory, and that can execute the computer executable components stored in the memory. The computer executable components can comprise a design component that can generate a design layout of a user interface for application software by adjusting an initial design layout of the user interface based on interactions via the user interface and a design perturbation preference associated with the initial design layout. An advantage of such a system can be that the generated design layout can strike a balance between personalization and design perturbation in accordance with one or more user preferences.

In some examples, the system can further comprise an optimization component that can determine the design layout by reducing a navigation distance between objects comprised within the initial design layout to achieve an expected navigation distance based on a probability matrix derived from the interactions. An advantage of such a system can be that design layout can be customized to accommodate an individual's pattern of interactions with the user interface.

According to an embodiment, a computer-implemented method is provided. The computer-implemented method can comprise generating, by a system operatively coupled to a processor, a design layout of a user interface for application software by adjusting an initial design layout of the user interface based on interactions via the user interface and a design perturbation preference associated with the initial design layout. An advantage of such a computer-implemented method can be the adaptation of a user interface to meet a user's pattern of operation while also meeting the user's preference regarding the amount of deviation from the initial design layout.

In some examples, the computer-implemented method can comprise analyzing, by the system, the interactions to determine session data that can characterize a sequence in which objects of the initial design layout are interacted. Also, the computer-implemented method can comprise generating, by the system, a transition probability matrix that can characterize a probability of navigating from a first object from the objects to a second object from the objects based on the session data. Further, the interactions can comprise at least one member selected from a group consisting of engagement of the objects via the user interface and prolonged display of the objects via the user interface. An advantage of such a computer-implemented method can be that the design layout can be personalized based on explicit and/or implicit interactions with one or more objects via the user interface.

According to an embodiment, a computer program product for improving operability of application software is provided. The computer program product can comprise a computer readable storage medium having program instructions embodied therewith. The program instructions can be executable by a processor to cause the processor to generate, by the processor, a design layout of a user interface for the application software by adjusting an initial design layout of the user interface based on interactions via the user interface and a design perturbation preference associated with the initial design layout. An advantage of such a computer program product can be a reduction in the expected amount of user interface navigation experienced by a user during operation of the application software.

In some examples, the program instructions can further cause the processor to analyze, by the processor, the interactions to determine session data that can characterize a sequence in which objects of the initial design layout are interacted. The program instructions can also cause the processor to generate, by the processor, a transition probability matrix that can characterize a probability of navigating from a first object from the objects to a second object from the objects based on the session data. Further, the program instructions can cause the processor to reduce, by the processor, a navigation distance between the objects based on the transition probability matrix. The design perturbation preference can define a permissible degree of change from the initial design layout. Also, the altering can comprise the reducing the navigation distance in accordance with the design perturbation preference. An advantage of such a computer program product can be customizing the user interface while accounting for a user's resistance to change from the initial design layout.

DETAILED DESCRIPTION

Given the problems with conventional implementations of design layout customization; the present disclosure can be implemented to produce a solution to one or more of these problems by personalizing the design layout of a user interface for application software while accounting for a user's resistance to design perturbations. Advantageously, one or more embodiments described herein can determine a balance between design layout personalization and design layout consistency. By accounting for a user's resistance to design perturbations, various embodiments described herein can optimize the positioning of one or more objects within the design layout so as to minimize that amount of user interface navigation experienced by the user.

Various embodiments of the present invention can be directed to computer processing systems, computer-implemented methods, apparatus and/or computer program products that facilitate the efficient, effective, and autonomous (e.g., without direct human guidance) generation of one or more design layouts for one or more user interfaces of application software based on interactions with the user interface while accounting for one or more design perturbation preferences. In one or more embodiments, the one or more design layouts can be generated based a user's past interactions with the user interface to engage and/or view one or more objects of the application software. Further, in various embodiments the one or more design perturbation preferences can define a minimalization of design perturbation and/or maintaining an amount of design perturbation below a user defined threshold.

The computer processing systems, computer-implemented methods, apparatus and/or computer program products employ hardware and/or software to solve problems that are highly technical in nature (e.g., optimization of user interface design layout), that are not abstract and cannot be performed as a set of mental acts by a human. An individual, or a plurality of individuals, cannot readily analyze user interactions via a user interface with the same speed and/or efficiency as the embodiments described herein. Additionally, an individual cannot determine the probability of a user transitioning from one object to another with the level of accuracy, precision, and/or efficiency achieved by the computer generated matrices utilized in one or more embodiments described herein. Further, the autonomous nature of one or more embodiments described herein can maintain the confidentiality of a user's operational history of the application software.

FIG. 1illustrates a block diagram of an example, non-limiting system100that can generate one or more design layouts for one or more user interfaces of application software based on interactions with the user interface while accounting for one or more design perturbation preferences in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. Aspects of systems (e.g., system100and the like), apparatuses or processes in various embodiments of the present invention can constitute one or more machine-executable components embodied within one or more machines, e.g., embodied in one or more computer readable mediums (or media) associated with one or more machines. Such components, when executed by the one or more machines, e.g., computers, computing devices, virtual machines, etc. can cause the machines to perform the operations described.

As shown inFIG. 1, the system100can comprise one or more servers102, one or more networks104, and/or one or more electronic devices106. The server102can comprise design component108. The design component108can further comprise communications component110, interactions component112, and/or sessions component114. Also, the server102can comprise or otherwise be associated with at least one memory116. The server102can further comprise a system bus118that can couple to various components such as, but not limited to, the design component108and associated components, memory116and/or a processor120. While a server102is illustrated inFIG. 1, in other embodiments, multiple devices of various types can be associated with or comprise the features shown inFIG. 1. Further, the server102can communicate with one or more cloud computing environments.

The one or more networks104can comprise wired and wireless networks, including, but not limited to, a cellular network, a wide area network (WAN) (e.g., the Internet) or a local area network (LAN). For example, the server102can communicate with the one or more electronic devices106(and vice versa) using virtually any desired wired or wireless technology including for example, but not limited to: cellular, WAN, wireless fidelity (Wi-Fi), Wi-Max, WLAN, Bluetooth technology, a combination thereof, and/or the like. Further, although in the embodiment shown the design component108can be provided on the one or more servers102, it should be appreciated that the architecture of system100is not so limited. For example, the design component108, or one or more components of design component108, can be located at another computer device, such as another server device, a client device, etc.

The one or more electronic devices106can comprise one or more computerized devices, which can include, but are not limited to: personal computers, desktop computers, laptop computers, cellular telephones (e.g., smartphones), computerized tablets (e.g., comprising a processor), smartwatches, keyboards, touch screens, a combination thereof, and/or the like. Additionally, the one or more electronic devices106can comprise one or more displays. For example, the one or more displays can include, but are not limited to: cathode tube display (“CRT”), light-emitting diode display (“LED”), electroluminescent display (“ELD”), plasma display panel (“PDP”), liquid crystal display (“LCD”), organic light-emitting diode display (“OLED”), a combination thereof, and/or the like. A user of the system100can utilize the one or more electronic devices106to interact with one or more user interfaces of an application software.

In various embodiments, the application software can operate on the one or more electronic devices106and can comprise one or more computer programs that can perform coordinated functions, tasks, activities, and/or the like in accordance with a user's instructions. An application software user can command and/or manipulate the application software via one or more user interfaces. In one or more embodiments, the one or more user interfaces can comprise one or more application objects arranged in accordance with a design layout. For example, the design layout can delineate an order and/or location in which the application objects are positioned within the user interface. Additionally, the design layout can delineate how application objects are comprised within a user interface (e.g., the size, appearance, and/or function of the application objects). The application software user can navigate the one or more user interfaces to interact with the one or more application objects and thereby facilitate commanding and/or manipulating the application software. For example, the one or more application objects can include, but are not limited to: text (e.g., headings, titles, descriptions, a combination thereof, and/or like), images (e.g., photos, caricatures, thumbnails, displays of art, portraits, landscapes, a combination thereof, and/or the like), electronic buttons and/or tabs, sections of the one or more design layouts, a composition thereof, a combination thereof, and/or the like.

The one or more electronic devices106can display the one or more user interfaces to a user of the application software. Additionally, the one or more electronic devices106can provide one or more controls that can enable the user to navigate the one or more user interfaces and/or interact with the one or more application objects. Example controls can include, but are not limited to: buttons, tabs, touch screens, keyboards, a computer mouse, a combination thereof, and/or the like. The one or more electronic devices106can be operably coupled to the one or more servers102via a direct electrical connection and/or the one or more networks104. Further, the communications component110can facilitate communications (e.g., the sharing of data) between the design component108(e.g., including the associate components of the design component108) and the or more electronic devices106.

In various embodiments, the interactions component112can collect interactions data from the one or more electronic devices106regarding a user's past or present interactions with the one or more user interfaces of an application software. The interactions data can comprise explicit and/or implicit interactions with the user interface performed by the subject user. Example explicit interactions can include the active engagement (e.g., selection) of one or more application objects. Example implicit interactions can include the prolonged display of one or more application objects (e.g., an implicit interaction can be delineated by the display of one or more application objects by the one or more electronic devices106for a period of time greater than or equal to a define threshold). The interactions data can include data regarding, for example but not limited to, one or more of the following features regarding application objects interacted with via the user interface: identification data regarding the application objects, characteristic data regarding the application objects (e.g., data regarding an application object's type, size, appearance, function, a combination thereof, and/or the like), position data regarding where and/or how the application objects are comprised within the design layout, engagement data regarding the application objects (e.g., which application objects were explicating interacted with, which application objects were implicitly interacted with, a time at which application objects were interacted with, the order in which application objects were interacted with, how application objects were interacted with, a combination thereof, and/or the like), a combination thereof, and/or the like.

In one or more embodiments, the interactions component112can monitor the one or more electronic devices106to track user operations and collect the interactions data. In some embodiments, the one or more electronic devices106can track user operations and/or collect interactions data, wherein the interactions component112can retrieve the interaction data from the one or more electronic devices106. For example, the interactions component112can retrieve interactions data from the one or more electronic devices106periodically in accordance with one or more set time intervals and/or in response to one or more defined events (e.g., in response to a closing of the application software). Further, whileFIG. 1depicts the interactions component112as located on the server102, the architecture of the system100is not so limited. For example, the interactions component112can be located on the one or more electronic devices106and/or can communicate (e.g., share interactions data) with various components of the server102via the one or more networks104and/or communications component110.

In one or more embodiments, the sessions component114can analyze the interactions data to determine session data that can characterize a sequence in which a user of the application software interacted with the application objects. The sessions data can comprise one or more sessions of operability performed by a subject user of the application software. A session can be defined by one or more triggering events and/or termination events. Example triggering events can include, but are not limited to: engaging the application software, initializing the application software, logging into an account associated with the application software, a combination thereof, and/or the like. Example termination events can include, but are not limited to: disengaging the application software, terminating the application software, turning off the application software, logging off an account associated with the application software, a combination thereof, and/or the like. The one or more sessions can comprise a sequence of application objects arranged in an order in which the application objects were interacted with by the subject user during a period of time defined by a triggering event and/or termination event. For example, the session data can comprise one or more sessions associated with a subject user of the application software, wherein each session can comprise a sequence of interactions with one or more application objects performed by the user via the one or more user interfaces.

FIG. 2illustrates a diagram of example, non-limiting session data that can be determined by the sessions component114based on interaction data in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

As shown inFIG. 2, the one or more electronic devices106can display one or more user interfaces. For example, the one or more electronic devices106can be smartphones (e.g., as depicted inFIG. 2). Further,FIG. 2depicts an instance in which the one or more user interfaces extend beyond the initial display of the one or more electronic devices106, and a user of the application software could scroll down the display to view subsequent portions of the user interface (e.g., as indicated by the three bold dots depicted inFIG. 2). In the exemplary user interface depicted inFIG. 2, the design layout comprises a plurality of application objects composed as sequential sections of the user interface. For example,FIG. 2delineates a first section as “S1”, a second section as “S2”, a third section as “S3”, an eighth section as “S8”, a ninth section as “S9”, and/or a tenth section as “S10”. Further, sections four through seven can be located at portions of the user interface positioned between the moments of display depicted inFIG. 2(e.g., in portions of the user interface represented by the three bold dots). Additionally, the exemplary sections can depict titles, images, and/or descriptions.

A user of the application software can interact with the exemplary user interface, for example, by: navigating the design layout, selecting one or more sections, viewing one or more sections, transitioning from one section to another, a combination thereof, and/or the like. The application software user's interactions with the user interface can be captured by interaction data via the one or more interactions components112. Further, the one or more sessions component114can analyze the interactions data to determine session data that can characterize a usage pattern of the subject user.

FIG. 2depicts exemplary session data that can be derived from a user's interactions with the exemplary user interface. The exemplary session data can comprise a plurality of sessions (e.g., delineated by “S1”, “S2”, and “Sm”). Further, each exemplary session can comprise an order in which the sections of the user interface were interacted with by the subject user during the subject session. For instance, during the first session (e.g., represented by “S1”, the application software user interacted with the first section “s1” of the design layout, then the third section “s3” of the design layout, then the second section “s2” of the design layout”, then the tenth section “s10” of the design layout, followed by the third section “s3” again. As shown inFIG. 2, the sessions component114can determine session data that characterizes a usage pattern performed by the application software user with regards to the subject user interface.

FIG. 3illustrates a diagram of the example, non-limiting system100further comprising matrix component302in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. In various embodiments, the matrix component302can determine a probability that the application software user will transition from one application object to another based on the session data.

For example, the matrix component302can estimate a probability that a user of the application software will navigate from a first application object to a second application object based on the usage pattern (e.g., as depicted by the session data) of the user. In one or more embodiments, the matrix component302can generate graph structure data to determine the probability of a user's interaction from the first application object to the second application object. For example, the graph structure data can comprise one or more vertices (e.g., nodes representing the application objects) and/or edges (e.g., representing the transitions between application objects). In one or more embodiments, the matrix component302can generate one or more transition probability matrices to determine the probability of a user's interaction from the first application object to the second application object. Further, the matrix component302can generate the one or more transition probability matrices based on a count of transitions between the application objects and/or a weighted approach that can afford different types of interactions more or less influence on a subject probability. For example, explicit interactions can be given greater mathematical weight than implicit interactions, or vise versa. In various embodiments, the matrix component302can determine the probability of the user transitioning from the first application object to the second application object based on a plurality of sessions comprised within the session data.

Further, in one or more embodiments the matrix component302can generate the one or more transition probability matrices such that only probabilities equal to or larger than a defined threshold can populate the matrices. For example, probability values less than the defined threshold can be indicative of outliers in the session data that can characterize unintentional interactions by the user. By comparing the probability values to the defined threshold during generation of the one or more transition probability matrices, the matrix component302can prevent a user's unintended and/or infrequent interactions with the one or more user interfaces from contributing to the personalization of the one or more design layouts.

FIG. 4illustrates a diagram of an example, non-limiting transition probability matrix that can be generated by the one or more matrix components302in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. The exemplary transition probability matrix depicted inFIG. 4can be generated based on the exemplary session data previously depicted inFIG. 2.

As shown inFIG. 4, each axis of the exemplary transition probability matrix can regard one or more application objects, such as the exemplary sections from the exemplary user interface depicted inFIG. 2. Further, each entry of the exemplary transition probability matrix can depict the probability of the subject user transitioning from a first application object (e.g., delineated by a first axis of the matrix) to a second application object (e.g., delineated by another axis of the matrix).

FIG. 5illustrates a diagram of the example, non-limiting system100further comprising optimization component502in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. In various embodiments, the optimization component502can determine a personalized design layout based on the interactions data and one or more design perturbation preferences.

For example, the optimization component502can determine the personalized design layout based on the one or more probabilities determined by the matrix component302. For instance, the optimization component502can analyze the one or more transition probability matrices to determine a navigation distance expected to be traversed by the subject user while interacting the one or more user interfaces. The navigation distance can be a mathematically valid distance between the application objects. For example, the navigation distance can be a physical distance between a first application object and a second application object on a display of the one or more electronic devices106that presents the initial design layout.

In one or more embodiments, the optimization component502can determine the personalized design layout by adjusting the composition of the initial design layout to reduce the navigation distance between particular application objects, thereby also reducing the expected navigation distance experienced by the user. For example, the optimization component502can reduce the navigation distance between the first and second application objects based on the probability that the subject user will transition between the first and second application objects.

Further, the optimization component502can reduce the navigation distance between application objects while accounting for one or more design perturbation preferences. The one or more design perturbation preferences can regard a degree of change from the initial design layout to generate the personalized design layout. In one or more embodiments, the design perturbation preference can be to minimize the amount of design perturbation between the initial design layout and the personalized design layout. In some embodiments, the design perturbation preference can be defined by the user's preference. For example, in one or more embodiments, the application software user can define a permissible degree of change from the initial design layout that can be implemented by the optimization component502in determining the composition of the personalized design layout.

For example, in one or more embodiments the optimization component502can determine the personalized design layout in accordance with the mathematical relationships depicted in Equation 1 below.

∑i,j⁢ai,jn⁡(n-1)⁢(ri-rj)2
can represent the expected navigation distance between a first application object (e.g., represented by “i”) and a second application object (e.g., represented by “j”), the term

∑i⁢1n⁢(ri-r¯i)2
can represent the design perturbation between the personalized layout design and the initial layout design, and “λ” can be a parameter to adjust the degree of design changes (e.g., the weight of the design perturbation can be defined by “λ”). Further, “n” can represent the number of application objects comprised within the initial design layout, “ai, j” can represent a probability of the user transitioning between the first and second application objects (e.g., as determine by the one or more transition probability matrices), “ri” can represent the positioning of the first application object in the personalized design layout, “rj” can represent the positioning of the second application object in the personalized design layout, and/or “ri” can represent the positioning of the first application object in the initial design layout.

In one or more embodiments, the application software user can define the amount of weight attributed to the design perturbation by setting the value of the “λ” parameter. Increasing the value of “λ” can afford more mathematical weight towards reducing design perturbations, while decreasing the value of “λ” can afford more mathematical weight towards reducing the expected navigation distance. For example, as the value of “λ” approaches 1, the amount of design perturbation between the personalized design layout and the initial design layout can decrease. Thereby, a user who prefers less design change can increase the value of “λ” to decrease the amount of personalization in the personalized design layout and increase the amount of design consistency (e.g., as compared to the initial design layout). In contrast, a user who prioritizes personalization over design consistency can decrease the value of “λ”, thereby increasing the weight of the expected navigation distance in the mathematical relationship between reducing navigation distance and preserving design consistency. In various embodiments, the optimization component502can minimize the expected navigation distance to an extent permissible by the design perturbation preference, as delineated by the amount of weight assigned to the design perturbation. Advantageously, the application software user can define one or more design perturbation preferences regarding a permissible amount of deviation from the initial design layout by adjusting the “λ” parameter, thereby customizing a balance between personalization and design layout consistency.

In one or more embodiments, the optimization component502can minimize the expected navigation distance and the design perturbations in consideration of each other. For example, the optimization component502can determine a personalized design layout that achieves the minimal amount of expected navigation distance while necessitating the least amount of adjustment to the initial design layout to generate the personalized layout design. By minimizing the expected navigation distance in consideration of minimizing the design perturbations, the optimization component502can advantageously determine a personalized design layout that can be adapted to a use pattern while enabling the application software user to leverage past experience with the initial design layout to facilitate navigation of the personalized design layout.

In various embodiments, the design component108can generate one or more personalized layout designs based on the determinations of the optimization component502. For example, the design component108can generate the one or more personalized layout designs by adjusting the one or more initial design layouts in accordance with the application object positioning determined by the optimization component502to achieve a reduction in the navigation distance in consideration of the one or more design perturbation preferences. Further, the design component108can share the one or more personalized design layouts with the one or more electronic devices106for presentation to the application software user via a direct electrical connection and/or the one or more networks104.

FIG. 6illustrates a diagram of the example, non-limiting system100further comprising minimalization component602in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. In various embodiments, the minimalization component602can determine a value for the “λ” parameter that can result in the minimal amount of design perturbation that achieves the minimal navigation distance experienced by the application software user.

For example, the minimalization component602and the optimization component502can function in a feedback loop to learn a value of “λ” that efficiently facilitates minimalization of both the expected navigation distance and the design perturbation to further improve operability of the application software. For instance, the minimalization component602can initially set “λ” to a value slightly smaller than 1 (e.g., 0.99); whereupon the optimization component502can determine a first iteration of the personalized design layout in accordance with Equation 1 based on the initial “λ” value (e.g., 0.99). Thereby, the first iteration of the personalized design layout can exhibit minimal deviation from the initial design layout. The first iteration of the personalized design layout can be generated by the design component108and/or shared with the electronic devices106, whereupon a user can interact with the first iteration of the personalized design layout and iteration data can be collected by the interactions component112and/or analyzed by the sessions component114as described herein. Further, the minimalization component602can analyze the session data regarding the first iteration of the personalized design layout to identify a trend of navigation distance traversed by the user.

Wherein the trend of navigation traversed by the user indicates that the user experienced less navigation distance when interacting with the first iteration of the personalized design layout than the amount of navigation distance experienced when interacting with the initial design layout, the minimalization component602can initialize a second iteration of the feedback loop. In the second iteration, the minimalization component602can further reduce “λ” to a value less than the value utilized in the first iteration (e.g., a value less than 0.99), whereupon the optimization component502can determine a second iteration of the personalized design layout in accordance with Equation 1 based on the reduced “λ” value. Thereby, the second iteration of the personalized design layout can exhibit more deviation from the initial design layout than the first iteration of the personalized design layout. The second iteration of the personalized design layout can be generated by the design component108and/or shared with the electronic devices106, whereupon a user can interact with the second iteration of the personalized design layout and iteration data can be collected by the iteration component112and/or analyzed by the sessions component114as described herein. Further, the minimalization component602can analyze the session data regarding the second iteration of the personalized design layout to identify whether the navigation distance traversed by the user continued to decrease (e.g., whether the user experienced less navigation distance while interacting with the second iteration of the personalized device layout as compared to the first iteration of the personalized device layout).

In response to the minimalization component602determining that the navigation distance experienced by the user increased from the first iteration of the personalized design layout to the second iteration of the personalized design layout, the design component108can re-generate the first iteration of the personalized design layout using the initial “λ” value for use on the one or more electronic devices106. In response to the minimalization component602determining that the navigation distance experienced by the user decreased from the first iteration of the personalized design layout to the second iteration of the personalized design layout, the design component108can initialize an additional iteration of the feedback loop. In the additional iteration, the minimalization component602can reduce “λ” even further to a value less than the values utilized in previous iterations (e.g., less than the value utilized in the first iteration and less than the value utilized in the second iteration). In response, the optimization component502can determine an additional iteration of the personalization design layout, the design component108can generate the additional iteration of the personalized design layout, and the minimalization component602can determine whether the trend of navigation distance experienced by the user continues to decrease.

Thereby, the minimalization component602can continue to initialize additional iterations of the feedback loop until the trend of navigation distance experienced by the user increases, at which point the minimalization component602can terminate the feedback loop and the design component108can generate the iteration of the personalized design layout last associated with a decrease in the navigation distance trend. For example, the amount of personalization can reach a level in which navigation distance experienced by the user can increase despite a reduction in the expected navigation distance due to the user's unfamiliarity with the composition of the personalized device layout. In other words, the amount of design perturbation implemented to achieve the subject amount of personalization can result in the user being lost in the design layout, and thereby traversing an unnecessary navigation distance to interact with desired application objects. Advantageously, the minimalization component602can determine an appropriate amount of weight to afford the design perturbations in order minimize the amount of user interface navigation experienced by the application software user.

FIG. 7illustrates a flow diagram of an example, non-limiting method700that can facilitate personalizing one or more design layouts for one or more application software user interfaces in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

At702, the method700can comprise monitoring (e.g., via the interactions component112and/or the sessions component114), by a system100operatively coupled to a processor120, interactions via one or more user interfaces of application software. The one or more interactions can comprise explicit interactions and/or implicit interactions with one or more application objects of the application software. For example, the monitoring at702can comprise collecting (e.g., via the interactions component112) interaction data in accordance with one or more embodiments described herein. Further, the monitoring at702can comprise determining (e.g., via the sessions component114) session data based on the interaction data, wherein the session data can characterize a sequence in which the application objects were interacted with by a user of the application software.

At704, the method700can comprise generating (e.g., via the design component108), by the system100, one or more design layouts (e.g., personalized design layouts) of the one or more user interfaces by adjusting one or more initial design layouts of the one or more user interfaces based on the interactions monitored at702and/or one or more design perturbation preferences associated with the initial design layout. The one or more design perturbation preferences can delineate a degree of deviation from the one or more initial design layouts permissible during the generating at704. For example, the generating at704can comprise reducing (e.g., via the optimization component502) an expected amount of navigation distance between application objects in consideration of the one or more design perturbation preferences, as described herein with regards to one or more embodiments. For instance, the generating at704can comprise determining the composition of the one or more design layouts in accordance with the one or more mathematical relationships depicted in Equation 1.

FIG. 8illustrates a flow diagram of an example, non-limiting method800that can facilitate personalizing one or more design layouts for one or more application software user interfaces in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

At802, the method800can comprise analyzing (e.g., via the interactions component112and/or the sessions component114), by a system100operatively coupled to a processor120, one or more interactions via one or more user interfaces for application software to determine session data that can characterize one or more sequences in which objects (e.g., application objects) of one or more initial design layouts are interacted. The one or more interactions can comprise explicit interactions and/or implicit interactions with one or more application objects of the application software. For example, the analyzing at802can comprise collecting (e.g., via the interactions component112) interaction data in accordance with one or more embodiments described herein. As exemplified by the exemplary session data depicted inFIG. 2, the session data determined at802can comprise a plurality of sessions regarding a user's interaction with the one or more user interfaces.

At804, the method800can comprise generating (e.g., via the matrix component302), by the system100, one or more transition probability matrices that can characterize a probability of navigating from one or more first objects from the objects of802to one or more second objects from the objects of802based on the session data. As exemplified by the exemplary transition probability matrix depicted inFIG. 4, the one or more transition probability matrices generated at804can regard a plurality of sessions comprised within the session data and/or can determine the probability of interaction sequences not explicitly included within the interactions and/or session data.

At806, the method800can comprise reducing (e.g., via the optimization component502), by the system100, one or more navigation distances between the objects based on the one or more transition probability matrices to achieve one or more expected navigation distances. For example, the reducing at806can be performed in accordance with one or more of the mathematical relationships depicted in Equation 1. For instances, the navigation distance between the one or more first objects and the one or more second objects can be reduced based on the probability of the user transitioning from the one or more first objects to the one or more second objects, as determined by the one or more transition possibility matrices. In one or more embodiments, the navigation distance can be expressed as a mathematically valid distance between the objects (e.g., a physical distance between the one or more first objects and the one or more second objects on a display presenting the initial design layout).

At808, the method800can comprise determining (e.g., via the optimization component502), by the system100, a minimal amount of design perturbation that can achieve the one or more expected navigation distances. For example, the determining at808can comprise analyzing the composition of the objects in the initial design layout in view of the one or more mathematical relationships depicted in Equation 1 to determine the minimal amount of deviation from the one or more initial design layouts that can achieve the one or more expected navigation distances.

At810, the method800can comprise generating (e.g., via the design component108), by the system100, one or more design layouts (e.g., personalized design layouts) of the one or more user interfaces by adjusting the one or more initial design layouts based on the interactions and one or more design perturbation preferences to minimize a degree of change from the one or more initial design layouts. The altering at810can comprise reducing the navigation distance in accordance with806along with implementing the minimal amount of design perturbation determined at808. Advantageously, method800can generate one or more design layouts while balancing personalization and design perturbation to reduce the amount of user interface navigation experienced by a user of the application software and thereby improve operability of the application software.

FIG. 9illustrates a flow diagram of an example, non-limiting method900that can facilitate personalizing one or more design layouts for one or more application software user interfaces in accordance with one or more embodiments described herein. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

At902, the method900can comprise analyzing (e.g., via the interactions component112and/or the sessions component114), by a system100operatively coupled to a processor120, one or more interactions via one or more user interfaces for application software to determine session data that can characterize one or more sequences in which objects (e.g., application objects) of one or more initial design layouts are interacted. The one or more interactions can comprise explicit interactions and/or implicit interactions with one or more application objects of the application software. For example, the analyzing at902can comprise collecting (e.g., via the interactions component112) interaction data in accordance with one or more embodiments described herein. As exemplified by the exemplary session data depicted inFIG. 2, the session data determined at902can comprise a plurality of sessions regarding a user's interaction with the one or more user interfaces.

At904, the method900can comprise generating (e.g., via the matrix component302), by the system100, one or more transition probability matrices that can characterize a probability of navigating from one or more first objects from the objects of902to one or more second objects from the objects of902based on the session data. As exemplified by the exemplary transition probability matrix depicted inFIG. 4, the one or more transition probability matrices generated at904can regard a plurality of sessions comprised within the session data and/or can determine the probability of interaction sequences not explicitly included within the interactions and/or session data.

At906, the method900can comprise reducing (e.g., via the optimization component502), by the system100, one or more navigation distances between the objects based on the one or more transition probability matrices. For example, the reducing at906can be performed in accordance with one or more of the mathematical relationships depicted in Equation 1. For instances, the navigation distance between the one or more first objects and the one or more second objects can be reduced based on the probability of the user transitioning from the one or more first objects to the one or more second objects, as determined by the one or more transition possibility matrices. In one or more embodiments, the navigation distance can be expressed as a mathematically valid distance between the objects (e.g., a physical distance between the one or more first objects and the one or more second objects on a display presenting the initial design layout).

At908, the method900can comprise generating (e.g., via the design component108), by the system100, one or more design layouts (e.g., personalized design layouts) of the one or more user interfaces by adjusting the one or more initial design layouts based on the interactions and one or more design perturbation preferences that can define a permissible degree of change from the one or more initial design layouts. The altering at908can comprise reducing the navigation distance in accordance with906in accordance with the one or more design perturbation preferences. In one or more embodiments, the one or more design perturbation preferences can be manually set by one or more users of the application software via adjustment to the “λ” parameter depicted in Equation 1 (e.g., thereby delineating the amount of weight associated with design consistency). In various embodiments, the one or more design perturbation preferences can be determined autonomously by the system100(e.g., via the minimalization component602and/or optimization component502). For example, the method900can comprise determining the one or more design perturbation preferences through multiple adjustments to the “λ” parameter and/or monitoring the resulting effects on navigation distance experienced by the user via a feedback loop, as described with regards to one or more embodiments herein. For instance, the permissible degree of change can be the amount of design perturbation that can facilitate reducing the expected navigation distance while not increasing the amount of observed navigation distance traversed by the user.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Referring now toFIG. 10, illustrative cloud computing environment1000is depicted. As shown, cloud computing environment1000includes one or more cloud computing nodes1002with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone1004, desktop computer1006, laptop computer1008, and/or automobile computer system1010may communicate. Nodes1002may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment1000to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices1004-1010shown inFIG. 10are intended to be illustrative only and that computing nodes1002and cloud computing environment1000can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now toFIG. 11, a set of functional abstraction layers provided by cloud computing environment1000(FIG. 10) is shown. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity. It should be understood in advance that the components, layers, and functions shown inFIG. 11are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided.

Workloads layer1144provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation1146; software development and lifecycle management1148; virtual classroom education delivery1150; data analytics processing1152; transaction processing1154; and design layout personalization1156. Various embodiments of the present invention can utilize the cloud computing environment described with reference toFIGS. 10 and 11to collect and/or analyze interaction data via one or more user interfaces and/or generate one or more personalized design layouts.

With reference again toFIG. 12, the example environment1200for implementing various embodiments of the aspects described herein includes a computer1202, the computer1202including a processing unit1204, a system memory1206and a system bus1208. The system bus1208couples system components including, but not limited to, the system memory1206to the processing unit1204. The processing unit1204can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures can also be employed as the processing unit1204.

The computer1202further includes an internal hard disk drive (HDD)1214(e.g., EIDE, SATA), one or more external storage devices1216(e.g., a magnetic floppy disk drive (FDD)1216, a memory stick or flash drive reader, a memory card reader, etc.) and an optical disk drive1220(e.g., which can read or write from a CD-ROM disc, a DVD, a BD, etc.). While the internal HDD1214is illustrated as located within the computer1202, the internal HDD1214can also be configured for external use in a suitable chassis (not shown). Additionally, while not shown in environment1200, a solid state drive (SSD) could be used in addition to, or in place of, an HDD1214. The HDD1214, external storage device(s)1216and optical disk drive1220can be connected to the system bus1208by an HDD interface1224, an external storage interface1226and an optical drive interface1228, respectively. The interface1224for external drive implementations can include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1294 interface technologies. Other external drive connection technologies are within contemplation of the embodiments described herein.

A number of program modules can be stored in the drives and RAM1212, including an operating system1230, one or more application programs1232, other program modules1234and program data1236. All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM1212. The systems and methods described herein can be implemented utilizing various commercially available operating systems or combinations of operating systems.

Computer1202can optionally comprise emulation technologies. For example, a hypervisor (not shown) or other intermediary can emulate a hardware environment for operating system1230, and the emulated hardware can optionally be different from the hardware illustrated inFIG. 12. In such an embodiment, operating system1230can comprise one virtual machine (VM) of multiple VMs hosted at computer1202. Furthermore, operating system1230can provide runtime environments, such as the Java runtime environment or the .NET framework, for applications1232. Runtime environments are consistent execution environments that allow applications1232to run on any operating system that includes the runtime environment. Similarly, operating system1230can support containers, and applications1232can be in the form of containers, which are lightweight, standalone, executable packages of software that include, e.g., code, runtime, system tools, system libraries and settings for an application.

A monitor1246or other type of display device can be also connected to the system bus1208via an interface, such as a video adapter1248. In addition to the monitor1246, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.

When used in a LAN networking environment, the computer1202can be connected to the local network1254through a wired and/or wireless communication network interface or adapter1258. The adapter1258can facilitate wired or wireless communication to the LAN1254, which can also include a wireless access point (AP) disposed thereon for communicating with the adapter1258in a wireless mode.

When used in a WAN networking environment, the computer1202can include a modem1260or can be connected to a communications server on the WAN1256via other means for establishing communications over the WAN1256, such as by way of the Internet. The modem1260, which can be internal or external and a wired or wireless device, can be connected to the system bus1208via the input device interface1244. In a networked environment, program modules depicted relative to the computer1202or portions thereof, can be stored in the remote memory/storage device1252. It will be appreciated that the network connections shown are example and other means of establishing a communications link between the computers can be used.

When used in either a LAN or WAN networking environment, the computer1202can access cloud storage systems or other network-based storage systems in addition to, or in place of, external storage devices1216as described above. Generally, a connection between the computer1202and a cloud storage system can be established over a LAN1254or WAN1256e.g., by the adapter1258or modem1260, respectively. Upon connecting the computer1202to an associated cloud storage system, the external storage interface1226can, with the aid of the adapter1258and/or modem1260, manage storage provided by the cloud storage system as it would other types of external storage. For instance, the external storage interface1226can be configured to provide access to cloud storage sources as if those sources were physically connected to the computer1202.