System Analysis & Design Last Note
System Analysis & Design Last Note
10
DESIGNING INPUT, OUTPUT & USER
INTERFACE
Unit Structure
10.1 Introduction
10.2 Output Design
10.3 Input Design
10.4 User Interface
10.5 Golden rules of Interface Design
10.6 Summary
10.1 INTRODUCTION :
For example:
Mainframe printers: high volume, high speed, located in the data centre
Remote site printers: medium speed, close to end user.
2
• Turnaround documents trim down the cost of internal
information processing by reducing both data entry and
associated errors.
• Periodic reports have set frequencies such as daily or weekly;
ad hoc reports are produced at irregular intervals.
• Detail and summary reports differ in the former support dayto-
day operation of the business while the latter include statistics
and ratios used by managers to consider the health of
operations.
• Page breaks and control breaks allow for abstract totals on key
fields. Report requirements documents include general report
information and field specifications; print layout sheets present
a picture of what the report will actually look like.
• Page decoupling is the separation of pages into cohesive
groups.
People often receive reports they do not require because the number
of reports received is perceived as a measure of power. Fields on a
report should be selected carefully to provide organized reports,
facilitate 80-column remote printing, and reduce information (data)
overload.
The types of fields which should be considered for business output are:
key fields for access to information, fields for control breaks, fields that
change, and exception fields.
Output can now be more easily tailored to the needs of individual users
because inquiry-based systems allow users themselves to generate ad
hoc reports. An output intermediary can restrict access to key
information and avoid illegal access. An information clearinghouse (or
information centre) is a service centre that provides consultation,
assistance, and documentation to encourage end-user development
and use of applications. The specifications essential to describe the
lOMoARcPSD|13 98489 1
3
output of a system are: data flow diagrams, data flow specifications,
data structure specifications, and data element specifications.
• Output Documents
• Printed Reports
• External Reports: for use or distribution outside the
organization; often on pre-printed forms.
• Internal Reports: for use within the organization; not as "pretty",
stock paper, greenbar, etc.
• Periodic Reports: produced with a set frequency (daily, weekly,
monthly, every fifth Tuesday, etc.)
• Ad-Hoc (On Demand) Reports: unbalanced interval; produced
upon user demand.
• Detail Reports: one line per transaction.
Review Reports: an overview.
• Exception Reports: only shows errors, problems, out-ofrange
values, or unexpected conditions or events.
10.3 INPUTDESIGN
4
• A data input specification is a detailed description of the
individual fields (data elements) on an input document together
with their characteristics (i.e., type and length).
• Be specific and precise, not general, ambiguous, or vague.
(BAD: Syntax error, Invalid entry, General Failure)
• Don't JUST say what's wrong---- Be constructive; propose what
needs to be done to correct the error condition.
• Be positive; Avoid condemnation. Possibly even to the point of
avoiding pejorative terms such as "invalid" "illegal" or "bad."
• Be user-centric and attempt to convey to the user that he or
she is in control by replacing imperatives such as "Enter date"
with wording such as "Ready for date."
• Consider multiple message levels: the initial or default error
message can be brief but allow the user some mechanism to
request additional information.
• Consistency in terminology and wording.
i. Place error messages in the same place on the
screen
ii. Use consistent display characteristics (blinking,
colour, beeping, etc.)
ii. The seven step path that grades the structure of an interactive
system is
a. Greeting screen (e.g., company logo)
5
e. Function screens -- updating or deleting records
f. Help screens -- how to perform a task
g. Escape options -- from a
particular screen or the application
Consider having all entries made at the same position on the screen.
6
3. User instructions
4. Menu list
5. Escape option
6. User response area
7. System messages (e.g., error messages)
xiii. Input verification is asking the user to confirm his or her most
recent input (e.g., "Are you sure you want to delete this
file?")
xiv. Adaptive models are useful because they adapt to the user's
experience level as he or she moves from novice to
experienced over time as experience with the system grows.
lOMoARcPSD|13 98489 1
7
xv. "Within User" sources of variation include: warm up, fatigue,
boredom, environmental conditions, and extraneous events.
xviii. Internal locus of control is making users feel that they are in
control of the system, rather than that the system is in control
of them.
xx. Losing the interactive user can be avoided by using short menu
paths and "You are here" prompts.
8
11
SOFTWARE TESTING STRATEGY
Unit Structure
11.1 Introduction
11.2 Strategic approach to software testing
11.3 Organizing for Software Testing
11.4 A Software Testing Strategy
11.5 Unit Testing
11.6 Integration testing
11.6.1 Top down Integration
11.6.2 Bottom-up Integration
11.7 Regression Testing
11.8 Comments on Integration Testing
11.9 The art of debugging
11.9.1 The Debugging Process
11.10 Summary
11.1 INTRODUCTION :
9
design techniques and testing methods -- should be defined for the
software process.
10
There are often a number of misconceptions that can be erroneously
inferred from the preceding discussion:
That the developer of software should do no testing at all.
That the software should be ‘tossed over the wall’ to strangers
who will test it mercilessly,
That tester gets involved with the project only when the testing
steps are about to begin.
However, the software engineer doesn’t turn the program over to ITG
and walk away. The developer and the ITG work closely throughout a
software project to ensure that thorough tests will be conducted: While
testing is conducted, the developer must be available to correct errors
that are uncovered.
The ITG is part of the software development project team in the sense
that it becomes involved during the specification activity and stays
involved (planning and specifying test procedures) throughout a large
project. However, in many cases the ITG reports to the software quality
assurance organization, thereby achieving a degree of independence
that might not be possible if it were a part of the software engineering
organization.
11
computer software, we spiral inward along streamlines that decrease
the level of abstraction on each turn.
A strategy for software testing may also be viewed in the context of the
spiral (figure above). Unit testing begins at the vortex of the spiral and
concentrates on each unit (i.e, component) of the software as
implemented in source code. Testing progresses by moving outward
along the spiral to integration testing, where the focus is on design and
the construction of the software architecture. Taking another turn
outward on the spiral, we encounter validation testing, where
requirements established as part of software requirements analysis are
validated against the software that has been constructed. Finally, we
arrive at system testing, where the software and other system elements
are tested as a whole. To test computer software, we spiral out along
streamlines that broaden the scope of testing with each turn.
The last high-order testing step falls outside the boundary of software
engineering and into the broader context of computer system
engineering. Software, once validated, must be combined with other
system elements (e.g., hardware, people, and databases). System
testing verifies that all elements mesh properly and that overall system
function/performance is achieved.
11.5 UNIT TESTING
12
11.6 INTEGRATION TESTING
13
paths are built. Breadth first integration incorporates all components
directly sub-ordinate at each level, moving across the structure
horizontally.
M1
M2
M3 M4
M5 M6 M7
M8
1. The main control module is used as a test driver and stubs are
substituted for all components directly sub-ordinate to the main
control module.
2. Depending on the integration approach selected ( i.e., depth or
breadth first), sub-ordinate stubs are replaced one at a time
with actual components.
3. Tests are conducted as each component is integrated.
4. On completion of each set of tests, another stub is replaced
with the real components.
5. Regression testing may be conducted to ensure that new
errors have not been introduced.
The process continues from step 2 until the entire program structure is
built.
14
beginning of top-down testing; therefore, no significant data can now
upward in the program structure. The tester is left will three choices;
The first approach (delay tests until stubs are replaced by actual
modules) causes us to loose some control over correspondence
between specific tests and incorporation of specific modules. This can
lead to difficulty in determining the cause of errors and tends to violate
the highly constrained nature of the topdown approach. The second
approach is workable but can lead to significant overhead, as stubs
become more and more complex. The third approach is called bottom-
up testing.
15
Mc
Ma Mb
D1 D2 D3
Cluster3
Cluster2
Cluster1
16
or for other reasons) do not introduce unintended behaviour or
additional errors.
For instance, suppose you are going to add new functionality to your
software, or you are going to modify a module to improve its response
time. The changes, of course, may introduce errors into software that
was previously correct. For example, suppose the program fragment
x := c + 1 ;
proc (z);
c := x + 2; x:= 3;
works properly. Now suppose that in a subsequent redesign it is
transformed into
proc(z);
c := c + 3;
x:= 3;
in an attempt at program optimization. This may result in an error if
procedure proc accesses variable x.
Finally, we must treat test cases in much the same way as software. It
is clear that such factors as resolvability, reusability, and verifiability
are just as important in test cases as they are in software. We must
apply formality and rigor and all of our other principles in the
development and management of test cases.
17
Selection of an integration strategy depends upon software
characteristics and, sometimes, project schedule. In general, a
combined approach (sometimes called sandwich testing) that uses
top-down tests for upper levels of the program structure, coupled with
bottom-up tests for subordinate levels may be the best compromise.
18
The debugging process will always have one or two outcomes:
1. The cause will be found and corrected, or
2. The cause will not be found.
Testcases
RegressionTest AdditionalTest
Executionofcases
Correction
Suspectedcauses
Result
IdentifyCauses
Debugging
19
It may be difficult to accurately reproduce input conditions
(e.g., a real-time application in which input ordering is
indeterminate).
The symptom may be intermittent. This is particularly
common in embedded systems that couple hardware and
software inextricably.
The symptom may be due to causes that are distributed
across a number of tasks running on different processors.
During debugging, we encounter errors that range from mildly
annoying (e,g., an incorrect output format) to catastrophic (e.g. the
system fails, causing serious economic or physical damage). As the
consequences or an error increase, the amount of pressure to find the
cause also increases. Often, pressure sometimes forces a sort- ware
developer to fix one error and at the same time introduce two more.
10.10 SUMMARY :
Questions:
1. Explain Unit Testing?
Ans: Refer 11.5
2. Explain Integration testing?
Ans: Refer 11.6
3. Explain Regression Testing?
Ans: Refer 11.7
4. Explain Debugging Process in detail?Ans: Refer 11.9.1
lOMoARcPSD|13 98489 1
20
12
CATEGORIES OF TESTING
Unit Structure
12.1 Introduction
12.2 The Testing process and the Software Testing Life Cycle
12.3 Types of Testing
12.4 Testing Techniques
12.5 Black Box and White Box testing
12.6 Black box testing
12.6.1 Black box testing Methods
12.6.2 Advantages of Black Box Testing
12.6.3 Disadvantages of Black Box Testing
12.7 White Box Testing
12.7.1 Code Coverage Analysis
12.7.2 Control Structure testing
12.7.3 Advantages of White Box Testing
12.7.4 Disadvantages of White Box Testing
12.8 Difference between Black Box Testing and White Box
Testing
12.9 Summary
12.1 INTRODUCTION :
In this Chapter, we will learn the testing life cycle of software and also
testing methods like white box testing and black box testing. Also we
trying to cover the sub processes of white box testing and black box
testing methods such as Integration Testing, Unit Testing, Regression
Testing, System Testing and much more.
Every testing project has to follow the waterfall model of the testing
process.
The waterfall model is as given below
lOMoARcPSD|13 98489 1
21
1. Test Strategy & Planning
2. Test Design
3. Test Environment setup
4. Test Execution
5. Defect Analysis & Tracking
6. Final Reporting
Requirement Production
Study Verification
testing
HighLevel Useracceptance
testing Design
LowLevel SystemTesting
Design
Unit
Testing IntegrationTesting
SDLC - STLC
Dynamic Testing
lOMoARcPSD|13 98489 1
22
The kind of verification we do on the software work products before the
process of Compilation and creation of an executable is more of
Requirement review, design review, code review, walkthrough and
audits. This type of testing is called Static Testing. When we test the
software by executing and comparing the actual
& expected results, it is called Dynamic Testing
From the V-model, we see that are various levels or phases of testing,
namely, Unit testing, Integration testing, System testing, User
Acceptance testing etc.
23
Beta Testing: Testing conducted at one or more customer sites by the
end user of a delivered software product system.
To perform these types of testing, there are two widely used testing
techniques. The above said testing types are performed based on the
following testing techniques.
White-box test design allows one to peek inside the "box", and it
focuses specifically on using internal knowledge of the software to
guide the selection of test data. It is used to detect errors by means of
execution-oriented test cases.
24
they aren't hindered by the limitations of a particular one. Some call
this "gray-box" or "translucent-box"
test design, but others wish stop talking About boxes
we'd altogether!!!
During a stress test, the system has to process a huge amount of data
or perform many function calls within a short period of time. A typical
example could be to perform the same function from all workstations
connected in a LAN within a short period of time (e.g. sending e-mails,
or, in the NLP area, to modify a term bank via different terminals
simultaneously).
The aim of recovery testing is to make sure to which extent data can
be recovered after a system breakdown. Does the system provide
lOMoARcPSD|13 98489 1
25
possibilities to recover all of the data or part of it? How much can be
recovered and how? Is the recovered data still correct and consistent?
Particularly for software that needs high reliability standards, recovery
testing is very important.
In field tests users are observed while using the software system at
their normal working place. Apart from general usabilityrelated
aspects, field tests are particularly useful for assessing the
interoperability of the software system, i.e. how the technical
integration of the system works. Moreover, field tests are the only real
means to elucidate problems of the organisational integration of the
software system into existing procedures. Particularly in the NLP
environment this problem has frequently been underestimated. A
typical example of the organisational problem of implementing a
translation memory is the language service of a big automobile
manufacturer, where the major implementation problem is not the
technical environment, but the fact that many clients still submit their
orders as print-out, that neither source texts nor target texts are
properly organised and stored and, last but not least, individual
translators are not too motivated to change their working habits.
lOMoARcPSD|13 98489 1
26
Laboratory tests are mostly performed to assess the general usability
of the system. Due to the high laboratory equipment costs laboratory
tests are mostly only performed at big software houses such as IBM or
Microsoft. Since laboratory tests provide testers with many technical
possibilities, data collection and analysis are easier than for field tests.
Equivalence Partitioning
Black-box technique that divides the input domain into classes of data
from which test cases can be derived. An ideal test case uncovers a
class of errors that might require many arbitrary test cases to be
executed before a general error is observed
• Comparison Testing
lOMoARcPSD|13 98489 1
27
Black-box testing for safety critical systems in which independently
developed implementations of redundant systems are tested for
conformance to specifications. Often equivalence class partitioning is
used to develop a common set of test cases for each implementation.
28
Software testing approaches that examine the program structure and
derive test data from the program logic. Structural testing is sometimes
referred to as clear-box testing since white boxes are considered
opaque and do not really permit visibility into the code.
• Cyclomatic Complexity
The cyclomatic complexity gives a quantitative measure of 4the logical
complexity. This value gives the number of independent paths in the
basis set, and an upper bound for the number of tests to ensure that
each statement is executed at least once. An independent path is any
path through a program that introduces at least one new set of
processing statements or a new condition (i.e., a new edge).
Cyclomatic complexity provides upper bound for number of tests
required to guarantee coverage of all program statements.
• Conditions Testing
lOMoARcPSD|13 98489 1
29
Condition testing aims to exercise all logical conditions in a program
module. They may define:
Relational expression: (E1 op E2), where E1 and E2 are
arithmetic expressions.
Simple condition: Boolean variable or relational expression,
possibly proceeded by a NOT operator.
Compound condition: composed of two or more simple
conditions, Boolean operators and parentheses.
Boolean expression: Condition without
Relational expressions.
• Loop Testing
Loops fundamental to many algorithms. Can define loops as imple,
concatenated, nested, and unstructured.
Examples:
Note that unstructured loops are not to be tested . rather, they are
redesigned.
• Design by Contract (D b C)
DbC is a formal way of using comments to incorporate specification
information into the code itself. Basically, the code specification is
expressed unambiguously using a formal language that describes the
code's implicit contracts. These contracts specify such requirements
as:
Conditions that the client must meet before a method is
invoked.
Conditions that a method must meet after it executes.
Assertions that a method must satisfy at specific points of its
execution
• Profiling
Profiling provides a framework for analyzing Java code performance
for speed and heap memory use. It identifies routines that are
consuming the majority of the CPU time so that problems may be
tracked down to improve performance.
• Error Handling
Exception and error handling is checked thoroughly are simulating
partial and complete fail-over by operating on error causing test
lOMoARcPSD|13 98489 1
30
vectors. Proper error recovery, notification and logging are checked
against references to validate program design.
• Transactions
Systems that employ transaction, local or distributed, may be validated
to ensure that ACID (Atomicity, Consistency, Isolation, Durability).
Each of the individual parameters is tested individually against a
reference data set.
31
An opposite test approach would be to open up the electronics system,
see how the circuits are wired, apply probes internally and maybe even
disassemble parts of it. By analogy, this is called white box testing, To
help understand the different ways that software testing can be divided
between black box and white box techniques, consider the Five-Fold
Testing System. It lays out five dimensions that can be used for
examining testing:
1. People (who does the testing)
2. Coverage (what gets tested)
3. Risks (why you are testing)
4. Activities (how you are testing)
5. Evaluation (how you know you’ve found a bug)
32
Activities: How do you test?
A common distinction is made between behavioural test design, which
defines tests based on functional requirements, and structural test
design, which defines tests based on the code itself. These are two
design approaches. Since behavioural testing is based on external
functional definition, it is often called “black box,” while structural
testing—based on the code internals—is called “white box.” Indeed,
this is probably the most commonly cited definition for black box and
white box testing. Another activitybased distinction contrasts dynamic
test execution with formal code inspection. In this case, the metaphor
maps test execution (dynamic testing) with black box testing, and maps
code inspection (static testing) with white box testing. We could also
focus on the tools used. Some tool vendors refer to code-coverage
tools as white box tools, and tools that facilitate applying inputs and
capturing inputs—most notably GUI capture replay tools—as black box
tools. Testing is then categorized based on the types of tools used.
These contrast with black box techniques that simply look at the official
outputs of a program.
White box testing is concerned only with testing the software product,
it cannot guarantee that the complete specification has been
implemented. Black box testing is concerned only with testing the
specification, it cannot guarantee that all parts of the implementation
have been tested. Thus black box testing is testing against the
specification and will discover faults of omission, indicating that part of
the specification has not been fulfilled.
White box testing is much more expensive than black box testing. It
requires the source code to be produced before the tests can be
planned and is much more laborious in the determination of suitable
input data and the determination if the software is or is not correct. The
advice given is to start test planning with a black box test approach as
lOMoARcPSD|13 98489 1
33
soon as the specification is available. White box planning should
commence as soon as all black box tests have been successfully
passed, with the production of flow graphs and determination of paths.
The paths should then be checked against the black box test plan and
any additional required test runs determined and applied.
Questions:
1. Explain Software Testing Life Cycle in detail?Ans:
Refer 12.2
lOMoARcPSD|13 98489 1
34
13
SOFTWARE TESTING
Unit Structure
13.1 Introduction
13.2 Scope Of Software Testing
13.3 Software Testing Key Concepts
13.4 Software Testing Types
13.5 Software Testing Methodologies
13.6 Software Testing Artifacts
13.7 Available tools, techniques, and metrics
13.8 Summary
13.1 INTRODUCTION:
35
lead to failure of the resultant product and increase in probability of
high risk. In short, software testing has different goals and objectives,
which often include:
1. finding defects;
2. gaining confidence in and providing information about the
level of quality;
3. Preventing defects.
36
finding large number of infrequent defects is
difficult.
Software test type is a group of test activities that are aimed at testing
a component or system focused on a specific test objective; a non-
functional requirement such as usability, testability or reliability.
Various types of software testing are used with the common objective
of finding defects in that particular component.
37
• Acceptance Testing
1. Alpha Testing
2. Beta Testing
38
13.6 SOFTWARE TESTING ARTIFACTS
39
13.7 AVAILABLE TOOLS, TECHNIQUES, AND
METRICS
13.8 SUMMARY:
Software testing is an art. Most of the testing methods and practices
are not very different from 20 years ago. It is nowhere near maturity,
although there are many tools and techniques available to use. Good
testing also requires a tester's creativity, experience and intuition,
together with proper techniques.
lOMoARcPSD|13 98489 1
40
Questions:
1. Explain Software Testing Key Concepts?Ans:
refer
14
IMPLEMENTATION & MAINTENANCE
Unit Structure
14.1 Introduction
14.2 Data Entry and Data Storage
14.3 Date Formats
14.4 Data Entry Methods
14.5 System Implementation
14.6 System Maintenance
14.7 System Evaluation
14.8 Summary
14.1 INTRODUCTION :
41
of items entered. Coding can also help in appropriate sorting of data
during the data transformation process. Additionally, coded data can
save valuable memory and storage space.
A mnemonic is a memory aid. Any code that helps the dataentry person
remembers how to enter the data or the end-user remembers how to
use the information can be considered a mnemonic. Mnemonic coding
can be less arbitrary, and therefore easier to remember, than numeric
coding schemes. Compare, for example, a gender coding system that
uses "F" for Female and "M" for Male with an arbitrary numeric coding
of gender where perhaps "1" means Female and "2" means Male. Or,
perhaps it should be "1" for Male and "2" for Female? Or, why not "7"
for Male and "4" for Female? The arbitrary nature of numeric coding
makes it more difficult for the user.
14.3 DATEFORMATS
42
Remember, however, that the date format you use for storage of a date
value need not be the same date format that you present to the user
via the user interface or require of the user for data entry. While
YYYYMMDD may be useful for the storage of date values it is not how
human beings commonly write or read dates. A person is more likely
to be familiar with using dates that are in MMDDYY format. That is, a
person is much more likely to be comfortable writing the date
December 25, 2001 as "12/25/01" than "20011225."
Tests for validating input data include: test for missing data, test for
correct field length, test for class or composition, test for range or
reasonableness, test for invalid values, test for comparison with stored
data, setting up self-validating codes, and using check digits. Tests for
class or composition are used to check whether data fields are
correctly filled in with either numbers or letters. Tests for range or
reasonableness do not permit a user to input a date such as October
32.
Database
43
your hard disk. These are the kind of files that you can see cataloged
in your directory. Commonly, these days, when we use the word
"database" we are not talking about a collection of this kind of file;
rather we would usually be understood to be talking about a database
management system. And, commonly, people who work in a DBMS
environment speak in terms of "tables" rather than "files." DBMS
software allows data and file relationships to be created, maintained,
and reported. A DBMS offers a number of advantages over file-
oriented systems including reduced data duplication, easier reporting,
improved security, and more rapid development of new applications.
The DBMS may or may not store a table as an individual, distinct disk
file. The software may choose to store more than one table in a single
disk file. Or it may choose to store one table across several distinct
disk files, or even spread it across multiple hard disks. The details of
physical storage of the data are not important to the end user who only
is concerned about the logical tables, not physical disk files.
44
training and documentation. Finally, if you expect your development
skills to improve over time, you need to conduct a review of the lessons
learned.
In any large system, errors and changes will occur, the key is to identify
them and determine which ones must be fixed immediately. Smaller
problems are often left to the software maintenance staff. Change is
an important part of MIS. Designing and implementing new systems
often causes changes in the business operations. Yet, many people
do, not like changes. Changes require learning new methods, forging
new relationships with people and managers, or perhaps even loss of
jobs. Changes exist on many levels: in society, in business, and in
information systems. Changes can occur because of shifts in the
environment, or they can be introduced by internal change agents. Left
to themselves, most organizations will resist even small changes.
Change agents are objects or people who cause or facilitate changes.
Sometimes it might be a new employee who brings fresh ideas; other
times changes can be mandated by top-level management.
Sometimes an outside event such as arrival of a new competitor or a
natural disaster forces an organization to change. Whatever the cause,
people tend to resist change.
45
obvious technique, where the old system is simply dropped and the
new one started. If at all possible, it is best to avoid this technique,
because it is the most dangerous to data. If anything goes wrong with
the new system, you run the risk of losing valuable information because
the old system is not available.
If you design a system for a chain of retail stores, you could pilot test
the first implementation in one store. By working with one store at a
time, there are likely to be fewer problems. But if problems do arise,
you will have more staff members around to overcome the obstacles.
When the system is working well in one store, you can move to the
next location. Similarly, even if there is only one store, you might be
able to split the implementation into sections based on the area of
business. You might install a set of computer cash registers first. When
they work correctly, you can connect them to a central computer and
produce daily reports. Next, you can move on to annual summaries
and payroll.
Eventually the entire system will be installed.
Let us now see the Process of Implementation which involves the
following steps:
Internal or outsourcing (trend is "outsourcing")
Acquisition: purchasing software, hardware, etc.
Training: employee (end-users) training, technical staff training. SQL
training in 5 days costs around $2000, + airplane, hotel, meals, rental
car ($3000 to 5000); evaluation
Testing:
a bigger system requires more testing time a good career opportunity
for non-technical people who wish to get in the door in the IT jobs.
Documentation:
backup
knowledge management system
Actual Installation
Conversion: Migration from the old system to a new system
Maintenance: very important; if you don't maintain the new system
properly, it's useless to develop a new system. monitor the system,
lOMoARcPSD|13 98489 1
46
Upgrade,
Trouble-shooting,
Continuous improvement
Once the system is installed, the MIS job has just begun. Computer
systems are constantly changing. Hardware upgrades occur
continually, and commercial software tools may change every year.
Users change jobs. Errors may exist in the system. The business
changes, and management and users demand new information and
expansions. All of these actions mean the system needs to be
modified. The job of overseeing and making these modifications is
called software maintenance.
The pressures for change are so great that in most organizations today
as much as 80 per cent of the MIS staff is devoted to modifying existing
programs. These changes can be time consuming and difficult. Most
major systems were created by teams of programmers and analysts
over a long period. In order to make a change to a program, the
programmer has to understand how the current program works.
47
An important phase in any project is evaluating the resulting system.
As part of this evaluation, it is also important to assess the
effectiveness of the particular development process. There are several
questions to ask. Were the initial cost estimates accurate? Was the
project completed on time? Did users have sufficient input? Are
maintenance costs higher than expected?
48
Feasibility comparison Cost and budget Compare actual costs to
budget estimates Time estimates Revenue effects Was project
completed on time?
Maintenance costs Does system produce additional revenue?
Project goals how much money and time are spent on changes? Does
system meet the initial goals of the project?
User satisfaction how do users (and management) evaluate the
system?
System performance
System reliability: Are the results accurate and on time?
System availability: Is the system available continually? System
security: Does the system provides access to authorized users?
Questions:
1. Explain System Implementation in detail?Ans:
refer 14.5
lOMoARcPSD|13 98489 1
49
15
DOCUMENTATION
Unit Structure
15.1 Introduction
15.2 Requirements documentation
15.3 Architecture/Design documentation
15.4 Technical documentation
15.5 User documentation
15.6 Marketing documentation
15.7 CASE Tools and their importance
15.8 Summary
15.1 INTRODUCTION :
50
involved in the production of software: end users, customers, product
managers, project managers, sales, marketing, software architects,
usability experts, interaction designers, developers, and testers, to
name a few. Thus, requirements documentation has many different
purposes.
51
15.3 ARCHITECTURE/DESIGN DOCUMENTATION
52
o Entity Sets and their attributes o Relationships
This is what most programmers mean when using the term software
documentation. When creating software, code alone is insufficient.
There must be some text along with it to describe various aspects of
its intended operation. It is important for the code documents to be
thorough, but not so verbose that it becomes difficult to maintain them.
Several How-to and overview documentation are found specific to the
software application or software product being documented by API
Writers. This documentation may be used by developers, testers and
also the end customers or clients using this software application.
Today, we see lot of high end applications in the field of power, energy,
transportation, networks, aerospace, safety, security, industry
automation and a variety of other domains. Technical documentation
has become important within such organizations as the basic and
advanced level of information may change over a period of time with
architecture changes. Hence, technical documentation has gained lot
of importance in recent times, especially in the software field.
53
same tools used to create the source code to make the documentation.
This makes it much easier to keep the documentation up-to-date.
Unlike code documents, user documents are usually far more diverse
with respect to the source code of the program, and instead simply
describe how it is used.
54
in any particular way, but it is very important for them to have a
thorough index. Consistency and simplicity are also very valuable.
User documentation is considered to constitute a contract specifying
what the software will do. API Writers are very well accomplished
towards writing good user documents as they would be well aware of
the software architecture and programming techniques used. See also
Technical Writing.
1. To excite the potential user about the product and instil in them
a desire for becoming more involved with it.
2. To inform them about what exactly the product does, so that
their expectations are in line with what they will be receiving.
lOMoARcPSD|13 98489 1
55
3. To explain the position of this product with respect to other
alternatives.
4. To completely shroud the function of the product in mystery.
One good marketing technique is to provide clear and memorable
catch phrases that exemplify the point we wish to convey, and also
emphasize the interoperability of the program with anything else
provided by the manufacturer.
56
They are tools which will generate computer screen code from higher
level descriptions such as structured English and decision tables, such
tools are called lower CASE tools
Most tools have a user’s guide which is given as help files along with
the tool
Many have FAQ’s and search capabilities
Details on several open domain tools and what they do is given below.
What the tool does: Smartdraw is a perfect suite for drawing all kinds
of diagrams and charts: Flowcharts, Organizational charts, Gantt
charts, Network diagrams, ERdiagrams etc.
How to use: The built-in tips guides as the drawing is being created.
Tool tips automatically label buttons on the tool bar. There is online
tutorial provided in:
http://www.smartdraw.com/tutorials/flowcharts/tutorials1.htm
http://www.ttp.co.uk/abtsd.html
57
URL: This a free software that can be
downloaded from: http://viu.eng.rpi.edu
What the tool does: The tool helps the users draw a standard data
flow diagram (a process-oriented model of information systems) for
systems analysis.
How to use: Double click on the IBMS icon to see the welcome screen.
Click Any where inside the welcome screen to bring up the first screen.
Under "Tools" menu, select DFD Modelling. The IBMS will pop up the
Data Flow Diagram window. Its menu bar has the File, Edit, Insert,
Font, Tool, Window and Help options. Its tool box on the right contains
10 icons, representing (from left to right and top to bottom) pointer, cut,
data flow, process, external entity, data store, zoom-out, zoom-in,
decompose, and compose operations, respectively.
Left click on the DFD component to be used in the toolbox, key in the
information pertaining to it in the input dialogue box that prompts for
information.
To move the DFD components: Left click on the Pointer icon in the tool
box, point to the component, and hold Left Button to move to the new
location desired in the work area.
To edit information of the DFD components: Right click on the DFD
component. The input dialogue box will prompt you to edit information
of that component.
Levelling of DFD: Use the Decompose icon in the tool box for levelling.
To save the DFD: Under File menu, choose Save or SaveAs. Input the
name and extension of the DFD (the default extension is DFD) and
specify folder for the DFD to be saved. Click OK.
58
contains the requirement specifications and gives a report file with the
same prefix name as the user’s source file and adds an extension of
“.arm”. This report file contains a category called INCOMPLETE that
indicate the words and phrases that are not fully developed.
How to use the tool : On clicking the option Analyze under File menu
and selecting the file that contains the System Requirements
Specifications, the tool processes the document to check if the
specifications are right and generate a ARM report.
What the tool does: The purpose of the tool is to allow the decision
maker to construct and manipulate (systems of) decision tables. In this
construction process, the features available are automatic table
contraction, automatic table optimization, (automatic) decomposition
and composition of tables, verification and validation of tables and
between tables, visual development, and rule based specification.
15.8 SUMMARY :
Questions:
1. Explain Requirements documentation?
Ans: refer 15.2
2. Explain Architecture/Design documentation?
Ans: refer 15.3
3. Explain Technical documentation?
lOMoARcPSD|13 98489 1
59
Ans: refer 15.4
4. Explain User documentation?
Ans: refer 15.5
5. Explain Marketing documentation?
Ans: refer 15.6