Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Course Builder Design Description Version 0.1 Doc. No.: Course Builder Design Description Version: 1.01 Date: 2006-11-14 Revision History Date 2006-11-14 Version 0.1 Description Initial Draft Author Svebor Prstačić Page 3 Course Builder Design Description Version: 1.01 Date: 2006-11-14 Table of Contents 1. Introduction 5 1.1 1.2 1.3 1.4 Purpose of this document Intended Audience Scope Definitions and acronyms 1.4.1 Definitions 1.4.2 Acronyms and abbreviations 1.5 References 5 5 5 5 5 5 6 2. External interfaces 6 3. Software architecture 6 3.1 3.2 3.3 6 6 6 Conceptual design System specification Error handling 4. Detailed software design 7 5. Approvals 7 Page 4 Course Builder Design Description Version: 1.01 Date: 2006-11-14 1. Introduction 1.1 Purpose of this document To display the definition of project design and ideas behind the design. It should provide a detailed explanation on what is a elemental building block of the application (module), how different files are connected, how the final web page is created etc. 1.2 Intended Audience Intended Audience of this document is: supervisors, who need to know in general how the project will be made, which technologies will be used members, who need to know the technical details for the implementation 1.3 Scope This document will cover the structure of the database, how the database abstraction will be implemented, diagrams of web application parts (pages and their use), how modules (smallest building blocks of the application) will be constructed, how to implement multi-language support, and how to handle errors. 1.4 Definitions and acronyms 1.4.1 Definitions Keyword Module Facade Business logic User Session 1.4.2 Definitions A smallest building block of the application implemented through asp.net custom web user controls. Consists of ascx page that holds it’s html elements, and it’s .cs (C# code file) file that makes calls to the facade to process data. An abstraction layer between the code that is behind a web page and the business logic code that implements modules’ functionality. Code that processes data – connecting to database, managing user sessions etc. A session that starts when the user logs on to the application and ends when he turns off his computer. Acronyms and abbreviations Acronym or abbreviation Asp.net CSS HTML PostgreSQL ODBC Definitions Server side programming language to build web applications (Active Server Pages) Cascading Style Sheets ( used to define web page layout ) HyperText Markup Language A database server to be used in the project Open DataBase Connectivity is a database handling API. Page 5 Course Builder Design Description 1.5 References 2. External interfaces Version: 1.01 Date: 2006-11-14 External interfaces to the application consist of web pages. 3. Software architecture 3.1 Conceptual design The concept is pretty simple, and is actually a concept of any web application. We will create the web page layout and UI using XHTML, CSS and Javascript. Asp.net controls might also be used for some parts. The business logic will be implemented using generally C#, but could also partially be VB.net. The design and background code will be separated and some abstraction applied. The idea is to create a facade through which modules will make calls to data processing, give the data to be processed, and also receive results. It basically comes to implementing the logic of modules, placing it behind the facade, and keeping the calls for processing and design as clean as possible. 3.2 System specification The application is being implemented to run on asp.net 2.0. The database which will be used is PostgreSQL 8.1, but through database abstraction, usage of other database flavors will be possible. Application file structre 3.2.1 Application file system structure Directory ./App_Code ./App_Data ./App_GlobalResources ./App_LocalResources ./Bin Description of the files Contains source code for utility classes and business objects. That would be part of the system behind the facade. Contains eventual XML data, MDF files as well as other data store files. Resources (.resx and .resources files) that are compiled into assemblies with global scope. Those are strongly typed and can be accessed programatically. Contains resources (.resx and .resources files) that are associated with specific page, user control, or master page in the application. Will be used for multi-language support on module level. Contains compiled assemblies (.dll files) .. some classes that the modules will use might be included this way. Note: ./ is a web application’s root directory. 3.3 Error handling Error Action Username exists Abort adding user and display a warning (when creating users) Passwords don’t Abort adding user and display a warning match (when creating users) Invalid url typed If logged in, go to “My courses” page and display a note about invalid url Page 6 Course Builder Design Description Version: 1.01 Date: 2006-11-14 Selected language not Use application default available for a module No language file for a Module displays “no translations available” error.. module at all Invalid password Go to try again page with password recovery option (send password to mail provided in user preferences) 4. Detailed software design As this is the web application, the things are not set like in a standard, standalone application. Here, it is very important to describe a process of creating a web page which will be shown in the user’s web browser. After rendering and sending the page to the user, the process is over until the user clicks on some of the links, or fills and submits a form. 4.1 Application pages’ architecture Every page in the application is a .aspx page. It’s structure is defined by the web design’s template and that page’s particular use. For example, the page that is meant to provide user administration options is built from the template, then modules are added to it. Modules that would go to that page would be: “breadcrumbs”, “menu” and “user admin”. 4.2 Cross-page data availability Data that should stay available while a user moves from one page to another, or throughout the entire user session, will be kept in a session state object on the server. 4.3 Database abstraction Since database abstraction will be done through the use of ODBC, the application should be able to connect to any database, provided that ODBC driver is installed on the server machine. Any code in front of the facade is forbidden to have database access – by design rules. 4.4 Database structure {placeholder for the ER model} 5. Approvals Name Title Date yyyy-mm-dd Signature Page 7