Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass[12pt]{article}
- \usepackage[pdftex]{graphicx}
- \usepackage[pdftex]{color}
- \usepackage{listings}
- \title{Comp1152: Nicole's Specialist Music Shop \& Ticket Machine case studies}
- \author{Jacob Bowyer}
- \date{\today}
- \begin{document}
- \lstset{framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{black}}
- \maketitle
- %Setup table of contents and give it a clean page.
- \newpage
- \tableofcontents
- \newpage
- \section{Summary}
- Author: \author{Jacob Bowyer and George Miller}\newline
- This report covers two different case studies, the first case study is Nicole's Specialist Music shop. Nicole has come to us seeking help creating a trial service which will expand her business online which will allow her to compete with other online stores as well as branch out to provide more music. This half of the report is collaboratively written with George Miller. Each section is indicated with its author under the section title. The testing and implementation of this is also included in the documentation. The second half of the document covers the Ticket Machine case study. Our task was to create the UML diagrams and explain the process of designing a ticket machine, including what hardware it will need and how people will use it. This is individual work and provides several different diagrams to illustrate the design and complexity of the case study.
- The final report is typeset in LaTex and is available with the final zip file.
- The diagrams were designed and drawn in Microsoft Visio.
- \newpage
- \section{Nicole's Specialist Music Shop}
- \subsection{Research and Recommendations}
- \subsection{Suitable software and design tools}
- Author: \author{George Miller}\newline
- After researching many different ERD drawing software, many were very much the same. The first piece of software researched was Microsoft Visio 2010. Part of the office package, Visio was designed to plan out building and room layouts, design server rack layouts, basic and advanced network layouts, basic charts and graphs, draw engineering circuits, calendars and UML and deep level ERDs. Visio has a very easy to use drag and drop interface for placing entities and automatically arranges them. Relationships and field data is very easy to define with support for all rules that can be defined in Microsoft SQL Server. This was a massive benefit as the database is to be created in Microsoft SQL Server; The possibility to define every rule needed to before creating the database, meaning that creating SQL queries was quick and painless. Visio even allowed for our database to be reverse engineered and re-mapped so can be match it against the original map to test accuracy. Unfortunately, Visio did not allow for a direct database connection. After the map was complete, the work had to be recreate in Microsoft SQL browser to build the database. Visio also allowed for basic notation. Visio allows table data and relationships to be defined so data can more easily be managed later.
- Researched Dia; Dia is also has an easy drag and drop interface. Its grid layout makes it easy to position elements just like Visio. Dia has layered diagrams like Visio and can create multiple anchor points on entities for precise diagram creation, there are more arrow choices and options in Dia too. Dia unlike Visio, doesn't allow for direct data input, so everything needs to be manually formatted and positioned. It is very difficult to input data in a readable format. Relationships also cannot be defined; each arrow created has to be done manually to signify data what type of relationship and with what elements. Which means the notation you use is completely up to the user and not part of the software. This was not want me wanted from ERD creation software.
- The next program researched SmartDraw, this is the only paid software researched. Much like Visio, it was designed not just for ERDs, but for mapping thousands of different items, from maps of the world, to network maps to web pages. SmartDraw is a more professional version of Dia in many ways. It allows you to define shapes on a page and draw relationships. But like Dia, no data can be input for automatic diagram creation. It again makes it difficult to create professional diagrams that match a known notation perfectly. SmartDraw doesn't allow for database integration either, all diagrams have to be made from scratch and recreated later in query language. SmartDraw has to be better than Dia but still not as good as Visio.
- Finally, the last product researched was MySQL Workbench. This software was designed to work flawlessly with MySQL server instances. It does work with Microsoft SQL server instances and Microsoft Access databases. This tool not only creates ERDs but allows you to remotely manage entire database instances. This software like Visio, allows table information to be input and it will automatically format the data to match a certain notation and easy data management on the screen. MySQL browser also allows the ERD to be exported straight into the SQL instance so no query language has to be coded as long as data types are inputted and primary keys are defined. Relationships can be written in the GUI and the diagram automatically creates a relationship with the correct notation.
- The two tools that were researched for the database were Microsoft SQL Server Management Studio and MySQL Workbench. Microsoft SQL Server Management Studio directly interfaces with Microsoft SQL Server, the software used to create our database. This software also allows for the creation of ERDs to the same standard as Visio.
- With Microsoft SQL Server Management Studio, the entire database can be created in a GUI interface or via SQL queries, and the possibility to turn the ERD into a set of tables. MS SQL Server was designed for professional usage so allows for large databases that work fast and efficiently with other Microsoft products and web services. It is definitely the choice software for our project, it will allow for easy management of the database. MySQL Workbench also works as a database manager as well as an ERD drawer. Once connected to a database it can use it to execute queries and although it connects to MS SQL servers, it was designed for MySQL and provides deeper level support for that database. Microsoft Server Management Studio is perfect for us to use as both a database management tool and ERD drawing software. Visio is a fantastic alternative but is not a free alternative; as part of the Microsoft Office family, the compatibility it gives with the leading tools for Offices around the world makes it a great way of creating models alongside other documents.
- \subsection{Recommendations for the Local Area Network}
- Author: \author{Jacob Bowyer}\newline
- The Local Area Network (LAN) is an important facet in the day to day running of the office, this backbone will support the business and ensure that work can be done efficiently and quickly to increase sales and employee productivity. This means that it is essential that the network can support the load of all the employees working on many applications and accessing the internet simultaneously. To support this kind of network there needs to be a set topology for routing and switching plus server and client support, with this in mind the first section to look at will be the internal networks hardware level. The scenario used for these recommendations is 30 cabled hosts plus 10 roaming or wireless hosts.
- Routing
- The first step to configuring a network is to provide basic routing to the Internet and between subnets inside the networks. It is advisable to have a router to act as gateways to the outside world; the router would then be responsible for routing the internal network and then the external or global access. For a small business there are two main competing and different companies that provide networking hardware Cisco and Juniper although there are other companies these two are the most widely regarded for the quality of the hardware that they provide. The two models of router that should be considered to act as a gateway and for internal routing are;
- \begin{quote}Cisco 2811\end{quote} and \begin{quote}Juniper J series (J232)
- \newline
- \end{quote}
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=1\textwidth]{details.png}
- \caption{Table detailing router specifications}
- \label{routertable}
- \end{figure}
- \subsubsection{Switching and VLANS}
- For a better quality of service, to aggregate traffic, and to create a more manageable network switching is an important factor, switches provide access to local traffic inside a subnet and to VLAN routing, VLAN routing means that some traffic can be kept isolated from other traffic and that specific virtual subnets or miniature local area networks can be created for security or privacy reasons. With the Cisco 2811 router it would be a wise idea to stick to preparatory cisco equipment, most noticeably the Cisco 2960 series switch, this switch provides the firmware to support VLAN usage and the hardware to switch small subnets in a network quickly and efficiently. With two of these switches installed handling 15 hosts each the network will be suitably equipped to handle moderately high load traffic. VLANs would also be of use when setting out the subnets inside the LAN, by putting the different hosts and even the servers on different VLANs a hierarchical system can be established restricting and limiting access and noise on each different network
- \subsubsection{Endpoints and Access Points}
- To consider ease of access the company should consider investing in a number of wireless access points for the office, these should be tuned to provide wireless coverage inside the office walls to allow anyone on a wireless device to roam the floor plan and still be connected to the wireless network. For this the Cisco Aironet 1200 is the suggested device. This model provides wireless functionality and ease of setup while still being powerful and efficient, two of these devices should be enough to cover several floors of an office layout. Using Cisco Aironet will also allow greater integration with the other Cisco equipment being used and provide a better overall service.
- \subsubsection{Servers and services}
- Several servers are needed to support the infrastructure of a small LAN network. The primary servers would be; Application, Email, Domain, Directory
- The Application server would support all of the applications required by the clients on the network, these are applications either too big or too complicated to install on each individual machine. By keeping the applications local to a single server the entire network has access to these programs regardless of having them installed.
- The email server is essential for any business company. The company will need to communicate and communicate efficiently for this purpose there would need to be a dedicated email server to handle all email internally and from external sources.
- The Domain server, this provides internal naming of machines, servers and also the domain lookup of the external world. This server is just one way of specifying how networks are laid out and also providing (limited) control over the usage of the network.
- Finally the Directory server, this server provides user account information, group information, document storage, settings and profiles. This is more common of windows networks but as this is the world standard and it is more globally accepted a directory server is a common sight in many LAN networks for businesses.
- \subsubsection{Overview of the LAN design}
- At this point the logical layout of the network can be seen, this design is simplified using Cisco Packet Tracer to provide the graphical tools to demonstrate the logical layout.
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=0.9\textwidth]{networkdiagram.png}
- \caption{Network map for recommended installation}
- \label{networkdiagram}
- \end{figure}
- The layout of the network shown here in Figure~\ref{networkdiagram} is such that every core component (the switches, and routers) have redundant links providing failover, the rest of the network is offset onto either of the two core switches which then route to the router for routing information. The design itself is simple but would require extension if it was to support more hosts.
- \subsubsection{Hosts}
- The end point of the network is the hosts that use it, in this case these are the machines wired in at each desk and the laptops that are wirelessly roaming the office floor plan. Each host would have to be a basic machine suitable for running the applications that the company requires of their employees, in this case browsers for internet surfing, office tools such as text editing and PowerPoint design, email browsers and music related software is required. The host machine needs to be capable of supporting these applications even if they are stored on a central application server.
- The minimum requirements of any machine on the LAN for office use should be 2GB of RAM, 2.14 GHz processor, 120Gb+ Hard Drive space, 100Base Fast Ethernet connection. If these requirements are met then the host should be suitable for use on the LAN with access to the tools and systems to facilitate good work.
- \subsubsection{Software}
- Software that is required depends on the specific roles of each employee at the company but the basic requirements remain the same. The company will require an email client, which in this case would be Windows Exchange, an office suite Windows Office 2010, a web browser probably Firefox, finally some form of audio player and some audio tools, these are more specific and thus would need to be discussed and decided with the client at the end of the project.
- \subsubsection{Overall cost of the installation of a medium sized LAN network}
- Not including the bulk cost of the host machines on the endpoints of the network, and the cabling costs, the hardware, software and service costs would be roughly an estimation of the current market prices
- Cisco 2811 Router - £1397
- 2x Cisco 2960 Switches - £732
- 2x Cisco Aironet 1200 - £698
- Leased line for internet access - £517 monthly
- \pagebreak
- \section{Design Dictionary and ERD Diagram}
- Author: \author{Jacob Bowyer}\newline
- \subsection{ERD Diagram}
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=0.8\textwidth]{ERD.PNG}
- \caption{Entity Relational Diagram}
- \label{erd}
- \end{figure}
- Figure~\ref{erd} shows the relation and exact design of the final relationships in the project. This diagram was designed in Microsoft SQL Server relational mapping. It clearly indicates the strong one directional link between the different tables and shows the obvious inclusion of relevant data while keeping the design free from unnecessary complications and complexity.
- \pagebreak
- \subsection{Data Dictionary}
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=0.8\textwidth]{dd.PNG}
- \caption{Data Dictionary}
- \label{dd}
- \end{figure}
- Figure~\ref{dd} shows all key phrases within the case study. This will help in the development of the project as we can refer to any key words we need and what exactly they do within the scope of the project.
- \pagebreak
- \section{Testing and Implementation}
- \subsection{Tests}
- Author: \author{George Miller}\newline
- \subsubsection{Add an Artist}
- Test Data (Examples): Coldplay\newline
- Expected Result: An Artist is added to the database.\newline
- Actual Result: Coldplay was added to the database.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- INSERT INTO Artist (name,genre)
- VALUES('Coldplay', 'Indie');
- \end{lstlisting}
- \subsubsection{Add an Album}
- Test Data (Examples): Death and all his Friends\newline
- Expected Result: An album is added to the database and associated with an artist.\newline
- Actual Result: Album was successfully added.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- INSERT INTO Album (fk_artist_id, name, genre, length)
- VALUES('11', 'Death and all his Friends', 'Indie',
- '03:34');
- \end{lstlisting}
- \subsubsection{Add a Track}
- Test Data (Examples): Viva la Vida.\newline
- Expected Result: A track is added and associated with an album.\newline
- Actual Result: The song was added.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- INSERT INTO Song (fk_album_id, name, length,
- genre, year)
- VALUES('12', 'Viva la Vida', '03:23','Indie','2010');
- \end{lstlisting}
- \subsubsection{Search an Artist}
- Test Data (Examples): Name: Coldplay, or ID: 1.\newline
- Expected Result: Shows the artists information and tracks and albums.\newline
- Actual Result: The information was listed.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- declare @ColdplayID int;
- set @ColdplayID = (select (id) from Artist where
- Artist.name = 'Coldplay');
- declare @ColdplayAlbum int;
- set @ColdplayAlbum = (select (id) from Album where
- Album.fk_artist_id = @ColdplayID);
- select * from Song where
- Song.fk_album_id = @ColdplayAlbum;
- \end{lstlisting}
- \pagebreak
- \subsubsection{List all songs in an album}
- Test Data (Examples): Album name or Id. Death and all his Friends, OR 1.\newline
- Expected Result: Lists all the songs in the album.\newline
- Actual Result: Shows all songs in the 'Death and all his Friends' Album.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- Declare @AlbumID int;
- Set @AlbumID = (SELECT (id) FROM Album WHERE
- Album.name ='Death and all his Friends');
- SELECT * FROM Song WHERE fk_album_id = @AlbumID
- \end{lstlisting}
- \subsubsection{Show Albums}
- Test Data (Examples): Arist Name or Arist ID. Coldplay, OR 1.\newline
- Expected Result: Shows all the albums linked to this artist.\newline
- Actual Result: Shows all albums linked to Coldplay.\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- Declare @ArtistID int;
- Set @ArtistID = (SELECT (id) FROM Artist WHERE
- Artist.name ='Coldplay');
- SELECT * FROM Album WHERE fk_artist_id = @ArtistID
- \end{lstlisting}
- \subsubsection{Remove an Artist}
- Test Data (Examples): Arist Name or Arist ID.Coldplay, OR 1.\newline
- Expected Result: The artist is removed from the database, including albums and tracks.\newline
- Actual Result: Removed the Coldplay album\newline
- Statement; \newline
- \begin{lstlisting}[numbers=left]
- DELETE FROM Artist WHERE name = 'Coldplay';
- \end{lstlisting}
- \subsection{Implementation}
- Author: \author{Jacob Bowyer}\newline
- The final implementation of the database is done with the following two scripts.
- \lstinputlisting[breaklines=true]{create.sql}
- \lstinputlisting[breaklines=true]{insert.sql}
- \newpage
- \section{Ticket Machine case study}
- Author: \author{Jacob Bowyer}
- \subsection{Use Case Diagram}
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=1\textwidth]{usecase.png}
- \caption{User Case Diagram}
- \label{usercase}
- \end{figure}
- The Figure~\ref{usercase} shows the typical use cases of the ticket machine, the diagram covers the idea that both a general user and engineer would both need to have specific uses for the machine. The user needs the ability to buy and renew several different types of ticket while the maintainer will need to control the price and also fix and test \& debug the machine. With these use cases planned out it is evident and clear what situations can be taken into consideration then appropriate choices later at the design phase can be made.
- \pagebreak
- \subsection{State Machine}
- \begin{figure}[h!t]
- \centering
- \includegraphics[width=1\textwidth]{StateMachine.PNG}
- \caption{State Machine}
- \label{states}
- \end{figure}
- The Figure~\ref{states} is the finalised state machine design for the case study. The state machine was decided on after trying to break down the procedures of the Ticket machine into more conceivable steps, Every step returns to a possible cancel state with the exception of the final few steps where the ticket has already been paid for. This state machine does not cover every possibility in the machine, that to say maintenance or other specific transitions of the machine but Figure~\ref{states} does show the typical states.
- \pagebreak
- \section{Project Review}
- I personally was very happy with this project, it was clear and easy to understand while still being challenging and complicated enough for it to test my knowledge and understanding, I was very happy to find a strong partner to work with. With his help the project was completed efficiently and before the deadline in a very clear and concise way. The final report was influenced by both my input and his decisions, the work was split almost 50/50 I was happy and confident with the design and layout of the final piece and along with George the end report gave a clear and professional input on the two case studies.
- The work with George was agile and quick and had a fast development process going from initial plot to final report. Given this quick prototyping period we were able to dedicate more time to the content of the report giving a more professional final report. I was happy with the constant and professional quality to the communication between us while working on this report.
- For the second case study work was individual and targeted at the case study of Ticket machines, the second half covers the abstracting and simplification of ideas to a point where concise and clear diagrams can be provided to meet the project brief, the specification was clear but the actual project was rather difficult. To simplify the process and states of a ticket machine is a rather tricky project it requires a more in-depth knowledge of a ticket machine itself and took longer than the first part of the entire report. If I had more time on the project then personally I would like to have another look at the UML diagrams related to the Ticket machine, I believe that given more time the diagrams could provide a clearer and nicer design and layout meaning a greater and more improved final product.
- I believe that I contributed equally to the first half of the final report giving a nice clean analysis of the network requirements and also summing up the SQL Implementation. With more time then the project could have had better initial planning and a deeper evaluation but due to constraints this was not achieved still I believe that the project was a success and well thought out. I personally am happy with the final product.
- \end{document}
- %Phew thats finally fucking over.
Add Comment
Please, Sign In to add comment