Download Design Description

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Relational model wikipedia , lookup

Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

Transcript
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