Team 9: Cybertone System
From SoftwarePractice.org
Group Members
| Khoa Nguyen | 10041655 |
| Ashley Tran | student |
| Grant Quick | 10047595 |
| Layegha Hashemi | 01062924 |
System Purpose
Introduction
CyberTone Systems is a new startup company that wants to gain a significant market share in customised advertising. They are looking to develop a system that will analyse registered users whilst they are shopping and generate advertisements that are specifically tailored to that individual.
CyberTone Systems believes that they already have the research needed to give them a competitive market edge, now they are looking to develop a system that will put their theory into practice and bring a return on investment. As a starting point for system development, we have been contracted to design a system architecture.
The architecture must be designed in a way that is flexible. As the system is new and expensive, it is hoped that it can go through several versions without having to be drastically redesigned from the beginning. Future changes to the CyberTone system must be easy and fast to make in order for the company to maintain a competitive advantage.
Contextual Factors
The context in which software is built contains many factors which have an effect on system design and construction. These factors are numerous and it is important that they are analysed throughout the architectual development of the system. Most contextual factors can be calssified into three groups: enablers, constraints and risks.
A number of contextual factors have been identified, which all belong to the three major groups. These are described below.
Enablers
- A large amount of ground breaking research has been carried out prior to the development of the CyberTone system. These technologies make a system such as CyberTone technologically feasible.
- Financial, business and legal obstacles surrounding the CyberTone system have been resolved by the company management team. This will allow for the introduction of the CyberTone system into the market faster and with fewer problems.
Risks
- The system recquires customers to register with the system before it can operate with them. The system will need to grow in popularity quickly if it is to attract and keep advertisers.
- The users of the system are recquired to carry an identification card, which they may be unwilling to do or simply forget to do.
- User data is stored in a central database which is used by CyberTone system. The failure of the database will lead to the failure of the entire system. The system must be designed in a way that it can recover from a major database failure in a matter of hours in the worst case scenario.
- Since all user details are stored in a database, it may be possible for hackers and other unauthorised personnel to obtain user data. It is important that customers do not have their details disclosed to any third party without their permission, as it could severely tarnish CyberTone's reputation.
Constraints
- The CyberTone system relies on new technology which is both processor and memory intensive. The hardware available may be limited and affect the way in which the system can be implemented.
- The chosen hardware may only have a limited number of operating systems available for it, which may not have the full range of functionality that the CyberTone developers are familiar with.
Stakeholder needs
A number of relevant stakeholders have been identified for this system. All of these stakeholders should be considered throughout the various stages of design and development. From these stakeholders a number of personas have been developed in order to increase understanding of the stakeholder. From these personas various narratives have been written to help clarify the roles that the stakeholders play with regards to the system.
Cybertone Management
Bobby-John
Bobby-John is a senior manager who has worked for Cybertone for twelve years
Bobby-John was one of the key backers behind the undertaking of the new Cybertone system. He has a reputation as a manager who knows how to pick the right projects. He hears that some of the programming teams in R&D are getting behind schedule and decides to exert some pressure on them. He does not want to damage his reputation as the "guy that delivers on time".
Privacy Groups
WWFFU (We Will Fight For U)
WWFFU are a privacy lobby group.
WWFFU is a consortium of privacy advocates who represent the rights of the individual and members of the public. They are concerned about the collection of information by market researchers who then sell this information to third parties. They are currently lobbying the federal government for stricter regulations as to the type of information that can be collected by companies and the ways in which this information can be used.
Researchers
Billy-Bob
Billy Bob is an experienced researcher who has spent many years in academia
Billy-Bob has been recognised amongst his peers as one of the leaders in facial recognition technology for a number of years. After spending the past decade as a professor at UTS he was scalped 9 months ago for CyberTone. He is a dedicated worker and known to spend long hours at the lab, well after his colleagues have gone home. He has been one of the driving forces behind the success of the research program behind CyberTone. Currently, Jim is finishing an algorithm that will reduce the time needed to spot a face in a large crowd by 30%.
Programmers
Lara
Lara is a 36-year-old contract programmer
Lara is an experienced member of the programming team contracted out to Cybertone systems. She enjoys her work and doesn't like to be left idle. The one part of her Job that Lara does not like is having to deal with management. She complains constantly that they are out of touch with technology and only interested in making the company money. She likes to be given a task and left alone to complete it.
Customer
Joe
Joe is a young recent university graduate who works for a startup IT company and has a high income.
Joe enjoys using the latest gadgets and gizmos that can make his work and personal life much more enjoyable. Joe was one of the first people to sign up with Cybertone after the system released as he does not like advertising that is not relevant to him. After receiving a flyer for a new radio-controlled device he decides to find out more about it at the local store. He arrives at the store and stops on his way to the electronics department, after a pink T-shirt catches his eye.
Fred
Fred is a middle-aged businessman who travels frequently and has a high income.
Fred is returning from a business trip and wishes to buy a present for his wife. He stops in the duty free store and doesn't know what to buy. He looks around and then asks the assistant for help. He is unaware that he is being observed by Cybertone system and unaware that such a system exists.
Mary
Mary is a grandmother of six grandchildren and lives on her own.
Mary travels to the supermarket to do her weekly grocery shop. After several minutes she notices a camera that seems to be following her movements. She thinks back to a current affair story she saw on the television the previous night about a new camera-based advertising system that sold off its customers identities to third-parties. She has no idea how it works, but thinks someone might want to steal her identity and feels uneasy.
Advertiser
XYZ Health Foods
XYZ Health Foods is a company which provides healthy fast food for busy healthy people.
XYZ has just developed a new healthy menu for the summer, which has a large emphasis on fruits that are currently in season. They would like to introduce their new summer menu into the market and determine which of those of those items on the menu should be incorporated into there permanent menu.
Foresters
Forestors are one of the country's leading beer producers.
Foresters have identified that most of their customers are under thirty years of age. They have decided that they can increase their market share by targeting consumers outside of this demographic and set out to prepare an aggressive marketing campaign. They have heard about the theoretical effectiveness of targeted advertising and contact Cybertone to learn about the system.
Playbouy
Playbouy is an established retailer of computer games. They have stores in every major city of the country.
Playbouy have been analysing their warehousing system. They find it hard to know how many copies of a new game they should buy. When a new game is released they have no effective means of identifying which games will be big sellers. This often results in large supply shortages and surpluses. They decide that they need to work with marketing companies in order to better understand their market and improve their situation.
Usage Narratives
Joe
Joe, a registered, user walks into a department store wishing to buy a camera. As soon as he enters in the store he is identify by the CyberTone System, which reads the wireless card that he is carrying with him. Audio and visual advertisements commence, giving Joe information about various cameras available on the market. He is very impressed with the information and it helps him to decide which camera would best suit his needs. He buys the camera and leaves the store.
Sara
A registered user of the system, Sara walks along by a store and stops at the window to look at mp3 players. There is a camera there which captures her movements and displays an advertisement to her of the recent special on mp3 players whilst the audio tells her of the location in the store where she can find them. Sara is very happy of her experience with the system as she saved a lot of time and money buying the item sthat she wanted.
Nick (Senior Manager of CyberTone System)
Nick, one of the senior managers of CyberTone. Wants to use the system to evaluate the performance of the CyberTone System in the field of advertising and identify if it require improvement. As time for Nick is short he wants the system to be able to do the analysis for him, and come up with real-time data on CyberTone System information, costs, job scheduling, and all other information of the business in an easy to read and brief format. Nick requires that the data analysis be customisable so that the most relevant data is analysed and so that they can perform tasks such as sensitivity analysis, financial reporting, budgets and other measurements. Nick is enthusiastic about having the system compile the data for him when previously it was done by operators who could not process the data in a real-time capacity without carrying on other tasks. Bill wants to be able to do this from any location via a website interface and is highly anxious about the release of any confidential information of clients and business performance. If any issues are identified Nick wishes to be able to flag these issues so that they will be resolved by an operator.
George
George is a 20-year-old student who lives off a generous stipend from his parents. He is a registered member of the CyberTone system. George walks into a store where the CyberTone system has been installed and is operating. He spends several minutes trying to decide which gaming console he should buy. There are no staff to help him and he hopes that CyberTone will be able to assist him in making a decision. However, after waiting for about a minute he notices an advertisement on a plasma screen that appears to be directed towards him. It helps him to make a decision, he is glad that he registered with the CyberTone system the other day.
Ringo
Ringo is a retired musician, who has a lot of free time and spends a lot of money on impulse items. He is a registered user of the system. Ringo enters a CyberTone installed store and hopes to buy his wife a new necklace. He looks briefly at the range available but can't tell the difference between the plastic and the gold varieties. As he is looking he hears someone talking to him. He looks up, expecting to see a saleswoman, but is instead confronted with a CyberTone display. It displays a advertisement for a particularly expensive necklace and convinces Ringo that it is the best. Pleased that he did not have to wait for assistance Ringo calls a sales attendent and purchases the necklace.
Sonya
Sonya is a 50-year-old marketing guru. She has been assigned the task of marketing a new product for a small-medium business with a limited budget. Sonya hears of CyberTone and decides that it would be an effective driver for marketing the product. She logs onto the website, registers and uploads a few advertisements. A month later she receives a call from the company she placed the advertisement for. Their sales have increased by 500% since the CyberTone advertisement was launched and they are very happy with what she has done.
Bill
Bill is a chief software architect with a flair for marketing. When his company has finished completing their new operating system he looks for new inventive ways of advertising it. He notices an CyberTone in operation the next time he is in his favourite electronics store in Redmond. He later logs onto the site and registers with the system as both a user and an advertiser. He returns to his favourite electronics store and has his own product advertised towards him. Bill is very impressed and rushes home to upload more advertisements onto CyberTone. He sees it as the advertising strategy of the future and allocates as many funds to the CyberTone campaign as his company can afford.
System Narrative
Bystander Technologies have overseen the development of CyberTone Systems, which they are hoping to gain a significant market share of the newly emerging "ubiquitous targeted advertising". CyberTone have conducted significant amounts of research and believe that they have an edge on the competition. They are hoping to convert their research into a successful functioning system.
The system will identify pre-registered users present in a physical environment. These users will be identified by means of small wirless device, roughly the same shape and size as a credit card, which the user will be required to carry. In the future this may be replaced with a more secure authentication technology, such as retinal scanning. Any people in the proximity of the sensor who are not registered uses will not be authenticated and in no way analysed by the system.
Once the user has entered into the system's sensor field they will be monitored. The system will be able to determine where the person is, what they are doing, what they are looking at and their physical and emotional reactions. This information, in addition to user details such as demographic and consumer profile, will be used to tailor output.
The output will take both audio and visual forms. It can be localised to certain areas in physical space. The system being developed will focus on producing effective advertising for the registered user. However, the system may be adapted to provide additional functionality later on, such as informing the user of important news or announcements. One example would be a user in a store at the airport, who is warned that boarding for their flight has commenced.
Quality Attributes
Quality attribute requirements such as performance, scalability, reliability, security and usability have a significant influence on the software architecture of a system. One of the key purposes of software architecture is to address the need for a system to exhibit certain quality attributes.
Performance
CyberTone operates in a real-time environment, which makes performance a critical factor. If advertising is not displayed in an appropriate time frame, its impact on the user could be severely reduced. A number of performance requirements have been identified.
1. Maximum number of users that the system can handle at a time is 500.
2. The maximum time to access the databse is 500 ms.
3. The audio and video processing time is matter of a seconds.
4.The authentication time is no more than 10 seconds.
5. An advertisement is generated from an identified gesture within 5 seconds.
Impact Map
The impact map shows the areas of the system that are important to performace. In this system the response time between image capture and advertisement generation is of primary concern, as represented on the diagram below. For more information about the other contents of the diagram please refer to the Conceptual Architecture section.
The generaterating of advertisements is the most performance critical part of the system. It should be considered as soft real-time, ie. tasks must be completed within deadlines, but if they occasionally fail there will be no critical side effects. It can be seen from the impact map that this event must pass through the gesture recognition down through to the output customisation, accessing persistent storage along the way.
A bottle-neck may be created at the databases and for this reason accessing them should be reduced as much as possible. Also, if possible multimedia files should be kept seperate to the rest of the data, so that they do not congest other connections to the persistent storage.
Security
The CyberTone System will be used by regular customers to place their interested product over the internet. This means they will be providing personal information that would need to be securely imported into the database and stored. All information that is collected should be protected from undesired third-parties, who could use the information for their own purposes, which might be against both the user's and CyberTone's desires. CyberTone System will also be used by a variety of people, ranging from ordinary customer to high level managers; these people should have their own user privileges. Ordinary operators should not be able to have access to important information regarding the performance of the CyberTone System business (this type of information should only be accessible by higher management), and thus should be restricted from it.
Other Quality Attributes
Scalability
The narrative indicated that this system should be scalable as it would be used by a varying number of super markets. i.e. it should be as easily used by a large number of supermarkets as by one. (“Multi-supermarket synchronization” is required) Also, As CyberTone grows in popularity more users will join the system. The system must be able to cope with this increase of users.
Reliability
This would include issues such as having a backup for the database as well as a backup server, i.e. that everything appears to operate as normal in case of some major failure of the system, the business should be able to continue to operate as per normal while the failures are being fixed. Advertisers will not be impressed with the CyberTone system if it does not perform reliably and display their advertisements to appropriate users.
Usability
The CyberTone system will need to be user friendly, as there will be a variety of people using it. The managers and operators should not have any difficulty understanding how the system works/how to use it, the customer that register and adds his interested product over the internet or through the interactive screens in the super market should also find it very straight forward. The system must operate in a manner by which users do not have to modify their behaviour in order to use and enjoy the benefits of the system.
Maintainability
It has been planned that the CyberTone system be used over a long period of time. For this reason it is important that the system can be easily manitained and updated to comply with any new requirements.
Testability
As CyberTone is a complex system it is important that it can be thoroughly tested before release.
Configurability
As CyberTone will be installed in a variety of different locations it is important that it can be easily configured to operate in a variety of setups.
Conceptual Architecture
The conceptual architecture provides a domain-level overview of the system. It's purpose is to increase understanding of the system
Initial Conceptual Model
The user's first experience with the CyberTone system should be considered registering. This is achieved through a special data entry interface, represented on the diagram as User Registration. The details are stored in the registered user database.
When a user enters a location where the CyberTone system is installed they are detected by a wireless sensor, which reads information from the user's card. This information is then used to authenticate the user by retrieving their details from the registered user database. Additional technologies, such as facial recognition, could be used to improve the authentication process in the future.
Once the user has been identified as a registered CyberTone member, other sensoring equipment such as cameras are used for montioring them. The imagery is passed on to the Gesture Recognition component. This component analyses the input data and determines how the user is reacting to the types of products that they are viewing. For example, a user may show signs of disgust when they are looking at gardening tools and may appear happy when looking at cosmetics.
User Analysis then takes this data and compares it with information about the user that is stored in the Registered User Details database. For example, it might look at the product range that the user is interested in receiving advertisements for and compares this to the item that the user is looking at.
A product interest is passed on to the Product Processing component, which then looks for advertisements related to the product interest that are stored in the Product Details database. It determines the most appropriate advertisements for the users that are in vicinity of output hardware.
The output customisation component then tailors the advertisement to suit the available hardware. This may be output in audio and/or visual forms.
Throughout the operation of the system, the state and behaviour can be analysed using the system monitoring component. This could also allow for system administrators to change the configuration of the system.
Responsibilities
Each component of the conceptual architecture is responsible for certain domain-level functionalities. These are as follows:
Gesture Recognition
-Analyses user position and emotional reactions as they observe products
Product Details
-Provides information about products and advertisements. Maintains details that advertisers register with the system.
User Analysis
-Correlates user behaviour with user specified advertising interests to determine the types of products the user will be interested in
Product Processing
-Finds relevent advertising information for user product interest
Authentication and Identification
-Activated when the wireless sensor detects a new CyberTone identity card in its field. -Identifies the user from their card and performs necessary authentication
Registered User Details
-Provides information about registered system users
User Data Entry
-Allows the user to enter personal details in order to subscribe to the CyberTone system. Also allows for them to update their details later.
Registered User Details
-Maintains information about registered system users and their product preferences.
User Data Entry
-Allows the user to enter personal details in order to subscribe to the CyberTone system. Also allows for them to update their details later.
Advertiser Data Entry
-Allows the advertiser to enter their details and upload advertisements.
Advertiser Details
-Maintains information about registered advertisers and their advertisements.
Output Customisation
-Takes relevant product advertising information and customises it into an appropriate form to communicate with the user
System Monitoring
-Allows an operator to observe the state and behaviour of a CyberTone server.
Behavioural Analysis
To perform a behavioural analysis of the conceptual architecture, use-case maps have been employed. Use-case maps provide an ideal method of exploring high-level behaviour by mapping system events to components and exposing weaknesses in architectural design. The use-case maps have been drawn on two seperate diagrams for clarity and are described below the diagram upon which they are represented.
The first diagram contains five different events: Identify User, Advertising Response, Update User Details, Upload Advertisment and Monitor System.
The Identify User event is generated when the wireless card detector senses the presence of new wireless card in its hot zone. The identification and authentication component is primary responsible for handling this event. Firstly, it authenticates the card data, by ensuring that it is in the correct format used for the CyberTone system. Once this has been verified the user database is searched for a user coresponding to the card id. They are then logged in to the system.
The Advertising response event is internally generated after the gesture recognition has been completed. It is concerned with generating an advertising output given a user's product preferences. Firstly, the user database is accessed to acquire information about the user's product pereferences. Once this has been performed the product processing component accesses the product database and finds the most appropriate available advertising for the user. Following this the output customisation component is reponsible for customising the advertising mutlimedia into a form that suits the corresponding output devices.
The Update User Details event is generated when an already registered user wishes to change their personal information. When they have done this a message containing the updated data is sent to the user database, where the changes are put into effect.
The Upload Advertisement event is generated when an advertiser wishes to upload new multimedia. A message is sent to the product database containing the new mutlimedia data, which is inserted into the appropriate part of the database.
The Monitor System event is generated when manager or systems administrator wishes to check the state and behaviour of the CyberTone system. A request is sent to the Gesture Recognition, User Analysis and Product Processing components for various system parameters. These are then returned, allowing the information to be analysed.
The second diagram contains another four different events: Identify Gestures, Register Advertiser, Update Advertiser and Register User.
The Identify Gestures event is generated whenever the system is ready to handle a new image capture from the input device. The Image Processing component performs compares the image with previous captures and disposes of any irrelevant or reduncdant information. This is then passed on to the Gesture Recognition Component, which analyses the data with complex algorithms to obtain information about the user. This is then apssed on to the user analysis, where the advertising response event is generated.
The Register Advertiser event is generated when a company wishes to start usingthe CyberTone system. They enter their details and information about their product lines, which are then sent to the product database, where the they are stored.
The Update Advertiser event is generated any time that an advertiser needs to update information about their company or product lines. They enter their updated details, which are then sent to the product database, where they are updated.
The Register User event is generated when a new user wishes to become a member of the CyberTone system. They enter their details, which are then sent to the user database, where the they are stored.
Refined Model
The refined model adds three stereotypes in order to help clarify the properties of certain components. Thes stereotypes are presentation (responsible for user interaction, represented by person), persistant storage (represented by cyclinder) and real-time (represented by clock). The description from the initial architecture applies equally to this model and can be used for further clarification.
Data Model
To show the data that is stored in the persistent storage compnents of the architecture, two data models have been produced. These have been represented using style similar a UML class diagrams. The purpose of these diagrams is not to enforce the way in which these components are implemented but rather to increase understanding of the sort of data that these components need to store.
User Details
The User Details component needs to store details about the users that register with the CyberTone system. It also needs to store the products that the user is interested in. A user can be interested in many products.
Advertiser Details
The Advertiser Details component needs to maintain details about the advertisers that use CyberTone. It also needs to keep track of the advertisements that they upload for use in the CyberTone system.
Execution Architecture
The execution architecture exhibits the run-time architecture of the system. It is concerned with representing concurrent subsystems and, where appropriate, processes and threads.
Concurrent Subsystem Model
The concurrent subsystem model has been determined to be an appropriate model in modeling the execution architecture of the Cybertone system. Each component represents a concurrent subsystem, which can be seen as one or many processes.
The flow of system execution can be better understood by examining the conceptual architecture, as it was from here that the execution architecture was derived. However, as the execution architecture presents a different view of the architecture, it will be explained here in full detail.
The main operation of the system begins when a registered user is detected by the wireless card detector. From here the user is authenticated and becomes a target of user analysis.
The gesture recognition waits for image data supplied to it from the input device. The user's reactions to certain products are then captured and passed on to the user analysis section.
The user analysis needs to find out information about the user's product preferences and needs to access the database. From the product preferences and the product reactions identified from gesture recognition, the user analysis uses complex logic to determine the most appropriate forms of advertising.
Once an appropriate product line that can be targeted at the user has been identified the product processing subsystem searches the databases for information about current advertisements that might be appropriate. It then makes a decision and selects one. It tells the customise output which advertisement has been selected.
The customise output component takes the name of the selected advertisement from the product processing and loads it direct from the database. It should be noted that the database has been represented in the diagram with multiplicity. This is because it is recommended that the multimedia files for the advertisements are kept in a seperate database for performance reasons. Once the data has been downloaded from the database it is manipulated if necessary so that it is in the correct format and size for the output devices.
Another part of the system is concerned with user interfaces. It should be remembered from the conceptual architecture that these subsystems are concerned with collecting data from users and advertisers, which is then stored on the databases and used by the rest of the system.
When users submit data to the CyberTone system via the user interfaces it does not go directly into the databases. Instead, commands are interpreted by the data access component. This has been included for security reasons. By only being able to access the database through this component, malicious users are limited to the amount of damage that they can do to the database. Advanced security mechanisms, such as traffic monitors, can also be implemented in this component.
The system monitoring component calls various components in the system to requesy data on the state of the system. This is then returned an displayed to the operator analysing the system.
Deployment Model
The deployment model shows the relationship between software and hardware. The CyberTone system is complicated and best implemented on a number of computers that are networked together. Each of these computers is responsible for different functionalities, as described below.
Notes:
-The output customisation has been placed on a seperate machine to the main processing units for performance reasons. It was felt that this component would be very processor intensive and may interfere with the tasks of the other real-time components meeting their deadlines.
-It is worth noting that the processing units have multiplicity. This is because it is expected that there will be a seperate processing unit at every store that has an installed CyberTone system.
-The data access and security component has been placed on a seperate system so that the malicious users cannot gain a direct connection to database from the Internet.
-The system monitoring can be used to monitor a number of installed CyberTone systems.
Implementation Architecture
The implementation architecture is used to understand the various technologies that are used in CyberTone System. The implementation architecture captures the high-level structure of the software modules that comprise the system.
Advertiser and User are able to register or update their information via a web interface. The Browser will send a HTTP request (such as user or advertiser registration) to an Apache Web Server. The Web Server will then send this information to CyberTone application components.
The application components are representative of the components identified in the conceptual architecture. Once these components have new details, they will insert or update these details in MYSQL database via the JDBC driver.
The hardware (camera and wireless card detector) will communicate with CyberTone application via the interface provided by hardware vendor. These will provide entry points into the real-time component of the system, as was discussed in the conceptual architecture section. The end result of this process will be outputted to the graphic and sound drivers, which will allow for the output hardware to provide the user with appropriate advertising material.
Executable Prototype
As part of the architectural refinement, an executable prototype was created which allowed the architecture to be more thoroughly understood and for ideas to be tested. Additionally, it is expected that this prototype will be further developed to become the final deliverable.
The executable prototype implements all of the components mentioned in the architectural descriptions. As mentioned in the implementation architecture, the main part of the system was completed implemented in Java.
To allow for processes to communicate Java Remote Method Invocation (RMI) has been used. The reason for this is that objects can be easily serialised and passed on to components on other machines. Also, processes can be easily moved from one machine to another. As performance is a critical element of the CyberTone system, this is a very useful ability. At this stage all inter-process communication has been programmed, tested and working.
The executable prototype has already helped to answer questions that were asked earlier in the architectural design process. One such question was the need for an image processing component. After beginning work on the prototype it was discovered that there would not be much work for this component to complete and that the overhead that having this extra process running would be counterproductive. It has therefore been moved from the architectural model and incorporated into the gesture recognition component.
Previously, it had been planned to implement the real-time components with multiplicity, ie. a new set of concurrent subsystems would be created every time a new user entered the system. Early on in the implementation, it became obvious that this was not a good way to do things. Not only did it make the system noticeably more complicated, it would have had a detrimental impact on performance as user load increased. As such there is now only one product processing, one user analysis and one gesture recognition concurrent subsystem per CyberTone system.
Critique of Architecture
The architecture of the CyberTone system has evolved into a framework that the executable prototype has indicated will allow for the system to be successfully developed. However, there are a number of points that have been learned about the architecture along the way that may not make it the best architecture for its purpose. On the other token, it displays many properties that suggest that it is a good architecture and better than many alternatives would be.
The authentication system requires two separate accesses of the database. First, the authentication module needs to verify that the user being authenticated is a registered user of the CyberTone system. Once this has been verified, the user details need to be retrieved from the database for the user to be logged in by the user analysis component. This double access may be seen as inefficient, particularly since both of the concurrent subsystems are located on the one machine. However, it should be remembered that the majority of the load in this operation will be carried out by the database, which is located externally. It won’t really be known if a change in architecture would be needed until the system approaches completion and it can be tested in a real-time environment. If it does require changing it should be easy as the authentication and user analysis components communicate with RMI and could be easily placed on separate machines.
One of the architectural decisions mentioned previously was dropping the image processing class. This may be seen as a bad idea because the gesture recognition component is already responsible for a very processor intensive task. It may eventuate that leaving the component may have been a better decision. However, at this stage it appears that the tasks of the image processing are quite trivial and that the extra overhead of having multiple processes communicate would have had a negative effect on performance. As such, it was probably the right decision to make.
The way the architecture has been set up there is no way of the gesture recognition of knowing which user it is analysing. It is generic and simply generates a list of detected gestures and the related product categories that are causing these emotional responses. This system appears to work well for a small group of users, but it may be found that it does not scale up well for a large group of users. Again, this is not something that will really be known until the system can be tested in a real-time environment.
The structure of the persistent data also came into question during the implementation of the user environment. When designing the login screen it was discovered that it may be more convenient if the advertiser is made to also be a CyberTone user. This way the interface could be simplified and more people would be encouraged to register as users of the system. On the other hand it may turn advertisers away who do not what their personal details stored in the database, only their company’s details. This was given consideration, but the architecture was not changed because it was felt that the original provided more flexibility. Ultimately, it is an issue that would really need to be discussed with CyberTone management.
An area that was deemed hard to design was the product processing. When there is one user in proximity of the output devices, the current architecture works well and should result in successful outcomes being generated. However, when there are two or more registered users in proximity of output hardware, the product processing component identifies advertisements according to the pooled interests of the users rather than specifically targeting an individual. This is because the architecture was designed so that user data did not proceed beyond the user analysis component. This area presents a trade-off. If further manipulation of user data is allowed it could have a detrimental impact on system performance. On the other hand, the chosen advertisement may not be optimal in the current system. The current method was chosen because performance was seen as a more critical factor, but once again this is an issue that should be brought to the attention of CyberTone management.
Another factor that should be considered is the lack of use of a pattern in the architectural design. Patterns can often help in the forming of better architectures. A layered approach was considered by the group, but itdid not seem to fit the CyberTone model and so the orginal custom architecture was kept. A poster for this research was produced and is displayed below.
There are a number of areas in which the architecture of the CyberTone system could be seen as weak and could be improved. However, these areas are generally involved with parts of the system where assumptions have been made about the system operation. Therefore, the CyberTone management should be consulted to se if the current architectural plan allows for the exact functionality that they are expecting from the system. In its current state, the CyberTone architecture seems to be a very good design given the assumptions that were made throughout the architectural design process.
Anticipated Issues
Although the executable prototype has shown that the CyberTone system appears feasible given the current architecture, there are a number of issues that may be experienced further into development. These are:
- Incorrect assumptions. As mentioned in the previous section a number of decisions behind the architectural design have been made on assumptions that the system will function in a certain way. If these assumptions were false parts of the system architecture may need to be redesigned.
- Hardware integration. Given the fact that Java programs run in a virtual machine they generally do not lend themselves to easy hardware access for any but the most common hardware. As the CyberTone system makes use of some fairly obscure hardware devices, such as the wireless card sensor, there could be a problem integrating hardware support into the system.
- Incompatibility with current research. The executable prototype has been programmed without prior knowledge of the research upon which the CyberTone system is based. As such, it is possible that the algorithms from the research rely on different data than the data that is currently used in the system. This may involve some complicated workarounds or may involve the redesign of one or more system components.
- Availability of hardware. The CyberTone system relies on some very non-standard hardware, such as a wireless card sensor. It is possible that such hardware is not available at the time that the system is deployed and it may be necessary for the hardware to be custom-made.
Instructor comments
Good to see you've started. Regarding stakeholders and narratives, make sure you write short and snappy persona descriptions for each stakeholder. Stakeholder narratives are not necessarily the same as "usage" narratives (as not all stakeholders will be "using" the system). So you should have a set of narratives that address various stakeholders' concerns AND a set that specifically address stakeholders that are users. Lian 12th March
Much better - you now have a reasonable set of stakeholder and usage narratives. The usage narratives for Joe and Ann are somewhat problematic - they focus too much on what the system is doing, rather than the effects the user experiences. Also you need to include some more description of user movements that may prompt certain system responses.
Good attempt at initial conceptual architecture. You need to rework it now by going back over your narratives - these will reveal features that are missing. The component responsibilities will also be refined as you go along. Lian 26th March
Milestone 1 Feedback Good quality analysis and design work. Here are some specific comments:
- Thoughtful understanding of system scope and function. Good set of contextual factors.
- Stakeholder narratives are well done.
- Usage narratives are off the mark. What you have written is really only the background or motivation to the user activity. You need to describe a user's interaction with the system in some detail. Actually what you have written for the quality narratives is what should appear here.
- Quality narratives. These should be written positively and specify measures. For performance, what is the required response time? Within 1 minute? Quality narratives do not have to be persona-based, unless it aids understanding.
- Conceptual architecture: Good choice of components and connections. Although you might consider a component for monitoring/configuring the system. You should combine the related presentation components - one for Advertising and one for User Subscriber, as the separate components are too broken down.
- Data models should not reflect the structure of the Conceptual Architecture. Focus on the structure of persistent data and data flowing on connectors.
- UCMs: For runtime events, a diagram without explanation is almost useless. Good to see some impact maps, but again need more explanation. Identify on the impact map for performance, which components are processor-intensive. For security, the impact map is not very helpful. What is the architectural response to security requirements?
- Execution architecture: Good model, except I question the location of the Firewall component? Does it really need to sit between the analysis components and the databases? Surely it is intended for shielding the databases from the external sources of misuse, as you have identified with the user interfaces and wireless tag.
- Deployment model is quite good, but you may want to place the audio/visual output stuff on a separate machine from motion analysis for performance reasons.
- Implementation architecture: good. Label the Application components. Why the Camera/Card APIs on the input?
Lian 28th April









