M.C.A. (Sem -I) Paper - II - System Ananalysis and Design.pdf
Document Details
Uploaded by PeaceableStonehenge3141
PDB GGSSS
Tags
Related
- INF2011 S Notes - Examples Included (University of Cape Town) PDF
- Botswana Accountancy College Systems Development Lecture PDF
- SAD System Analysis & Design Handwritten Notes PDF
- Systems Analysis and Design PDF
- Resumen de Análisis y Diseño de Sistemas PDF
- Modern Systems Analysis and Design Lecture 1 PDF
Full Transcript
1 M.C.A. SEM –I ,PAPER -II SYSTEM ANALYSIS AND DESIGN 1. Introduction Systems and computer based systems, types of information system System analysis and design Role, task and attribute of the s...
1 M.C.A. SEM –I ,PAPER -II SYSTEM ANALYSIS AND DESIGN 1. Introduction Systems and computer based systems, types of information system System analysis and design Role, task and attribute of the system analyst 2. Approaches to System development SDLC Explanation of the phases Different models their advantages and disadvantages o Waterfall approach o Iterative approach o Extreme programming o RAD model o Unified process o Evolutionary software process model - Incremental model - Spiral model - Concurrent development model 3. Analysis : Investigating System Requirements Activities of the analysis phase Fact finding methods o Review existing reports, forms and procedure descriptions o Conduct interviews o Observe and document business processes o Build prototypes o Questionnaires o Conduct jad sessions Validate the requirements o Structured walkthroughs 4. Feasibility Analysis 2 Feasibility Study and Cost Estimates Cost benefit analysis Identification of list of deliverables 5. Modeling System Requirements Data flow diagram logical and physical Structured English Decision tables Decision trees Entity relationship diagram Data dictionary 6. Design Design phase activities Develop System Flowchart Structure Chart o Transaction Analysis o Transform Analysis Software design and documentation tools Hipo chart Warnier orr diagram Designing databases Entities Relationships Attributes Normalization 7. Designing input, output and interface Input design Output design User interface design 8. Testing Strategic approach to software testing Test series for conventional software Test strategies for object – oriented software Validation testing System testing Debugging 3 9. Implementation and Maintenance Activities of the implementation and support phase 10. Documentation Use of case tools, Documentation – importance, types of documentation Books : 1. “Analysis and Design of Information Systems” : Senn, TMH. 2. System Analysis and Design : Howryskiewycz, PHI. 3. “System Analysis and Design” : Awad. 4. “Software Engineering A practitioners Approach” : Roger S. Pressman TMH. 5. “System Analysis and Design Methods : “Whitten, Bentley. 6. “Analysis and Design of Information Systems” : Rajaraman, PHI. 4 1 INTRODUCTION Unit Structure 1.1 Introduction 1.2 System 1.3 Classification of System 1.3.1 Physical or Abstract System 1.3.2 Open Closed System 1.3.3 Man made Information System 1.3.4 Computer Base System: 1.3.5 Information System: 1.3.6 Transaction Processing Systems 1.3.7 Management Information Systems 1.3.8 Decision Support Systems 1.4 System Analysis : 1.5 Software Engineering: 1.6 System Design : 1.6.1 Logical Design 1.6.2 Physical Design 1.7 System Analyst: 1.7.1 Role of System Analyst: 1.7.2 Task of System Analyst: 1.7.3 Attributes of System Analyst: 1.7.4 Skill required for System Analyst: 1.8 Summary 1.1 INTRODUCTION: System is combination of different factors which perform different functions. It handles by user and administrator who has a knowledge and skill about that system. 5 1.2 SYSTEM The concept of an 'integrated whole' can also be stated in terms of a system embodying a set of relationships which are differentiated from relationships of the set to other elements, and from relationships between an element of the set and elements not a part of the relational regime. Systems have structure, defined by parts and their composition; Systems have behavior, which involves inputs, processing and outputs of material, energy or information; Systems have interconnectivity: the various parts of a system have functional as well as structural relationships between each other. Systems have by themselves functions or groups of functions 1.3 CLASSIFICATION OF SYSTEM : Classification of systems can be done in many ways. 1.3.1 Physical or Abstract System Physical systems are tangible entities that we can feel and touch. These may be static or dynamic in nature. For example, take a computer center. Desks and chairs are the static parts, which assist in the working of the center. Static parts don't change. The dynamic systems are constantly changing. Computer systems are dynamic system. Programs, data, and applications can change according to the user's needs. Abstract systems are conceptual. These are not physical entities. They may be formulas, representation or model of a real system. 6 1.3.2 Open Closed System Systems interact with their environment to achieve their targets. Things that are not part of the system are environmental elements for the system. Depending upon the interaction with the environment, systems can be divided into two categories, open and closed. Open systems: Systems that interact with their environment. Practically most of the systems are open systems. An open system has many interfaces with its environment. It can also adapt to changing environmental conditions. It can receive inputs from, and delivers output to the outside of system. An information system is an example of this category. Closed systems: Systems that don't interact with their environment. Closed systems exist in concept only. 1.3.3 Man made Information System The main purpose of information systems is to manage data for a particular organization. Maintaining files, producing information and reports are few functions. An information system produces customized information depending upon the needs of the organization. These are usually formal, informal, and computer based. Formal Information Systems: It deals with the flow of information from top management to lower management. Information flows in the form of memos, instructions, etc. But feedback can be given from lower authorities to top management. Informal Information systems: Informal systems are employee based. These are made to solve the day to day work related problems. Computer-Based Information Systems: This class of systems depends on the use of computer for managing business applications. 1.3.4 Computer Base System: A system of one or more computers and associated software with common storage called system. A computer is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. The computer elements described thus far are known as "hardware." A computer system has three parts: the hardware, the software, and the people who make it work. 7 1.3.5 Information System: An information system (IS) is any combination of information technology and people's activities using that technology to support operations, management, and decision-making. Information system deals with data of the organizations. The purposes of Information system are to process input, maintain data, produce reports, handle queries, handle on line transactions, generate reports, and other output. These maintain huge databases, handle hundreds of queries etc. The transformation of data into information is primary function of information system. Information systems differ in their business needs. Also depending upon different levels in organization information systems differ. Three major information systems are 1. Transaction processing systems 2. Management information systems 3. Decision support systems Figure 1.2 shows relation of information system to the levels of organization. The information needs are different at different organizational levels. Accordingly the information can be categorized as: strategic information, managerial information and operational information. Strategic information is the information needed by top most management for decision making. For example the trends in revenues earned by the organization are required by the top management for setting the policies of the organization. This information is not required by the lower levels in the organization. The information systems that provide these kinds of information are known as Decision Support Systems. 8 Figure - Relation of information systems to levels of organization The second category of information required by the middle management is known as managerial information. The information required at this level is used for making short term decisions and plans for the organization. Information like sales analysis for the past quarter or yearly production details etc. fall under this category. Management information system (MIS) caters to such information needs of the organization. Due to its capabilities to fulfill the managerial information needs of the organization, Management Information Systems have become a necessity for all big organizations. And due to its vastness, most of the big organizations have separate MIS departments to look into the related issues and proper functioning of the system. The third category of information is relating to the daily or short term information needs of the organization such as attendance records of the employees. This kind of information is required at the operational level for carrying out the day-to-day operational activities. Due to its capabilities to provide information for processing transaction of the organization, the information system is known as Transaction Processing System or Data Processing System. Some examples of information provided by such systems are processing of orders, posting of entries in bank, evaluating overdue purchaser orders etc. 1.3.6 Transaction Processing Systems TPS processes business transaction of the organization. Transaction can be any activity of the organization. Transactions differ from organization to organization. For example, take a railway reservation system. Booking, cancelling, etc are all transactions. 9 Any query made to it is a transaction. However, there are some transactions, which are common to almost all organizations. Like employee new employee, maintaining their leave status, maintaining employees accounts, etc. This provides high speed and accurate processing of record keeping of basic operational processes. These include calculation, storage and retrieval. Transaction processing systems provide speed and accuracy, and can be programmed to follow routines functions of the organization. 1.3.7 Management Information Systems: These systems assist lower management in problem solving and making decisions. They use the results of transaction processing and some other information also. It is a set of information processing functions. It should handle queries as quickly as they arrive. An important element of MIS is database. A database is a non-redundant collection of interrelated data items that can be processed through application programs and available to many users. 1.3.8 Decision Support Systems: These systems assist higher management to make long term decisions. These type of systems handle unstructured or semi structured decisions. A decision is considered unstructured if there are no clear procedures for making the decision and if not all the factors to be considered in the decision can be readily identified in advance. These are not of recurring nature. Some recur infrequently or occur only once. A decision support system must very flexible. The user should be able to produce customized reports by giving particular data and format specific to particular situations. 1.4 SYSTEM ANALYSIS : Systems analysis is the study of sets of interacting entities, including computer systems. This field is closely related to operations research. It is also "an explicit formal carried out to help , referred to as the decision maker, identify a better course of action. Computers are fast becoming our way of life and one cannot imagine life without computers in today’s world. You go to a railway 10 station for reservation, you want to web site a ticket for a cinema, you go to a library, or you go to a bank, you will find computers at all places. Since computers are used in every possible field today, it becomes an important issue to understand and build these computerized systems in an effective way. 1.5 SOFTWARE ENGINEERING: Software Engineering is the systematic approach to the development, operation and maintenance of software. Software Engineering is concerned with development and maintenance of software products. Software engineering (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. It is a "systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software, that is, the application of engineering to software. The primary goal of software engineering is to provide the quality of software with low cost. Software Engineering involves project planning, project management, systematic analysis, design, validations and maintenance activities. Every Engineer wants to design the general theme for to develop the software. So, the stepwise execution is necessary to develop a good software. It is called as software engineering. 1.6 SYSTEM DESIGN : Systems design is the process or art of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. One could see it as the application of systems theory to product development. There is some overlap with the disciplines of systems analysis, systems architecture and systems engineering. System design is divided into two types: 1.6.1 Logical Design The logical design of a system pertains to an abstract representation of the data flows, inputs and outputs of the system. This is often conducted via modeling, which involves a simplistic (and sometimes graphical) representation of an actual system. In the context of systems design, modeling can undertake the following forms, including: 11 Data flow diagrams Entity Life Histories Entity Relationship Diagrams 1.6.2 Physical Design The physical design relates to the actual input and output processes of the system. This is laid down in terms of how data is inputted into a system, how it is verified/authenticated, how it is processed, and how it is displayed as output. Physical design, in this context, does not refer to the tangible physical design of an information system. To use an analogy, a personal computer's physical design involves input via a keyboard, processing within the CPU, and output via a monitor, printer, etc. It would not concern the actual layout of the tangible hardware, which for a PC would be a monitor, CPU, motherboard, hard drive, modems, video/graphics cards, USB slots, etc. System Design includes following points: Requirements analysis - analyzes the needs of the end users or customers Benchmarking — is an effort to evaluate how current systems are used Systems architecture - creates a blueprint for the design with the necessary specifications for the hardware, software, people and data resources. In many cases, multiple architectures are evaluated before one is selected. Design — designers will produce one or more 'models' of what they see a system eventually looking like, with ideas from the analysis section either used or discarded. A document will be produced with a description of the system, but nothing is specific — they might say 'touch screen' or 'GUI operating system', but not mention any specific brands; Computer programming and debugging in the software world, or detailed design in the consumer, enterprise or commercial world - specifies the final system components. System testing - evaluates the system's actual functionality in relation to expected or intended functionality, including all integration aspects. 1.7 SYSTEM ANALYST: The system analyst is the person (or persons) who guides through the development of an information system. In performing 12 these tasks the analyst must always match the information system objectives with the goals of the organization. 1.7.1 Role of System Analyst: Role of System Analyst differs from organization to organization. Most common responsibilities of System Analyst are following : 1) System analysis It includes system's study in order to get facts about business activity. It is about getting information and determining requirements. Here the responsibility includes only requirement determination, not the design of the system. 2) System analysis and design: Here apart from the analysis work, Analyst is also responsible for the designing of the new system/application. 3) Systems analysis, design, and programming: Here Analyst is also required to perform as a programmer, where he actually writes the code to implement the design of the proposed application. Due to the various responsibilities that a system analyst requires to handle, he has to be multifaceted person with varied skills required at various stages of the life cycle. In addition to the technical know-how of the information system development a system analyst should also have the following knowledge. Business knowledge: As the analyst might have to develop any kind of a business system, he should be familiar with the general functioning of all kind of businesses. Interpersonal skills: Such skills are required at various stages of development process for interacting with the users and extracting the requirements out of them Problem solving skills: A system analyst should have enough problem solving skills for defining the alternate solutions to the system and also for the problems occurring at the various stages of the development process. 1.7.2 Task of System Analyst: The primary objective of any system analyst is to identify the need of the organization by acquiring information by various means and methods. Information acquired by the analyst can be either computer based or manual. Collection of information is the vital 13 step as indirectly all the major decisions taken in the organizations are influenced. The system analyst has to coordinate with the system users, computer programmers, manager and number of people who are related with the use of system. Following are the tasks performed by the system analyst: Defining Requirement: The basic step for any system analyst is to understand the requirements of the users. This is achieved by various fact finding techniques like interviewing, observation, questionnaire etc. The information should be collected in such a way that it will be useful to develop such a system which can provide additional features to the users apart from the desired. Prioritizing Requirements: Number of users uses the system in the organization. Each one has a different requirement and retrieves different information. Due to certain limitations in computing capacity it may not be possible to satisfy the needs of all the users. Even if the computer capacity is good enough is it necessary to take some tasks and update the tasks as per the changing requirements. Hence it is important to create list of priorities according to users requirements. The best way to overcome the above limitations is to have a common formal or informal discussion with the users of the system. This helps the system analyst to arrive at a better conclusion. Gathering Facts, data and opinions of Users: After determining the necessary needs and collecting useful information the analyst starts the development of the system with active cooperation from the users of the system. Time to time, the users update the analyst with the necessary information for developing the system. The analyst while developing the system continuously consults the users and acquires their views and opinions. Evaluation and Analysis: As the analyst maintains continuous he constantly changes and modifies the system to make it better and more user friendly for the users. Solving Problems: The analyst must provide alternate solutions to the management and should a in dept study of the system to avoid future problems. The analyst should provide with some flexible alternatives to the management which will help the manager to pick the system which provides the best solution. Drawing Specifications: The analyst must draw certain specifications which will be useful for the manager. The analyst should lay the specification which can be easily understood by the manager and they should be purely non-technical. The specifications must be in detailed and in well presented form. 14 1.7.3 Attributes of System Analyst: A System Analyst (SA) analyzes the organization and design of businesses, government departments, and non-profit organizations; they also assess business models and their integration with technology. There are at least four tiers of business analysis: 1. Planning Strategically - The analysis of the organization business strategic needs 2. Operating/Business model analysis - the definition and analysis of the organization's policies and market business approaches 3. Process definition and design - the business process modeling (often developed through process modeling and design) 4. IT/Technical business analysis - the interpretation of business rules and requirements for technical systems (generally IT) Within the systems development life cycle domain (SDLC), the business analyst typically performs a liaison function between the business side of an enterprise and the providers of services to the enterprise. A Common alternative role in the IT sector is business analyst, systems analyst, and functional analyst, although some organizations may differentiate between these titles and corresponding responsibilities. 1.7.4 Skill required for System Analyst: Interpersonal skills are as follows: 1: Communication: It is an interpersonal quality; the system analyst must have command on English language. Communication is necessary to establish a proper relationship between system analyst and the user. Communication is need to Gather correct information Establishes a problem solving ideas in front of the management. 2: Understanding: This is also an interpersonal quality of the system analyst, understanding includes Understanding of the objectives of the organization. Understanding the problems of the system. 15 Understanding the information given by the user or employee of the organization. 3: Selling: The ideas of the system analyst are his products which he sells to the manager of a particular organization. The system analyst must have not only the ability of creating ideas but also to sell his ideas. 4: Teaching: It is also an interpersonal quality. A system analyst must have teaching skills. He must have the ability to teach team members and the users. He has to teach about the new system and also about the proper use of the new system. 5: New technology: An analyst is an agent of change, he or she must have the ability to show all the benefits of the candidate system with the new technological advancement, he must knew about Email Internet Advance graphics Server based networking Network technology etc. 1.8 SUMMARY This chapter is based on System, their entire factors and impact on surrounding. System is divided into different types and it performs various functions. System analyst can handle every types of system. Questions: 1. What is system? Explain classification of system? Ans: Refer 1.2 and 1.3 2. Explain skill of system analyst? Ans: refer 1.7.4 16 2 APPROACHES TO SYSTEM DEVELOPMENT Unit Structure 2.1 Introduction 2.2 The Systems Development Life Cycle (SDLC), or Software Development Life Cycle 2.2.1 System Development Phases: 2.2.2 SDLC Phases Diagram: 2.2.3 Explanation of the SDLC Phases: 2.2.4 SDLC Phases with Management Control : 2.2.5 Advantages of SDLC model : 2.2.6 Disadvantages of SDLC Model: 2.3 Work breakdown structure organization: 2.4 Iterative and Incremental Development Model: 2.4.1 Iterative/Incremental Development 2.5 Extreme Programming: 2.6 RAD Model: 2.6.1 Practical Application of RAD Model: 2.6.2 Advantages of the RAD methodology: 2.6.3 Disadvantages of RAD methodology: 2.7 Unified Process Model: 2.7.1 Characteristics: 2.8 Use Case Driven 2.8.1 Architecture Centric 2.8.2 Risk Focused 2.8.3 Inception Phase 2.8.4 Elaboration Phase 2.8.5 Construction Phase 2.8.6 Transition Phase 17 2.9 Evolutionary software process model: 2.9.1 The Incremental Model : 2.10 The Spiral Model : 2.10.1 Advantages of the Spiral Model 2.10.2 Disadvantages of the Spiral Model 2.11 Concurrent development model: 2.12 Summary 2.1 INTRODUCTION: SDLC, It is System Development Life Cycle. It includes Guidance, policies, and procedures for developing systems throughout their life cycle, including requirements, design, implementation, testing, deployment, operations, and maintenance. 2.2 THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC), OR SOFTWARE DEVELOPMENT LIFE CYCLE : In systems engineering, information systems and software engineering, is the process of creating or altering systems, and the models and methodologies that people use to develop these systems. The concept generally refers to computer or information systems. Systems and Development Life Cycle (SDLC) is a process used by a systems analyst to develop an information system, including requirements, validation, training, and user (stakeholder) ownership. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance. For ex. Computer systems are complex and often (especially with the recent rise of Service-Oriented Architecture) link multiple traditional systems potentially supplied by different software vendors. To manage this level of complexity, a number of SDLC models have been created: "waterfall"; "fountain"; "spiral"; "build and fix"; "rapid prototyping"; "incremental"; and "synchronize and stabilize. The systems development life cycle (SDLC) is a type of methodology used to describe the process for building information systems, intended to develop information systems in a very 18 deliberate, structured and methodical way, reiterating each stage of the life cycle. 2.2.1 System Development Phases: Systems Development Life Cycle (SDLC) adheres to important phases that are essential for developers, such as planning, analysis, design, and implementation, and are explained in the section below. Several Systems Development Life Cycle Models exist, the oldest of which — originally regarded as "the Systems Development Life Cycle" — is the waterfall model: a sequence of stages in which the output of each stage becomes the input for the next. These stages generally follow the same basic steps, but many different waterfall methodologies give the steps different names and the number of steps seems to vary between four and seven. 2.2.2 SDLC Phases Diagram: Problem Definition Evaluation Analysis Validation Design Implementation 2.2.3 Explanation of the SDLC Phases: Requirements gathering and analysis The goal of system analysis is to determine where the problem is in an attempt to fix the system. This step involves "breaking down" the system in different pieces to analyze the situation, analyzing project goals, "breaking down" what needs to be created and attempting to engage users so that definite requirements can be defined (Decomposition computer science). Requirements Gathering sometimes requires individuals/teams 19 from client as well as service provider sides to get detailed and accurate requirements.... Design: In systems, design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will describe the new system as a collection of modules or subsystems. The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired software features in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudocode, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the software in sufficient detail that skilled programmers may develop the software with minimal additional input design. Build or coding: Modular and subsystem programming code will be accomplished during this stage. Unit testing and module testing are done in this stage by the developers. This stage is intermingled with the next in that individual modules will need testing before integration to the main project. Testing: The code is tested at various levels in software testing. Unit, system and user acceptance testings are often performed. This is a grey area as many different opinions exist as to what the stages of testing are and how much if any iteration occurs. Iteration is not generally part of the waterfall model, but usually some occur at this stage. Below are the following types of testing: Data set testing. Unit testing System testing Integration testing Black box testing White box testing Regression testing Automation testing User acceptance testing Performance testing Production 20 definition:- it is a process that ensures that the program performs the intended task. Operations and maintenance The deployment of the system includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important aspect of SDLC. As key personnel change positions in the organization, new changes will be implemented, which will require system updates. 2.2.4 SDLC Phases with Management Control : The Systems Development Life Cycle (SDLC) phases serve as a programmatic guide to project activity and provide a flexible but consistent way to conduct projects to a depth matching the scope of the project. Each of the SDLC phase objectives are described in this section with key deliverables, a description of recommended tasks, and a summary of related control objectives for effective management. It is critical for the project manager to establish and monitor control objectives during each SDLC phase while executing projects. Control objectives help to provide a clear statement of the desired result or purpose and should be used throughout the entire SDLC process. Control objectives can be grouped into major categories (Domains), and relate to the SDLC phases as shown in the figure. To manage and control any SDLC initiative, each project will be required to establish some degree of a Work Breakdown Structure(WBS) to capture and schedule the work necessary to complete the project. The WBS and all programmatic material should be kept in the “Project Description” section of the project notebook. The WBS format is mostly left to the project manager to establish in a way that best describes the project work. There are some key areas that must be defined in the WBS as part of the SDLC policy. The following diagram describes three key areas that will be addressed in the WBS in a manner established by the project manager. 21 Diagram: SDLC Phases Related to Management Controls 2.2.5 Advantages of SDLC model: With an SDLC Model, developers will have a clear idea on what should be or shouldn’t be built. Since they already have an idea on the problems that should be answered, a detailed plan could be created following a certain SDLC model. With an SDLC model, developers could even create a program that will answer different problems at the same time. Since everything will be laid out before a single code is written, the goal is clear and could be implemented on time. Although there is a great possibility of deviation from the plan, a good project manager will take care of that concern. With an SDLC Model, programs built will have a clear documentation of development, structure and even coding. In case there are problems once the program is adopted for public use, developers will always have the documentation to refer to when they need to look for any loopholes. Instead of testing it over and over again which will stop the implementation for a while, developers will just look at the documentation and perform proper maintenance program. This means SDLC will breathe more life to the program. Instead of frustrating developers in uesswork if something goes wrong, SDLC will make sure everything goes smoothly. It will also be a tool for maintenance, ensuring the program created will last for a long time. 22 2.2.6 Disadvantages of SDLC Model: Thinking about the disadvantages of a SDLC model is like looking for a needle in the haystack. But the closest disadvantage anyone could think of SDLC is the difference between what is written in paper and what is actually implemented. There are things that are happening in the actual work that the paper doesn’t see. This gives a good impression for the clients especially for 3rd party developers but when the software is actually launched it’s on a very bad situation. The actual situation of software development could be covered by fancy paperwork of SDLC. Another disadvantage of a program or software that follows the SDLC program is it encourages stiff implementation instead of pushing for creativity in different oftware. Although there are SDLC models where programmers could apply their creative juices, it’s always in the realm of what is needed instead of freely implementing what the developers think of necessary in the present environment. There are so many things that could be done by developers if there are no boundaries or limitations in what should be developed. 2.3 WORK BREAKDOWN STRUCTURE ORGANIZATION: The upper section of the Work Breakdown Structure (WBS) should identify the major phases and milestones of the project in a summary fashion. In addition, the upper section should provide an overview of the full scope and timeline of the project and will be part of the initial project description effort leading to project approval. The middle section of the WBS is based on the seven Systems Development Life Cycle (SDLC) phases as a guide for WBS task development. The WBS elements should consist of milestones and “tasks” as opposed to “activities” and have a definitive period (usually two weeks or more). Each task must have a measurable output (e.g. document, decision, or analysis). A WBS task may rely on one or more activities (e.g. software engineering, systems engineering) and may require close coordination with other tasks, either internal or external to the project. Any part of the project needing support from contractors should have a Statement of work (SOW) written to include the appropriate tasks from the SDLC phases. 23 For Ex: Following Diagram indicates Example of a product work breakdown structure of an aircraft system. 2.4 ITERATIVE AND INCREMENTAL DEVELOPMENT MODEL: Iterative and Incremental development is at the heart of a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between. Iterative and incremental development is essential parts of the Rational Unified Process, Extreme Programming and generally the various agile software development frameworks. 24 Diagram : An iterative development model 2.4.1 Iterative/Incremental Development Incremental development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition. Inception identifies project scope, risks, and requirements (functional and non-functional) at a high level but in enough detail that work can be estimated. Elaboration delivers a working architecture that mitigates the top risks and fulfills the non-functional requirements. Construction incrementally fills-in the architecture with production-ready code produced from analysis, design, implementation, and testing of the functional requirements. Transition delivers the system into the production operating environment 25 Diagram: Iterative/Incremental Development 2.5 EXTREME PROGRAMMING: Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles (time boxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. Rules for Extreme Programming: Planning Managing Coding Designing Testing 2.5.1 Goals of Extreme Programming Model: Extreme Programming Explained describes Extreme Programming as a software development discipline that organizes people to produce higher quality software more productively. In traditional system development methods (such as SSADM or the waterfall model) the requirements for the system are determined at the beginning of the development project and often fixed from that point on. This means that the cost of changing 26 the requirements at a later stage (a common feature of software engineering projects) will be high. Like other agile software development methods, XP attempts to reduce the cost of change by having multiple short development cycles, rather than one long one. In this doctrine changes are a natural, inescapable and desirable aspect of software development projects, and should be planned for instead of attempting to define a stable set of requirements. 2.6 RAD MODEL: It is Rapid Application development model. Rapid Application Development (RAD) refers to a type of software development methodology that uses minimal planning in favour of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. Rapid Application Development is a software development methodology that involves techniques like iterative development and software prototyping. According to Whitten (2004), it is a merger of various structured techniques, especially data-driven Information Engineering, with prototyping techniques to accelerate software systems development. 2.6.1 Practical Application of RAD Model: When organizations adopt rapid development methodologies, care must be taken to avoid role and responsibility confusion and communication breakdown within the development team, and between the team and the client. In addition, especially in cases where the client is absent or not able to participate with authority in the development process, the system analyst should be endowed with this authority on behalf of the client to ensure appropriate prioritisation of non-functional requirements. Furthermore, no increment of the system should be developed without a thorough and formally documented design phase. 2.6.2 Advantages of the RAD methodology: 1. Flexible and adaptable to changes. 2. Prototyping applications give users a tangible description from which to judge whether critical system requirements are being met by the system. Report output can be compared with existing reports. Data entry forms can be reviewed for completeness of all fields, navigation, data access (drop down lists, checkboxes, radio buttons, etc.). 27 3. RAD generally incorporates short development cycles - users see the RAD product quickly. 4. RAD involves user participation thereby increasing chances of early user community acceptance. 5. RAD realizes an overall reduction in project risk. 6. Pareto's 80 - 20 Rule usually results in reducing the costs to create a custom system 2.6.3 Disadvantages of RAD methodology: 1. Unknown cost of product. As mentioned above, this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process. 2. It may be difficult for many important users to commit the time required for success of the RAD process. 2.7 UNIFIED PROCESS MODEL: The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). Diagram: Profile of a typical project showing the relative sizes of the four phases of the Unified Process The Unified Process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. The Rational Unified Process is, similarly, a customizable framework. As a result it is often impossible to say whether a refinement of the process was derived from UP or from RUP, and so the names tend to be used interchangeably. 28 2.7.1 Characteristics: Iterative and Incremental The Unified Process is an iterative and incremental development process. The Elaboration, Construction and Transition phases are divided into a series of time boxed iterations. (The Inception phase may also be divided into iterations for a large project.) Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release. Although most iterations will include work in most of the process disciplines (e.g. Requirements, Design, Implementation, Testing) the relative effort and emphasis will change over the course of the project. 2.8 USE CASE DRIVEN In the Unified Process, use cases are used to capture the functional requirements and to define the contents of the iterations. Each iteration takes a set of use cases or scenarios from requirements all the way through implementation, test and deployment. 2.8.1 Architecture Centric: The Unified Process insists that architecture sit at the heart of the project team's efforts to shape the system. Since no single model is sufficient to cover all aspects of a system, the Unified Process supports multiple architectural models and views. One of the most important deliverables of the process is the executable architecture baseline which is created during the Elaboration phase. This partial implementation of the system serves to validate the architecture and act as a foundation for remaining development. 2.8.2 Risk Focused: The Unified Process requires the project team to focus on addressing the most critical risks early in the project life cycle. The deliverables of each iteration, especially in the Elaboration phase, must be selected in order to ensure that the greatest risks are addressed first. 29 The Unified Process divides the project into four phases: Inception Elaboration Construction Transition 2.8.3 Inception Phase: Inception is the smallest phase in the project, and ideally it should be quite short. If the Inception Phase is long then it may be an indication of excessive up-front specification, which is contrary to the spirit of the Unified Process. The following are typical goals for the Inception phase. Establish a justification or business case for the project Establish the project scope and boundary conditions Outline the use cases and key requirements that will drive the design tradeoffs Outline one or more candidate architectures Identify risks Prepare a preliminary project schedule and cost estimate The Lifecycle Objective Milestone marks the end of the Inception phase. 2.8.4 Elaboration Phase: During the Elaboration phase the project team is expected to capture a healthy majority of the system requirements. However, the primary goals of Elaboration are to address known risk factors and to establish and validate the system architecture. Common processes undertaken in this phase include the creation of use case diagrams, conceptual diagrams (class diagrams with only basic notation) and package diagrams (architectural diagrams). The architecture is validated primarily through the implementation of an Executable Architecture Baseline. This is a partial implementation of the system which includes the core, most architecturally significant, components. It is built in a series of small, timeboxed iterations. By the end of the Elaboration phase the system architecture must have stabilized and the executable architecture baseline must demonstrate that the architecture will support the key system functionality and exhibit the right behavior in terms of performance, scalability and cost. 30 The final Elaboration phase deliverable is a plan (including cost and schedule estimates) for the Construction phase. At this point the plan should be accurate and credible, since it should be based on the Elaboration phase experience and since significant risk factors should have been addressed during the Elaboration phase. The Lifecycle Architecture Milestone marks the end of the Elaboration phase. 2.8.5 Construction Phase: Construction is the largest phase in the project. In this phase the remainder of the system is built on the foundation laid in Elaboration. System features are implemented in a series of short, time boxed iterations. Each iteration results in an executable release of the software. It is customary to write full text use cases during the construction phase and each one becomes the start of a new iteration. Common UML (Unified Modelling Language) diagrams used during this phase include Activity, Sequence, Collaboration, State (Transition) and Interaction Overview diagrams. The Initial Operational Capability Milestone marks the end of the Construction phase. 2.8.6 Transition Phase The final project phase is Transition. In this phase the system is deployed to the target users. Feedback received from an initial release (or initial releases) may result in further refinements to be incorporated over the course of several Transition phase iterations. The Transition phase also includes system conversions and user training. 2.9 EVOLUTIONARY SOFTWARE PROCESS MODEL: Software Products can be perceived as evolving over a time period. However, neither the Linear Sequential Model nor the Prototype Model applies this aspect to software production. The Linear Sequential Model was designed for straight-line development. The Prototype Model was designed to assist the customer in understanding requirements and is designed to produce a visualization of the final system. But the Evolutionary Models take the concept of “evolution” into the engineering paradigm. Therefore Evolutionary Models are iterative. They are built in a manner that enables software engineers to develop increasingly more complex versions of the software. 31 2.9.1 The Incremental Model: The Incremental Model combines elements of the Linear Sequential Model (applied repetitively) with the iterative philosophy of prototyping. When an Incremental Model is used, the first increment is often the “core product”. The subsequent iterations are the supporting functionalities or the add-on features that a customer would like to see. More specifically, the model is designed, implemented and tested as a series of incremental builds until the product is finished. 2.10 THE SPIRAL MODEL: The Spiral Model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the Linear Sequential Model. Using the Spiral Model the software is developed in a series of incremental releases. Unlike the Iteration Model where in the first product is a core product, in the Spiral Model the early iterations could result in a paper model or a prototype. However, during later iterations more complex functionalities could be added. A Spiral Model, combines the iterative nature of prototyping with the controlled and systematic aspects of the Waterfall Model, therein providing the potential for rapid development of incremental versions of the software. A Spiral Model is divided into a number of framework activities, also called task regions. These task regions could vary from 3-6 in number and they are: Customer Communication - tasks required to establish effective communication between the developer and customer. Planning - tasks required defining resources, timelines and other project related information /items. Risk Analysis - tasks required to assess the technical and management risks. Engineering - tasks required to build one or more representation of the application. Construction & Release - tasks required to construct, test and support (eg. Documentation and training) Customer evaluation - tasks required to obtain periodic customer feedback so that there are no last minute surprises. 32 2.10.1 Advantages of the Spiral Model: Realistic approach to the development because the software evolves as the process progresses. In addition, the developer and the client better understand and react to risks at each evolutionary level. The model uses prototyping as a risk reduction mechanism and allows for the development of prototypes at any stage of the evolutionary development. It maintains a systematic stepwise approach, like the classic waterfall model, and also incorporates into it an iterative framework that more reflect the real world. 2.10.2 Disadvantages of the Spiral Model: One should possess considerable risk-assessment expertise It has not been employed as much proven models (e.g. the Waterfall Model) and hence may prove difficult to ‘sell’ to the client. 2.11 CONCURRENT DEVELOPMENT MODEL: The concurrent development model, sometimes called concurrent engineering. The concurrent process model can be represented schematically as a series of major technical activities, tasks, and their associated states. For example, the engineering activity defined for the spiral model is accomplished by invoking the following tasks: prototyping and/or analysis modeling, requirements specification, and design. The activity-analysis-may be in any one of the states noted at any given time. Similarly, other activities (e.g., design or customer communication) can be represented in an analogous manner. All activities exist concurrently but reside in different states. For example, early in a project the customer communication activity has completed its first iteration and exists in the awaiting changes state. The analysis activity (which existed in the none state while initial customer communication was completed) now makes a transition into the under development state. If, however, the customer indicates that changes in requirements must be made, the analysis activity moves from the under development state into the awaiting changes state. 33 2.12 SUMMARY: This chapter concern with system and their development models. The system follows their different approaches with the help of different types Model. Questions: 1. Explain SDLC in detail? Ans: refer 2.2.4 2. Explain incremental and iterative model in detail? Ans: refer 2.4 34 3 ANALYSIS: INVESTIGATING SYSTEM REQUIREMENTS Unit Structure 3.1 Introduction 3.2 System Analysis 3.2.1 Needs System Analysis 3.2.2 Data Gathering 3.2.3 Written Documents 3.2.4 Interviews 3.2.5 Questionnaires 3.2.6 Observations 3.2.7 Sampling 3.3 Data Analysis 3.3.1 Analysis Report 3.4 Fact Finding Methods: 3.4.1 Interview 3.4.2 Questionnaire 3.4.3 Record View 3.4.4 Observation 3.5 Conduct Interviews 3.5.1 Preparation for Interview 3.5.2 Types of Interview 3.5.3 Types of Topics in Questions 3.5.4 Wording of Questions 3.6 Observe & document business processes 3.6.1 Examples of business analysis include 3.7 Roles of business analysts 3.7.1 Business process improvement 3.7.2 Goal of business analysts 3.8 Build prototypes 3.8.1 Prototyping Process 3.8.2 Advantages of prototyping 3.8.3 Disadvantages of prototyping 35 3.9 Questionaire: 3.9.1 Question Construction 3.9.2 Basic rules for questionnaire item construction 3.9.3 Questionnaire administration modes 3.10 JAD Sessions 3.10.1 Conduct Jad sessions 3.10.2 Need for to Conduct JAD sessions 3.10.3 Advantages and Disadvantages 3.10.4 Four Principle Steps 3.11 Validation 3.12 Structured walkthroughs 3.12.1 Types of Walkthroughs 3.12.2 Prerequisites 3.12.3 Scenario 3.13 Summary 3.1 INTRODUCTION: System is concerned with various factors. System require internal and external information/data for to processing functions. 3.2 SYSTEM ANALYSIS: In this phase, the current system is studied in detail. A person responsible for the analysis of the system is known as analyst. In system analysis, the analyst conducts the following activities. 3.2.1 Needs System Analysis: This activity is known as requirements analysis. In this step the analyst sums up the requirements of the system from the user and the managers. The developed system should satisfy these requirements during testing phase. 3.2.2 Data Gathering: In this step, the system analyst collects data about the system to be developed. He uses different tools and methods, depending on situation. These are: 3.2.3 Written Documents: The analyst may collect the information/data from written documents available from manual-files of an organization. This method of data gathering is normally used if you want to 36 computerize the existing manual system or upgrade the existing computer based system. The written documents may be reports, forms, memos, business plans, policy statements, organizational charts and many others. The written documents provide valuable information about the existing system. 3.2.4 Interviews: Interview is another data gathering technique. The analyst (or project team members) interviews, managers, users/ clients, suppliers, and competitors to collect the information about the system. It must be noted that the questions to be asked from them should be precise, relevant and to the point. 3.2.5 Questionnaires: Questionnaires are the feedback forms used to collect Information. The interview technique to collect information is time- consuming method, so Questionnaires are designed to collect information from as many people as we like. It is very convenient and inexpensive method to collect information but sometimes the response may be Confusing or unclear and insufficient. 3.2.6 Observations: In addition to the above-mentioned three techniques to collect information, the analyst (or his team) may collect Information through observation. In this collect technique, the working, behavior, and other related information of the existing system are observed. It means that working of existing system is watched carefully. 3.2.7 Sampling If there are large numbers of people or events involved in The system, we can use sampling method to collect information. In this method, only a part of the people or events involved are used to collect information. For example to test the quality of a fruit, we test a piece of the fruit. 3.3 DATA ANALYSIS After completion of gathering step the collected data about the system is analyzed to ensure that the data is accurate and complete. For this purpose, various tools may be used. The most popular and commonly used tools for data analysis are: DFDs (Data Flow Diagrams) System Flowcharts Connectivity Diagrams Grid Charts Decision Tables etc. 37 3.3.1 Analysis Report: After completing the work of analysis, the requirements collected for the system are documented in a presentable form. It means that the analysis report is prepared. It is done for review and approval of the project from the higher management. This report should have three parts. First, it should explain how the current system works. Second, it should explain the problems in the existing system. Finally, it should describe the requirements for the new system and make recommendations for future. 3.4 FACT FINDING METHODS: To study any system the analyst needs to do collect facts and all relevant information. the facts when expressed in quantitative form are termed as data. The success of any project is depended upon the accuracy of available data. Accurate information can be collected with help of certain methods/ techniques. These specific methods for finding information of the system are termed as fact finding techniques. Interview, Questionnaire, Record View and Observations are the different fact finding techniques used by the analyst. The analyst may use more than one technique for investigation. 3.4.1 Interview This method is used to collect the information from groups or individuals. Analyst selects the people who are related with the system for the interview. In this method the analyst sits face to face with the people and records their responses. The interviewer must plan in advance the type of questions he/ she is going to ask and should be ready to answer any type of question. He should also choose a suitable place and time which will be comfortable for the respondent. The information collected is quite accurate and reliable as the interviewer can clear and cross check the doubts there itself. This method also helps gap the areas of misunderstandings and help to discuss about the future problems. Structured and unstructured are the two sub categories of Interview. Structured interview is more formal interview where fixed questions are asked and specific information is collected whereas unstructured interview is more or less like a casual conversation where in-depth areas topics are covered and other information apart from the topic may also be obtained. 38 3.4.2 Questionnaire: It is the technique used to extract information from number of people. This method can be adopted and used only by an skillful analyst. The Questionnaire consists of series of questions framed together in logical manner. The questions are simple, clear and to the point. This method is very useful for attaining information from people who are concerned with the usage of the system and who are living in different countries. The questionnaire can be mailed or send to people by post. This is the cheapest source of fact finding. 3.4.3 Record View The information related to the system is published in the sources like newspapers, magazines, journals, documents etc. This record review helps the analyst to get valuable information about the system and the organization. 3.4.4 Observation Unlike the other fact finding techniques, in this method the analyst himself visits the organization and observes and understand the flow of documents, working of the existing system, the users of the system etc. For this method to be adopted it takes an analyst to perform this job as he knows which points should be noticed and highlighted. In analyst may observe the unwanted things as well and simply cause delay in the development of the new system. 3.5 CONDUCT INTERVIEWS: Interviews are particularly useful for getting the story behind a participant's experiences. The interviewer can pursue in-depth information around a topic. Interviews may be useful as follow-up to certain respondents to questionnaires, e.g., to further investigate their responses. Usually open-ended questions are asked during interviews. Before you start to design your interview questions and process, clearly articulate to yourself what problem or need is to be addressed using the information to be gathered by the interviews. This helps you keep clear focus on the intent of each question. 3.5.1 Preparation for Interview: 1. Choose a setting with little distraction. Avoid loud lights or noises, ensure the interviewee is comfortable (you might ask them if they are), etc. Often, they may feel more comfortable at their own places of work or homes. 39 2. Explain the purpose of the interview. 3. Address terms of confidentiality. Note any terms of confidentiality. (Be careful here. Rarely can you absolutely promise anything. Courts may get access to information, in certain circumstances.) Explain who will get access to their answers and how their answers will be analyzed. If their comments are to be used as quotes, get their written permission to do so. See getting informed consent. 4. Explain the format of the interview. Explain the type of interview you are conducting and its nature. If you want them to ask questions, specify if they're to do so as they have them or wait until the end of the interview. 5. Indicate how long the interview usually takes. 6. Tell them how to get in touch with you later if they want to. 7. Ask them if they have any questions before you both get started with the interview. 8. Don't count on your memory to recall their answers. Ask for permission to record the interview or bring along someone to take notes. 3.5.2 Types of Interviews: 1. Informal, conversational interview - No predetermined questions are asked, in order to remain as open and adaptable as possible to the interviewee's nature and priorities; during the interview, the interviewer "goes with the flow". 2. General interview guide approach - the guide approach is intended to ensure that the same general areas of information are collected from each interviewee; this provides more focus than the conversational approach, but still allows a degree of freedom and adaptability in getting information from the interviewee. 3. Standardized, open-ended interview - here, the same open- ended questions are asked to all interviewees (an open- ended question is where respondents are free to choose how to answer the question, i.e., they don't select "yes" or "no" or provide a numeric rating, etc.); this approach facilitates faster interviews that can be more easily analyzed and compared. 4. Closed, fixed-response interview - where all interviewees are asked the same questions and asked to choose answers from among the same set of alternatives. This format is useful for those not practiced in interviewing. 40 3.5.3 Types of Topics in Questions: 1. Behaviors - about what a person has done or is doing 2. Opinions/values - about what a person thinks about a topic 3. Feelings - note that respondents sometimes respond with "I think..." so be careful to note that you're looking for feelings 4. Knowledge - to get facts about a topic 5. Sensory - about what people have seen, touched, heard, tasted or smelled 6. Background/demographics - standard background questions, such as age, education, etc. 3.5.4 Wording of Questions: 1. Wording should be open-ended. Respondents should be able to choose their own terms when answering questions. 2. Questions should be as neutral as possible. Avoid wording that might influence answers, e.g., evocative, judgmental wording. 3. Questions should be asked one at a time. 4. Questions should be worded clearly. This includes knowing any terms particular to the program or the respondents' culture. 5. Be careful asking "why" questions. This type of question infers a cause-effect relationship that may not truly exist. These questions may also cause respondents to feel defensive, e.g., that they have to justify their response, which may inhibit their responses to this and future questions 3.6 OBSERVE & DOCUMENT BUSINESS PROCESSES: Business analysis is the discipline of identifying business needs and determining solutions to business problems. Solutions often include a systems development component, but may also consist of process improvement or organizational change or strategic planning and policy development. The person who carries out this task is called a business analyst or BA. Business analysis as a discipline has a heavy overlap with requirements analysis sometimes also called requirements engineering, but focuses on identifying the changes to an 41 organization that are required for it to achieve strategic goals. These changes include changes to strategies, structures, policies, processes, and information systems. 3.6.1 Examples of business analysis include: Enterprise analysis or company analysis focuses on understanding the needs of the business as a whole, its strategic direction, and identifying initiatives that will allow a business to meet those strategic goals. Requirements planning and management involves planning the requirements development process, determining which requirements are the highest priority for implementation, and managing change. Requirements elicitation describes techniques for collecting requirements from stakeholders in a project. Requirements analysis describes how to develop and specify requirements in enough detail to allow them to be successfully implemented by a project team. Requirements communication describes techniques for ensuring that stakeholders have a shared understanding of the requirements and how they will be implemented. Solution assessment and validation describes how the business analyst can verify the correctness of a proposed solution. 3.7 ROLES OF BUSINESS ANALYSTS: As the scope of business analysis is very wide, there has been a tendency for business analysts to specialize in one of the three sets of activities which constitute the scope of business analysis. Strategist Organizations need to focus on strategic matters on a more or less continuous basis in the modern business world. Business analysts, serving this need, are well-versed in analyzing the strategic profile of the organization and its environment, advising senior management on suitable policies, and the effects of policy decisions. 42 Architect Organizations may need to introduce change to solve business problems which may have been identified by the strategic analysis, referred to above. Business analysts contribute by analyzing objectives, processes and resources, and suggesting ways by which re-design Systems analyst There is the need to align IT Development with the systems actually running in production for the Business. A long-standing problem in business is how to get the best return from IT investments, which are generally very expensive and of critical, often strategic, importance. IT departments, aware of the problem, often create a business analyst role to better understand, and define the requirements for their IT systems. Although there may be some overlap with the developer and testing roles, the focus is always on the IT part of the change process, and generally, this type of business analyst gets involved, only when a case for change has already been made and decided upon. 3.7.1 Business process improvement: A business process improvement (BPI) typically involves six steps 1. Selection of process teams and leader Process teams, comprising 2-4 employees from various departments that are involved in the particular process, are set up. Each team selects a process team leader, typically the person who is responsible for running the respective process. 2. Process analysis training The selected process team members are trained in process analysis and documentation techniques. 3. Process analysis interview The members of the process teams conduct several interviews with people working along the processes. During the interview, they gather information about process structure, as well as process performance data. 4. Process documentation The interview results are used to draw a first process map. Previously existing process descriptions are reviewed and integrated, wherever possible. Possible process improvements, discussed during the interview, are integrated into the process maps. 43 5. Review cycle The draft documentation is then reviewed by the employees working in the process. Additional review cycles may be necessary in order to achieve a common view (mental image) of the process with all concerned employees. This stage is an iterative process. 6. Problem analysis A thorough analysis of process problems can then be conducted, based on the process map, and information gathered about the process. At this time of the project, process goal information from the strategy audit is available as well, and is used to derive measures for process improvement. 3.7.2 Goal of business analysts: Business analysts want to achieve the following outcomes: Reduce waste Create solutions Complete projects on time Improve efficiency Document the right requirements 3.8 BUILD PROTOTYPES : Software prototyping, an activity during certain software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed. A prototype typically simulates only a few aspects of the features of the eventual program, and may be completely different from the eventual implementation. The conventional purpose of a prototype is to allow users of the software to evaluate developers' proposals for the design of the eventual product by actually trying them out, rather than having to interpret and evaluate the design based on descriptions. Prototyping can also be used by end users to describe and prove requirements that developers have not considered, so "controlling the prototype" can be a key factor in the commercial relationship between developers and their clients. 3.8.1 Prototyping Process: The process of prototyping involves the following steps 1. Identify basic requirements Determine basic requirements including the input and output information desired. Details, such as security, can typically be ignored. 44 2. Develop Initial Prototype The initial prototype is developed that includes only user interfaces Review The customers, including end-users, examine the prototype and provide feedback on additions or changes. 3. Revise and Enhance the Prototype Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. 3.8.2 Advantages of prototyping: There are many advantages to using prototyping in software development – some tangible, some abstract. Reduced time and costs: Prototyping can improve the quality of requirements and specifications provided to developers. Because changes cost exponentially more to implement as they are detected later in development, the early determination of what the user really wants can result in faster and less expensive software. Improved and increased user involvement: Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications. The presence of the prototype being examined by the user prevents many misunderstandings and miscommunications that occur when each side believe the other understands what they said. Since users know the problem domain better than anyone on the development team does, increased interaction can result in final product that has greater tangible and intangible quality. The final product is more likely to satisfy the users desire for look, feel and performance. 3.8.3 Disadvantages of prototyping: Insufficient analysis: The focus on a limited prototype can distract developers from properly analyzing the complete project. This can lead to overlooking better solutions, preparation of incomplete specifications or the conversion of limited prototypes into poorly engineered final projects that are hard to maintain. Further, since a prototype is limited in functionality it may not scale well if the prototype is used as the basis of a final deliverable, which may not be noticed if developers are too focused on building a prototype as a model. User confusion of prototype and finished system: Users can begin to think that a prototype, intended to be thrown away, is actually a final system that merely needs to be finished or polished. (They are, for example, often unaware of the effort needed to add 45 error-checking and security features which a prototype may not have.) This can lead them to expect the prototype to accurately model the performance of the final system when this is not the intent of the developers. Users can also become attached to features that were included in a prototype for consideration and then removed from the specification for a final system. If users are able to require all proposed features be included in the final system this can lead to conflict. Developer misunderstanding of user objectives: Developers may assume that users share their objectives (e.g. to deliver core functionality on time and within budget), without understanding wider commercial issues. For example, user representatives attending Enterprise software (e.g. PeopleSoft) events may have seen demonstrations of "transaction auditing" (where changes are logged and displayed in a difference grid view) without being told that this feature demands additional coding and often requires more hardware to handle extra database accesses. Users might believe they can demand auditing on every field, whereas developers might think this is feature creep because they have made assumptions about the extent of user requirements. If the developer has committed delivery before the user requirements were reviewed, developers are between a rock and a hard place, particularly if user management derives some advantage from their failure to implement requirements. Developer attachment to prototype: Developers can also become attached to prototypes they have spent a great deal of effort producing; this can lead to problems like attempting to convert a limited prototype into a final system when it does not have an appropriate underlying architecture. (This may suggest that throwaway prototyping, rather than evolutionary prototyping, should be used.) Excessive development time of the prototype: A key property to prototyping is the fact that it is supposed to be done quickly. If the developers lose sight of this fact, they very well may try to develop a prototype that is too complex. When the prototype is thrown away the precisely developed requirements that it provides may not yield a sufficient increase in productivity to make up for the time spent developing the prototype. Users can become stuck in debates over details of the prototype, holding up the development team and delaying the final product. Expense of implementing prototyping: the start up costs for building a development team focused on prototyping may be high. Many companies have development methodologies in place, and changing them can mean retraining, retooling, or both. Many 46 companies tend to just jump into the prototyping without bothering to retrain their workers as much as they should. 3.9 QUESTIONAIRE: A questionnaire is a research instrument consisting of a series of questions and other prompts for the purpose of gathering information from respondents. Although they are often designed for statistical analysis of the responses, this is not always the case. The questionnaire was invented by Sir Francis Galton. Questionnaires have advantages over some other types of surveys in that they are cheap, do not require as much effort from the questioner as verbal or telephone surveys, and often have standardized answers that make it simple to compile data. However, such standardized answers may frustrate users. Questionnaires are also sharply limited by the fact that respondents must be able to read the questions and respond to them. Thus, for some demographic groups conducting a survey by questionnaire may not be practical. 3.9.1 Question Construction: Question types Usually, a questionnaire consists of a number of questions that the respondent has to answer in a set format. A distinction is made between open-ended and closed-ended questions. An open- ended question asks the respondent to formulate his own answer, whereas a closed-ended question has the respondent pick an answer from a given number of options. The response options for a closed-ended question should be exhaustive and mutually exclusive. Four types of response scales for closed-ended questions are distinguished: Dichotomous, where the respondent has two options Nominal-polytomous, where the respondent has more than two unordered options Ordinal-polytomous, where the respondent has more than two ordered options (Bounded)Continuous, where the respondent is presented with a continuous scale 3.9.2 Basic rules for questionnaire item construction Use statements which are interpreted in the same way by members of different subpopulations of the population of interest. 47 Use statements where persons that have different opinions or traits will give different answers. Think of having an "open" answer category after a list of possible answers. Use only one aspect of the construct you are interested in per item. Use positive statements and avoid negatives or double negatives. Do not make assumptions about the respondent. Use clear and comprehensible wording, easily understandable for all educational levels Use correct spelling, grammar and punctuation. Avoid items that contain more than one question per item (e.g. Do you like strawberries and potatoes?) 3.9.3 Questionnaire administration modes: Main modes of questionnaire administration are: Face-to-face questionnaire administration, where an interviewer presents the items orally. Paper-and-pencil questionnaire administration, where the items are presented on paper. Computerized questionnaire administration, where the items are presented on the computer. Adaptive computerized questionnaire administration, where a selection of items is presented on the computer, and based on the answers on those items, the computer selects following items optimized for the tester’s estimated ability or trait. 3.10 JAD SESSIONS: JAD (Joint Application Development) is a methodology that involves the client or end user in the design and development of an application, through a succession of collaborative workshops called JAD sessions. Chuck Morris and Tony Crawford, both of IBM, developed JAD in the late 1970s and began teaching the approach through workshops in 1980. The JAD approach, in comparison with the more traditional practice, is thought to lead to faster development times and greater client satisfaction, because the client is involved throughout the development process. In comparison, in the traditional approach to 48 systems development, the developer investigates the system requirements and develops an application, with client input consisting of a series of interviews. Joint Application Design (JAD) is a process used in the prototyping life cycle area of the Dynamic Systems Development Method (DSDM) to collect business requirements while developing new information systems for a company. "The JAD process also includes approaches for enhancing user participation, expediting development, and improving the quality of specifications." It consists of a workshop where “knowledge workers and IT specialists meet, sometimes for several days, to define and review the business requirements for the system” The attendees include high level management officials who will ensure the product provides the needed reports and information at the end. This acts as “a management process which allows Corporate Information Services (IS) departments to work more effectively with users in a shorter time frame.” Through JAD workshops the knowledge workers and IT specialists are able to resolve any difficulties or differences between the two parties regarding the new information system. The workshop follows a detailed agenda in order to guarantee that all uncertainties between parties are covered and to help prevent any miscommunications. Miscommunications can carry far more serious repercussions if not addressed until later on in the process. (See below for Key Participants and Key Steps to an Effective JAD). In the end, this process will result in a new information system that is feasible and appealing to both the designers and end users. "Although the JAD design is widely acclaimed, little is actually known about its effectiveness in practice." According to Journal of Systems and Software, a field study was done at three organizations using JAD practices to determine how JAD influenced system development outcomes. The results of the study suggest that organizations realized modest improvement in systems development outcomes by using the JAD method. JAD use was most effective in small, clearly focused projects and less effective in large complex projects. Joint Application Design (JAD) was developed by Drake and Josh of IBM Raleigh and Tony Crawford of IBM Toronto in a workshop setting. Originally, JAD was designed to bring system developers and users of varying backgrounds and opinions together in a productive as well as creative environment. The meetings were a way of obtaining quality requirements and specifications. The structured approach provides a good alternative to traditional serial interviews by system analysts. 49 Brain-storming and theory Z principals in JAD: In 1984-5 Moshe Telem of Tel-Aviv University, developed and implemented a JAD conceptual approach that integrates brainstorming and Ouchi's "Japanese Management" theory Z principles for rapid, maximal and attainable requirements analysis through JAD. Telem named his approach Brainstorming a Collective Decision-Making Approach (BCDA). Telem also developed and implemented a BCDA technique (BCDT), which was successfully used within the setting of a pedagogical management information system project for the Israeli educational system. In this project brainstorming and theory Z principles in JAD proved to be not only feasible but also effective, resulting in a realistic picture of true users' information requirements. 3.10.1 Conduct Jad sessions : Joint Application Development or JAD as it is commonly known as a process originally developed for designing a computer based system. JAD focuses on the use of highly structured, well planned meetings to identify the key components of system development projects. The JAD process is based on four simple ideas; people who actually do a job have the best understanding of the job People who are trained in information technology have the best understanding of the possibilities of that technology. Information systems never exist alone The best results are obtained when all these groups work together on a project. The JAD technique is based on the observation that the success of a project can be hampered by poor intra team communication, incomplete requirements definition and lack of consensus. The training teaches the essential skills and techniques need to plan, organize and participate in JAD planning. AD focuses on the use of highly structured, well planned meetings to identify the key components of system development projects. JAD centers on a structured workshop session. It eliminates many problems with traditional meetings which are like workshops. The sessions are i) very focused ii) conducted in a dedicated environment iii) quickly drive major requirements 50 The participants include: facilitator, end users, developers, tie breakers, observers and subject matter experts. The success of JAD-based workshop depends on the skill of the facilitators. 3.10.2 Need for to Conduct JAD sessions: Everybody who is responsible for gathering requirements and developing business systems should attend the JAD training sessions. They are: workshop facilitators, business analysts, system analysts, process analysts, development project leaders, development team members, business managers and Information technology members. 3.10.3 Advantages and Disadvantages JAD is more expensive and cumbersome, compared to other traditional methods. Many companies find that JAD users participate freely in requirements modeling process. They feel a sense of ownership and support for the new system. One big disadvantage is that it opens up a lot of scope for interpersonal conflict. Compared with traditional methods, JAD may seem more expensive and can be cumbersome if the group is too large relative to the size of the project. Many companies find, however, that JAD allows key users to participate effectively in the requirements modeling process. When users participate in the systems development process, they are more likely to feel a sense of ownership in the results, and support for the new system. When properly used, JAD can result in a more accurate statement of system requirements, a better understanding of common goals, and a stronger commitment to the success of the new system. Joint Application Design (JAD) is a process used in the prototyping life cycle area of the Dynamic Systems Development Method (DSDM) to collect business requirements while developing new information systems for a company. "The JAD process also includes approaches for enhancing user participation, expediting development, and improving the quality of specifications." It consists of a workshop where “knowledge workers and IT specialists meet, sometimes for several days, to define and review the business requirements for the system.” The attendees include high level management officials who will ensure the product provides the needed reports and information at the end. This acts as “a management process which allows Corporate Information Services (IS) departments to work more effectively with users in a shorter time frame. 51 Through JAD workshops the knowledge workers and IT specialists are able to resolve any difficulties or differences between the two parties regarding the new information system. The workshop follows a detailed agenda in order to guarantee that all uncertainties between parties are covered and to help prevent any miscommunications. Miscommunications can carry far more serious repercussions if not addressed until later on in the process. (See below for Key Participants and Key Steps to an Effective JAD). In the end, this process will result in a new information system that is feasible and appealing to both the designers and end users. "Although the JAD design is widely acclaimed, little is actually known about its effectiveness in practice." According to Journal of Systems and Software, a field study was done at three organizations using JAD practices to determine how JAD influenced system development outcomes. The results of the study suggest that organizations realized modest improvement in systems development outcomes by using the JAD method. JAD use was most effective in small, clearly focused projects and less effective in large complex projects. 3.10.4 Four Principle Steps : 1) Define session objectives- The first step for the facilitator together with the project leader is to define the session objectives and answering the questions as to what are the session objectives? What is wanted from the session? Who can help create the deliverables? 2) Prepare for the session- The facilitator has primary responsibility for the JAD preparation. Four categories of tasks are involved in preparing for the session. Conduct pre-session research Create a session agenda Arrange session logistics Prepare the participants 3) Conduct the JAD session- The facilitator conducts the JAD session, leading the developers and customers through planned agenda. Conducting the meeting involves: - Starting and ending time, -Distributing and following the meeting agenda -Gaining consensus on the meeting purpose and round rules at the beginning of the meeting -Keeping the meeting on track. 52 4) Procedure the Documents- It is critical to the success of any JAD session that the information on flip-charts, foils, whiteboard, and discussions be recorded and reviewed by the participants. Each day of the session, the facilitator and scribe should create a draft of the day’s results. The final documents from the JAD should be completed as soon as possible after the session. It is primary responsibility of the facilitator and the scribe to: - organize the final document for easy use by project members - complete a "Final Draft" document - distribute it to selected individuals for review - incorporate revisions as necessary - distribute the final copy for participant sign-off JAD improves the final quality of the product by keeping the focus on the upfront of the development cycle thus reducing the errors that are likely to cause huge expenses. 3.11 VALIDATION: Validation may refer to: Validity, in logic, determining whether a statement is true Validation and verification, in engineering, confirming that a product or service meets the needs of its users Verification and Validation (software), checking that a software system meets specifications and fulfills its intended purpose Validation of foreign studies and degrees, processes for transferring educational credentials between countries Validation (computer security), the process of determining whether a user or computer program is allowed to do something. o Validate (McAfee), a software application for this purpose Validation (drug manufacture), documenting that a process or system meets its pre-determined specifications and quality attributes Validation (psychology), in psychology and human communication, the reciprocated communication of respect which signifies that the other's opinions are acknowledged, respected and heard 53 Data validation, in computer science, ensuring that data inserted into an application satisfies defined formats and other input criteria Regression model validation, in statistics, determining whether a model fits the data well 3.12 STRUCTURED WALKTHROUGHS: In typical project planning, you must define the scope of the work to be accomplished. A typical tool that is used by project managers is the work breakdown structure (WBS). This walkthrough demonstrates a general approach to creating a WBS using Team Foundation Server and Microsoft Project. This walkthrough is not based on any particular methodology. However, it does use the quality of service requirement and task work item types in the MSF for Agile Software Development process template. The approach used in this walkthrough should be adaptable your own organization's work item types and process. In this walkthrough, you will complete the following tasks: Create a requirement using Team Foundation Server. Create tasks using Team Foundation Server. Create tasks using Microsoft Project. Link tasks and requirements. Create a work breakdown structure from tasks in Microsoft Project The term is often employed in the software industry (see software walkthrough) to describe the process of inspecting algorithms and source code by following paths through the algorithms or code as determined by input conditions and choices made along the way. The purpose of such code walkthroughs is generally to provide assurance of the fitness for purpose of the algorithm or code; and occasionally to assess the competence or output of an individual or team. 3.12.1 Types of Walkthroughs Specification walkthroughs System specification Project planning Requirements analysis Design walkthroughs Preliminary design Design 54 Code walkthroughs Test walkthroughs Test plan Test procedure 3.12.2 Prerequisites The following prerequisites must be met to complete this walkthrough. Microsoft Project must be installed. A team project must be created that uses the MSF for Agile Software Development process template. 3.12.3 Scenario The scenario for this walkthrough is based on the example Adventure Works team project. Adventure Works is starting a project to set up a Web interface for ordering its products. One of the customer requirements states that customers be able to check on order status after orders are placed. The scope of this work must be defined in a work breakdown structure to a sufficient level of detail to enable project planning to be completed. The following approach is used by Adventure Works. The project manager must create the WBS and has the help of the team to do this. One person on the team is a database expert and will provide details on what is needed in the database to support the new requirement. She will enter her work details using Team Foundation Server. The project manager will work with other team members to define additional work to complete the Web interface. Then the project manager will enter those details using Microsoft Project. Finally, the project manager will create a WBS in Microsoft Visio that can be used in the project planning document. Throughout this walkthrough you will perform the steps of each role to create the tasks and WBS. When you complete the walkthrough, you will have created the following tasks and subtasks in a Gantt chart and a WBS. Order Storage Subsystem Order Tables Order Stored Procedures