System development, design & implementation

Similar documents
System Implementation

Software Design. Software design is a blueprint or a plan for a computerbased solution for system

Sample Exam. Advanced Test Automation - Engineer

SOFTWARE ANALYSIS & DESIGN TOOLS

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

CS 160: Evaluation. Outline. Outline. Iterative Design. Preparing for a User Test. User Test

University of Babylon / College of Information Technology / Network Department. Operating System / Dr. Mahdi S. Almhanna & Dr. Rafah M.

CS 160: Evaluation. Professor John Canny Spring /15/2006 1

IBM 3850-Mass storage system

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

High Availability through Warm-Standby Support in Sybase Replication Server A Whitepaper from Sybase, Inc.

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Chapter 9: Virtual-Memory

Four Essential Steps for Removing Risk and Downtime from Your POWER9 Migration

Module 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur

Implementing a Statically Adaptive Software RAID System

FDE itc: Encryption Engine (EE) cpp Functional and Assurance Requirements

Unit 29. Installing and Upgrading Software Level 3 Hand Over Data Integrity

SUGGESTED SOLUTION IPCC MAY 2017EXAM. Test Code - I M J

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

Software Design. Levels in Design Process. Design Methodologies. Levels..

3.3 Understanding Disk Fault Tolerance Windows May 15th, 2007

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

10 Things to expect from a DB2 Cloning Tool

Distributed Computing. CS439: Principles of Computer Systems November 20, 2017

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

UNIT-4 Black Box & White Box Testing

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2

Time Sheet Instructions

Modern Systems Analysis and Design. Third Edition. Jeffrey A. Hoffer Joey F. George Joseph S. Valacich. Chapter 17 System Implementation

Crash Course in Modernization. A whitepaper from mrc

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Software Testing CS 408

UNIT-4 Black Box & White Box Testing

Perfect Timing. Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation

University Information Systems. Administrative Computing Services. Contingency Plan. Overview

IA L17 Auto Image Replication, a hands-on experience Hands-On Lab

Chapter 12. File Management

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.

Page 1 of 15. Applicability. Compatibility EACMS PACS. Version 5. Version 3 PCA EAP. ERC NO ERC Low Impact BES. ERC Medium Impact BES

MANAGING FILES: Basic Concepts A database is a logically organized collection of related data designed and built for a specific purpose,

User's Guide. Alpha Five Accounting. Accounting Made Easy. Version 3.0. Copyright BetaSoft LLC - All Rights Reserved

Records Retention Schedule

FDA 483 The Definitive Guide to Responding to FDA 483 and Warning Letters

Systems Analysis and Design in a Changing World, Fourth Edition

1: Introduction to Object (1)

3Lesson 3: Web Project Management Fundamentals Objectives

Introduction: UNCC COE MOSAIC Page 1 of 9

Testing Techniques for Ada 95

1. Let n be a positive number. a. When we divide a decimal number, n, by 10, how are the numeral and the quotient related?

1. The narratives, diagrams, charts, and other written materials that explain how a system works are collectively called

Chapter Two: Program Design Process and Logic

Real-time Protection for Microsoft Hyper-V

Chapter 8: General Controls and Application Controls

Software Quality. Chapter What is Quality?

Terminology. There are many different types of errors and different ways how we can deal with them.

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

TASKS IN THE SYSTEMS DEVELOPMENT LIFE CYCLE

M A I N M E N U B U T T O N. Backing up

STAUNING Credit Application Internet Sales Process with /Voic Templates to Non-Responsive Prospects 2018 Edition

Up and Running Software The Development Process

Darshan Institute of Engineering & Technology Unit : 9

S/W Programming & Languages

Chapter 4 Data Movement Process

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Information Systems Analysis and Design CSC340. XXV. Other Phases

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

EXAM PREPARATION GUIDE

For example, let's say that we have the following functional specification:

Introduction to Deadlocks

Aras Innovator 11. Backup and Recovery Procedures

NFPA Edition

Guideline for Determining the TOE

Test Driven Development (TDD)

ACH Concentration Service User Guide

Operating System Concepts

