Final Report
The following
definitions provide a vocabulary for a discussing of my research.
Requirement- desired property of the system.
GoalÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ - high
level objective of the business, organization or system. They capture the
reasons why a system is needed and guide decision at various levels within the
enterprise [Ant96].
Scenario ÝÝÝÝÝÝÝÝ - possible sequence of actions or system behaviorsÝ [AP98].
Scenario
management and goal identification are challenging. Scenario management is
challenging due to the number of possible relations
among scenarios grow with grow of the scenarios. If relations are formalized
the job to identify and support them becomes easier [AAB99].Ý The challenges that analysts face with goal
identification is usually due to the large goal sets which often contain
redundancies and are subject to misinterpretation. It is very hard to keep
track of scenarios and goals. Software engineers need tool support for managing
large sets of scenarios and goals.
The SMaRT (Scenario Management and Requirements Tool) is a web based
tool designed for project requirements collection and analysis. It incorporates
GBRAT1 (Goal-Based Requirements Analysis Tool) and the heuristics
provided by GBRAM2 (Goal-Based Requirements Analysis Method). SMaRT provides a graphical user
interface for recording goals, requirements, and scenarios, making it possible
to measure similarities of scenarios. During the summer of 2001, I designed and
implemented a powerful database backend for the SMaRT.
ÝFigure 1 shows the entity-relationship
diagram for the SMaRT database.
SMaRT contains
set of users, projects, goals, requirements, scenarios, episodes and events.
Each entity in the diagram is represented by an oval. Each goal has set of
pre-conditions, post-conditions, obstacles, constraint, and issues. The
relationship between goal and given entities is many-to-many. For example: one
goal can have many issues and one issue can belong to many goals. This kind of
relationship requires extra table, which is represented by square on the diagram.
Each scenario
contains sets of obstacle, constraint, issues, and conditions (It is possible
for a constraint to be a pre-condition for one and a post-condition for another
scenario). The relationship between a scenario and these entities is many-to-many.
Scenario can also consist of episodes or/and events (a unique pair of actor and
action represents an event). Similarly, episodes can contain other episodes
and/or events. The extra table <Episode_Episode> resolved this ìcircularî
problem.
The database
contains a set of user and their profiles. There are two kinds of users:
administrator and analyst, as defined in the entity <user_type>.Ý The relationship between user and its type
is one-to-many. This type of represented by 1:M on the diagram.ÝÝ
Based on the
entity-relationship diagram and requirements document for theSMaRT I createdÝ the database tables structure. Appendix A
contains a list of the tables with their attributes. Each tables contains
primary key, it is represented as underlined field.
Ý
Once the
database was designed, I researched various databases in order to decide which
one was most appropriate. I decided not to use Oracle
since it is expensive on a per-processor license ($15K), and it is not
efficient to buy a "single user" license for a web applications. PostgreSQL
and MySQL are the two top competing free database systems, to my knowledge.
PostgreSQL is a sophisticated Object-Relational DBMS (DataBase Management
System), supporting almost all SQL constructs, including sub-selects,
transactions, and user-defined types and functions. Since it uses standard SQL
it should be relatively simple to migrate.
I have a
separate machine for the database server (queries can be offload onto the DB
server allowing the web server to keep serving files
ÝI
implemented the SMaRT database by interacting directly with PostgreSQL. I had
to use the terminal window and raw SQL..
After the
database was up and running I decided upon the kinds of integrity to enforce
and entered the tables into the system. Presently, SMaRT contains 36 tables, here is an example of one of them:
CREATE TABLE Goal(
goal_id varchar(6),
goal_key_word varchar(15),
goal_desc text,
source_id varchar(6),
PRIMARY KEY (goal_id),
FOREIGN KEY (source_id) REFERENCES Source
ON DELETE RESTRICT
ON UPDATE CASCADE);
The
documentation on the structure of the database is contained in the table_struc_sql.rtf file. In addition I
organized and entered goals from the CommerceNet case study and from the
Internet Privacy Policy web security project; however, I was not been able to
enter goals from meting scheduler project.Ý
Documentation on CommerceNet data contained in the Cnet_data.rtf document, and on the web security in the web_data.rtf. Back up for SQL code is in
Cnet_data_sql.rtf and web_data_sql.rtf, accordingly. Following
is example of code to enter goal in the <Goal> table:
INSERT INTO goal (goal_id, goal_key_word, goal_desc) VALUES ('av0001', 'AVOID', 'AVOID obsolete information' );
I encountered
extra problems while working with the database. The structure of the database
cannot be modified sufficiently. ALTER command to drop a column in the table
does not work in PostgreSQL. The user has to drop a table and then reenter it
without a column in question. The problem that rises is about data in the
table. I observed another problem with the SQL code: it is case sensitive.
Search:
SELECT
* FROM goal WHERE goal_key_word =îuseî; will
not work, but SELECT * FROM goal WHERE goal_key_word =îUSEî; will. This constraint requires the user
to know the structure of the data before its usage.
There is still
some work to be done. This work will be continued by Paul Zaremba and Thomas
Alspaugh this Fall. The rest of the data has to be entered to the database and
the SQL code for searching and formatting data needs to beÝ written. Also, it would be beneficial to
test the database for data contents, size and fit as well as integrity. The
database needs to be bounded with the user interface.
1GBRAM are the systematic
application of heuristics and inquire questions for analysis of goals,
scenarios and obstacles. [AP98]
2GBRAT tool is designed to
support goal-based requirements analysis. The tool provides procedural support
for the identification, elaboration, requirement and organization of goals to
specify the requirements.
[ALR96]
Appendix A
Action |
Actor |
Condition |
Constraint |
Event |
action_id |
actor_id |
condition_id |
constraint_id |
event_id |
action_desc |
actor_desc |
condition_desc |
constraint_desc |
actor_id |
action_key_word |
actor_name |
source_id |
source_id |
action_id |
|
|
|
|
|
|
|
|
|
|
Episode |
Episode_Event |
Episode_Episode |
Episode_Scenario |
Goal
|
episode_id |
episode_id |
episode1_id |
scenario_id |
goal_id |
episode_desc |
event_id |
episode2_id |
episode_id |
source_id |
issue_id |
|
|
|
goal_desc |
source_id |
|
|
|
goal_key_word |
|
|
|
|
|
|
|
|
|
|
Goal_Constraint |
Goal_Obstacle |
Goal_Issue |
Goal_Obstacle |
Goal_Pre_Condition |
goal_id |
goal_id |
goal_id |
goal_id |
goal_id |
constraint_id |
obstacle_id |
issue_id |
obstacle_id |
pre_id |
|
|
|
|
|
|
|
|
|
|
Goal_Project |
Goal_Post_Condition |
Goal_Requirement |
Goal_Scenario |
Issue |
goal_id |
goal_id |
goal_id |
goal_id |
issue_id |
project_id |
post_id |
reqt_id |
scenario_id |
issue_desc |
status |
|
|
|
source_id |
|
|
|
|
|
|
|
|
|
|
Obstacle |
Pre_Condition |
Post_Condition |
Project |
Requirement |
obstacle_id |
pre_c_id |
post_c_id |
project_id |
reqt_id |
obstacle_desc |
pre_c_desc |
post_c_desc |
project_name |
project_id |
source_id |
source_id |
source_id |
status |
reqt_desc |
|
|
|
project_desc |
|
|
|
|
project_lead |
|
|
|
|
|
|
|
|
|
|
|
Scenario |
Scenario_Condition |
Scenario_Constraint |
Scenario_Event |
Scenario_Issue |
scenario_id |
scenario_id |
scenario_id |
scenario_id |
scenario_id |
project_id |
condition_id |
constraint_id |
event_id |
issue_id |
scenario_name |
status |
|
|
|
status |
|
|
|
|
stakeholder |
|
|
|
|
project_id |
|
|
|
|
source_id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Scenario_Obstacle |
Scenario_Requirement |
Source |
User_Info |
User_Project |
scenario_id |
scenario_id |
source_id |
u_id |
project_id |
obstacle_id |
reqt_id |
s_name |
u_password |
u_id |
|
|
s_interview_transcripts |
u_first_name |
|
|
|
s_person_name |
u_middle_name |
|
|
|
s_location |
u_last_name |
|
|
|
s_hypertext_link |
u_street_addr |
|
|
|
|
u_apartment_no |
|
|
|
|
u_city |
|
User_type |
|
|
u_state |
|
u_type_id |
|
|
u_zip_code |
|
u_type_key_word |
|
|
u_country |
|
|
|
|
u_phone |
|
|
|
|
u_work_street_add |
|
|
|
|
u_work_city |
|
|
|
|
u_work_state |
|
|
|
|
u_work_zip_code |
|
|
|
|
u_work_country |
|
|
|
|
u_work_phone |
|
|
|
|
u_fax |
|
|
|
|
u_email_addr |
|
|
|
|
u_last_modified |
|
Bibliography
[ALR96] A.I.
AntÛn, E. Liang and R.A. Rodenstein. ìA Web-Based Requirements Analysis Tool.î
In 5th Work. on Enabl. Technol.: Infrastruct. For Collab. Ent., pp.
238-243, June 1996.
[AP98] A.I.
AntÛn and C. Potts. ìThe Use of Goals to Surface Requirements for Evolving
Systems.î IEEE International Conference on Software Engineering (ICSE í98),
19-25 April 1998, pp. 157-166.
[AAB99] T.A.
Alspaugh, A.I. AntÛn, T. Barnes and B.W. Mott. ìAn Integrated Scenario
Management Strategy.î
[AP98] A.I.
AntÛn and C. Potts. ìThe Use of Goals to Surface Requirements for Evolving
Systems.î IEEE International Conference on Software Engineering (ICSE í98),
19-25 April 1998, pp. 157-166.
TroubleÝ
[Ant96] A.I.
AntÛn. ìGoal-Based Requirements Analysis.î 2nd IEEE International
Conference on Requirements Engineering (ICRE í96), Colorado Springs, Colorado,
15-18 April 1996, pp. 136-144.