Thesis - Library & Knowledge Center

advertisement

CHAPTER 2

THEORETICAL FOUNDATION

6

This thesis is completed by applying several theories around systems development methodologies, information technology related jargons, and platforms as the base of our application. In this chapter, the author acknowledges the theories applied to the analysis, design and development of the database application. The first section cites the keywords used throughout this thesis, while the second elaborates on the frameworks as the base of this thesis.

2.1 Theore tical Foundation

2.1.1 Data and Information

Information is defined as processed data that can be understood by people to reveal trends or patterns, whereas data is unprocessed facts related to the people, objects, and events within an organization [1].

2.1.2 Database

“A database is a collection of related files, tables, relations, and so on that stores data and the associations among them [2].”

7

In addition to the definition, database types fall into two categories [2]:

Centralized database ; all files are centralized, meaning that they are stored in one location.

Distributed database ; files are spread, meaning that they are stored in more than one location.

2.1.3 System

A system is a collection of components that interconnect with each other and cooperate in order to achieve a certain goal [3]. The goal of the system will not be achieved if the components do not work together. Furthermore, modifications made to one component may have an effect on other components of the system.

2.1.3.1 Web-based system

Web-based systems are applications or services that reside on a server. Access to the system is enabled by using web browsers from anywhere via the Internet [2].

2.1.4 Object-Orientation

8

2.1.4.1 Object

There are many definitions that explain what an object is. The first one describes an object as:

“…an entity that has a well defined role in the application domain, and has state, behavior, and identity [4].”

Meanwhile, the second definition of an object focuses on different aspects, which is a thing that we store data along with operations that can change the data [5].

Both definitions emphasize on data and operations. Any thing in the real world can be identified as an object if that thing has the following criteria: (1) it has characteristics,

(2) it can perform an activity, and (3) it has a state.

The third opinion focuses on a different perspective on objects system-wise – An object is an abstraction of something in a problem domain, showing the system’s capabilities to keep information about it, interact with it, or both [6].

9

2.1.4.2 Class

A class is:

“A description of a collection of objects that use similar attributes, operations, methods, relationships and semantics. The purpose of a class is to declare a collection of methods, operations and attributes that fully describe the structure and behavior of objects [7].”

The relation between classes and objects are further discussed, explaining that an object is an instance that is derived from a class, implementing the class’s structures and behaviours [7].

2.1.4.3 Object Oriented Approach

The object oriented approach is a method to develop software in a way that real world problems are plotted into abstractions [8].

2.1.4.4 Object Oriented Programming

Object-oriented programming languages are based on the idea of taking a small amount of data and the instructions about what to do with that data, and putting both of them together into what is called an object [2].

10

There are two advantages using object oriented method:

1. Objects are reusable . It can be reused in multiple information systems and applications. Reusable means that classes created for one purpose can be used in a different object-oriented program if desired [2].

2. Objects are extensible . Extensible means that they can be changed or expanded easily without adversely impacting any previous applications that used them [9].

2.1.5 Analysis

Analysis is described as the activity that examines the problems and studies the requirements [10]. The importance of capturing requirements is to set the scope and the constraints of the system.

2.1.5.1 Model-Driven Analysis

In accordance with analysis, Model-Driven Analysis is a problem solving approach that documents the system’s requirements by mapping them into illustrative models. [9].

The three most popular model-driven analysis approaches are structured analysis, information engineering, and object oriented analysis [9].

1. Structured Analysis

Also known as process-centered analysis, structured analysis models the processes within the existing system along with each process’s inputs and outputs.

11

2. Information Engineering and Data Modeling

Information engineering focuses its analysis on the data that is stored in the system, carefully defining the relations among data entities.

3. Object Oriented Analysis

Known for its model-driven technique, object oriented analysis combines data and processes into objects, and models the system’s objects by defining the structure, behavior, and communication between objects.

2.1.5.2 Web Application Analysis Model

There are four analysis activities in the Web Application Analysis Model [11]:

1. Content analysis: defines the whole substance of data within the web application, such as text, graphics, images, video, and audio.

2. Interaction analysis: identifies how users interact with the web application.

3. Functional analysis: describes the functions and operations that will be used to manipulate the content of the web application.

4. Configuration analysis: the details outside the web application, describing the arrangement of how the web application will be placed.

2.1.6 Network Technology

12

2.1.6.1 Internet and Intranet

The terms Internet an Intranet are elucidated in the following explanations [2]:

The Internet is a global network of computer networks, connecting computers worldwide using a common computer communication protocol, known as TCP/IP.

An intranet, on the other hand, is a private network that is separated from the Internet by firewall, usually within one enterprise.

2.1.6.2 Local Area Network

Local Area Network (LAN) is a type of computer network that enables the exchange of information between the devices that are connected to each other [12]. The scope is small, typically a single building or a cluster of buildings. Moreover, it is owned by a same organization that owns the attached devices. The most important thing is the data rates of LAN are typically great.

2.1.6.3 Client Server Architecture