WHITE PAPER: ENTERPRISE AVAILABILITY. Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management

Chapter 12 Developing Business/IT Solutions

Your FOIA Rights. You have the right to request to inspect or receive copies of public records, or both. 09/23/16

SOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department

Cache-Oblivious Traversals of an Array s Pairs

incontact Workforce Management v2 Scheduler Web Site User Manual

Ch 4 : CPU scheduling

White Paper PRIMERGY RDX Backup and Archiving Solution

UNIT:2. Process Management

WHITE PAPER Application Performance Management. The Case for Adaptive Instrumentation in J2EE Environments

EC121 Mathematical Techniques A Revision Notes

Concurrent VSAM access for batch and CICS

A number of optimizations are already in use by the majority of companies in industry, notably:

Categorizing Migrations

<PROJECT NAME> IMPLEMENTATION PLAN

CS370 Operating Systems

Providing a first class, enterprise-level, backup and archive service for Oxford University

Chapter 2.6: Testing and running a solution

Directory Structure and File Allocation Methods

Notes & Lessons Learned from a Field Engineer. Robert M. Smith, Microsoft

Object Oriented Programming

Software Engineering Software Testing Techniques

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers

CIS 890: Safety Critical Systems

Transcription:

System development, design & implementation Design of software The following are the principle for any software design : Modularity and partitioning : Top down methods are used through out the analysis and design process. The value of using top-down approach, starting at the general levels to gain an understanding of the system and gradually moving down to levels of greater detail. In the moving from top downward each component was exploded into great detail. The modularity and partitioning describe the design of the system as a hierarchy of modules. Coupling : It refers to the strength of the relationship between modules in a system. In general good designers seek to develop the structure of a system sp that one module has little dependence on any other module. Loose coupling minimize the interdependence between modules. One can achieve the same thing in the following ways : - Control the number of parameters passed between modules. - Avoid passing unnecessary data to called modules. - Pass data only when needed. - Maintain superior/subordinate relationship between calling and called module. - Pass data, not control information Several poor design feature should be avoided. Passing too little data can make it impossible to perform the task. Cohesion : It strength the relation within a module. In properly modularized, cohesive systems, the contents of the module are so designed that they perform a specific function and are more easily understood by people than systems designed by other methods. There are four general types of module designed by other method as follows : - The least desirable type of grouping of module contents consists of steps that do not perform any complete function or that do not logically together. In such module the input, output, calculation and file handling activities are done in the same module. - In this the module contents may also be grouped because they logically go together. A module that handles all input or all output operations or one that handles all order processing activities. - Modules that are logically bound are difficult to modify because the cost will be shared for each type of activity. Even the simplest change can affect all types of transactions. A better solution is to separate each type of transaction into its own module.

- Modules contents may also be determined by the data used. A module in which the contents refer to the same data is preferable to one that is developed only on the basis of processing logic. - Functional grouping permits more through testing of module. If changes are needed at a later time, analysts and programmer can quickly determine how the module is constructed and how it processes data and interacts with other modules in the system. The emphasis on reliability and maintainability is constant thorought system development. Span of control : It refers to the number of subordinate modules controlled by a calling module. In general we should seek to have no more than five to seven subordinate modules. On the other hand, excessive span of control meaning a high number of subordinate modules, creates considerable overhead in determining which modules, cerates considerable overhead in determining which module to invoke under certain conditions and in establishing calling sequences to pass data and receive results. Module size : How large should be a program module be? While it is impossible to fix a specific number of instructions, there are useful guidelines to manage module size. In general we should seek design in which the modules focus on a single purpose ate highly cohesive and are loosely coupled. Yet the modules should not too small. The size of module depends on the language used as well. Shared modules : Shared use result from the desire to have a certain function, calculation, or type of processing performed in one place in a system. The system should be designed in such a way that a certain calculation is performed once. Then the module can be shared throughout the system by invoking it from various calling modules. The shared modules minimize the amount of software that must be designed and written. It also minimize the changes that must be made during system maintenance. It reduces the chance of errors. Software design and documentation tools Well designed modular software is more likely to meet the maintenance reliability and testing requirements. There are some specific tools as described below : Structured flowchart : Some time it also called Nassi schneiderman chart, are graphical tolls that force the designer to structure software that is both modular and top-down. It has the following basic elements - Process : Simple processor steps in a program are represented by a rectangular box, the process symbol. This symbol represents initialization of values, input and output activities, and calls to execute other procedures. A name or brief description written in the box states the purpose of the process. - Decision : The decision symbol represents alternative conditions that can occur and that the program must have a manner of handling.

