Executive Summar

 Software Architecture 3412ICT/7412ICT mySQLSoftware Architecture Document (SAD)Workshop No: 3h617265630@Group No: 1Students:Jed Burr, s5034187 (Leader)Iuliana Saparkina, s2966827Jane Nenkova, s2911947Slobodan Olujic, s2958331Sy Le, s5017252Table of ContentsExecutive SummarySystem IntroductionHistoryStakeholdersCompetitive LandscapeStrengthsWeaknessesOpportunitiesThreatsArchitecture BackgroundContext InformationDescription of contextual information Inputs and outputs of the context diagram, concise description:Significant Driving RequirementsViewsModule ViewView Packet OverviewView PacketsView Packet #1: MySQLPrimary PresentationElement CatalogElementsRelationsContext InformationView packet #2: Transaction ProcessorPrimary PresentationElement CatalogElementsRelationsContext InformationView packet #3 Storage ManagementPrimary PresentationElement CatalogElementsRelationsContext InformationView packet #4 Query ManagerPrimary PresentationElement CatalogElementsRelationsContext InformationView packet #5: Recovery ManagementPrimary PresentationElement CatalogElementsRelationsContext InformationComponent and Connector ViewView Packet OverviewView PacketsView packet # 1 Server ComponentPrimary PresentationElement CatalogElementsRelationsContext diagramView packet 2: Client componentPrimary presentationElement CatalogElementsRelationsAllocation ViewView Packet OverviewView PacketsView packet - Deployment ViewPrimary PresentationElement CatalogElementsRelationsContext InformationView packet - Deployment RequirementsPrimary PresentationElement CatalogElementsRelationsContext InformationView packet - Implementation View (Connector/ODBC 5.3.6)Primary PresentationElement CatalogElementsRelationsContext InformationView packet - Implementation View (My SQL Connector/C 6.1.6)Primary PresentationElement CatalogElementsRelationsContext InformationView packet - Implementation View (MySQL Server 5.7)Primary PresentationElement CatalogElementsRelationsContext InformationRelations Among ViewsGeneral Relations Among ViewsView-to-View RelationsModule-to-CnC View RelationsCnC-to-Allocation View RelationsModule-to-Allocation View RelationsStakeholders Interests to ViewsReferencesProject Management ReportProject working LoadProject Working Load SummaryIndividual effort and contribution summaryExecutive Summary MySQL is the industry leader in database systems. MySQL comes in enterprise edition, and in community supported open source edition which will be the focus of this paper. It possesses great scalability in supporting large volumes of data and users, and embedded database applications as well. It offers speed, reliability and ease of use. Different analyses of it are conducted in this paper, including SWOT, and assorted software architecture module views.Keywords: MySQL, database system, community edition, open source, software architecture, module views.System IntroductionRenowned as the world’s second most widely used and most widely open-source client-server model relational database management system (RDBMS) – a software that enables users use of web features that can implement a database with tables, columns, indexes and can also interpret an SQL query. MySQL is a Structured Query Language; a database management system that is being used for businesses of many sizes enabling cost-effective delivery of reliable, high performance and scalable Web-based and embedded database applications.HistoryFounded by the company MySQL AB, MySQL was first released in May 23rd 1995 and was written in programming languages C, C++. Over the period of 20 years, the development of MySQL grew exponentially first being released onto Windows 95 and NT in 1998, establishing a trialing beta period that ran different versions from 2000 to 2005 leading up to more advanced MySQL Server 5.5 that featured enhancements and changes, such as initializing a default storage engine known as InnoDB, which supports transactions and referential integrity constraints, improved InnoDB I/O subsystem and new options for user-defined partitioning. New features were being added as the system continued to grow, and as of now MySQL 5.7 is the latest version. Within those years, in 2008 Sun Microsystems bought MySQL for $1b who then entered into an agreement with Oracle Corporation in 2009 to purchase Sun Microsystems, then owners of MySQL copyright and trademark.StakeholdersMySQL, founded by Company MySQL AB was developed by David Axmark, Allan Larsson and Michael “Monty” Widenius. As of now, Oracle owns the right to all trade mark and copyright of MySQL, and are investing into stakeholders who continue to contribute to the growth of the system. These stakeholders are listed as:Users - The people who interact with MySQL and will be utilizing it for their own personal needs. Their opinion on efficiency of MySQL helps mound what the system should be aiming for.Acquirers – Sun Microsystems first bought MySQL AB for $1b in 2008, and then sold it to Oracles Corporation along with the owners of MySQL’s copyright and trademark.Developers – After being sold to Oracles, a new development team continued working on the development of MySQL, improving and upgrading it to the latest version MySQL 5.7Maintainers - The people who will regulate and handle the maintenance of MySQL internally and externally. They upload new versions and adjust other attributes in the package database.Infrastructure support – The people who handled the design for MySQL’s architecture infrastructure Analyst – The people who analyzed MySQL’s development phase and made reviewed the pros and cons of the design. Project Manager – The person who handles a group of people and sets them tasks to complete. Competitive LandscapeAs a relational database management system, MySQL faces the challenge of trying to outcompete against major competitors that perform the same functionality of the system and against programs that could otherwise be used as alternates instead of MySQL. These challengers includeMariaDBPostgreSQL Software SQLOracle DatabaseSQLiteTable 1: SWOT Analysis OverviewStrengthsMySQL is free and open, rich with features and benefits that can be shared and installed on differently OS easilyOverwhelming MySQL’s community is willing to help in debugging, maintaining and upgrading the systemExtremely popular within low and middle scale companies and has the biggest part of the market compared to other open sourced database.WeaknessesThe most noticeable issue in MySQL is that it can’t support the large database effectivelyLack of problem solving solutions and responsibilities for the MySQL, technical issues from the official representativeOpportunitiesHigh profit on large Enterprise organisationsThreatsHighly competitive marketStrengthsMySQL has many reasons to why it is the world’s second most widely used and most widely open-source client-server model relational database management system (RDBMS). MySQL offers scalability & flexibility, high performance, high availability, robust transactional support, web and data warehouse strengths, strong data protection, comprehensive application development, management ease, open source freedom and 24/7 support and lowest total cost of ownership. All these reasons are factors to why MySQL is successful.Another strength to MySQL is the success they have to the online world, being implemented in many high-profiled, large scale websites including Google, Facebook, Twitter, Flickr and YouTube. MySQL is compatible with any type of operating system, and remains one of the most used database systems in the world that it has become more or less an industry standard. Their popularity have been waning in recent years with the lack of innovation MySQL has been doing with system development but being used by leading web applications is an advantage they have over competitors.WeaknessesThe weakness that MySQL holds is the company’s lack of innovation. Ever since Oracle Corporations got the rights for MySQL AB, there has been a lack of progress in the development of the relational database management system with only one major release in the past several years. This sudden halt has left the MySQL community left wondering and frustrated, as the company does not accept community-developed patches, nor has it bothered to offer users any sort of roadmap for the MySQL development. The lack of innovation could lead to the downfall of MySQL where other companies may use this opportunity to overtake them.While MySQL is equipped to handle a virtually limitless volume of data, it has been known to halt when overridden with too many operations at a given time. Poor performance scaling is the problem in MySQL and may slow the efficiency and effectiveness of the relational database management system of, giving them unnecessary stress thus proving to be a flaw in MySQL’s user interface designOpportunitiesMySQL Enterprise edition gives the opportunity for enterprises to utilize comprehensive set of advanced features that are designed to benefit them. This edition exists to improve the overall environment of businesses, composing of MySQL enterprise manager, monitor, backup, encryption and many more and is cost effective meaning that it’s significantly less expensive than most other database options on the market. Overall will be beneficial to enterprises. ThreatsA threat that MySQL faces is outcompeting major competitors that perform the same functionality of the system and against programs that could otherwise be used as alternates instead of MySQL, compared to software’s like MariaDB and PostgreSQL. Although SQL may be holding the title of the world’s second most widely used and most widely open-source client-server model relational database management system (RDBMS), compared against MariaDB who have third-party storage engines, various performance enhancements, extensions and new features, MySQL is lacking in fields that competitors can take advantage off. Overcoming this obstacle will require MySQL to ensure that their RDBMS matches the market expectation to overcome the flaws they lack. Architecture BackgroundContext InformationFigure 1: Context Diagram Client connects to the database on the servers through MySQL (relational database management system based on Structured Query Language). Client sends queries to the database (in form of MySQL) located on the server. Server replies, sending results back to MySQL, to be read by the client. Description of contextual information Inputs and outputs of the context diagram, concise description:Initially the connection is established between the client and MySQLAnd between MySQL and the Server(s)Then, Client submits a Query towards the database system (MySQL). Database system (MySQL) then interprets and passes it onwards to server architecture where the actual information is stored. The server(s) reply to MySQL, locating and sending requested data. MySQL again servers as a mediator between the server where the data is actually stored, and the Client requesting access to such dataWhere in turn (MySQL) responds to Client, delivering him with a desired Query Result.Significant Driving RequirementsDriving requirements for the proper implementation of this system are: a proper server side physical infrastructure mediating database modelling and manipulating software (MySQL in this case)adequate client side architecture used for connecting to a databaseand of course a need for such system to be implementedViewsModule ViewThe module view can be used to describe the MySQL software units called modules and how they are connected. This viewtype shows lower level submodules that are partly hidden, the functional characteristics of the submodules and provides the necessary information that is required to develop blueprints for construction. Since MySQL has multiple modules they have been separated into view packets below.View Packet OverviewThe module view has been divided into the following view packets for convenience of presentation:Table 2: View Packet Overview for MySQLNumber of View PacketView Packet NameDescription1MySQL SystemRepresents the 4 main modules inside the system and how they interact.2Transaction ProcessorRepresents the Transaction Processor module, its submodules and their interactions.3Storage ManagementRepresents the Storage Management module, its submodules and their interactions.4Query ManagerRepresents the Query Manager module, its submodules and their interactions.5Recovery ManagementRepresents the Recovery Management module, its submodules and their interactions.View PacketsView Packet #1: MySQLPrimary PresentationTable 3: Primary Presentation for View Packet #1SystemSegmentMySQLTransaction ProcessorStorage ManagementQuery ManagerRecovery ManagementFigure 2 : Decomposition view of View Packet 1: MySQLElement CatalogElementsTable 4 : Visibility of the MySQL modulesVisibilityTransaction Processor is visible to the Recovery Management and the Query Manager.Storage Management is visible to the Recovery Management, Transaction Processor, and Query Manager.Query Manager is visisble to external systems.Recovery Management is visible to the Transaction Processor and the Query Manager.Table 5 : Elements of the MySQL modulesElement nameElement’s responsibilityTransaction ProcessorThe Transaction Processor handles the transaction process and maintains concurrency in the data access. This module has relationships with the Storage Management, Query Manager and Recovery Management. There are 2 submodules that are in this module, Concurrency-Control Manager and the Transaction Manager.Storage ManagementThe Storage Management module is in charge of reading data from physical devices and writing information to various files. To do this, it interacts with the Recovery Management, the Query Manager, and the Transaction Processor. There are 3 submodules that are in this module, Storage Manager, Buffer Manager and Resource Manager.Query ManagerThe Query Manager is a critical component that talks to the other components and deals with incoming queries by parsing and optimising them. It utilises Structured Query Language (SQL) for inputs. There are 7 submodules that are in this module, Query Preprocessor, Query Parser, Query Optimiser, Embedded DML Precompiler, DDL Compiler, Security & Integration Manager, and Execution Engine.Recovery ManagementRecovery Management is in charge of dealing with keeping backup copies of data in case of software or hardware failure and logging data editing events or commands. It interacts with the Query Manager, the Transaction Processor and the Storage Manager. There are 2 submodules in this module, the Log Manager and the Recovery Manager.RelationsThe View Packet 1 uses the is-part-of type of relations. There are no exceptions or additions to the relations shown in the primary presentation.Context InformationFigure 3 : Context Diagram of MySQLView packet #2: Transaction ProcessorPrimary PresentationTable 6 : Primary Presentation for View Packet 2SystemSegmentTransaction ProcessorConcurrency-Control ManagerTransaction ManagerFigure 4 : Decomposition view of View Packet #2: Transaction ProcessorElement CatalogElementsTable 7 : Visibility of the Transaction Processor submodulesVisibilityConcurrency-Control Manager is visible to the Transaction Processor and the Query Manager module (important for the Execution Engine submodule in the Query Manager)Transaction Manager is visible to the Query Manager module (important for the Execution Engine submodule in the Query Manager)Table 8 : Elements of the Transaction Processor submodulesElement nameElement’s responsibilityConcurrency-Control ManagerThis submodule executes separate & independant transactions by utilising data locks. Transaction ManagerThis submodule manages the transaction process and resolves any stoppages within the database. The submodule also issues SQL commands to confirm or undo transactions.RelationsThe View Packet 2 uses the is-part-of type of relations. The Transaction Processor could not function without one or both of the submodules above.Context InformationFigure 5 : Context diagram for the Transaction Manager moduleView packet #3 Storage ManagementPrimary PresentationTable 9 : Properties of Storage Management moduleSystemSegmentStorage ManagementStorage ManagerBuffer ManagerResource ManagerFigure 6 : Decomposition view of View Packet #3: Storage ManagementElement CatalogElementsTable 10 : Visibiliy of the Storage Management submodulesVisibilityStorage Manager is visible to the Recovery Management (specifically bv the Recovery Manager and the Log Manager), the Query Manager module (specifically for the Execution engine submodule), and the Transaction Processor module and its submodules.Buffer Manager is visible to the Resource Manager submodule only.Storage Manager is visible to the Buffer Manager submodule only.Table 11 : Elements of the Storage Management moduleElement nameElement’s responsibilitiesStorage ManagerThis submodule handles requests between any physical storage and the Buffer Manager to extract the required data.Buffer ManagerThis submodule manages the buffer by deciding how much memory each request needs to provide or manipulate data provided for the Resource Manager.Resource ManagerThis submodule is responsible for dealing with requests for data from higher level submodules and modules. It also deals with obtaining any necessary data from the Buffer Manager.RelationsThe View Packet 3 uses the is-part-of type of relations. The Storage Manager could not function without one of the submodules above.Context InformationFigure 7 : Context diagram for the Storage Management moduleView packet #4 Query ManagerPrimary PresentationTable 12 : Primary Presentation for View Packet #4: Query ManagerSystemSegmentQuery ManagerQuery PreprocessorQuery ParserQuery OptimiserEmbedded DML PrecompilerDDL CompilerSecurity & Integration ManagerExecution EngineFigure 8 : Decomposition view of View Packet #4: Query Manager moduleElement CatalogElementsTable 13 : Visibility of the Query Manager submodulesVisibilityQuery PreprocessorQuery ParserQuery OptimiserEmbedded DML PrecompilerDDL CompilerSecurity & Integration ManagerExecution EngineTable 14 : Elements of the Query Manager submodulesElement nameElement’s responsibilitiesQuery PreprocessorThis submodule deals with checking SQL syntax and verifies the validity of the query.Query ParserThis submodule creates a parsing tree structure for the next submodule to further process the SQL query.Query OptimiserThis submodule optimises the SQL query using various optimisation techniques and indexes where possible.Embedded DML PrecompilerThis submodule converts DML statements that have been embedded in an application into SQL queries that can be read by the other submodules.DDL CompilerThis submodule turns DDL commands into SQL statements which could be sent from administrative tools for MySQL to run.Security & Integration ManagerThis submodule checks the client’s privileges against an access control list to determine whether to allow or deny access to the database or certain parts of the database.Execution EngineThis submodule executes the SQL statement after the other submodules in the Query Manager module have finished. It accesses the database through the Storage Management module and also interacts with the Recovery Management module.RelationsThe View Packet 4 uses the is-part-of type of relations. The Query Manager could not function without one of the submodules above.Context InformationFigure 9 : Context diagram for the Query Manager moduleView packet #5: Recovery ManagementPrimary PresentationTable 15 : Primary Presentation for View Packet 5SystemSegmentRecovery ManagementLog ManagerRecovery ManagerFigure 10 : Decomposition view of View Packet #2: Transaction ProcessorElement CatalogElementsTable 16: Visibility of the Recovery Management submodulesVisibilityLog Manager can be seen by the Transaction Management module (specifically for the Transaction Manager submodule) and the Query Manager module (specifically for the Execution Engine submodule).Recovery Manager can be seen by the Query Processor module (specifically for the Execution Engine submodule).Table 17 : Elements of the Recovery Management submodulesElement nameElement’s responsibilityLog ManagerThis submodule logs every SQL command that is executed. It is a part of the recovery mechanism for the database and helps find what broke the database.Recovery ManagerThis submodule restores the database to the last stable backup by using statements provided by the log.RelationsThe View Packet 5 uses the is-part-of type of relations. The Recovery Management module could not function without one of the submodules above.Context InformationFigure 11 : Context diagram for the Query Manager moduleComponent and Connector ViewView Packet Overview Table 18: View packets for C&CView PacketsView packet # 1 Server ComponentThe server component in architecture of MySQL is responsible for all communications within the database system. 4.2.2.2 Primary PresentationFigure 12: Primary Presentation of MySQL Server4.2.2.3 Element Catalog4.2.2.3.1 ElementsTable 19: Elements for MySQL ServerNameTypeDescriptionConnectionProcessThe connection will perform the following:-Authentication;-Thread handling;-Check memory;-Connection limits;InterfaceProcess handlerThis interface process handle all requests for retrieving, storing, manipulating, deleting, modifying, updating data in the database. It is also responsible for modifying data structures and views.ParserProcessReceives the command and breaks it down, checks to see if syntax in correct, attributes referenced exist and are correct and therefore passing it on to the optimizer.Query cacheProcessThe query cache stores text and the results from selected statements, which were sent to the client. If at a later stage an identical statement is received, the server obtains the result from the query cache. When tables are modified, queries in the query cache are cleared ( ). OptimizerProcessThe optimizer in MySQL uses indexes to process queries faster ( ).StorageData storageThere are various storage engines for MySQL, some of them:-MyISAM;-InnoDB;-IBMDB21. 4.2.2.3.2 RelationsFirst connection component checks an authentication. After, it threads handling and quality of its thread, also, check the availability of system and existing of limit connections. After this checking the interface takes all inputs in quire, such as modifying data, deleting data, adding data and any data manipulations. Once data is received by interface, it passed to the parser of quire cache. After that it sent to optimizer. Inally the optimizer after checking the most efficient executes the query and this query is moved to storage (). 4.2.2.3.3 Context diagram Figure 13: Context diagram of the MySQL Server4.2.3.1 View packet 2: Client componentThis component is responsible for sending all the requests to the server component, where this request is executed and result is sent back to the client.4.2.3.1.1 Primary presentationFigure 14: Primary Presentation of the MySQL Server4.2.3.1.2 Element Catalog4.2.3.1.2.1 ElementsTable 20: Elements for MySQL ServerNameTypeDescriptionLocal ClientClientThis client resides on the local system, which is serverRemote ClientClientThis client is connected to MySQL serverApplicationInterfaceApplication provides connection between user and the systemScripting languageInterpreterThis is programming language, which executes a task by the user.ConnectorEventConnector makes possible to change the application in terms of language its written and connect MySQL to database server4.2.3.1.2.2 Relations The client might be either local or remote. The difference is that, the local client resides on the server, while remote one in the remote system. After, the application (which might vary, for example, it might be web browser) provides with interconnection between user and the system. The scripting language from the user executes the task. Also, scripting language allows programmer to change the language, which is supported by MySQL. After that, connector connects MySQL server with data (it might be ODBC-Open Database Connectivity or JDBC-Java Database Connectivity Technology) ().4.2.3.1.3 Context diagramFigure 15: Primary Presentation of the MySQL ServerAllocation ViewView Packet OverviewAn allocation view type relates a software unit to a non-software unit and describes how the software elements assigned within the hardware environment. There are 3 types of the allocation view: an implementation view can show how the modules are packaged and connected in the library; a work assignment view shows how the modules are assigned to the staff who are responsible for their development; and deployment view relates a module to some hardware component on which it runs, such as a hardware processor or a communication device.This view has been divided into the following view packets for convenience of presentation:Table 21: Allocation View PacketsView PacketsView packet - Deployment ViewPrimary PresentationFigure 16: Decomposition view MySQL Deployement ViewElement CatalogElementsTable 22: Elements of the MySQL Hardware (Environment)Table 23: Elements of the MySQL SoftwareRelationsThis diagram was placed in order to show the allocation of the MySQL application’s software and environment elements. There are no exceptions or limitations that need to be applied in this diagram. Context Information4.3.2.2View packet - Deployment Requirements4.3.2.2.1 Primary PresentationTable 24: MySQL Deployment Requirement for the system4.3.2.2.2 Element Catalog4.3.2.2.2.1 ElementsHardware elements of the computer:Processor A processor is the logic circuitry that responds to the basic instructions and processes those instructions in order to drive a computer.Random Access Memory (RAM) A type of computer memory that is used to store numbers of computers’ operation instructions. RAM is the most common type of memory found in computers. They use memory (RAM) to store actively running programs on the computer, including the operating system.Operating system (OS)Is the program that, after being initially loaded into the computer by a boot program, manages all the other programs and processes in the computer.Hard disk spaceDisk space refers to how much space you have available on your hard disk for storing files. When you save a document or install a new program, it gets stored on your hard disk. The more files you download, install or save on your hard disk, the less space you have got for further usage.Software elements of the computer:Microsoft .NET 4.0 FrameworkThe .NET Framework is an application development platform that provides services for building, deploying and running different kinds of applications and web services. It includes common language runtime (CLR), which provides memory management and other system services. Moreover it has an extensive class library, which includes codes for main development applications.Microsoft Visual C++ 2013 Redistributable Package (MSVC2013)When companies write software using Microsoft Visual C++, they make use of standard libraries. Those are collections of pre-written software provided by Visual C++ for programmers to use. They install run-time components that are required libraries, such as: C Runtime (CRT), Standard C++, ATL, MFC, C++ AMP, and OpenMP.4.3.2.2.2.2 RelationsThis diagram shows the minimum requirements for the system that is compulsory for MySQL installation and operation on the user (client) computer, with an example of the additional software pre requires for Microsoft Windows (7 and above) OS. The recommended requirements are optional and can provide more stable, better and faster work experience with MySQL. 4.3.2.2.3 Context Information4.3.2.3 View packet - Implementation View (Connector/ODBC 5.3.6)4.3.2.3.1 Primary PresentationFigure 17: Decomposition view of Implementation View MySQL4.3.2.3.2 Element Catalog4.3.2.3.2.1 ElementsConnector/ODBC 5.3.6 is the software element of the MySQL driver that provide access to a MySQL database. Other elements are files which represents the environment for the MySQL Connector/ODBC proper operation. 4.3.2.3.2.2 RelationsThe diagram shows the packet’s data needed to support the MySQL Connector/ODBC functionality, including stored procedures and transactions between it an MySQL Server. 4.3.2.3.3 Context Information4.3.2.4 View packet - Implementation View (Connector/C++ 1.1.7)4.3.2.4.1 Primary PresentationFigure 18: Decomposition view of Implementation View MySQL (vol.2)4.3.2.4.2 Element Catalog4.3.2.4.2.1 ElementsConnector/C++ is a MySQL database connector for C++. It lets you develop C++ applications that connect to the MySQL Server. 4.3.2.4.2.2 RelationsThe diagram was shown the distribution of the binary and source formats data needed for the proper work of the Connector/C++ module. 4.3.2.4.3 Context Information4.3.2.5 View packet - Implementation View (MySQL Workbench 6.3.6)4.3.2.5.1 Primary PresentationFigure 19: Decomposition view of Implementation View MySQL (vol.3)4.3.2.5.2 Element Catalog4.3.2.5.2.1 ElementsMySQL Workbench is a graphical tool for working with MySQL Servers and databases. MySQL Workbench functionality enables: to create and manage connections to database servers; to create models of your database schema graphically; to administer MySQL server instances by administering users; and to migrate from Microsoft SQL Server, objects and data to MySQL.4.3.2.5.2.2 RelationsEnvironment elements (folders with files) displayed to show the mapping of the MySQL Workbench 6.3.6. 4.3.2.5.3 Context Information4.3.2.6 View packet - Implementation View (My SQL Connector/C 6.1.6)4.3.2.6.1 Primary PresentationFigure 20: Decomposition view of Implementation View MySQL (vol.4)4.3.2.6.2 Element Catalog4.3.2.6.2.1 ElementsConnector/C is a client library that implements the C API for client/server communication.4.3.2.6.2.2 RelationsShows the allocation of the drivers and files inside the MySQL Connector/C 6.1.6 folder. 4.3.2.6.3 Context Information4.3.2.7 View packet - Implementation View (MySQL Server 5.7)4.3.2.7.1 Primary PresentationFigure 21: Decomposition view of Implementation View MySQL (vol.5)4.3.2.7.2 Element Catalog4.3.2.7.2.1 ElementsMySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. It is based on the web interface usage and allow to create, edit and manage databases and tables in MySQL application. 4.3.2.7.2.2 RelationsThe diagram shows the tree-type structure of main hardware elements within the MySQL Server folder.4.3.2.7.3 Context InformationRelations Among Views General Relations Among ViewsThe Module View, CnC View and Allocation View were acknowledged in previous sections. The reason for this is that 3 view are important in the implementation of the vision of MySQL. The first one is Module view shows how the key elements of the software are mapped to modules and subsystems, which identifying the major elements of the MySQL. They are used as participants in the next view - Component and Connector (CnC) and indicate the main processes in MySQL. The final Allocation view uses framework from both previous view as an input to implement and deploy the requests’ production. Figure 22: Relations between ViewsAs it shown in the diagram, connections between 3 views can look simple. However, they can be complex (with multiple connections within modules) it in total represents the whole MySQL system and every relations are dependant. In order to reduce the issues with the vision of the system, every element of the views mentioned before, need to be examined carefully. Otherwise, even a small change can affect the rest 2 views dramatically. Analysis of those 3 views can give a clear idea and understanding of the decision making process and effort estimation while working with MySQL databases. View-to-View RelationsVarious simple allocations between Module View’s elements, CnC View’s processes and Allocation View’s procedures are shown in the next tables. This can give an easy schemes of the connectors’ relations in MySQL. 5.2.1 Module-to-CnC View RelationsTable 25: Relations between Views elements5.2.2 CnC-to-Allocation View RelationsTable 26: Relations between Views elements (vol.2)5.2.3 Module-to-Allocation View RelationsTable 27: Relations between Views elements (vol.3)5.3 Stakeholders Interests to ViewsFigure 23: Stakeholders interests in ViewsTable 28: Stakeholders detailed interests in ViewsReferencesClements, Paul, et al. "Documenting software architectures: views and beyond." ICSE. Vol. 3. 2003.Converse, Tim, Joyce Park, and Clark Morgan. PHP5 and MySQL bible. Vol. 147. John Wiley & Sons, 2004.Larry Wen, 2016, 7412ICT Software Architecture lectures notes. Mack, J. (n.d.). Five Advantages & Disadvantages Of MySQL. Introduction. (n.d.). Retrieved May 09, 2016, from 5.7 Release Notes". Oracle. Retrieved?13 March?2014. “MySQL 5.7 Reference Manual”. Oracle. Retrieved 05 June 2016. ?"Oracle Completes Acquisition of Sun"?(Press release). Oracle. 27 January 2010. Retrieved?1 February?2012., Baron, Peter Zaitsev, and Vadim Tkachenko. High performance MySQL: Optimization, backups, and replication. " O'Reilly Media, Inc.", 2012.Taylor, Richard N., Nenad Medvidovic, and Eric M. Dashofy. Software architecture: foundations, theory, and practice. Wiley Publishing, 2009Valade, Janet. PHP and MySQL for Dummies. John Wiley & Sons, 2007.Ven, Kris, Jan Verelst, and Herwig Mannaert. "Should you adopt open source software?." Software, IEEE 25.3 (2008): 54-59.Williams, Hugh E., and David Lane. Web database applications with PHP and MySQL. " O'Reilly Media, Inc.", 2004.What is the overall structure of a database?. (2011). . Retrieved 8 May 2016, from Management ReportProject working LoadTaskPlanActual#Task NameStudentPlanned TimeCumulativeTimeFinished DateTimeCumulative TimeFinished Date1Searching ProjectJed3 Hours3 Hours24/04/162.5 2.51/05/16Jane3 Hours3 Hours24/04/16331/05/16Julie3 Hours3 Hours24/04/163.53.51/05/16Sy3 Hours3 Hours24/04/163.53.51/05/16Slobodan3 Hours3 Hours24/04/1633Task Total15 Hours15 Hours15.515.52MeetingJed3 Hours6 Hours28/04/169.5129/05/16Jane3 Hours6 Hours28/04/166.511.59/05/16Julie3 Hours6 Hours28/04/166.5109/05/16Sy3 Hours6 Hours28/04/161013.59/05/16Slobodan3 Hours6 Hours28/04/1669Task Total15 Hours30 Hours39.5553IntroductionSy10 Hours16 Hours30/04/162031.59/05/16Task Total10 Hours40 Hours20754Executive SummarySlobodan3 Hours9 Hours1/05/16399/05/16Task Total4 Hours43 Hours3785Architecture BackgroundSlobodan4 Hours13 Hours1/05/163129/05/16Task Total4 Hours47 Hours3816Module ViewJed8 Hours14 Hours1/05/167.517.58/05/16Task Total8 Hours55 Hours7.588.57CnC ViewJane5 Hours11 Hours1/05/16512.59/05/16Task Total5 Hours60 Hours593.58Allocation ViewJulie8 Hours14 Hours1/05/1613219/05/16Task Total8 Hours68 Hours13106.59Relations Among ViewsJulie12 Hours16 Hours2/05/166279/05/16Task Total12 Hours80 Hours6112.510Merging WorkJed1 Hour15 Hours2/05/16218.59/05/16Task Total1 Hour81 Hours2114.511Project ManagementJed2 Hours17 Hours2/05/16220.59/05/16Task Total2 Hours83 Hours2116.5Project Working Load SummaryPlan (hours)Actual (hours)Total time83116.5Average time per person16.623.3Jed1720.5Julie1627Jane1114.5Sy1631Slobodan1312.5Individual effort and contribution summaryStudentEffort Level* (Rating from 0 – 5, the information is filled by the group) Contribution Level*(Rating from 0 – 5, the information is filled by the group)JustificationIf a student received level rating of 3 or less, your group need to give explanation for the low level ratingJed55Julie55Jane55Sy55Slobodan44*Level ratings, 5 = excellent, 4 = good, 3 = reasonable, 2 = poor, 1 = unacceptable, 0 = none ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download