The Internet Encyclopedia (Volume 3)

(coco) #1

P1: 61


Nyberg WL040/Bidgoli-Vol III-Ch-11 July 11, 2003 11:49 Char Count= 0


GLOSSARY 143

Microsoft (MacCormack, 1991), decompose a product
into several subcomponents or “microprojects” that con-
tribute to the overall functionality. Delivery of an early
prototype requires that critical functionalities can be de-
veloped early, before all product functions are in place.
This presupposes an ability to decompose the system into
functional modules, which can be replaced by dummy
code or simulated behavior before full implementations
are available. In order to manage the complexity intro-
duced by parallel development of different modules and
different product releases, strong version control is nec-
essary. Effective version control involves the use of a ver-
sion control system (e.g., CVS, 2002) to manage and track
updates to the source code, along with a test process that
promotes global coherence of the overall product during
parallel development. Thesynchronize and stabilizemodel
developed by Microsoft (Cusamano & Selby, 1997) re-
quires frequent synchronization and testing of the entire
system under development. Intermediate testing is most
effective when developers receive feedback as quickly as
possible after a system update (MacCormack, 1991).

CONCLUSION
Prototyping is an important part of software engineering.
Building a prototype can be an effective way to build cus-
tomer consensus on requirements, gain clarity on the de-
tails of a complex architecture, determine the look and
feel of a Web site, and alleviate the technical risk associ-
ated with emerging technologies. Although e-commerce
developers are under pressure to produce working sys-
tems quickly, the use of an incremental prototyping model
helps to improve the quality of delivered systems by un-
covering defects and performance problems earlier in
the development cycle. An iterative Web life-cycle model
(such as Pressman’s WebE process) involves all stakehold-
ers early in the development process and gives explicit
emphasis to content design and creation, which are a dis-
tinguishing (and challenging) characteristic of Web appli-
cations. A continuous prototyping effort can begin with
content and navigation prototyping, followed by proto-
typing on an end-to-end architecture. At each step of the
way, the existing requirements and design can be evalu-
ated and updated to better reflect the emerging consen-
sus about what the system should do, and how it should
do it. Flexible development models, evolutionary proto-
typing, and component-based software development are
important trends for ongoing and future development of
e-commerce systems.

GLOSSARY
Analysis An activity in the software life-cycle that iden-
tifies and specifies the data objects and operations in a
particular problem domain.
CRM (customer relationship management) The busi-
ness process that captures and stores information
about the customer, including preferences, past and
present orders, business relationships, etc.
Content The information conveyed by a Web site, such
as company information, product information, news
releases, order history, and user preferences.

Design An activity in the software life-cycle that identi-
fies and specifies a set of software modules that will be
used to implement the data objects and operations in
a given problem domain.
ERP (enterprise resource planning) The global man-
agement of business processes such as procurement,
administration, project management, sales force au-
tomation, product development, and order fulfill-
ment.
Evolutionary prototyping A prototyping effort that
produces a software system where some (or all) of the
modules can be reused as part of a full-scale, deploy-
able application.
Java An object-oriented programming language that is
often used to implement e-commerce software sys-
tems.
Life cycle The entire set of activities surrounding the
conception, design, creation, testing, deployment, and
long-term maintenance of a software system.
Problem domain A term used to describe the elements
of the software operating environment, including
users, maintainers, legacy systems, and interactions
between users and the system.
Prototyping The creation of an initial version of a
software system, often with limited functionality, to
support problem analysis, requirements definition, in-
terface design, etc.
Requirements The formal elements of a problem defi-
nition that must be satisfied by a software system; these
can include functional capabilities, performance capa-
bilities, platform capabilities, integration capabilities,
etc.
Software architecture A description of how a set of
software modules will be deployed, how they interact
with each other, how they will be installed on various
hardware devices, and how they will interact with ex-
isting systems and users.
Software complexity A measure of how difficult a soft-
ware system is to design, implement, and deploy; sys-
tems that have a greater number of functional require-
ments, interactions with users, communications with
legacy systems, etc. tend to be more complex.
Software evolution The process of maintaining a soft-
ware system from initial deployment through retire-
ment from active use; evolution involves updates to
support operating system changes, changing user re-
quirements, performance criteria, etc.
Software obsolescence Reached when a software sys-
tem no longer meets the changing requirements of its
users and can no longer be extended or maintained in
a cost-effective manner.
Technical risk The uncertainty inherent in the use of
new technology that has not been widely tested or in
the novel use of existing technology in a new problem
domain.
Throwaway prototyping A prototyping effort that pro-
duces a software system that should not be reused as
part of a deployable application.
UML (unified modeling language) A graphical nota-
tion for analysis and design models that unambigu-
ously specify the requirements and design elements for
a software system.
Free download pdf