- Iteration : The iteration symbol represents looping and repetition of operations while a certain condition exists or until a condition exists. HIPO chart (Hierarchical Input Process Output Chart) : It is another commonly used method for developing system software. It is developed by IBM. - Purpose : HIPO diagrams are graphics, rather than prose or narrative descriptions of the system. They assists the analyst in answering three ways : (i) (ii) (iii) What does the system or module do? How does it do it? What are the inputs and output? A HIPO description for a system consists of the visual table of contents and functional diagrams. - VTOC : It shows the relation between each of the documents making up a HIPO package. It consists of a hierarchy chart that identifies the modules in a system by number and in relation to each other and gives a brief description of each module. The modules are in increasing detail. Depending on the complexity of the system, three to five levels of modules are typical. Examination Stumain 1.0 Addition/Modification 2.0 Deletion 3.0 Processing 4.0 Report 5.0 Exit Student Addition 2.1 College Addition 2.2 Student Deletion 3.1 College Deletion 3.2 Roll no wise list 5.1 Merit List 5.2 College wise List 5.3 Go back - Functional diagram : There is one diagram for each box into VTOC. Each diagram shows input and output, major processes, movement of data and control points. The illustration in the above figure is an overview of the system, representing the top-level box in VTOC. The number on the lower portion of the diagram indicate where more detail will be found. Some functional diagrams contain other intermediate diagrams. But they also show external data, as well as internally developed data and the step in the procedure where the data used. A data dictionary description can be attached to further explain the data element used in the process.

HIPO diagram are effective for documenting a system. They also aid designers and force them to think about how specification will be met and where activities and components must be linked together. Testing System testing is an expensive but critical process that can take as much as 50 percent of the budget from program development. The common view of testing held by users is that it is performed to prove that there are no errors in a program. Therefore the most useful and practical approach is with the understanding that testing is the process of executing a program with the explicit intention of finding errors, that is making the program fail. The tester who may be an analyst, programmer or specialist trained in software testing. It is actually trying to make the program fail. A successful test then is one that finds an error. Code testing : The code testing strategy examines the logic of the program. To follow this testing method, the analyst develops test cases that result in executing every instruction in the program or module, that is every path through the program is tested. Code testing seems to be an ideal method for testing software. However, even if code testing can be performed in its entirety it does not guarantee against software failures. This testing strategy does not indicate whether the code meets its specifications not does it determine whether all aspects are even implemented. Code testing also does not check the range of data that the program will accept even though when software failures occur in actual use. Special testing : To perform special testing, analyst examines the specifications stating what the program should do and how it should perform under various conditions. Then the test case are developed for each condition or combination of conditions and submitted for processing. By examining the result analyst will determine whether the program is working as per the required specification? This strategies treats the program as if it were a black box. The analyst does not look into the program to study the code and is not concerned about whether every instruction or path through the program tested. In that sense specification test is not complete test. However, the assumption is that, if the program meets the specifications, it will not fail. Neither code nor specification testing strategy is ideal. However the specification testing is more efficient strategy, since it focuses on the way software is expected to be used. Unit test : In unit testing the analyst test the programs making up a system. Unit testing focus first on the modules, independently of one another, to locate errors. This enables the tester to detect errors in coding and logic that are contained within that module alone. Unit testing can be performed from the bottom up, starting with the smallest and lowest level modules and proceeding one at a time. Top down testing as the name implies begins with the upper level modules and continue up to the lower level.

