Thesis - 1 to 7 - Adisti _v1_ HARDCOVER

advertisement
6
CHAPTER 2
THEORETICAL FOUNDATION
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].
8
2.1.4
Object-Orientation
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.
12
2.1.6
Network Technology
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 timeto-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 codewords 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 featurerich 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.
Figure 2.1: Single Class in a Class Diagram
Classes in a class diagram are linked by lines called relationships. Three types of class
diagram relationships are used in this thesis, which are listed in Table 2.1.
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:
Actor Action
System Response
Alternate Flow:
Conclusion:
Postconditions:
Assumptions:
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
Figure 2.4: Sequence Diagram Example
Download