Professional Documents
Culture Documents
01SAE
01SAE
The software engineering process describes the steps it takes to develop the
system. We begin a development project with the notion that there is a problem to
be solved via automation. The process is how you get from problem recognition to
a working solution.
The process followed by a project team during the development life cycle of an
application should be orderly, goal-oriented, enjoyable, and a learning experience.
Part of the reason for continuing problems in application development, like those
of NY Bank, is that we are constantly trying to hit a moving target. Both the
technology and the type of applications needed by businesses are constantly
changing and becoming more complex.
Organizations may know the right things to do, but it is hard to change habits and
cultures from the old way of doing things, as well as get users to agree with a new
sequence of events or an unfamiliar format for documentation.
Application Characteristics
Data
Data are the raw material (numbers and letters) that relate to each other to form
fields (attributes), which define entities. (see Figure 1-2).
An entity is some definable class of people, concrete things, concepts, or events
about which an application must maintain data. Examples of each entity type are
customers, warehouses, departments, or orders, respectively. Data and entities
can be described independently of their processing rules. Examples of data
definition aids are entity relationship diagrams (see Figure 1-3) and third normal
form linkage diagrams (see Figure 1-4).
Data requirements in applications include input, output, storage, and retrieval.
INPUT: Data inputs are data that are outside the computer and must be entered
using some input device. Devices used for getting data into the computer include,
for example, keyboard,3 scanner, and transmission from another computer.
OUTPUT: Output is the opposite of input; that is, outputs are data generated to
some media that is outside the computer. Common output devices include
printers, video display screens, other computers, and microform equipment (e.g.,
microfiche, microfilm).
STORAGE AND RETRIEVAL: Data storage describes a physical, machine-
readable data format for data, while data retrieval describes the means you use to
access the data from its storage format.
Data storage require two types of data definition: logical and physical. The logical
definition of data describes the way a user thinks about data, that is, the logical
data model. These definitions might be Relational logical data models are
arranged in tables of rows and columns. Hierarchic logical data models define
one-to-many relationships in a tree-shaped model that resembles an organization
chart. Network logical data models define many-to-many relationships.
Object-oriented logical data models (OOLDMs) combine hierarchic and network
logical models to form a lattice-structured hierarchy. OOLDMs are more specific in
identifying classes and subclasses of objects in a hierarchy.
A class is a set of data entities that share the defining characteristic. For instance,
the class customer might have subclasses for cash and credit customers. The
lattice network arrangement allows relationships to remain unconstrained by a
data management software conceptualization. The physical definition of data, or
physical data Supplies Parts FIGURE 1-3 Entity-Relationship Example model,
describes its layout for a particular hardware device. Physical layout is constrained
by intended data use, access method, logical model, and storage device.
Processes
A process is the sequence of instructions or conjunction of events that operate on
data. The results of processing include changes to data in a database,
identification of data for display at a terminal or printing on paper, generated
commands to equipment, generated program commands, or storage of new facts
or rules inferred about a situation or entity.
Constraints
Processing is subject to constraints, which are limitations on the behavior and/or
processiI1g of entities. Constraint types are prerequisite, post-requisite, time,
structure, control, or inferential.
PREREQUISITES: Prerequisite constraints are preconditions that must be met for
processing to occur. They usually take the form of 'if ... then ... else' logic in a
program (see Figure 1-9).
POSTREQUISITES: Post-requisite constraints are conditions that must be met for
the process to complete successfully. They also take the form of 'if ... then ... else'
logic, but the logic is applied after processing is supposedly complete.
TIME: Time constraints may relate to one or more of the following:
1. Timing of processing,
2. Time allotted for a process,
3. External time requirements,
4. Synchronous processing,
5. Response time for external interface processing.
STRUCTURE: Structural constraints describe the relationships between data,
meta-data (knowledge about data), knowledge and meta-knowledge (system
generated knowledge) in applications (see Figure 1-10)
Structural constraints determine what type of inputs and outputs may be allowed,
how processing is done, and the relationships of processes to each other.
CONTROL: Control constraints relate to automated maintenance of data
relationships
INFERENCES: The word (infer) means to conclude by reasoning, or to derive from
evidence.
Inferential constraints are limits on the reasoning ability of the application and its
ability to generate new facts from previous facts and relationships.
First, inferential constraints may relate to the application.
Second, inferential constraints may relate to the type of knowledge in the system
and limits on that knowledge
Third, inferential constraints may relate to the language in which the system is
developed
Interfaces
There are three types of interfaces: human, manual, and computerized Human
interfaces are the means by which an application communicates to its human
users.
Manual interfaces are reports or other human-readable media that show
information from the computer.
An automated interface is data that is maintained on computer-readable media for
use by another application. Application interfaces tend to be non-standardized and
are defined by the data-sharing organizations.
Application Responsiveness
application responsiveness is how long it takes the system to act on and respond
to user actions. Responsiveness of an application reflects the fundamental design
approach as batch-oriented, on-line, or real-time.
Batch applications are applications in which transactions are processed in
groups. Transactions are gathered over time and stored together. At some
predefined time, the batch is closed and processing on the complete batch is
done. Transactions are processed in sequence one after the other.
On-line applications provide interactive processing with or without immediate file
update. Interactive processing means there is a two-way dialogue between the
user and the application that takes place during the processing, On-line
processing means that programs may be resident in memory and used
sequentially by numerous transactions/events without reloading.
Real-time applications process transactions and/or events during the actual time
that the related physical (real world) process takes place. The results of the
computer operation are then available (in real time) to influence or control the
physical process
Types of Applications
There are four types of business applications: transaction, data analysis, decision
support, and expert applications, in addition, a fifth type of application: embedded,
is defined briefly to distinguish computer science-software engineering from IS-
software engineering.
Transaction-oriented applications, also known as transaction processing
systems (TPS), support the day-to-day operation of a business and include order
processing, inventory management, budgeting, purchasing, payables, accounting,
receivables, payroll, and personnel.
They are characterized as applications for which the requirements, the data, and
the processing are generally known and well-structured.
By known, we mean that the function is repetitious, familiar and unambiguous.
By well- structured, we mean that the problem is able to be defined completely and
without ambiguity. The requirements are identifiable by a development team.
Data analysis applications support problem solving using data that are
accessible only in read-only mode. Data analysis applications are also known as
query applications.
A query is some question asked of the data. SQL, the standard query language for
database access, poses questions in such a way that the user asks what is
desired but need not know how to get it. The computer software figures out the
optimal access and processing methods, and performs the operations it selects a
language, such as SQL, is a declarative language, because you 'declare' what to
do, not how to do it. Declarative languages are relatively easy to learn and use,
and are designed for use by non-information systems professionals. Queries are
one of three varieties:
1. Interactive, one-of-a-kind. These are assumed to be thrown away after use.
2. Stored and named for future modification and re-execution.
3. Stored and named for frequent unchanging execution.
Query applications support an evolving concept called data warehouse, a storage
scheme based on the notion that most data should be retained on-line for query
access. A warehouse stores past versions of major database entries, transaction
logs, and historical records.
Decision support applications (DSS) seek to identify and solve problems. The
difference between decision support and query applications is that query
applications are used by professionals and managers to select and summarize
historical data like the example above, while DSSs are used by professionals and
managers to perform what-if analysis, identify trends, or perform mathematical /
statistical analysis of data to solve unstructured problems. Data for DSSs usually
are generated by transaction applications.
Unstructured problems are ones for which not all information is known, and if it is
known, the users may not know all of the relationships between data. An example
of a structured problem is to answer the question: "What is the cost of a 5% salary
increase?" An example of an unstructured problem is "What product mix should
we manufacture next year?" The difference between these two kinds of questions
is that the structured problem requires one query of known data to develop an
estimate, while the product mix question requires economic, competitive,
historical, and product development information to develop an estimate.
Because the information may not all be known, DSS development uses an
iterative problem-solving approach, applying mathematical and statistical modeling
to the decision process. Corrected and/or supplemental data are fed back into the
modeling processes to refine the analysis.
Executive information systems (EIS) are a spinoff from DSS. EIS applications
support executive decision making and provide automated environmental
scanning capabilities.
EIS integrate information from external information databases and internal
applications to provide an automated scanning and modeling capability. The major
difference in EIS from DSS then, is the incompleteness, potential inaccuracy, and
ambiguity of the data.
Group decision support systems (GDSS) are a special type of DSS
applications. GDSS provide an historical memory of the decision process in
support of groups of decision makers who might be geographically dispersed.
GDSS focus more on the group interaction processes with little or no data
modeling or statistical analyses.
GDSS typically provide such functions as:
1. Anonymous recording of ideas,
2. Democratic selection of group leaders,
3. Progressive rounds of discussion and voting to build group consensus
Expert systems applications (ES) are computer applications that automate the
knowledge and reasoning capabilities of one or more experts in a specific domain.
ESs analyze characteristics of a situation to give advice, recommend actions, or
draw conclusions by following automated reasoning processes
The four major components of an ES are knowledge acquisition subsystem, the
knowledge base, the inference engine (or rule base as it is sometimes called), and
explanation subsystem
The knowledge acquisition subsystem is the means by which the knowledge base
is built.
In general, the more knowledge, the 'smarter' the system can be. The knowledge
acquisition subsystem must provide for initial loading of facts and heuristic rules of
thumb, and be easy to use in adding knowledge to the knowledge base.
The knowledge base is the codified automated version of the expert user's
knowledge and the rules of thumb (also called heuristics) for applying that
knowledge.
ESs use reasoning and inference to develop multiple probable outcomes for a
given situation. Several solutions may be generated when there is incomplete
information or partial reasoning.
The last major component of ES is the ability to explain its reasoning to the user.
The explanation subsystem provides the ability to trace the ES's reasoning.
Tracing is important so the user can learn from the experience of using the
system, and so he or she may determine his or her degree of confidence in the
ES's results.
Embedded systems are applications that are part of a larger system.
Embedded applications development has been the province of computer science
educated developers rather than information systems (IS) educated developers.
Applications and Businesses
There are three levels of organizational decision making: operational, managerial,
and strategic. Each level has different information needs and, therefore, different
application needs. At the operational level, the organization requires information
about the conduct of its business. Decisions deal with daily operations.
The information at the operational level is current, accurate, detailed, available as
generated, and relates to the business of the organization.
The types of applications that support operational level decisions and information
are transaction processing applications (see Figure 1-17). Query applications for
current operational data are other applications that support operational level
decisions.
The information needs for managerial control are mostly internal information, can
be detailed or summary, and should be accurate.
Decisions made for managerial control concentrate on improving the existing ways
of doing business, finding and solving problems, and take a medium-range (e.g.,
quarter or year) view of the company's business. The types of applications that
support these data needs are data analysis applications, DSS, and GDSS (see
Figure 1-17) At the strategic level, the types of decisions take a broad· view of the
business and ask, for instance, what businesses should we be in? What products
should we produce? How can we improve market share? These questions require
external information from many sources to reach a decision. The types of
applications that support incomplete, ambiguous, external information needs best
are executive information systems (EIS) (see Figure 1-17). EISs are specifically
designed to accommodate incomplete, ambiguous information.
PROJECT LIFE CYCLES
There are several different ways to divide the work that takes place in the
development of an application. The work breakdown in general comprises the
project's life cycle. If you asked five SEs to describe the life cycle of a typical
computer application, you would get five overlapping but different answers. Life
cycles discussed here are the most common ones: sequential, iterative, and learn-
as-you-go.
Sequential Project Life Cycle
You should remember from systems analysis that a sequential project life cycle
(SPLC) starts when a software product is conceived and ends when the product is
no longer in use.
Phases in a SPLC include
• Initiation,
• problem definition,
• feasibility, Initiation
• requirements analysis, Definition
• Conceptual design, Analyse
Design
• Design, Test
• Code/unit test, Installation
• testing, Operation
• Installation and checkout, Retirement
• Operations and maintenance,
• Retirement.
These SPLC phases are more appropriate to business than to military/government
applications because, in the government, the first four phases (initiation' definition,
feasibility, and functional requirements definition) are usually completed by a
different organization than that of the implementers.
In contrast, business IS are typically initiated by a user department requesting that
a system be built by an MIS department. The need for an IS is typically motivated
by some business situation: a change in the method of business, in the legal
environment, in the staffing/support environment, or in a strategic goal such as
improving market competitiveness. We call these SPLC phases a 'Waterfall'
approach to applications because the output of each phase feeds into the next
phase, while phases are modified via feedback produced during the verification
and validation processes (see Figure 1-18).
INITIATION: Project initiation is the period of time during which the need for an
application is identified and the problem is sufficiently defined to assemble a team
to begin problem evaluation.
FEASIBILITY: Feasibility is the analysis of risks, costs and benefits relating to
economics, technology, and user organizations.
Economic feasibility analysis elaborates costs of special hardware, software,
personnel, office space, and so forth for each implementation alternative. In
technical feasibility analysis, alternatives for hardware, software, and general
design approach are determined to be available, appropriate, and functional. The
benefits and risks of alternatives are identified.