System testing : System testing performs the testing of integration of each module in the system. It also tests to find discrepancies between the system and its original objective, current specifications and system documentation. The primary concern is the compatibility of individual modules. Analyst are trying to find areas where modules have been designed with different specifications for data length, type and data element name. Peak load testing : There are critical times in many systems, particularly online systems. For example, in banking system, analysts want to know what will happen if all tellers sign on at their terminals at the same time before the start of the business day. Will the system handle them one at a time without incident, will it attempt to handle them at once and be so confused that it locks up. And must be restarted. So such type of testing is looking at real situation. Storage testing : Analyst specify a capacity for the system when it is designed and constructed. Capacities are measured in terms of the number of records that a disk will handle or a file can contain. These capacities are linked to disk space and the size of indices, records keys and so on. Storage testing often requires entering data until the capacity is reached. Comparing the actual and claimed capacities will verify the accuracy of the documentation on the one hand and allow a judgment about actual capacity at the same time. Many of the live systems are not tested in these way, then after implementing the system when it is in running mode, after few days user will realize that the system is not capable to handle the volume of data in master file as well as transaction file. Performance time testing : when analysts are developing a design, their concerns are more on reports, inputs, files and processing sequence than on performance time, although this changes with experience. Performance time testing is conduct prior to implementation to determine how long it takes to receive a response to an inquiry, make a backup copy of a file, or send a transmission and receive a response. It also include test runs to time indexing or restoring of large files of the size the system will have during a typical run or to prepare a report. A system that runs well with only a handful of test transactions may be unacceptably slow when fully loaded. Recovery testing : Analyst must always assume that the system will fail and data will be damaged or lost. Even though plans and procedures are written to cover these situations, they also must be tested. By creating a failure or data loss event where the users are forced to reload and recover from a backup copy, analysts can readily determine whether recovery procedures are adequate. The best designed plans usually are adjusted or augmented after this test. Procedure testing : Documentation and run manuals telling the user how to perform certain functions are tested quite easily by asking the user to follow them exactly through a series of events. Analyst concentrate on the major and critical details of a systems design and include them in the documentation. They also pay attention to the little details. This type of testing not only shows where they are needed but also where they are wrong, that is where actions suggested in the documentation do not match those that must actually be taken to make the system run.

Verification and validation Like testing verifications is also intended to find errors. It is performed by executing a program in a simulated environment. Validation refers to the process of using software in a live environment in order to find errors. Verification test is some times called the alpha test. The feedback from the validation phase generally produce changes in the software to deal with errors and failures that uncovered. Then as set of user sites is selected that puts the system into use on a live basis. These beta test site use the system in day-to-day activities. They process live transactions and produce normal system output. The system is live in every sense of the word. Validation may continue for several months. During the course of validation the system, failure may occur and the software will be changed. Continued use may produce additional failures and the need for still more changes. Conversion methods (Implementation methods) There are four methods of handling a systems conversion as follow : Parallel systems : The most secure method of converting from an old to new system is to run both systems in parallel. In this method user continues their work in old system as well as in the new system at the same time. In this method the failure of the computerized new system will cause any problem to the organization. The parallel system approach doubles the cost. Direct conversion : It converts from the old to the new system directly. Sometimes over a weekend or even overnight, the old system is used until a planned conversion method suggested by the vendor. There are no parallel activities. If the analyst must make the change and wants to ensure that the new system fully replaces the old one so that, user don not rely on the previous methods, direct cutover will accomplish this goal. It requires careful planning. Training session must be scheduled and maintained. The installation must on time. Pilot approach : When new systems also involve new techniques or drastic changes in organization performance, the pilot approach is often preferred. In this method a working version of the system is implemented in one part of the organization, such as a single work area or department. The users in this area typically know that they are piloting a new system and that changes can be made to improve the system. When the system is deemed complete, it is installed throughout the organization, either all at once or gradually. This approach has the advantages of providing a sound proving ground before implementation. Phase in method : It is used when it is not possible to install a new system throughout an organization all at once. The conversion of files, training of personnel or arrival of equipment may force the staging of the implementation over a period of time, ranging from weeks to months. Some users will begin to take advantage of the new system before others.