Introduction to System Analysis and Design

Introduction to System Analysis and Design
INTRODUCTION
Systems are created to solve problems. One can think of the systems approach as an organized way of dealing with a problem. In this dynamic world, The subject System Analysis and Design, mainly deals with the software development activities.
OBJECTIVES
After going through this lesson, you should be able to:
understand a system
understand the different phases of system developments life cycle
know the components of system analysis
know the components of system designing
Defining A System
A collection of components that work together to realize some objective forms a system. Basically there are three major components in every system, namely input, processing and output.
PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE
Let us now describe the different phases and the related activities of system development life cycle in detail.
(a) System Study
System study is the first stage of system development life cycle. This gives a clear picture of what actually the physical system is? In practice, the system study is done in two phases. In the first phase, the preliminary survey of the system is done which helps in identifying the scope of the system. The second phase of the system study is more detailed and in-depth study in which the identification of user's requirement and the limitations and problems of the present system are studied. After completing the system study, a system proposal is prepared by the System Analyst (who studies the system) and placed before the user. The proposed system contains the findings of the present system and recommendations to overcome the limitations and problems of the present system in the light of the user's requirements.
To describe the system study phase more analytically, we would say that system study phase passes through the following steps:
problem identification and project initiation
background analysis
inference or findings
(b) Feasibility Study
On the basis of result of the initial study, feasibility study takes place. The feasibility study is basically the test of the proposed system in the light of its workability, meeting user's requirements, effective use of resources and .of course, the cost effectiveness. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process of feasibility study, the cost and benefits are estimated with greater accuracy.
(c) System Analysis
Assuming that a new system is to be developed, the next phase is system analysis. Analysis involved a detailed study of the current system, leading to specifications of a new system. Analysis is a detailed study of various operations performed by a system and their relationships within and outside the system. During analysis, data are collected on the available files, decision points and transactions handled by the present system. Interviews, on-site observation and questionnaire are the tools used for system analysis. Using the following steps it becomes easy to draw the exact boundary of the new system under consideration:
Keeping in view the problems and new requirements
Workout the pros and cons including new areas of the system
All procedures, requirements must be analysed and documented in the form of detailed data flow diagrams (DFDs), data dictionary, logical data structures and miniature specifications. System Analysis also includes sub-dividing of complex process involving the entire system, identification of data store and manual processes.
The main points to be discussed in system analysis are:
Specification of what the new system is to accomplish based on the user requirements.
Functional hierarchy showing the functions to be performed by the new system and their relationship with each other.
Function network which are similar to function hierarchy but they highlight the those functions which are common to more than one procedure.
List of attributes of the entities - these are the data items which need to be held about each entity (record)
(d) System Design
Based on the user requirements and the detailed analysis of a new system, the new system must be designed. This is the phase of system designing. It is a most crucial phase in the development of a system. Normally, the design proceeds in two stages :
preliminary or general design
Structure or detailed design
Preliminary or general design: In the preliminary or general design, the features of the new system are specified. The costs of implementing these features and the benefits to be derived are estimated. If the project is still considered to be feasible, we move to the detailed design stage.
Structure or Detailed design: In the detailed design stage, computer oriented work begins in earnest. At this stage, the design of the system becomes more structured. Structure design is a blue print of a computer system solution to a given problem having the same components and inter-relationship among the same components as the original problem. Input, output and processing specifications are drawn up in detail. In the design stage, the programming language and the platform in which the new system will run are also decided.
There are several tools and techniques used for designing. These tools and techniques are:
Flowchart
Data flow diagram (DFDs)
Data dictionary
Structured English
Decision table
Decision tree
Each of the above tools for designing will be discussed in detailed in the next lesson.
(e) Coding
After designing the new system, the whole system is required to be converted into computer understanding language. Coding the new system into computer programming language does this. It is an important stage where the defined procedure are transformed into control specifications by the help of a computer language. This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer as programs. The programs coordinate the data movements and control the entire process in a system.
It is generally felt that the programs must be modular in nature. This helps in fast development, maintenance and future change, if required.
(f) Testing
Before actually implementing the new system into operations, a test run of the system is done removing all the bugs, if any. It is an important phase of a successful system. After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. The output of the test run should match the expected results.
Using the test data following test run are carried out:
Unit test
System test
Unit test: When the programs have been coded and compiled and brought to working conditions, they must be individually tested with the prepared test data. Any undesirable happening must be noted and debugged (error corrections).
System Test: After carrying out the unit test for each of the programs of the system and when errors are removed, then system test is done. At this stage the test is done on actual data. The complete system is executed on the actual data. At each stage of the execution, the results or output of the system is analysed. During the result analysis, it may be found that the outputs are not matching the expected out of the system. In such case, the errors in the particular programs are identified and are fixed and further tested for the expected output.
When it is ensured that the system is running error-free, the users are called with their own actual data so that the system could be shown running as per their requirements.
(g) Implementation
After having the user acceptance of the new system developed, the implementation phase begins. Implementation is the stage of a project during which theory is turned into practice. During this phase, all the programs of the system are loaded onto the user's computer. After loading the system, training of the users starts. Main topics of such type of training are:
How to execute the package
How to enter the data
How to process the data (processing details)
How to take out the reports
After the users are trained about the computerised system, manual working has to shift from manual to computerised working. The following two strategies are followed for running the system:
Parallel run:In such run for a certain defined period, both the systems i.e. computerised and manual are executed in parallel. This strategy is helpful because of the following:
Manual results can be compared with the results of the computerised system.
Failure of the computerised system at the early stage, does not affect the working of the organisation, because the manual system continues to work, as it used to do.
Pilot run:In this type of run, the new system is installed in parts. Some part of the new system is installed first and executed successfully for considerable time period. When the results are found satisfactory then only other parts are implemented. This strategy builds the confidence and the errors are traced easily.
(h) Maintenance
Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environment. It has been seen that there are always some errors found in the system that must be noted and corrected. It also means the review of the system from time to time. The review of the system is done for:
knowing the full capabilities of the system
knowing the required changes or the additional requirements
studying the performance
If a major change to a system is needed, a new project may have to be set up to carry out the change. The new project will then proceed through all the above life cycle phases.
wikipedia.
Systems analysisis the interdisciplinary part of science, dealing with analysis of sets of interacting or entities, the systems, often prior to their automation as computer systems, and the interactions within those systems. This field is closely related to operations research. It is also "an explicit formal inquiry carried out to help someone, referred to as the decision maker, identify a better course of action and make a better decision than he might otherwise have made."
Overview
The terms analysis and synthesis come from classical Greek and mean respectively "to loosen up" and "to put together" . These terms are used in scientific disciplines from mathematics and logic to economy and psychology to denote similar investigative procedures. In general, analysis is defined as the procedure by which we break down an intellectual or substantial whole into parts or components. Synthesis is defined as the opposite procedure: to combine separate elements or components in order to form a coherent whole.[2]The systems discussed within systems analysis can be within any field such as: industrial processes, management, decision making processes, environmental protection processes, etc. The brothers Howard T. Odum and Eugene Odum began applying a systems view to ecology in 1953, building on the work of Raymond Lindeman (1942) and Arthur Tansley (1935).Systems analysis researchers apply mathematical methodology to the analysis of the systems involved trying to form a detailed overall picture.
www.systemsanalysis.co.nr
3.1 Preliminary Analysis
The main objectives of preliminary analysis is to identify the customer's needs, evaluate system concept for feasibility, perform economic and technical analysis, perform cost benefit analysis and create system definition that forms the foundation for all subsequent engineering works.
There should be enough expertise available for hardware and software for doing analysis.
While performing analysis, the following questions arise.
" How much time should be spent on it?As such, there are no rules or formulas available to decide on this. However, size, complexity, application field, end-use, contractual obligation are few parameters on which it should be decided.
" Other major question that arises is who should do it.Well an experienced well-trained analyst should do it. For large project, there can be an analysis team.
After the preliminary analysis, the analyst should report the findings to management, with recommendations outlining the acceptance or rejection of the proposal. ++
It initiates with a project request. First stage is the preliminary analysis. The main aim of preliminary analysis is to identify the problem. First, need for the new or the enhanced system is established. Only after the recognition of need, for the proposed system is done then further analysis is possible.Suppose in an office all leave-applications are processed manually. Now this company is recruiting many new people every year. So the number of employee in the company has increased. So manual processing of leave application is becoming very difficult. So the management is considering the option of automating the leave processing system. If this is the case, then the system analyst would need to investigate the existing system, find the limitations present, and finally evaluate whether automating the system would help the organization
Once the initial investigation is done and the need for new or improved system is established, all possible alternate solutions are chalked out. All these systems are known as "candidate systems". All the candidate systems are then weighed and the best alternative of all these is selected as the solution system, which is termed as the "proposed system". The proposed system is evaluated for its feasibility. Feasibility for a system means whether it is practical and beneficial to build that system.
Feasibility is evaluated from developer and customer's point of view. Developer sees whether they have the required technology or manpower to build the new system. Is building the new system really going to benefit the customer. Does the customer have the required money to build that type of a system? All these issues are covered in the feasibility study of the system. The feasibility of the system is evaluated on the three main issues: technical, economical, and operational. Another issue in this regard is the legal feasibility of the project
1. Technical feasibility: Can the development of the proposed system be done with current equipment, existing software technology, and available personnel? Does it require new technology?
2. Economic feasibility: Are there sufficient benefits in creating the system to make the costs acceptable? An important outcome of the economic feasibility study is the cost benefit analysis.
3. Legal feasibility: It checks if there are any legal hassle in developing the system.
4. Operational feasibility: Will the system be used if it is developed and implemented? Will there be resistance from users that will undermine the possible application benefits?
The result of the feasibility study is a formal document, a report detailing the nature and scope of the proposed solution. It consists of the following:
Statement of the problem
Details of findings
Findings and recommendations in concise form
Once the feasibility study is done then the project is approved or disapproved according to the results of the study. If the project seems feasible and desirable then the project is finally approved otherwise no further work is done on it.
3.2 system analysis
After preliminary investigation, analysis phase begins. Analysis is a detailed study of the various operations performed by the system, relationships among the various sub-systems or functional units and finally the relationships outside the system. Major questions under consideration during analysis are:
1. What is being done?
2. How is it being done?
3. Does a problem exist?
4. If a problem exists, how severe is it?
5. How frequently does it occur?
6. What is the underlining cause for the problem?
Study is conducted to find user's information requirements. Proper functioning of the current system is also studied. Many tools are used during analysis. Data flow diagrams, on-site observations, and questionnaires are some examples.
Once the analysis is completed, the analyst has a firm knowledge of what is to be done.3.3 Design of SystemAfter the system has been analyzed by the analyst, the design stage of system life cycle begins. In design phase, the structure or design for the proposed system is finalized. Structure of files, databases, input, output, processes, and screens(interfaces) are decided. After design is finalized, it is clearly documented in what is called Design Document.This design document contains various graphical representations of reports, user interaction screens, etc. This design document is referred by developers during development of system.Correct designing of the system is very crucial. If we have a wrong design we won't be able to a get correct desired system. From various studies it is observed that nearly 50% errors are made during design phase in any software development while 33% errors are pertaining to program logic and only 17% are syntactical errors. Also cost of fixing errors is maximum for design phase. Cost of fixing errors for design phase nearly amounts to 80% while it is only 20% for logic and programming.
Cost of change increases when errors are discovered in later stages for system development. Mostly design errors are discovered in development, testing, testing, or maintenance phase. So the cost of change due to changes in design (which might happen due to some error or improper design. is very high. So design process should be handled very carefully
3.4 Development of Software In this phase, the actual development of the system takes place. That is, design representations are translated into actual programs. Software developers may install (or modify and then install) purchased software or they may write new, custom-designed programs.Programmers are also responsible for documenting the program, providing an explanation of how procedures are coded. Documentation is essential to test the program and carry on maintenance once the application has been installed. It is also helpful to user in knowing the system well.
.3.5 System TestingAfter a system has been developed, it is very important to check if it fulfills the customer requirements. For this purpose, testing of the system is done. For testing the systems, various test cases are prepared. A test case is a certain made up situation on which system is exposed so as to find the behavior of system in that type of real situation. These test cases require data. The data can be also made up artificial data or the real data provided by the user.
There are various types of tests which are used to test the system. These include unit, integration, and acceptance testing.
The smallest unit of software design is module. In unit testing these modules are tested. Since the modules are very small even individual programmer can test them. Once the individual modules are tested, these are integrated to build the complete system. But testing individual module doesn't guarantee if the system will work properly when these units are integrated.
Acceptance testing ensures that the system meets all the requirements. If it fulfils the needs then the system is accepted by the customer and put into use.
6.3Implementation and MaintenanceImplementation of system means putting up system on user's site. Like any system, there is an aging process. Therefore, the system requires periodic maintenance. Maintenance can be for software or hardware. User priorities, changes in organizational requirements, or environmental factors call for system enhancements. This is very crucial for the system's life.
Traditional / Waterfall Software Development Life Cycle Model
Waterfall model is a systematic and sequential approach towards software development. This model follows the stages, which we have studied in section 2.1.2. Each stage begins or originates only after the previous stage has finished. There are different levels, corresponding to which each stage starts. Probably due to different leveling of stages, this model is called Waterfall model.
In this model, the phases are organized in a linear order. The first stage deals with the system study. The rest of the stages are analysis, coding, testing and maintenance. Next stage can begin only when the previous stage is over. We'll be taking our case study 'Library Management System' initiated in lesson 1, to illustrate this development model
CASE STUDY: Library Management System
Referring to the case of 'Library management system' introduced in the first chapter, let us develop this system on Waterfall approach.
In Waterfall model, first stage is preliminary analysis, which deals with the study of the current system, finding problems and establishing whether the new system will benefit the organization. In this library presently all transactions are done manually. Each member is allowed a certain number of books to borrow. He/she has cards to borrow books. Against each card a member can borrow one book from library.
Whenever a member wishes to issue a book and there are spare cards, then the book is issued. Otherwise that request is not entertained. The numbers of members are increasing day by day. It is becoming a problem to manage the cards of members. So an automated system is required that can maintain the details about the books borrowed by different system. As we have studied the system, we now know about the existing problems. And we can positively establish the need for the automated record keeping system. After this preliminary investigation, second phase of Waterfall model, i.e., analysis phase begins.In analysis, a detail study of system is performed. Each operation is looked into more details. From the preliminary analysis we know that the members are increasing and managing their cards is now difficult task for the library staff.
Let us find out why increasing members is a problem. There might be a case when a card gets misplaced either by library staff or by member itself. If this is indeed the case then a duplicate card is made. But a member can lie about it and can make a duplicate card even if the card is not lost. In that case that particular member is having more than maximum allowed cards. There is no means to identify such members.
Presently there is a need to have a system that can record the details about the books issued to members. Card system needs to be discarded. To solve this situation our library needs a computer application that has a database that contains details corresponding to each book issued. It should also have facilities to check if the number of books issued to a particular member doesn't exceed the maximum books allowed to him/her. Now we know what type of system is required, we can move to the next stage of waterfall model that is design stage. From analysis phase it is clear that we need a database to implement our new system.
In design stage it is decided as to which type of database will be used in system. Secondly we'll identify what data should this database store and in what format. After that various operations like issuing and returning books are finalized. Various checks like number of books issued not to exceed the maximum number are finalized. Various interfaces that are to be used for input are decided.
Once all these details are finalized, these are properly documented. These documents are used in building the system during the development stage, which follows the design stage. Using the design details the new system is built. Only things that are identified during the design stage are incorporated into the system.
There is no deviation from the design specifications. Suppose in the design phase the database to be used in the system is decided to be Oracle RDBMS then during development of the system only Oracle database is used. Similarly each design specification is taken care of and whole new system is build.
Now we have developed our new system. But before it is implemented at our user's site it needs to be tested for accuracy. So the system is tested to determine if it is performing correctly according to the requirements identified during the analysis phase. Each function of the system is tested. For example, we have issue book and return book functions. In return function it is checked if it is incrementing the count of variable that signifies how many books that member can issue more. In the issue function, it should be tested that this variable is decreased by one unit. Similarly whole of the system is tested.
After testing the system, it is implemented at the user's site. Now we have tested our new system for the library, it is implemented at the user's site i.e., library in our case.After implementation, the systems require time to time maintenance. Maintenance can be for the software and hardware. Suppose two years after the implementation of the system, there occurs an alarming increase in number of members of the library. A situation can arise when all the memory for keeping the details have been exhausted then there will be a need to increase the memory of the system. Similarly the speed of processing requests might slow down. Then there will be a need for a faster processor. All these issues are maintenance issues.
So maintenance, though it is final stage of the system development, is equally important. In this section we explored how we can solve our case study problem 'Library management system' using traditional Waterfall model. Using Waterfall model is not mandatory. It is possible to follow other approaches to solve the same problem. It depends upon the developer, which approach to follow. In the next section, we illustrate case study using another approach i.e. Prototyping. This is an iterative approach towards system development.