Client/server architecture is a LAN based computing environment that separates the workload or tasks between a client and a centralized database server [1]. The client focuses on user interface functions, sending database requests to the server, which in return processes the requests and sends the results back to the client.

13

2.1.6.4 Three tier architecture

In regard with the client/server architecture, the three-tier architecture separates the application logic from the client s, creating three layers in total [23]:

1. Presentation layer, which is the interface that users have direct contact with to provide input, make requests and see results.

2. Middle tier, which acts as the logic behind the application.

3. Data management tier, as the database storage, where data is stored, updated and retrieved upon actions made by the business logic layer

2.1.7 User Interaction

2.1.7.1 Human Computer Interaction

Human-computer interaction describes the ways a person interacts with a computer [13].

This brings computer design to our concern, in which the design of computers should be equivalent with the knowledge of people who utilize them [14].

2.1.7.2 User Interface

The user interface is parts of the system where the user and system meet to interact [15].

In relation with human-computer interaction comes the importance of user interface design. The user interface is the most important element of a computer-based system, because poor user interface design can constrain the user’s ability to tap the computational power of an application, even if the application is well designed [11].

14

In order to design effective user interfaces, there are three important guidelines [11], which are :

1. Place the user in control

2. Reduce the user’s memory load

3. Make the interface consistent

2.1.7.3 Web Design

Design and Web Application Quality

In 1999, Olsina stated:

“The quality of a web application is defined in terms of usability, functionality, reliability, efficiency, and maintainability [16].”

In 2002, the following quality requirements were added: security, scalability, and time- to-market [17]. To achieve these quality attributes, a good web application design should exhibit simplicity, consistency, identity, robustness, navigability, and visual appeal [18].

2.1.8 Platform

2.1.8.1 HTML

The following is a short summary on HTML details based on Shanon’s article [19].

HTML is a computer language that is used to create websites. These websites can then be viewed by anyone else connected to the Internet. HTML is an abbreviation for

HyperText Markup Language, which is further explained below:

15

HyperText means that text on websites are hyper, allowing the user to move around on the website. By this method, users can go to any place on the Internet at any time by clicking on links.

Markup defines what the HTML tags do to the text gapped in between. HTML tags are used to define certain types of text, such as italic text.

Language explains that HTML is similar to other languages, containing code- words and syntax.

HTML consists of tags, which are a series of short codes typed into a text- file by the site author. The text files are then saved as a .html file, and viewed through a browser such as Internet Explorer or Netscape Navigator , that translate the html text into a visible form.

2.1.8.2 CSS

Short for Cascading Style Sheet, CSS separates the content of web pages from its appearance [24]. This can be done by including styles within a document or attaching a document to an external css file, with .css as the file extension [24].

2.1.8.3 Javascript

The definition of JavaScript is elaborated in the following lines. JavaScript is a client side scripting language that runs on the client browser. It can be easily used to interact with HTML elements on almost all browsers. By using JavaScript, features such as validation become possible. Like each programming language, it contains variables,

16 arrays, functions, operators, objects and much more which can be help to create better scripts for pages. On the server side, JavaScript can be used to manage the database entry. JavaScript code can be inserted directly in the HTML or placed in a separate file, naming the file with a .js extension and link the web page with the .js file [20].

2.1.8.4 ASP.NET

An article dedicated to introduce ASP.NET [21] explains that ASP.NET is a server-side technology ; which means that it runs on the web server, where the processing of the

ASP.NET code occurs. ASP.NET is a technology for developing dynamic websites or web applications. Web applications usually (but not always) store information in a database, and allow visitors to the site to access and change that information. ASP.NET allows web application creation by using a variety of familiar programming languages.

Furthermore. ASP.NET pages are compiled into efficient binary files, which can be run very quickly, multiple times. In addition to that, ASP.NET allows separation between the server-side code from the HTML layout.

2.1.8.5 C#

Officially, Microsoft describes C# as a “simple, modern, object-oriented, and type-safe programming language derived from C and C++ [22].” C# (pronounced C sharp), is specifically designed and targeted for use with Microsoft’s .NET Framework (a feature- rich platform for the development, deployment, and execution of distributed applications). It is a language based on the modern object-oriented design methodology

17 that fully supports classes and object-oriented programming, including both interface and implementation inheritance, virtual functions, and operator overloading. Moreover,

C# can be used to write ASP.NET dynamic Web pages and XMLWeb services.

2.1.8.6 Database Management System

Database Management System (DBMS) is a software that supports the storing and maintenance of large sizes of data [23].

The benefits of using a DBMS to manage data are [23]:

1. Data independence

2. Efficient data access

3. Data integrity and security

4. Data administration

5. Concurrent access and crash recovery

6. Reduced application development time

However, it also has some drawbacks, such as [23]:

1. DBMS is a complex piece of software.

2. DBMS is optimized for certain kinds of workloads.

3. Its performance may not be adequate for certain specialized applications. For example: application with tight real-time constraints.

4. Some applications may need to manipulate the data in ways not supported by the query language.

18

SQL Server

SQL server is a Database Management System that ensures the security and reliability for enterprises, and can simultaneously run several databases.

