• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/145

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

145 Cards in this Set

  • Front
  • Back
System Design
The specification of a detailed computer-based solution
Model-Driven Design
a system design approach that emphasizes drawing system models to document technical and implementation aspects of a system
Modern Structured Design
A system design technique that decomposes the system's processes into manageable components.
Information engineering (IE)
a model-driven and data--centered, but process-sensitive, technique for planning, analyzing, and designing information systems. Primary Tool: data model diagram
Prototyping
a modern engineering based approach to design, an iterative process involving a close working relationship between the designer and the users
* encourages and requires active end-user participation
*Iteration & change are a natural consequence of systems development(prototype evolves through iteration into the required system;
*an active (not passive) model that end users can see, touch, feel and experience.
*a working equivalent to a paper design specification, with one exception - errors can be detected much earlier
*can increase creativity because it allows for quicker user feedback - can lead to better solutions.
* consolidates parts of phases that normally occur one after the other.
-encourages ill-advised shortcuts through the life-cycle
- encourages return to the "code, implement, and repair" life cycle.
- does not negate the need for the systems analysis phases
- cannot completely substitute any prototype for a paper specification
- does not address numerous design issues
Object-Oriented Design
*Newest Design Strategy
attempt to eliminate the separation of concerns about data and process. Used to refine the object requirements definitions identified earlier during analysis and to define design-specific objects.
Rapid Application Development (RAD)
a systems design approach that utilizes structured, prototyping and JAD techniques to quickly develop systems.
Systems Design for In-House Development (Build Solution)
1st: Analyst seeks to design a system that both fulfills requirements and will be friendly to its end users.
2nd: Still very important, the analyst seeks to present clear and complete specifications to the computer programmers and technicians.
First Step - Design the Application Architecture
defines the technologies to be used by (and used to build) one, more or all information systems in terms of their data, processes, interfaces and network components

accomplished by analyzing the data models and process models that were initially created during requirements analysis.
Physical Data Flow Diagram
a process model used to communicate the technical implementation characteristics of an information system.
Input - Classified by 2 characteristics
1. How the data is initially captured, entered and processed
2. the method and technology used to capture and enter the data
Requirements for inputting data into the computer
Source documents, input screens and methods and procedure for getting the data into the computer.
Batch processing
Old style - data about many transactions is collected as a single file (batch file (disk) ) for processing as at one time.
New style - data is processed as soon as it has been keyed
Online processing
a data processing method whereby data about a single transaction is processed immediately
Point of Sale
Sound
Speech
Electromagnetic (radio freq)
Smart Card
Data is almost always processed immediately as a transaction or inquiry.
Optical Mark (oldest form of automatic data capture)
Magnetic Ink (bank checks)
Data is almost always processed as a batch.
Biometric
Unique human characteristics become data. Read by biometric sensors. Primary applications are security and medical monitoring.
Data is Always processed immediately.
Data Capture
Identification and acquisition of new data
Source Document
a form used to record data about a transaction
Data entry
the process of translating data into a computer-readable format.
Remote Batch Processing
A data processing method whereby data is entered online - using online editing techniques - collected as a batch, and processed at a later time. (ie, handheld devices - ups)
ADC - Automatic Data Capture
Optical Mark - (primarily batch processing-oriented) Multiple Choice on exams. Useful when the number of possible data values is relatively limited and highly structured.
Optical Charater Rec (OCR) - Depends on the handwriting of the user. Bar Coding is the most prevalent form.
Magnetic Ink - credit cards, checks, building security access control and employee attendance tracking.
Electromagnetic Transmission - radio frequency to identify physical objects. Public transportation tracking and control, tracking manufactured products, tracking animals.
Smart Cards - ability to store a massive amount of info. they contain a microprocessor, memory circuits and a battery.
Biometric - based on unique human chars or traits. The most accurate and reliable means for identification - Security systems.
Internal Controls
requirement in all computer-based systems. Ensure that the data input to the computer is accurate and that the system is protected against accidental and intentional errors and abuse - including fraud.
Internal Control guidelines
1. number of inputs monitored

2. Ensure that the data is valid
Validation of Data
1. Existence Checks: determine that all required fields have actually been entered.
2. Data-type Checks - the correct type of data is input Alpha vs numeric
3. Domain checks - the input data for each field falls within the legitimate set or range of values defined for field. (Upper limit on pay range)
4. Combination checks - determine whether a known relationship between two fields is valid. ie, Pontiac - Firebird
5. Self-checking digits - determine data entry errors on primary keys -- calculated by applying a formula - modulus 11.
6. Format checks - compare data entered against the known formatting requirements for that data. IE, leading zeros.
Input Controls are necessary (in addition to validity checks) because:
most applications are networked. Erroneous data is both a network traffic bottleneck and a detractor for transaction throughput and response time.
GUI - Graphical User Interface
Provide a more user-friendly interface. Also present more complex design issues. Controls = widgets for building a user interface - included in most contemporary application development environments.
Repository-based Programming
programming approach that shares controls and code via the repository.
Common GUI Controls for Input
Text Box - most common
Radio Button
Check Box
List Box
Drop-Down List
Combination Box
Spin Box
Buttons`
Text Box
Most common control, consists of a rectangular-shape box that is usually accompanied by a caption. Guidelines:
Avoid using abbreviations for captions.
Only the 1st character of the captions text should be capitalized.l
Location of caption is significant - user should be able to clearly associate the caption with the text box - caption should be located to the left of the actual box, or left aligned immediately above the box.
the caption should be followed by a colon to help the user visually distinguish the caption from the box.
Radio Button
Provide the user with an easy way to quickly identify and select a particular value from a value set.
Circle is located to the left of the textual description of the value choice.
When a choice is selected, any default or previously selected choice's circle is deselected.
Most appropriate when a use may be expected to input data that has a limited predefined set of mutually exclusive values.
Should present the alternatives vertically aligned and left-justified to aid the user in browsing.
Adequate spacing should be used to help visually distinguish the choices.
Group of choices should be visually grouped to set them off from other input controls appearing on screen.
Grouping should also contain a appropriate meaningful caption.
Should not be used for yes/no or on/off.
Check Box
Consists of a square box followed by a textual description of the input field for which the user is to provide the yes/no value.
provide user flexibility - keyboard or mouse input.
Yes = checked box, No - blank box.
When grouping - arrange the group of check box controls so that they are aligned vertically and left-justified.
If necessary, align horizontally and be sure to leave adequate space to visually separate the controls from one another.
Provide appropriate sequencing for input fields according to their textual description - when number of check box controls is large - sequencing should be alphabetical.
List Box
Rectangular and contains one or more rows of possible data values.
Requires that the user select a data item's value from a list of possible choices.
Large number of possible values = scroll bars for navigating.
Guidelines:
Should have a descriptive caption - Avoid abbreviations, capitalize only the first word.
Should be followed by a colon to help user visually distinguish the caption from the box.
Caption should appear left justified immediately above the actual list box.
Should contain a highlighted default value.
Width of the box should be large enough for most characters of fixed-length input data to be entered and viewed by user.
Length should allow for at least three choices and be limited in size to containing about seven choices.
Choosing between Radio Button and List Box
Decision is normally driven by the number of possible values for the data item and the amount of screen space available for the control.
Drop-Down List
Should be used in cases where the data item has a large number of predefined values and screen space availability prohibits the use of a list box.
Guidelines:
Same as list boxes except - placement of the caption is generally either left-aligned immediately above the selection field portion of the control or located to the left of the control.
Combination Box
Combo Box - combines the capabilities of a text box and list box. Gives the user the flexibility of entering a data item's value or selecting its value from a list
Most appropriatey used where screen space is limited and it is desirable to provide the user with the option of selecting a value from a list or typing a value that may or may not appear as an option in the list.
Guidelines:
Same as drop-down lists
Spin Box
consists of a single-line text box followed immediately by two small buttons. Top button has an arrow pointin up, an an arrow pointing down. . Allows the user to enter data directly into the associated text box or to select a value by clickinhg on the buttons to scroll or "spin" through a list of values. the buttons have a unit of measure associated with them. increase by one, decrease by one...
Buttons
Serve several purposes - allow a user to commit all of the data to be processed, or cancel a transaction, or get help. Can be used to navigate between instances of the same form.
Advanced Input Controls
Drop-down Calendar
Slider edit calendar
Masked edit control
Ellipsis control
Alternate Numeric Spinner
Internet Hyperlink
Check List Box
Check tree list box - (hierarchically organized into a treelike structure)
Input Design Process
1. Identify system inputs and review logical requirements.
2. Select appropriate GUI controls.
3. Design, validate and test inputs using some combination of : a) Layout tolls (sketches, charts, case tools)
b) Prototyping tools
4. If necessary, design the source document.
Expert User
an experienced user who has spent considerable time using specific application programs. Want to be able toaccomplish their task in as few actions and keystokes as possible.
Novice User
Sometimes called a casual user.
Les experienced compuiter user who will generally use a computer on a less frequent, or eve occasional basis - may be viewed as discretionary. Novice users also usually graduate to expert users through practice & experience.
Interface Elements Causing Difficulty:
Excessive use of computer jargon and acronyms
Nonobvious or less-than-intuitive design
Inability to distinguish between alternative actions
Inconsistent problem-solving approaches
Design Inconsistency
Commandments of User Interface Design
1. Understand your users and their tasks.
2.Involve the user in interface design.
3. Test the system on actual users.
4. Practice iterative design.
Human Engineering Guidelines
* The system user shoud always be aware of what to do next - should always provide instructions on how to proceed, back up, exit, and the like.
1. Tell the user what the system expects right now. (A simple message - ready, type command...)
2. Tell the user that data has been entered correctly. (Can be as simple as moving the cursor to the next field)
3. Tell the user that data has not been entered correctly. (Short, simple messages about the correct format)
4. Explain to the user the reason for a delay in processing. (Simple messages - sorting, please stand by...)
5. Tell the user that a task was completed or was not completed. (A message - printing complete...)
* Screen should be formatted so that the various types of information, instructions, and messages always appear in the same general display area.
* Messages, instructions, or information should be displayed long enough to allow the system user to read them.
* Use display attribtes sparingly. (blinking, highlighting)
* Default values for fields and answers to be entered by the user should be specified.
* Anticipate the errors users might make.
* With respect to errors, a user should not be allowed to proceed withouth correcting an error.
* If the user does something that could be catastrophic, the keyboard should be locked to prevent any further input, and an instruction to call the analyst or technical support should be displayed.
Dialogue
The overall flow of screens and messages for a application.

The tone and terminology of a dialogue are very important human factors in user interface design.
Guidelines for Tone of Dialogue:
* Use simple, grammatically correct sentences
* Don't be funny or cute!
* Don't be condescending.
Guidelines for Terminology used in Dialogue:
* Don't use computer jargon.
* Avoid most abbreviations
* Use simple terms.
* Be consistent in your use of terminology.
* Carefully phrase instructions - use appropriate action verbs. Recommendations: Select or choose instead of pick; Type, not enter - (enter may be confused with the enter key); use press, not hit or depress to refer to keyboard actions.
* When referring to the on-sreen mouse cursor, use the term position the cursor, not point the cursor.
Platform Independence
Instead of writing a user interface for each anticipated computing platorm and OS, you write it for one or two browsers. Most browsers run in many operating systems making it possible to design a user interface that is less dependent on the computer itself.
Paging
Displaying a complete screen of characters at a time.
Scrolling
Displaying information up or down a screen - one line at a time.
Function Keys
A series of special keyboard keys used to program special operations.
Mouse
A device used to cause a pointer to move across a display screen - most common pointer.

The most common user interface is graphical.
Menu driven
a dialogue strategy that requires that the user select an action from a menu of choices
Oldest & most commonly employed dialogue strategy - predate GUIs.
Can be logically grouped into high-level options to simplify presentation.
No technical limit to how deeply hierarchical menus can be nested.
The deeper the nesting, the greater the need for direct paths to deeply rooted menu options for the expert user
Screen Thrashing
Navigating through multiple levels
Mnemonic
Alt-key plus the underlined letter of a menu
Ellipses
(three dots) indicates that a dialogue box will subsequently appear (pop up) to present additional options or collect additional instructions
Cascading Menu
a named submenu action will have a small arrow indicating yet another submenu
Tear Off Menu
user can select a drop-down menu or cascaded menu, drag it off the menu bar and relocate it elsewhere on the screen - useful if the menu must be continually used.
Pop-up Menu
context sensitive and dependent on a pointing device. Menu that pops up depends on the location of the cursor on the screen. The right-button click will bring up a menu displaying only those actions that apply to whatever is at that cursor location - context sensitive. No visual clue to their presence.
Toolbars
Consist of icons that represent menu shortcuts for actions and commands that tare normally embedded in the drop-down and cascading menus
Docking
applications allow toolbars to be relocated to the left, right, or bottom of the window at the convenience of the user.
Float
Movable menus - within any convenient location inside the window
Hypertext / Hyperlink Menus
Products of contemporary web-based user interfaces. Originally created to navigate within and between Web pages and sites. The word or phrase navigates the user to the associated page (or bookmark in a page.
Instruction-Driven Interfaces
Instead of menus, or in addition to menus, some applications are designed using a dialogue based on an instruction set also called a command language interface. User must learn the syntax of the instruction set.
Three types of Syntax for instruction sets
Language based syntax
Mnemonic syntax
Natural language syntax
Language based syntax
Built around a widely accepted command language that can be used by the user to invoke actions. i.e., Query by Example (QBE) and Structured Query Language (SQL) - DB languages that can be used by the end user to access data & create custom reports.
Mnemonic syntax
Built around commands defined for custom information system applications. Users are provided with a screen console in which they can enter commands that will invoke actions and responses from the computer user. Commands should be meaningful to the user.
Natural language syntax
allows users to enter questions and commands in their native language. The system interprets these commands against a known syntax and requests clarification if it doesn't understand what the user wants.
Question-Answer Dialogue
Primarily used to supplement either menu-driven or instruction-driven dialogues. i.e., Do you want to see all parts? [No]
A droip-down list of alternative answers may accompany each question. Together these questions and answers define a business transaction.
Authentication & Authorization
Guidelines:
- assign privileges to roles, not to individuals.
- For each role, the specific privileges that should be assigned to the role need to be defined. This is needed both to design an appropriate log=-in interface and to functionally specify the complete authentication and authorization security model for the system.
- different users views could actually be applied to customize the user interface or different categories of users.
Ghost
Change the font from black to gray
Complete Help System
Includes a table of contents, numerous instructions, examples, and a thorough index. A well-designed help system will implement a wide range of help elements.

F1 Function key is almost universally accepted as a help request command.
A standard Help menu bar option is commonly used to organize and present different types and levels of help.
Tool tip controls provide pop-up help associated with specific tools and object icons. They appear when the user momentarily positions the cursor over the ion or object on the screen.
Appropriate for all icons because the user interface designer can never be3 assured that the image or label appearing on an icon is going to be meaningful to the system user.
Two additional & common help features are help wizards and help agents(assistants)
Help Wizard
guides the users through complex processes by presenting a sequence of dialogue boxes that require user input and system feedback:
1. the dialogue usually includes a series of instructions or questions for the user to respond to.
2. contains explanations to aid in the user's understanding and decision making.
3. Wizard also provides a button for requesting more detailed help in completing the task.
4. The "Next" button suggest addtiional or subsequent steps to be supported by the wizard (usually changes to "Finish" once a sequence of dialogue boxes is complete.)
Agent
Reusable software object that can operate across different applications and networks. i.e., Microsoft's "Animated Paper Clip".
Natural Language Processing Technology
Natural language processing technology allows the user to write an inquiry in natural language phrases that are interpreted by the agent to present the most likely help responses.
Over-riding theme for developing a good help system
Designer should anticipate system user errors. The designer should always provide the system user with help to resolve the error.
After leaving any help session, users should always be returned to where they were in the application before requesting or receiving the help.
Today's graphical environments create an emphasis on developing an overall system that blends well into the user's workplace environment.
Most GUI-based application development environments can be easily used to construct nonfunctional prototypes of user interface screens.
User Interface Design Process
1. Chart the user interface dialogue.
2. Prototype the dialogue and user interface
3. Obtain user feedback.
4. If necessary, return to step 1 or 2.
Chart the Dialogue
Screens typically occur in a specific order, may be able to toggle among the screens. Some screens may appear only under certain conditions, Some screens may occur repetitively until some condition is fulfilled.
State Transition Diagram (STD)
A tool used to depict the sequence and variation of screens that can occur during a user session.(road map)
Note: Can become quite large. Common to partition the diagram into a set of separate simpler and easier to read diagrams.
Obtain User Feedback
Exercising (or testing) the user interface is a key advantage of all the prototyping environments - means that system users experiment with and test the interface design before extensive programming and actual implementation of the working system.
Systems Construction
The development, installation and testing of system components.
Systems Implementation
the delivery of the system into production - day-to-day operation
Trigger for the Systems Construction phase
the approval of the physical design specifications resulting from the design phase.
Purpose of the Construction Phase
To develop and test a functional system that fulfills business and design requirements and to implement the interfaces between the new system and existing production systems.
Tasks in Construction Phase
1. Build and test networks (if necessary)
2. Build and test Databases
3. Install and test new Software Packages (if necessary)
4. Write and Test New Programs.
Build and Test Networks
Network requirements - established during the analysis phase of systems analysis.
Developed distributed data and process modes - using these technical deign specs to implement the network architecture for an information system is a prerequisite for the remaining construction and implementation activities.
Build and Test Databases
Task must immediately precede other programming activities because databases are the resources shared by the computer programs to be written.
Primary input - Database schema
Final product of task is an unpopulated database structure for the new database.
Install and Test new Software Packages
The first task in the life cycle specifically related to the applications programmer.
Main input is the new software packages and documentation that are received from the system vendors.
System Analyst - clarifies requirements.
System Designer clarify integration requirements and program documentation to be used in the testing phase.
Principle deliverable - installed and tested software package that is made available in the software library.
Write and Test New Programs
Primary inputs - the technical design statement, plan for programming and test data developed during systems design.
Check for possible reusable software components that available in the library.
Principal deliverables are the new programs and reusable software components that are placed in the software library.
Also results in program documentation that may need to be approved by a quality assurance group.
Stub Test
a test performed on a subset of a program
performed on individual events or modules of a program - the testing of an isolated subset.
Unit or Program testing
testing in which all the events and modules that have been coded and stub tested for a program are tested as an integrated unit - the testing of an entire program.
Systems Testing
A test performed on an entire system - ensures that application programs written and tested in isolation work properly when they are integrated into the total system.
A system test plan should be developed and followed for testing the system.
One or more test scripts are developed for each functional and nonfunctional requirement.
Implementation Phase
1. Conduct System Test
2. Prepare Conversion Plan
3. Install Databases
4. Train Users
5. Convert to New System
Implementation Phase
Functional system from the construction phase is the key input to the implementation phase.
The deliverable of the implementation phase is the operational system that will enter the operation and support stage of the life cycle.
1. Conduct System Test
Conduct a final system test - facilitated by the systems analyst.
Primary inputs to this task include the software packages, custom-built programs and any existing programs comprising the new system.
May result in required modifications to programs prompting the return to a construction phase task.
2. Prepare Conversion Plan
System Analyst will develop a detailed conversion plan.
Plan will identify databases to be installed, end-user training and documentation that need to be developed, and a strategy for converting from the old system to the new system. (facilitated by Proj Mgr.)
Triggered by the completion of a successful system test.
Principal deliverable is the conversiuon plan that will identify databases to be installed, end-user training and documentation that need to be developed and a strategy for converting from the old system to the new system.
3. Install Databases
(System builders play primary role)
Special programs will have to be written to populate the new databases. Existing data from the production databases, coupled with the database schema models and database structures for the new databases, will be used to write computer programs to populate the new databases with restructured existing data.
Principal deliverable is the restructured existing data that has been populated in the databases for the new system.
4. Train Users
System users must be trained and provided with documentation(user manuals) that guide them through using the new system.
Group training is generally preferred - encourages group-learning possibilities
Principal deliverable is user training and documentation.
5. Convert to New System
Analyst completes this task by carefully carrying out the conversion plan. - Detailed installation strategies to follow for converting from the existing to the new production information system.
Also involves completing a system audit.
Commonly Used Installation Strategies:
1. Abrupt cut-over
2. Parallel conversion
3. Location Conversion
4. Staged conversion
1. Abrupt cut-over
the old system is terminated and the new system is placed into operation.
High Risk approach - may still be major problems that won't be uncovered until the system has been in operation for at least one business period.
2. Parallel conversion
both the old and the new systems are operated for some time period. Ensures that all major problems in the new system have been resolved before the old system is discarded.
3. Location Conversion
Same system will be used in numerous geographical locations, conversions are completed at one location first. As soon as that site has approved the system, it can be farmed to the other sites. (beta test site)
4. Staged conversion
Variation on the abrupt and parallel conversions. Staged conversion is based on the version concept introduced earlier. Each successive version of the new system is converted as it is developed.
Systems Acceptance test
Final system test performed by end users using real data over an extended time period.
An extensive test that addresses three levels of acceptance testing - verification testing, validation testing and audit testing.
Verification testing
runs the system in a simulated environment using simulated data. (Alpha Testing)
Primarily looking for errors and omissions re: end-user design specs
Validation Testing
Runs the system in a live environment using real data.
(Beta testing)
Items tested in Validation Testing:
a. Systems performance - throughput and response time for processing adequate to meet a normal processing workload.
b. Peak workload processing performance - handle the workload during peak processing periods
c. Human Engineering test - system as easy to learn and use as anticipated? adequate? Can enhancements be deferred until after the system has been placed into operation?
d. Methods and procedures test - during conversion, the methods and procedures for the new syustem will be put to their first real test. Methods and procedures may have to be modified if they prove to be awkward and inefficient from the end user's standpoint.
e3. Backup and recovery testing - all backup and recovery procedures should be tested.l - includes simulating a data loss disaster and testing the time required to recover from that disaster. also a before and after comparison.
Audit testing
Certifies that the system is free of errors and is ready to be placed into operation.
Purpose of the implementation phase
to smoothly convert from the old system to the new system
Systems Support
The ongoing technical support for users, as well as the maintenance required to fix any errors, omissions or new requirements that may arise.
Systems Operation
the day-to-day, week-to-week, month-to-month and year-to-year execution of an information system's businesses processes and application programs.
An operational system is frequently called a production system.
Repository
A data store of accumulated system knowledge - system modes, detailed specifications and any other documentation that has been accumulated during the system's development. The knowledge is reusable and critical to the production system's ongoing support
Program Library
A data store of all application programs. The source code for these programs must be maintained for the life of the system. Almost always, the software-based librarian will control access to the stored programs as well as track changes and maintain several previous versions of the programs in case a problem in a new version forces a temporary use of a prior version
Business Data
Includes all the actual business data created and maintained by the production application programs. Includes conventional files, relational databases, data warehouses and any object databases.
Systems Support
Cannot sensibly be decomposed into actual phases that a support project must perform. Consists of four ongoing activities:
1. Program Maintenance
2. System Recovery
3. Technical Support
4. System Enhancement
1. Program Maintenance
Fixing defects, or bugs - errors that slipped through the testing of software.
2. System Recovery
A system failure may result in a program "crash" and/or loss of data. Human error or a hardware or software failure may have caused this. Systems analyst or tech support may be called on to recover the system - restore the files and databases and to restart the system.
3. Technical Support
Users will eventually require additional assistance - unanticipated situations arise, new users are added
4. System Enhancement
New requirements may include new business problems, new business requirements, new technical problems, or new technology requirements.
Causes of Bugs
* Poorly validated requirements
* Poorly communicated requirements
* Misinterpreted requirements
* Incorrectly implemented requirements or designs.
* Simple misuse of the programs.
Fundamental Objectives of System Maintenance
* To make predictable changes to existing programs to correct errors that were made during systems design or implementation.
* To preserve those aspects of the programs that were correct and to avoid the possibility that "fixes" to programs cause other aspects of those programs to behave differently.
* to avoid, as much as possible, degradation of system performance
* To complete the task as quickly as possible without sacrificing quality and reliability. Few operational information systems can afford to be down for any extended period.
Knowledge/Data
System maintenance may improve input data editing or correct a structural problem in the database.
Processes
Most system maintenance is program maintenance.
Communication
System maintenance may involve correcting problems related to how the application interfaces with the users or another system.
Validate the Problem
First task!
Attempt to validate the problem by reproducing it.
Respect the possibility that the bug is real and that it will eventually be validated. - User should be coached to immediately document the exact sequence of events in detail or to call the analyst.
Bug is Real
1. The context of the bug should be examined by studying all relevant documentation (system knowledge) in the repository.(don't try to fix what you don't understand.)
2.All subsequent maintenance should be performed on a copy of the program. The original program remains in the program library and can be used in production systems until it is fixed.
Benchmark the Program
The programs should be executed and tested to establish a baseline against which the modified programs and applications can later be measured.
Define Test Cases
1. Past test data may exist in the repository as a form of system knowledge.It should be re-executed to establish or verify the benchmark.
2. Test data can be automatically captured using a software-testing tool (automatically stored - test script)
Limitations slowing Program Understanding
- Poor program structure
- Unstructured logic
- Prior maintenance
- Dead Code
- poor or inadequate documentation
Essential/Recommended Testing
Unit testing (essential) ensures that the stand-alone program fixes the bug without undesirable side effects to the program.
System Testing (essential) ensures that the entire application, of which the modified program was a part, still works.
Regression Testing (recommended) extrapolates the impact of the changes on program and application throughput and response time from the before-and-after results using the test data and current performance.
Failed candidates are returned for debugging.
Version Control
A process whereby a librarian (usually software-based) keeps track of changes made to programs. Allows recovery of prior versions of the programs if new versions cause unexpected problems.
System Recovery Activities
1. In many cases the analyst can sit at the user's terminal and recover the system.
2. the analyst must contact systems operations personnel to correct the problem.
3. May have to call data administration to recover lost of corrupted data files or databases.
4. the analyst may have to call network administration to fix a local, wide or internet working problem.
5, the analyst may have to call technicians or vendor service representatives to fix hardware problems.
6. In some cases the analyst will discover that a possible software bug caused the crash. the analyst attempts to quickly isolate the bug and trap it.
Day-To-Day Assistance With:
New business problems - or anticipated business problem
New business requirements
New technology requirements
New Design Requirements
System Enhancements
Reactive in nature.
Fix it when it breaks, or when users or managers request change. It extends the useful life of an existing system by adapting it to inevitable change.
Software Metrics
Mathematically proven measurements of software quality and productivity.
Control Flow Knots
The number of times logic paths cross one another. - A program should have ZERO control flow knots.
Cycle complexity
The number of unique paths through a program. The fewer the better!
Three Distinct Types of Program Restructuring
Code Reorganization
Code Conversion
Code Slicing
Code Reorganization
Restructures the modular organization and/or logic of the program. Logic may be restructured to eliminate control flow knots and reduce cycle complexity.
Code Conversion
Translates the code from one language to another. Typically this translation is from one language version to another.
Code Slicing
The most intriguing program-reengineering option. Many programs contain components that could be factored out as subprograms. If factored out, they would be easier to maintain. More importantly, they would be reusable.
Adaptive Maintenance
Maintenance in response to new business problems, new information requirements or new ideas for enhancements.