Part II: Information Requirements Analysis Note 6 Prototyping, RAD, and Extreme Programming Systems Analysis and Design Kendall & Kendall Sixth Edition Major Topics • • • • • • The Prototyping Concept The different kinds of prototypes Guidelines for developing prototype. Advantages and disadvantages. Rapid Application Development (RAD) Extreme Programming (XP) CS206 System Analysis and Design Note 6 By ChangYu 2 Prototyping • Prototyping is an informationgathering technique. • Prototypes are useful in seeking user reactions, suggestions, innovations (新發明) and revision (修订) plans. Initial Requirements Identify Problem Develop initial Prototype , • Prototyping may be used as an alternative (替換物) to the Systems Development Life Cycle. • One special instance of prototyping that uses an Object-Oriented Approach is called Rapid Application Development – RAD. Working Convert to Operational System Implement and Use Prototype Prototype Problem Next Version Revise and Enhance Prototype The prototyping methodology (方法) 3 When SA using the prototyping, They can • Test certain aspects (方面) of overall design • Check for functionality and usability • Revision plans and change in the model • Discovers many perspectives (前景). • Set priorities (優先權) and redirect plans. • Seek 1. User Reactions: The reactions of users and management to the prototype. Gathered through observation, interviews, questionnaires. 2. User Suggestions: The suggestions should point the SA toward ways of refining (精煉), changing, “cleaning up” the prototype. 3. Innovations: Innovations are new system capabilities (能力) that have not been thought of prior (之前) to the time when users began to interact with the prototype. 4. Revision Plans: Help identify priorities (先後次序) for what should be prototyped next. 4 Four Kinds of Prototypes The four conceptions of prototypes are : – – – – Patched-up (拼湊) prototype Non-operational scale model First-of-a-series Prototype Selected Features Prototype 5 Patched-up Prototype • This kind prototype has to do with constructing (建造) a system that works but is patched up (拼湊) or patched together. • This is a working model with all the features but is inefficient. • Users can interact with the system. • Storage and retrieval of data may be inefficient. Because programs were written rapidly with the objective of being workable rather than efficient. • May contain only basic features. E.g: An a information system is working model that has all the necessary features but is inefficient. The system’s components and interfaces are patched together. Users can interact with the system. The storage and retrieval of information may be inefficient. 6 Non-operational Scale Models • A nonoperational scale mode is one that is not operational, except for certain features to be tested. • It might be produced when the coding required by the applications is too extensive (廣泛 的) to prototype but when a useful idea of the system can be gained through the prototyping of the input and output only. • In this instance, processing, because of undue (過度的) cost and time, would not be prototyped. But could still be made based on prototyped input and output. E.g. A full-scale model of an automobile which is used in wind tunnel tests. The size and shape of the auto are precise (精確的), but the car is not operational (運作). Only features of the automobile needed for wind tunnel testing are included. 7 First-of-a-Series Prototype • Pilot system is created. • Prototype is an operation model. • Useful when many installations of the same information system are planned. • An example is a system to be installed in one location, tested and modified as necessary, and later implemented in other locations. E.g. In banking installations for electronic funds (資金) transfer. A full-scale prototype is installed in 1 or 2 locations first, and if successful, duplicates are installed at all locations. 8 Selected Features Prototype • An operational model includes some, but not all, of the essential system features. E.g. A system menu may appear on-screen that lists 6 features: However, in the prototyped system, only 3 of the 6 may be available for use, so that the user may add a record (feature 1), delete a record (feature 3), and list a record (feature 5). • With the acceptance of these features, later essential features are added. • Some menu items are available. • System is built in modules. so that if the features that are prototyped are evaluated as successful, they can be incorporated (納入) into the larger, final system. • These are part of the actual system. 1. add a record, 2. update a record, 3. delete a record, 4. search a record for a keyword, 5. list a record, or 6. scan a record 9 Prototyping As an Alternative to the Systems Life Cycle • Two main problems with the SDLC: – Extended (延長的) time required to go through the development life cycle. As the investment of analyst time increases, the cost of the delivered system rises (上升) proportionately (成比例地). – User requirements change over time. Sometime the users cannot really know what they do or do not want until they see something tangible. In the traditional SDLC, it often is too late to change an unwanted system once it is delivered. • Prototyping may be used as an alternative. – The analyst effectively shortens the time . – Using the prototype, SA might overcome (戰勝) some of the problems of accurately identifying user information requirements. • Prototyping is considered as an additional (外加的), specialized method for ascertaining (弄清楚) users’ information requirement. 10 Prototyping is a excellent way to elicit (引出) feedback about the proposed system and about how readily it is fulfilling the information needs of its users. The first step of prototyping is to estimate the costs involved in building a module of the system. • Costs of programmers’ and analysts’ time • Cost of equipment If Costs Budget The building of the prototyping can proceed. 11 Prototype Development Guidelines Guidelines for developing a prototype are: 1. Work in manageable (易辦的) modules. One advantage of prototyping is that it is not necessary or desirable (稱心的) to build an entire working system for prototyping proposes. 2. Build the prototype rapidly. • • Speed is essential to the successful prototyping. The user sees and uses the system very early in the SDLC instead of waiting for a finished system to gain hands-on experience. After a brief analysis of information requirements, SA constructs working models for the prototype. It takes less than a week. 12 3. Modifying the Prototype – – Its construction must support modifications. The prototype is modified several times, going through several iterations (重複). Change in the prototyping should move the system closer to what users say is important. 4. Stressing (強調) the User Interface – – Since what you are really trying to achieve with the prototype is to get users to further articulate (清晰) their information requirements, they must be able to interact easily with the system’s prototype. For many users, the interface is the system. 13 Prototype Disadvantages 1. Managing the project – Managing the prototyping process is difficult because of its rapid, iterative nature. To solve this problem, the analyst should set up specific time periods during which the analyst and management decision makers will use the feedback to evaluate how well the prototyping is performing. 2. Adopting (採用) an Incomplete System as Complete System – If a system is needed badly and welcomed readily, the prototype may be accepted in its unfinished (未完成) state. – A prototype will not perform all necessary functions. 14 Prototype Advantages 1. Potential (有可能性的) for changing the system early in its development – – 2. Early, frequent user feedback , then Modify the system and make it more responsive (支持) to actual needs. Early changes are less expensive in the project’s development. Opportunity to stop development on an unworkable system – – 3. Permanently (永久) removing the prototype system from use is done when it becomes clear that the system is not useful and does not fulfill the information requirements that have been set. It is better than putting increasing sums of time & money into a project that is plainly unworkable. Possibility of developing a system that closely addresses users needs and expectations – – The prototype acts as an interactive tool that shapes the final system to accurately (準確地) reflect (反映) users’ requirements. Users who take early ownership (擁有權) of the information system work harder to ensure (確保) its success. 15 Prototype Evaluation – The User’s Role • The user’s role is honest involvement. • Three ways the user is involved: – Experimenting (試 驗) with the prototype. – Giving open reactions to the prototype. – Suggesting additions to and/or deletions from the prototype. 16 17 Rapid Application Development (RAD) • RAD, or Rapid Application Development, is a teambased technique, is an Object-Oriented Approach to systems development that includes a method of development as well as software tools. • Goal: • Shortening of time and expense needed in SDLC between the design and implementation of the information system. • Helping to design a system that requires a highly interface or complex user interface. • RAD is the one special instance of prototyping. 18 RAD Phases • The three broad phases to RAD are : – Requirements planning. – RAD design workshop. – Implementation. Notice that RAD involves users in each part of the development effort, with intense participation in the business part of the design. 19 Requirements Planning Phase • Users and analysts meet to – identify objectives of the application or system – and to identify information requirements arising from those objectives. • The orientation (方向) is toward solving business problems. – Although information technology and systems may even drive some of the solutions proposed, the focus will always remain on reaching business goals. 20 RAD Design Workshop – Is a Design-and-Refine (精鍊) phase. – Use group decision support systems (GDSS) to help users agree on designs. – Programmers and analysts can build and show visual representations of the designs and workflow to users. – During the RAD design workshop, Users respond to actual working prototypes. – Analysts refine designed modules based on user responses. 21 Implementation Phase • As the systems are built and refined, the new systems or partial systems are tested and then introduced to the organization. • When creating new systems, there is no need to run old systems in parallel. • By this time, the RAD design workshop will have generated excitement (興奮), user ownership (擁有權) and acceptance of the new application. 22 RAD and the SDLC • RAD tools are used to generate screens and exhibit the overall flow of the application. • Users approve the design and sign off on the visual model. • Implementation is less stressful (重要的) because users helped to design the business aspects of the system. 23 Comparing the RAD and SDLC RAD 1 Purpose: Shorten the SDLC Respond more rapidly to information requirements of organizations. SDLC Purpose: Ensure completeness and accuracy, and to create well integrated system into standard business procedures and culture. 2 Use RAD software tools to generate screens and to exhibit (展 覽) the overall flow of the running of the application. Use a conceptual design represented on paper. 3 Users have helped to design the business aspects of the system, and know what changes will take place Less stressful. There is a lengthy time during development and design when SA is separated from users. 24 When to Use RAD RAD is used when: – The team includes programmers and analysts who are experienced with it. – There are pressing reasons for speeding up application development. – The project involves a novel (嶄新) ecommerce application and needs quick results. – Users are sophisticated (世故的) and highly engaged (從事) with the goals of the company. 25 Advantage and Disadvantages of RAD Advantage • System can be developed more quickly with significant cost savings. Disadvantage • May try and hurry the project too much • Loosely documented The documentation never exists. • Programmers inexperienced with RAD tools (e.g. Microsoft Access, Microsoft Visual Basic, Visual C++, Jbuilder 3). 26 27 Extreme Programming (XP) • Extreme (極端) programming (XP) is a system development approach that accepts what we know as good systems development practices and takes them to the extreme. • Project management is important, so extreme programming (XP) tries to – define an overall system plan quickly, – develop and release (釋放) software quickly, – and then continuously revise (修正) the software to add additional features. • Extreme programming is based on values, principles and practices. 28 Four Values of Extreme Programming • Essential (必不可少的) to extreme programming are stated values and principles that create the context for collaboration (合作) among programmers and customers. • These are four values (準則) of XP that create an environment in which both developers and businesses can be adequately (足夠地) served. – Communication. – Simplicity. – Feedback. – Courage (勇氣). 29 Five XP Principles The five XP principles are: 1. 2. 3. 4. 5. Providing rapid feedback. Assuming simplicity. Changing incrementally. Embracing change. Encouraging quality work. 30 Four Basic Activities of XP The four basic activities of XP are: – – – – Coding. Testing. Listening, to the programming partner and customer. Designing. 31 Four XP Core Practices The four XP core practices are: – Short releases, work with the most important features first. – Having a 40-hour work week. – Having an onsite customer. – Pair programming with another programmer. 32 Review Questions • What four kinds of information is the analyst seeking through prototyping? • What is meant by the term patched-up prototyping and a nonoperational scale mode ? • Give an example of prototyping that is a first-of-series prototyping and selected features prototyping. • List the advantages and disadvantages of using prototyping to replace the traditional SDLC. • List four guidelines the analyst should observe in developing a prototyping. • Define what is meant by RAD and XP? • What are the three phrases of RAD? 33