2.2 Theoretical Frameworks

2.2.1 Systems Development

2.2.1.1 System Development Process

System development process is a set of activities, methods, bets practices, deliverables, and automated tools that stakeholders use to develop and maintain information systems and software [9]. The process is broken down into the following steps [9]:

1. System Initiation: identify system’s scope, goals, schedule, and budget.

2. System Analysis: investigate the current business, identify existing problems, and capture requirements for the design.

3. System Design: modeling the specifications of the solution design, based on requirements in the previous step.

4. System Implementation: build the system according to the design and putting the product to test.

2.2.1.2 System Development Life Cycle

System Development Life Cycle (SDLC) is a structured framework that is broken down to several steps that must be completed in sequential order to develop a working system

19

[9]. The steps of processes are: systems investigation, systems analysis, systems design, programming, testing, implementation, operation, and maintenance.

1. System Investigation: the process of understanding business problem to be solved, understanding technical options for systems, and understanding problems that are likely to occur during development, and the greater chance of actually successfully solving the problem.

2. System Analysis: the examination of the business proble m that the organization plans to solve with an information system, describes what a system must do.

3. System Design: how the system will accomplish this task. System design encompasses two major aspects of the new system: logical systems design states what the system will do physical systems design states how the system will perform its functions

4. Programming: the translation of the design specification into computer code.

5. Testing: to detect errors in the computer code.

6. Implementation: the process of converting form the old system to the new system.

7. Operation and maintenance: the process to determine if it is being used correctly, and it continuity throughout the life of the system.

Types of SDLC

There are several types of SDLC, in which among them are Sequent ial SDLC and

Iterative SDLC.

20

2.2.2 PIECES Framework

James Wetherbe developed the PIECES framework that is useful for classifying problems. Each letter in PIECES represents a category that problems are mapped in to.

PIECES stands for [9]:

Performance: the need to improve performance, such as the system response time, and throughput.

Information: the need to improve unorganized or redundant information and data, which includes output, input, and data

Economics: the need to improve economics, whether that is done by controlling costs or increasing profits

C: the need to fix security, whether it is too much or too little

Efficiency: the need to correct or improve efficiency of people and processes, to people and to machines

Service: the need to correct or improve service to customers, suppliers, partners, employees, and so on, to provide consistency, reliable and compatible information.

2.2.3 Unified Modeling Language

Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts (such as classes, objects, and so on) in object-oriented software systems [2]. UML makes the reuse of these artifacts easier because the language provides a common set of notations that can be used for all types of software projects.

21

2.2.3.1 Class Diagram

A class diagram is a UML diagram that shows classes with their attributes and operations, together with the associations between classes [8]. A single class is represented by a box, vertically divided into three parts, as shown in Figure 2.1. The upper part describes the class name, while the middle and bottom describe the attributes and methods respectfully.

RELATIONSHIP

SYMBOL

DESCRIPTION

Association

Generalization

Composition

22

Table 2.1: Relationships in a Class Diagram

The association relationship represents a connection between two classes. Each association has a name. Generalization is formally defined as a taxonomic relationship between a more general element and a more specific element. It indicates an “is-a” relationship between a superclass and its subclass. For instance, a monthly-paid employee is an employee. Unlike generalization, the composition relationship is that between a whole and its parts. The composite object has sole responsibility for the creation and destruction of its parts.

2.2.3.2 Activity Diagram

Activity diagrams are used to model different aspects of a system. They can be used to describe a system function represented by a use case, or model business activities in the early stages of a project. The notation of an activity diagram is elaborated in Table 2.2.

23

SYMBOL DESCRIPTION

Initial state

Final state

Activity

Control flow

Transition (join)

Transition (fork)

Table 2.2: Activity Diagram Notation

2.2.3.3 Use Case Diagram

Use cases specify the functionality that the system will offer from the users’ perspective.

They are used to document the scope of the system and the developer’s understanding of what it is that the users require. The notation of Use Case Diagram is available in

Table 2.3.

24

SYMBOL DESCRIPTION

Actor

Use case

Communication association

Figure 2. 2: Use Case Diagram Notation

In addition to use case diagrams is use case description, which provides a textual description of the interaction between the users of the system (the actors) and the use cases. The use case description template that the author applies in this thesis is portrayed in Figure 2.3.

Use Case Name:

Actors:

Description:

Trigger:

Preconditions:

Normal Flow:

Alternate Flow:

Conclusion:

Actor Action

Postconditions:

Assumptions:

System Response

Figure 2. 3: Use Case Description Template

25

2.2.3.4 Sequence Diagram

A sequence diagram shows interactions between objects of a system arranged in a time sequence. The commonest application of a sequence diagram is to represent the detailed object interaction that occurs for one use case or for one operation. The notation for the sequence diagram is expressed in Table 2.3, with an example of a sequence diagram in

Figure 2.4.

SYMBOL DESCRIPTION

Actor

Object lifeline

Activation

Message

Table 2.3: Sequence Diagram Notation

26

Download