System Specifications for
an Information Sharing System (ISS):
Generic Reusable Form
Walt Scacchi
(Wscacchi@ics.uci.edu)
M271/F271
Preliminary Revision: 24 February 2003
Spring 2003
People roles: who uses
<! -- an ISS>
Processes: what do
they do
Inputs: what information
do they put into <! -- an ISS>
Outputs: what
information can they get out of <! -- an ISS>
System Components: what are the major software components of <! -- an
ISS>
Note: What follows represents a high-level view of the
specifications of <! -- an ISS> system (either a Global
Peer-to-Peer File/Application Sharing System or an Enterprise (Web)
Portal). It does NOT specify mid-level or low-level system features or
operations. Thus, this is not a complete specification of the implementation
of <! -- an ISS>. As such, when examining this system
specification document, if you identify any system-related items that
are missing or mis-stated, please bring them to the attention of the
author.
ISS Domain Variables
You can find and replace the following variables in
your project, if and when appropriate, with the reuse patterns
indicated here:
- <! -- an ISS> -- The name of your enterprise information
sharing system, global P2P file sharing system, or enterprise portal.
This system encapsulates access to vendors that provide the product
from which the system is developed or used during operation. It also
encapsulates any Application Service Providers (ASPs) that provide
outsourced or remote application services on the basis of a licensing
or fee-for-service arrangement.
- <! -- Institution> -- A background community that names the
enterprise in which your ISS is situated.
- <! -- Sponsor> -- A background community of people who
authorize, fund, promote or otherwise advocate the development and
usage of an ISS.
- <! -- Authors> -- People/actors who create and edit content
managed by the ISS and served to End-Users.
- <! -- Publishers> -- People/actors who solicit content from
Authors for marketing and dissemination.
- <! -- End-Users> -- People/actors who are the main users of
the ISS on a regular basis.
- <! -- ISS System Development Staff> -- People/actors who
develop an ISS for an enterprise with the support of one/more Sponsors.
- <! -- Asynchronous messaging system> -- A "connection-less"
system for transmitting messages (or message content) from one
person/system to one/more other persons/systems, when convenience or
network traffic permits. Can scale to millions of users, though most
applications involve the distribution of messages to no more than a few
dozen people.
- <! -- Synchronous messaging system> -- A
"connection-oriented" system for on-demand transmitting messages (or
message content) from one person/system to one/more other
persons/systems. Also employed in "peer-to-peer" applications like
those for global file sharing (e.g., Napster, Gnutella, FreeNet).
People (stakeholders,
actors, agents/ etc.) roles for <! -- an ISS>
Guidelines/Notes:
-- Identify roles as named objects (in boldface)
and organize roles in a hierarchical abstraction.
-- Provide a brief narrative description of what
people do in each role.
-- Identify concerns/issues for people in each role.
<! -- Institution>: One or more institutions (e.g., a
business enterprise, a government agency, a university) provides the
overall enterprise setting and workplace associated with the
development, use, and evolution of <! -- an ISS>. The <! --
Sponsor> serves as the Executive that has committed resources to
support <! -- an ISS> and to encourage its routine usage among
the other people at the <! -- Institution>.
Concern: The institution operates either as a for-profit or
non-profit enterprise. The institution seeks to offer products or
services consistent with its mission and strategic objectives, while at
the same time adhering to all applicable laws and community values. The
institution may disconnect, terminate, or disassociate itself from
activities or operations found to be in conflict with its mission,
objectives, applicable laws and community values.
<! -- End-Users>:
- Download authored content and other <! -- Institution>
event information from <! -- an ISS>
- Create and upload (asynchronous or synchronous) messages and
(user) information
Concerns:
- <! -- End-Users> are encouraged by <! -- Sponsor> to
use <! -- an ISS> to download content, communicate and discuss
content with other <! -- End-Users> and <! -- Authors> as a
way to learn more about the content. End-users may include other users
previously affiliated with the <! -- Institution>, such as
"alumni".
<! -- Authors>:
- Create content for course(s), then send it to <! --
Publishers>> for edit and upload into <! -- an ISS>
- Create content for course(s), then upload it into <! -- an
ISS>
- Download existing content for course(s) from <! -- an ISS>,
edit it, then upload edited content back into <! -- an ISS>
Concerns:
- <! -- Authors> are encouraged by <! -- Sponsor> to
use <! -- an ISS> to create, upload, edit and download content
for <! -- Institution> courses.
<! -- Sponsor>:
- Promote usage of <! -- an ISS> by <! -- Authors>,
<! -- End-Users>, <! -- Publishers>.
- Create/edit content guidelines for <! -- Authors> or <!
-- End-Users>
Concerns:
- Fund the development, usage and maintenance of <! -- an
ISS> at <! -- Institution>.
- Delegate responsibility to manage <! -- an ISS> operations
to <! -- Institution> <! -- IS development staff>.
- Promote the existence and capabilities of <! -- an ISS> to
other institutions and users to bring more recognition, funding, and
end-users to <! -- Institution>.
<! -- Publishers>:
- Receive content from <! -- Authors> (via email, fax or
paper), edit if needed, then upload content into <! -- an ISS>
- Check content to see if minimum content object(s) has been
entered.
Concern: Assist <! -- Authors> in getting content into
<! -- an ISS>
<! -- IS System Development Staff>:
- Develop, operate and maintain the <! -- an ISS> system
hardware, software and (data) network services. Develop, operate and
maintain the logical and physical data models and repository that
organize, store and retrieve content as part of <! -- an ISS>.
Concerns:
- Organize and provide centralized IS support and online content
management services for all <! -- an ISS> users.
- Help <! -- Authors>, <! -- End-Users>, <! --
Publishers> and <! -- Sponsor> in their use of <! -- an
ISS> and its components.
<! -- an ISS> Role Hierarchy
Processes for <!
-- an ISS>
Guidelines/Notes:
- Insert information for your project between the
<tags> associated with each item
- Identify processes as named objects (in boldface)
and organize processes in a hierarchical abstraction.
<Process-Identifier>
</Process-Identifier>
- Provide a brief narrative description of how the
process is performed.
<Narrative> </Narrative>
- Name of the person who created the
first/original version of the process specification
<Author> </Author>
- A timestamp in the form,
year/month/day/hour/minute (e.g., 2001/10/12/21:00), to designate when
the process specification was last updated.
<Version> </Version>
- Name of the person who last created or modified
the version of the process specification associated with the timestamp
value.
<Last-Modified-By> </Last-Modified-By>
- Identify the People roles associated with the
Process
<People-Roles> </People-Roles>
- Identify the Objects (using name of object
class) that are manipulated by the Process
- Input Objects <Input-Objects>
</Input-Objects>
- Output Objects <Output-Objects>
</Output-Objects>
- Specify the Process in steps that associate what
People perform what actions (relations/verbs) on what Objects using
what System Components.
- Describe the Normal scenarios.
- Check for and handle Exception scenarios.
- Check for Errors as the first step in a process.
<Process> </Process>
- Identify the System Components that support the
Process
<Process-System-Components>
</Process-System-Components>
- A generic specification process template follows
on the next page. Copy and reuse (specialize--fill in the blanks) it
for each specification process in your project.
System Process Specification Template: Copy and reuse as
needed; then insert your project-specific information between the
beginning <tag> and ending </tag>.
<Process-Identifier>
</Process-Identifier>
<Narrative> </Narrative>
<Author> </Author>
<Version> </Version>
<Last-Modified-By> </Last-Modified-By>
<People-Roles> </People-Roles>
<Input-Objects> </Input-Objects>
<Output-Objects> </Output-Objects>
<Process> </Process>
<Process-System-Components>
</Process-System-Components>
System Specification of the following
Processes
<Process_Identifier>
Use <! -- an ISS> to Manage
<! -- Institution> Content
</Process-Identifier>
<Narrative>
<! -- Institution> <! -- End-Users>, <! --
Authors>, <! -- Publishers>, and <! -- IS development
staff> use <! -- an ISS> to access, browse/download,
edit/update content associated with <! -- Institution> courses.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- Institution>, <! -- End-Users>, <! --
Authors>, <! -- Publishers>, and <! -- IS development
staff>, <! -- Sponsor>
</People-Roles>
<Input-Objects>
content objects
</Input-Objects>
<Output-Objects>
views (copies) of content objects
</Output-Objects>
<Process>
All users (people) use <! -- an ISS> to organize, store and
retrieve content object types approved by users and implemented by
<! -- IS Development Staff>
- (Exception): Only users who are authorized to access (login) to
<! -- an ISS> can access or manage its contents
- User error: Users identities (at login) that are not
recognized or authorized do not get to access content managed by <!
-- an ISS>
- System error: If <! -- an ISS> server is not
available, authorized users cannot access its content
</Process>
<Process-System-Components>
All <! -- an ISS> system components in operation.
</Process-System-Components>
Return to System Process
Specifications
<Process_Identifier>
Create Content, Edit and
Upload it into <! -- an ISS>
</Process_Identifier>
<Narrative>
<! -- Authors> create high-quality content that they
edit/upload into <! -- an ISS> for access by <! --
End-Users> or others at <! -- Institution>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- Authors>
</People-Roles>
<Input-Objects>
content objects
</Input-Objects>
<Output-Objects>
views (copies) of content objects
</Output-Objects>
<Process>
- <! -- Authors> create (insert) new content into content
representation (created by <! -- IS Development Staff>) or edit
(update) existing content already created by an <! -- Authors>.
- <! -- Authors> can transmit the content they create to
<! -- Publishers> for edit and upload into <! -- an ISS>,
else <! -- Authors> upload their content into <! -- an ISS>
- <! -- Authors>/staff can only upload one type of content at
a time into <! -- an ISS>
- (Exception) <! -- an ISS> will allow existing content to
be copied from one content object to another without upload.
- <! -- Authors> can only edit (update) content they have
individually created
- (Exception) <! -- Authors> may copy and paste content
created by other <! -- Authors> from one part of <! -- an
ISS> into their content.
- User error: <! -- an ISS> cannot verify if content
uploaded is correct. User is responsible for correctness of content
- System error: <! -- an ISS> will not allow content
edit/upload if the <! -- an ISS> DBMS is not available.
</Process>
<Process-System-Components>
<! -- Authors> can select any tools available to them to
create content. <! -- Authors> can edit content entered and
stored within a Database Management System or Network File Server
incorporated within <! -- an ISS> via an Input Object content
form accessed with a Web (client) Browser, by directly editing the
content in the form.
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Edit, Upload and Check Content
for <! -- Authors>
</Process-Identifier>
<Narrative>
<! -- Publishers> edit and upload content that <! --
Authors> have created and forwarded to them to post in <! -- an
ISS>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- Publishers>, <! -- Authors>
</People-Roles>
<Input-Objects>
content objects
</Input-Objects>
<Output-Objects>
views (copies) of content objects
</Output-Objects>
<Process>
- <! -- Authors> can transmit the content they create to
<! -- Publishers> for edit and upload into <! -- an ISS>
- <! -- Publishers> can upload one type of content at a time
into <! -- an ISS>
- (Exception) <! -- an ISS> will allow existing content to
be copied from one content object to another without upload.
- User error: <! -- an ISS> cannot verify if content
uploaded is correct. Users are responsible for correctness of content
- System error: <! -- an ISS> will not allow content
edit/upload if the <! -- an ISS> DBMS is not available
</Process>
<Process-System-Components>
<! -- Publishers> can select any tools available to them to
edit content created by <! -- Authors>. <! -- Publishers>
can edit content entered and stored within a Database Management System
or Network File Server incorporated within <! -- an ISS> via an
Input Object content form accessed with a Web (client) Browser, by
directly editing the content in the form.
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Download Content for Examination or
Review
</Process-Identifier>
<Narrative>
<! -- End-Users>, <! -- Publishers>>, and <! --
Authors> regularly browse/download content for courses posted in
<! -- an ISS>. The <! -- Sponsor> and <! -- IS
development staff> may less frequently download content from <!
-- an ISS>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- End-Users>, <! -- Publishers>, <! --
Authors>, <! -- Sponsor> and <! -- IS development staff>
</People-Roles>
<Input-Objects>
Content navigation selection commands (e.g., mouse clicks on
hyperlinked content, pull-down menu item selection, check box
selection)
</Input-Objects>
<Output-Objects>
views (copies) of selected content objects
</Output-Objects>
<Process>
- Users (<! -- Authors> and <! -- End-users>) can
search and download course content:
- for content <! -- Authors> have created; or
- for messages or personal info. entered by <! --
End-users>; or
- (Exception) from content designated for sharing by all <! --
Authors> (content and linked materials)
- User error: <! -- an ISS> will not allow access to
content except as allowed by <! -- Sponsor> policy
System error: <! -- an ISS> will not allow search or
download of <! -- an ISS> content if the <! -- an ISS> DBMS
is unavailable.
</Process>
<Process-System-Components>
Web (client) Browser, <! -- an ISS> Web server, Database
Management System, Network File Server.
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Upload messages or personal
information
</Process-Identifier>
<Narrative>
<! -- End-Users> are encouraged to upload/post messages using
<! -- Asynchronous messaging system> or <! -- Synchronous
messaging system> that can be browsed/downloaded by other users of
<! -- an ISS>. <! -- Authors> may also upload personal
information for storage within and dissemination from <! -- an
ISS>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- End-Users>, <! -- Authors>
</People-Roles>
<Input-Objects>
Messages (text), file attachments, input submission selection
commands (e.g., mouse clicks on button)
</Input-Objects>
<Output-Objects>
views (copies) of message content, file attachments in client
display
</Output-Objects>
<Process>
- <! -- End-users> can download, update, then upload personal
information for sharing with other users.
- <! -- End-users> (end-users) can upload messages for
sharing with other <! -- End-users> at any time.
- (Exception): <! -- End-users> can send and receive
messages from other <! -- End-users> via <! -- an ISS>,
without uploading these messages into <! -- an ISS>
- User error: <! -- an ISS> cannot verify if content
uploaded is correct in any sense. User is responsible for correctness
of content
- System error: <! -- an ISS> will not allow content
edit/upload if the <! -- an ISS> DBMS is not available
</Process>
<Process-System-Components>
Separate or embedded <! -- Asynchronous messaging system>,
<! -- Synchronous messaging system> client (peer).
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Do Email
</Process-Identifier>
<Narrative>
All users can send and receive Email content and file attachments,
either from within or external to <! -- an ISS>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- End-Users>, <! -- Publishers>, <! --
Authors>, <! -- Sponsor> and <! -- IS development staff>
</People-Roles>
<Input-Objects>
Email content, email file attachments
</Input-Objects>
<Output-Objects>
copies (views) of Email content, email file attachments
</Output-Objects>
<Process>
- Any registered user can access internal or external email systems
via <! -- an ISS> to create, upload, download, update then upload
messages for other users at any time.
- <! -- an ISS> does not manage or store email messages or
message services
- (Exception): Users can create, upload, download, update then
upload email messages via <! -- an ISS>, without uploading these
messages into <! -- an ISS>.
- User error: Users cannot use <! -- an ISS> to
manage or keep track of personal/private email messages or message
content
- System error: An email server may fail to send or receive
email messages with or without notifying email users
- (Exception) Email servers will notify users if sent mail cannot
be delivered
</Process>
<Process-System-Components>
An Email system external to, or accessed from within, <! -- an
ISS>, and an Email client for reading, writing and sending Email
content.
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Do User Messaging
</Process-Identifier>
<Narrative>
<! -- Authors> can request <! -- End-users> to engage in
sending and receiving message between one another in order to conduct a
shared discussion or review of some designated content topic.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- End-users>, <! -- Authors>
</People-Roles>
<Input-Objects>
Messages (text), file attachments, messaging input submission
selection commands (e.g., mouse clicks on button)
</Input-Objects>
<Output-Objects>
views (copies) of message content, file attachments in client
display
</Output-Objects>
<Process>
- <! -- Authors> can request <! -- End-users> in their
courses to download or upload messages via a <! -- Asynchronous
Messaging System>or <! -- Synchronous Messaging System>
- <! -- Authors> or <! -- End-users> can
download/upload messages for sharing with other <! -- End-users>
at any time.
- (Exception) <! -- Authors> can remove messages from their
<! -- Asynchronous Messaging System>
- User error: Messages that are deleted from a <! --
Asynchronous Messaging System> cannot be retrieved
- User error: <! -- Synchronous Messaging System>
message content is usually not saved by <! -- an ISS>
- System error: <! -- Asynchronous Messaging System>
message content managed by the <! -- an ISS> may be lost if the
<! -- an ISS> Database is not backed-up.
</Process>
<Process-System-Components>
Separate or embedded <! -- Asynchronous messaging system>,
<! -- Synchronous messaging system> client (peer).
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Access other Web Content via
<!-- an ISS>
</Process-Identifier>
<Narrative>
Any user of <! -- an ISS> can navigate from managed content to
access any Web content object through its Web Browser.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- End-Users>, <! -- Publishers>, <! --
Authors>, <! -- Sponsor> and <! -- IS development staff>
</People-Roles>
<Input-Objects>
Web Browser navigation selection commands (e.g., mouse clicks on
hyperlinked content objects).
</Input-Objects>
<Output-Objects>
Views (copies) of Web content objects, Applets downloaded into Web
Browser
</Output-Objects>
<Process>
- <! -- Authors> can create content that contains Web
hyperlinks
- Any user of <! an ISS> can select hyperlinked items within
the content managed by <! -- an ISS> to access objects on the Web
- A selected item is downloaded into the User’s client if the Web
server can retrieve the item.
- (Exception) Users that select hyperlinked content will be
disconnected from <! -- an ISS> after a certain elapsed time,
unless they return to <! -- an ISS>
- User error: <! -- an ISS> will not allow access to
<! -- an ISS> managed content directly from the Web. Access to
content within <! -- an ISS> requires a user login.
System error: <! -- an ISS> may unexpectedly terminate a
user session if a user accesses Web items that attempt to upload
information into <! -- an ISS>, or launch applications unknown to
<! -- an ISS>.
</Process>
<Process-System-Components>
Web (client) Browser, (Optional: Browser plug-ins and Helper
applications), <! -- an ISS> Web server
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Manage <! -- an ISS> Content
</Process-Identifier>
<Narrative>
<! -- IS Development Staff> create, test, and modify (i.e.,
insert, update, delete) logical data models and physical data storage
representations (e.g., Database schemas specified in SQL. Files and
directories for organizing content stored in a networked file server)
that other users employ to insert, update, delete, select or browse
content of interest.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- IS Development Staff>
</People-Roles>
<Input-Objects>
logical data models, physical data storage representations,
repository source code, Web Server servlets (e.g., CGI programs or
scripts), content test cases, and updates to same.
</Input-Objects>
<Output-Objects>
versions of <! -- an ISS> content repository suitable for
either further development, testing, production, or archiving; also
result displays from content test cases or repository error messages.
</Output-Objects>
<Process>
- <! -- IS System Developers> create the representations,
relations, and system components that provide users access to content
managed by <! -- an ISS>.
- <! -- an ISS> is used to organize, store, query, retrieve
or update content that is managed by <! -- an ISS>
- <! -- an ISS> uses a (relational) database management
system to organize, query, retrieve or update content that is stored in
its database
- (Exception) <! -- an ISS> stores data that identifies
content, and controls access to content, stored as files in a networked
file server, or as Web-based content accessed via the Web.
- User error: <! -- an ISS> cannot be used to store
arbitrary files for end-users.
- System error: <! -- an ISS> cannot control updates
to external content accessed via the Web.
</Process>
<Process-System-Components>
<! -- an ISS> content repository, including a Database
Management System, Network File Server, and Web Server.
</Process-System-Components>
Return to System Process
Specifications
<Process-Identifier>
Develop and Test <! -- an ISS>
</Process-Identifier>
<Narrative>
The <! -- an ISS> <! -- IS development staff> are
responsible for developing, testing, and investigating reports of
system anomalies from users of <! -- an ISS> at <! --
Institution>.
</Narrative>
<Author>Walt Scacchi</Author>
<Version>2003/05/12/22:00</Version>
<Last-Modified-By>Walt
Scacchi</Last-Modified-By>
<People-Roles>
<! -- IS Development Staff>
</People-Roles>
<Input-Objects>
logical data models, physical data storage representations, <! --
an ISS> application and repository source code, Web Server servlets
(e.g., CGI programs or scripts), content test cases, Browser client
Applets, and updates to same.
</Input-Objects>
<Output-Objects>
versions of all <! -- an ISS> system components suitable for
either further development, testing, production, or archiving; also
result displays from content test cases or repository error messages.
</Output-Objects>
<Process>
- <! -- IS System Developers> create the representations that
other users utilize to create, insert, update or delete their content.
- <! -- IS System Developers> create, insert, update and
delete content stored in <! -- an ISS> representations to test
its proper operations
- (Exception) <! -- IS System Developers> cannot guarantee
that all functions supported by <! -- an ISS> have been tested.
- (Exception) <! -- IS System Developers> cannot guarantee
that all functions supported by <! -- an ISS> are re-tested every
time any <! -- an ISS> function or operation is modified
(updated).
- User error: <! -- IS System Developers> expect that
users will notify them if users encounter anomalies in <! -- an
ISS> usage.
- System error: <! -- an ISS> system components may
fail to operate correctly even though they have been tested.
</Process>
<Process-System-Components>
Development, test, operational and archived versions of all <! --
an ISS> system components; also all system development and testing
tools available to the <! -- IS Development Staff>.
</Process-System-Components>
Return to System Process
Specifications
ISS Process Hierarchy
Inputs for <! -- an
ISS>
Guidelines/Notes:
-- Identify type of Input as named objects (in boldface)
-- There are many types and kinds of information
content managed by <! -- an ISS>. I identify those Inputs/Outputs
that I have created, used, or seen. Subsequently, there may be other
Inputs/Outputs for <! -- an ISS> that are unknown or unfamiliar
to me, so let me know J .
- Learning Resources -- Syllabi, Case Studies, Research
Papers, Business Plans, Exam Questions and Answers, and other kinds of
learning content.
- Career Resources -- Applications for advanced education
programs, scheduled meetings with industry executives, etc.
- Resources for Sale -- Physical resources that people can
negotiate the price, sell and buy.
- Enterprise-specific resources -- Physical or informational
objects/services (e.g., radiological images) that can be collected and
managed by <! -- an ISS>.
- Messages -- <! -- End-Users> and <! --
Authors> can engage in asynchronous or synchronous communication
through <! -- an ISS>. Asynchronous messaging is supported
through a service called, <! -- Asynchronous messaging system>.
The <! -- Asynchronous messaging system> supports the upload,
posting, and download/browsing of messages in the order they are
received, along message threads. Synchronous messaging is supported
through a <! -- Synchronous messaging system> service similar to
Internet Relay Chat.
- <! -- End-User> personal information -- <! --
End-Users> can enter and update a designated set of personal
information about them (e.g., enrollments, phone number, URL hyperlinks
to personal Web pages) that is managed by <! -- an ISS>. Items
like personal web pages or work-related web pages are not stored within
<! -- an ISS>, but can be accessed on the Web via <! -- an
ISS>.
- User navigation commands -- Users navigate through by
selecting (e.g., "mouse-clicking") items visible as hyperlinks or
pull-down selection menus displayed in client program's user interface.
- <! -- ISS System Development Staff>-only inputs --
<! -- an ISS> developers can enter information that create,
insert, update or delete schemas or content from the <! -- an
ISS> Repository, or its internal database. Similarly, they can
create, insert, update or delete data entry forms (described in HTML or
XML), data presentation displays (using one or more of Active Server
Pages (ASP), HTML, XML, Javascript, etc.) visible through a client
program user interface, or downloadable application programs
("applets"). Last, developers also input, upload and install application
programs (e.g., Common Gateway Interface/CGI programs ("servlets") on
the Apache Web server, SQL programs on the Repository database
management system, and Java applets that are downloaded to a user
client from the Web server on demand).
- Any constraints ("pre-conditions") or business rules that
specify or limit the range of acceptable or exceptional values of an
object's attribute(s) before being accepted as input to a process or
process step.
Outputs for <! --
an ISS>
Guidelines/Notes:
-- Identify types of Output as named objects (in boldface)
- View or copies of any Input object is generally available to
users as Outputs, though access may be restricted by user role.
- Outputs are always formatted and presented in a manner that is
consistent with the look-and-feel associated with <! -- an ISS>,
and its participation in reinforcing the <! -- Institution> brand.
- Any constraints ("post-conditions") or business rules
that specify or limit the range of acceptable or exceptional values of
an object's attribute(s) that may be exported to another program after
processing.
- Client program invocations -- <! -- an ISS> can
respond to a user input or navigational selection by invoking an
application program on the user's computer. For example, <! --
Asynchronous messaging system>, <! -- Synchronous messaging
system>, or applets can be invoked as outputs from <! -- an
ISS>.
- Any program invocation may fail and produce an error message
or failure signal. Thus anywhere a client-side program is invoked,
an system error message/signal may be produced as output. For example,
if an system error is detected, the process may need to only output the
error message, rather than a potentially erroneous process output, so a
post-condition may be used to check/prevent this.
<! -- an ISS> Object Hierarchy
System
components for <! -- an ISS>
Guidelines/Notes:
-- Identify components as named objects (in boldface)
and organize in a hierarchical abstraction.
-- We will limit our attention here to the main
software components of the operational system. Software tools, programs
or platforms employed to support ongoing development, testing and
maintenance of <! -- an ISS> are not included. Furthermore, there
exists some hardware configuration that operates the <! -- an
ISS> server and content repository, but those are unknown to me, at
this time. User clients generally operate on a user's PC, laptop, or
workstation, whether running at home, work or at UCI.
-- Optional: a brief description of each
component is included.
User Clients
- Web browser -- generally Internet Explorer, Version 4.0 or
later (there are some known usage bugs at present in using <! -- an
ISS> with either IE Version 5.0 and 5.5)
- Browser plug-ins: perhaps the most common plug-in is
that associated with the Adobe Acrobat .pdf file reader. When you
download a Web object with a .pdf extension, it generally should invoke
the Adobe Acrobat within your browser window.
- External Helper Applications that are invoked by the
Browser downloading of a registered MIME object type -- for example, if
you access a Web object with the URL, http://www.ics.uci.edu/~wscacchi/SA/Requirements/RichPictures/Catalyst01.ppt
note the object ends with a ".ppt" extension. On MS Windows-based Web
Browsers, such an object triggers the browser to invoke an external
program (the "helper" application) for which objects of this MIME type.
"ppt" is usually registered to invoke the MS PowerPoint application,
either within the browser window (when using Internet Explorer) or
external to the browser (when using Netscape Navigator).
- Applets: application programs that are stored on a Web
server then downloaded and invoked when a user selects a content object
via their client program (e.g., Web Browser) that requires the
processing or results from a separate application program.
- <! -- Synchronous messaging peers> -- <! -- an
ISS> invokes a Internet Relay Chat (IRC) type of program (e.g.,
operating as an applet) that provides its own window user interface,
outside of the Web browser. IRC, Jabber, AIM (AOL Instant Messaging)
and Yahoo Messenger are among the various text-based Chat programs that
are available. Other Chat programs like those from ThePalace.com offer
2D graphics and text chat, while those from Blaxxun.com offer 3D
virtual reality-based Chat capabilities. Other peers may be used for
multi-file transfer (e.g., via FTP), remote processor sharing, telnet,
remote media stream services, etc.
- <! -- Asynchronous messaging system> -- <! --
an ISS> allows users to select another known individual user or
group identified (e.g., all <! -- End-Users> registered in a
<! -- Institution> course) to send email. Once selected, <! --
an ISS> can invoke the email program registered with the Web browser
as the one to launch (invoke) to subsequently send/receive email. <!
-- Asynchronous messaging system> thus runs as in a separate window
(aka, a "control thread"). <! -- an ISS> does not directly import
or manage user email messages.
Content Server
- A Web Server (e.g., Apache, an open source web server
available for use on Windows, Unix, Linux, MacOS, and other operating
systems on networked computers), replies to requests from a user client
for content through <! -- an ISS> by accessing a content
repository, or by accessing content external to <! -- an ISS> via
the Web. <! -- Institution> <! -- IS development staff>
have custom-coded common gateway interface (CGI) programs that
co-operate with Apache to determine whether to access the database
manager within the Content Repository. Otherwise, the request goes to
the Web for accessing remote Web content (e.g., following a URL
hyperlink that displays the ISBN number for a textbook that in turn
retrieves a Web page from amazon.com for the selected book). When <!
-- an ISS> retrieves content from the Web, it drops its connection
to the user client. The user must then go back and refresh/reload the
last page served by <! -- an ISS> to resume their <! -- an
ISS> session. If a sufficient delay before refresh occurs, <! --
an ISS> times out the connection to the user client, and must then
establish a new user session with <! -- an ISS>.
- Application Servlets: these are often small application
programs or Common Gateway Interface (CGI) scripts that encapsulate and
invoke computational processing functions in external applications.
These applications rely on servlets to provide transactions processing
services between user (client) applications (e.g., Web Browser with
content input forms) and the external application (e.g., a legacy DBMS
application).
- Local/Remote Search Engine: an application that indexes
the content and location of every unique text word, graphic image,
picture, sound file, digital video, etc. that is stored and managed by
a local content server or accessible from the Web.
- (Remote) Application Services: application services like
those for merchant banking or credit card processing may be linked to
servlets managed by <! -- an ISS>. The Application Service
Providers (ASPs) who offer these services are responsible for their
ongoing development, enhancement, operation, and overall quality.
Content Repository
- Database Management System: This repository encapsulates
a SQL database when the primary content for courses and information
about <! -- End-Users>, <! -- Authors> and staff is kept.
An ER data model describes the database schemas that define and
logically structure this content.
- Network File Server: Exceptional or unusual content
(e.g., large software application programs used in a class that must be
downloaded by <! -- End-Users>) are not necessarily stored within
the database, but instead may be stored on a network file server that
is visible only to the <! -- an ISS> Content Server. Thus the
content repository incorporates one/more databases, and one/more file
systems (not including the Web or remote networked file servers).