Chapter 11 Systems Analysis and Design Learning Objectives: In this chapter we will discuss the following topics: The Systems Development Environment The information Systems Development Life Cycle (SDLC). Rapid Application Development (RAD), prototyping, Joint Application Development (JAD) and Computer Aided Software Engineering (CASE). Agile methodologies and extreme programming. Object Oriented Analysis and Design (OOSAD) and the Rational Unified Process (RUP). Learning Outcomes: After going through this lesson, you should be able to: 1. Understand what is meant by ‘system thinking’ 2. Understand the different phases of system developments life cycle 3. Identify the strengths and weaknesses of different development methodologies such as: RAD, Prototyping, JAD and CASE 4. Explain Agile Methodologies and Extreme Programming 5. Describe OOSAD and RUP 11.0 INTRODUCTION Systems are created to solve problems. One can think of the systems approach as an organized way of dealing with a problem. System Analysis and Design, mainly deals with the software development activities. A system is a collection of components that work together to realize some objective forms. Basically there are three major components in every system, namely input, processing and output. In a system the different components are connected with each other and they are interdependent. For example, Human body represents a complete natural system. We are also bound by many national systems such as political system, economic system, educational system and so forth. The objectives of the system demand that some output is produced as a result of processing the suitable inputs. 11.1 The Systems Development Environment Information system aims at providing detailed information on a timely basis throughout the organization so that the top management can take proper and effective decisions [1]. The information system cuts across departmental lines and help achieving overall optimization for the organization. The organization is viewed as a network of inter-related sub-systems rather than as a hierarchy of manager-subordinate relationship. The information system can be of two types: (a) Integrated information system (b) Distributed information system (a) Integrated Information System The integrated information system is based on the presumption that the data and information are used by more than one system in the organization and accordingly [2], the data and information are channeled into a reservoir or database. All the data processing and provision of information is derived and taken from this common database. The development of an integrated information system requires a long-term overall plan, commitment from management at all levels, highly technical personnel, availability of sufficient fund, and sophisticated technology. It also requires adequate standby facilities, without which the system is doomed to failure. Because of its integrated component, the modification to the system is quite difficult and the system development takes a fairly long time. (b) Distributed Information System There are opinion that development of an integrated information system is embodied with several practical problems and therefore, not feasible. This view has been reinforced by the failure of integrated systems in various large organizations. The concept of a distributed information system [3], [4] has emerged as an alternative to the integrated information system. In the distributed information system, there are information sub-systems that form islands of information systems. The distributed information system aims at establishing relatively independent sub-systems, which are, however, connected through communication interfaces. Following are the advantages of the distributed information system: The processing equipment as well as database are dispersed, bringing them closer to the users. It does not involve huge initial investment as is required in an integrated system. It is more flexible and changes can be easily taken care of as per user's requirements. The problem of data security and control can be handled more easily than in an integrated system. There is no need of standby facilities because equipment breakdowns are not as calamitous as in an integrated system. The drawbacks of the distributed system are: It does not eliminate duplication of activities and redundancy in maintaining files. Coordination of activities becomes a problem. It needs more channels of communication than in an integrated system. It is possible to consider several alternative approaches, which fall between the two extremes a completely integrated information system and a totally independent sub-system. It is to be studied carefully what degree of integration is required for developing an information system. It depends on how the management wants to manage the organization, and the level of diversity within the organization. 11.2 The information Systems Development Life Cycle (SDLC). System life cycle is an organizational process of developing and maintaining systems [5] . It helps in establishing a system project plan, because it gives overall list of processes and subprocesses required developing a system. In the System Analysis and Design terminology, the system development life cycle means software development life cycle. See figure 11.2. It is made up of the following phases: (a) System study (b) Feasibility study (c) System analysis (d) System design (e) Coding (f) Testing (g) Implementation (h) Maintenance Figure 11.2: Different phases of Software development Life Cycle (a) System Study System study gives a clear picture of what actually the physical system is. It 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. (b) Feasibility Study 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. In the process of feasibility study, the cost and benefits are estimated with greater accuracy. (c) System Analysis Analysis involved a detailed study of the current system, leading to specifications of a new system. It 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. All procedures, requirements must be analyzed 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. (d) System Design Based on the user requirements and the detailed analysis of a new system, the new system is designed. This is the phase of system designing and it proceeds in two stages : preliminary or general design Structure or detailed 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. 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 [6]. There are several tools and techniques used for designing [7]. These tools and techniques are: Flowchart Data flow diagram (DFDs) Data dictionary Structured English Decision table Decision tree (e) Coding 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. (f) Testing Before actually implementing the new system into operations, a test run of the system is done removing all the bugs, if any. 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 analyzed. 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 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. After the users are trained about the computerized system, manual working has to shift from manual to computerized working. The following two strategies are followed for running the system: i. Parallel run: In such run for a certain defined period, both the systems i.e. computerized and manual are executed in parallel. ii. 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. 11.3 Rapid Application Development (RAD), prototyping, Joint Application Development (JAD) and Computer Aided Software Engineering (CASE). There several approaches to system development. They include: I. Rapid Application Development (RAD) Rapid application development (RAD) [8], [9], a variation on JAD, attempts to create an application more quickly through strategies that include fewer formal methodologies and reusing software components. With conventional methods, there is a long delay before the customer gets to see any results. Development can take so long that the customer's business has fundamentally changed by the time the system is ready for use. The user cannot see anything until 100% of the development process is finished and 100% of the software is delivered. RAD are used because: to converge early toward a design acceptable to the customer and feasible for the developers to limit a project's exposure to the forces of change to save development time, possibly at the expense of economy or product quality II. Prototyping Prototyping is the process of quickly putting together a working model (a prototype) [10], [11] in order to test various aspects of a design, illustrate ideas or features and gather early user feedback. Prototyping is often treated as an integral part of the system design process, where it is believed to reduce project risk and cost. Often one or more prototypes are made in a process of iterative and incremental development where each prototype is influenced by the performance of previous designs; in this way, problems or deficiencies in design can be corrected. When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other design goals, the product is ready for production. Advantages of prototyping May provide the proof of concept necessary to attract funding Early visibility of the prototype gives users an idea of what the final system looks like Encourages active participation among users and producer Enables a higher output for user Cost effective (Development costs reduced) Increases system development speed Assists to identify any problems with the efficacy of earlier design, requirements analysis and coding activities Helps to refine the potential risks associated with the delivery of the system being developed Disadvantages of prototyping User’s expectation on prototype may be above its performance Possibility of causing systems to be left unfinished Possibility of implementing systems before they are ready. Producer might produce a system inadequate for overall organization needs Producer might get too attached to it (might cause legal involvement) Often lack flexibility III. Not suitable for large applications Joint Application Development (JAD) The Joint Application Development (JAD) methodology [12], [13] aims to involve the client in the design and development of an application. This is accomplished through a series of collaborative workshops called JAD sessions. JAD is thought to lead to shorter development times and greater client satisfaction, both of which stem from the constant involvement of the client throughout the development process. On the other hand, with the traditional approach to systems development, the developer investigates the system requirements and develops an application, with client input consisting of a series of interviews. IV. Computer Aided Software Engineering (CASE). CASE (computer-aided software engineering) [14], [15] is the use of a computer-assisted method to organize and control the development of software, especially on large, complex projects involving many software components and people. Using CASE allows designers, code writers, testers, planners, and managers to share a common view of where a project stands at each stage of development. CASE helps ensure a disciplined, check-pointed process. A CASE tool may portray progress (or lack of it) graphically. It may also serve as a repository for or be linked to document and program libraries containing the project's business plans, design requirements, design specifications, detailed code specifications, the code units, test cases and results, and marketing and service plans. CASE originated in the 1970s when computer companies were beginning to borrow ideas from the hardware manufacturing process and applies them to software development (which generally has been viewed as an insufficiently disciplined process). Some CASE tools supported the concepts of structured programming and similar organized development methods. More recently, CASE tools have had to encompass or accommodate visual programming tools and object-oriented programming. In corporations, a CASE tool may be part of a spectrum of processes designed to ensure quality in what is developed. (Many companies have their processes audited and certified as being in conformance with the ISO 9000 standard.) Some of the benefits of CASE and similar approaches are that, by making the customer part of the process (through market analysis and focus groups, for example), a product is more likely to meet real-world requirements. Because the development process emphasizes testing and redesign, the cost of servicing a product over its lifetime can be reduced considerably. An organized approach to development encourages code and design reuse, reducing costs and improving quality. Finally, quality products tend to improve a corporation's image, providing a competitive advantage in the marketplace. 11.4 Agile methodologies and extreme programming. Agile Methodology Agile methodology is an approach to project management [16], [17], typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology could be described as “iterative” and “incremental.” The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. In essence, it could be said that the agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to optimize their release as it’s developed, to be as competitive as possible in the marketplace. Extreme programming Extreme Programming (XP) is actually a deliberate and disciplined approach to software development [18], [19]. It is only eight years old but it has already been proven at many companies of all different sizes and industries worldwide to work. XP is successful because it stresses customer satisfaction. The methodology is designed to deliver the software your customer needs when it is needed. XP empowers your developers to confidently respond to changing customer requirements, even late in the life cycle. This methodology also emphasizes team work. Managers, customers, and developers are all part of a team dedicated to delivering quality software. XP implements a simple, yet effective way to enable groupware style development. XP improves a software project in four essential ways; communication, simplicity, feedback, and courage. XP programmers communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. With this foundation XP programmers are able to courageously respond to changing requirements and technology. XP is a lot like a jig saw puzzle. There are many small pieces. Individually the pieces make no sense, but when combined together a complete picture can be seen. This is a significant departure from traditional software development methods and ushers in a change in the way we program. 11.5 Object Oriented Analysis and Design and the Rational Unified Process (RUP). Rational Unified Process (RUP) [20] is an object-oriented and Web-enabled program development methodology. According to Rational (developers of Rational Rose and the Unified Modeling Language), RUP is like an online mentor that provides guidelines, templates, and examples for all aspects and stages of program development. RUP and similar products -- such as Object-Oriented Software Process (OOSP), and the OPEN Process -- are comprehensive software engineering tools that combine the procedural aspects of development (such as defined stages, techniques, and practices) with other components of development (such as documents, models, manuals, code, and so on) within a unifying framework. RUP establishes four phases of development, each of which is organized into a number of separate iterations that must satisfy defined criteria before the next phase is undertaken: in the inception phase, developers define the scope of the project and its business case; in the elaboration phase, developers analyze the project's needs in greater detail and define its architectural foundation; in the construction phase, developers create the application design and source code; and in the transition phase, developers deliver the system to users. RUP provides a prototype at the completion of each iteration. The product also includes process support for Java 2 Enterprise Edition (J2EE) and BEA (WebLogic) development, and supplies an HTML-based description of the unified process that an organization can customize for its own use. Other Methodologies that you may find includes: Adaptive Project Framework Crystal Methods Dynamic Systems Development Model (DSDM) Feature Driven Development (FDD) Information Technology Infrastructure Library (ITIL) Lean Development (LD) PRINCE2 Rational Unified Process (RUP) Scrum Spiral TenStep Project Management Process Waterfall (a.k.a. Traditional) Summary: A system is a collection of components that work together to realize some objective forms. Information system aims at providing detailed information on a timely basis throughout the organization so that the top management can take proper and effective decisions. The information system can be of two types: Integrated information system and Distributed information system. The system development life cycle is made up eight phases: System study, Feasibility study, System analysis, System design, Coding, Testing, Implementation and Maintenance. Rapid application development (RAD), attempts to create an application more quickly through strategies that include fewer formal methodologies and reusing software components Prototyping is the process of quickly putting together a working model (a prototype) in order to test various aspects of a design, illustrate ideas or features and gather early user feedback. The Joint Application Development (JAD) methodology aims to involve the client in the design and development of an application. CASE (computer-aided software engineering) is the use of a computer-assisted method to organize and control the development of software, especially on large, complex projects involving many software components and people. Agile methodology helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. Extreme Programming (XP) is actually a deliberate and disciplined approach to software development. Rational Unified Process (RUP) is an object-oriented and Web-enabled program development methodology. Exercises: Fill in the blanks: 1. A …… is a collection of components that work together to realize some objective forms. 2. …… is an object-oriented and Web-enabled program development methodology. 3. ….. is a successful software development approach because it stresses customer satisfaction. 4. In ……. aspects of development such as: requirements, design, etc. — are continuously revisited throughout the lifecycle. 5. Some ….. support the concepts of structured programming and similar organized development methods. 6. …… can lead to shorter development times and greater client satisfaction, both of which stem from the constant involvement of the client throughout the development process. 7. ……. is often treated as an integral part of the system design process, where it is believed to reduce project risk and cost. 8. ……. attempts to create an application more quickly through strategies that include fewer formal methodologies and reusing software components. 9. ……. is the stage of a project during which all the programs of the system are loaded onto the user's computer. 10. …… is when the programs which have been coded and compiled and brought to working conditions, are individually tested with the prepared test data. 11. The ……. stage is when the design of the system becomes more structured. 12. The ……. is basically the test of the proposed system in the light of its workability, meeting user’s requirements, effective use of resources and cost effectiveness. 13. The second phase of the …… is more detailed and in-depth, in which the identification of user’s requirement and the limitations and problems of the present system are studied. 14. The …… system is based on the presumption that the data and information are used by more than one system in the organization. 15. ……. is an organizational process of developing and maintaining systems. Answers: 1. System 2. Rational Unified Process (RUP) 3. XP 4. agile programming 5. CASE tools 6. JAD 7. Prototyping 8. Rapid application development (RAD) 9. Implementation 10. Unit test 11. detailed design 12. feasibility study 13. system study 14. integrated information 15. System life cycle Short Essay Questions: 1. Define a system. Explain the components of a system. 2. What do you understand by system development life cycle? 3. Discuss the importance of system analysis and design in the development of a system? 4. What is difference between integrated information system and distributed information system? 5. What are the advantages of distributed systems? 6. What are the advantages and disadvantages of prototyping? 7. Compare and contrast between CASE tools, Prototyping, JAD and RAD. 8. What happens during the testing stage of the SDLC? 9. Why is the analysis phase of the SDLC very important? 10. Why is extreme programming getting more and more popular? References: Books: 1. Diane M. Coyle, Computers Are Your Future, Complete, 10/E, Prentice Hall, 2009. ISBN-10: 0135045118, ISBN-13: 9780135045114. 2. John Preston, Sally Preston and Robert L. Ferrett, Computer Literacy for IC3, Prentice Hall, 2009. ISBN-10: 0131498649, ISBN-13: 9780131498648. 3. Alan Evans, Mary Ann Poatsy and Kendall Martin, Technology in Action, Introductory, 5/E, Prentice Hall, 2009. ISBN-10: 0135137667, ISBN-13: 9780135137666. 4. Brian K.Williams and Stacey Sawyer, Using Information Technology: A Practical Introduction to Computers and Communications, 7th Edition, McGraw-Hill, 2007. ISBN-13 9780072260717. 5. James A. O'Brien and George Marakas, Introduction to Information Systems, 13th Edition, McGrawHill, 2007, ISBN-13 9780073043555. Online References: [1] www.ccsu.edu/business/faculty/Jarmoszko/ In%20class%20MIS%20461/Systems%20Development%20Environment.ppt [2] nos.org/htm/sad4.htm [3] www.cs.cmu.edu/~aml/research/dis.html [4] www.sti-innsbruck.at/fileadmin/documents/teaching_archive/ws0405/group1.ppt [5] www.startvbdotnet.com/sdlc/sdlc.aspx [6] swenbyjunoirs.wordpress.com/2007/10/23/systems-development-life-cycle-sdlc/ [7] en.wikipedia.org/wiki/Information_Engineering [8] www.cs.bgsu.edu/maner/domains/RAD.htm [9] www.casemaker.com/download/products/totem/rad_wp.pdf [10] qa.techinterviews.com/q/200608090 [11] www.scribd.com/doc/8774478/SDLC-Models [12] www.cse.fau.edu/~maria/COURSES/CEN4010-SE/jad.pdf [13] www.bitpipe.com/tlist/Joint-Application-Development.html [14] en.wikipedia.org/wiki/Computer-aided_software_engineering [15] https://www.thedacs.com/databases/url/key/153 [16] www.agilemethod.net/ [17] agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology/ [18] www.extremeprogramming.org/ [19] www.xprogramming.com/xpmag/whatisxp.htm [20] www.ibm.com/developerworks/rational/library/content/03July/1000/ 1251/1251_bestpractices_TP026B.pdf
© Copyright 2026 Paperzz