Systems Analysis and Design Rabie A. Ramadan Slides by Roberta M. Roth University of Northern Iowa Questionnaires 2 Questionnaires A set of written questions, often sent to a large number of people May be paper-based or electronic Select participants using samples of the population Design the questions for clarity and ease of analysis Administer the questionnaire and take steps to get a good response rate Questionnaire follow-up report Good Questionnaire Design •Begin with non-threatening and interesting questions •Group items into logically coherent sections •Do not put important items at the very end of the questionnaire •Do not crowd a page with too many items •Avoid abbreviations •Avoid biased or suggestive items or terms •Number questions to avoid confusion •Pretest the questionnaire to identify confusing questions •Provide anonymity to respondents Document Analysis Document Analysis Study of existing material describing the current system Forms, reports, policy manuals, organization charts describe the formal system Look for the informal system in user additions to forms/report and unused form/report elements User changes to existing forms/reports or non-use of existing forms/reports suggest the system needs modification Observation Observation Watch processes being performed Users/managers often don’t accurately recall everything they do Checks validity of information gathered other ways Be aware that behaviors change when people are watched Be modest (seems to be shy) Identify peak and lull (quite) periods Selecting the Appropriate RequirementsGathering Techniques Type of information Depth of information Breadth of information Integration of information User involvement Cost Combining techniques Your turn Design a Questionnaire for the project ? Report your observations on the current projects and usabilities ? Collect at least 5of them The System is the Data At the core: any system is defined by the data obtained, stored, and displayed Data flow analysis is the center/core/key Before we start Evaluate the following questioner? Context Diagram Shows the context into which the system fits Shows the overall business process as just one process Shows all the outside entities that receive information from or contribute information to the system Context Diagram of Alibris Bibliographic Sources of Catalog Data WWW Customers Used Book Sellers New Book Publishers and Distributors Library Customers Alibris Systems Sales Channels (BN.com, Borders, Amazon, eBay, Chapters, Ingram, …) Context of Quicken – 1995 (?) Quicken On PC/Mac Quicken User Slide 15 Quicken - 2006 Banks Quicken On PC/Mac Quicken User VISA/MC Vendors (check writing) Slide 16 Brokerage Your turn Draw the context diagram for e-learning system ? Slide 17 Key Definitions Process model A formal way of representing how a business operates Illustrates the activities that are performed and how data moves among them Data flow diagramming A popular technique for creating process models 6 - 18 Key Definitions Logical process models describe processes without suggesting how they are conducted. Physical process models include process implementation information. 6 - 19 DATA FLOW DIAGRAMS 6 - 20 Reading a DFD 6 - 21 DFD Elements Process An activity or function performed for a specific business reason Manual or computerized Data flow A single piece of data or a logical collection of data Always starts or ends at a process 6 - 22 DFD Elements Data Store A collection of data that is stored in some way Data flowing out is retrieved from the data store Data flowing in updates or is added to the data store External entity A person, organization, or system that is external to the system but interacts with it. 6 - 23 Naming and Drawing DFD Elements Process Data flow Data store External entity 6 - 24 Name the Entities of the DFD? 6 - 25 5 - 26 Depicting Business Processes with DFDs Business processes are too complex to be shown on a single DFD Decomposition is the process of representing the system in a hierarchy of DFD diagrams Child diagrams show a portion of the parent diagram in greater detail 6 - 27 Key Definition Balancing involves insuring that information presented at one level of a DFD is accurately represented in the next level DFD. 6 - 28 Relationship Among DFD levels Context diagram Level 0 diagram Level 1 diagram Level 2 diagram 6 - 29 Context Diagram First DFD in every business process Shows the context into which the business process fits Shows the overall business process as just one process (process 0) Shows all the external entities that receive information from or contribute information to the system 6 - 30 Level 0 Diagram Shows all the major processes that comprise the overall system – the internal components of process 0 Shows how the major processes are interrelated by data flows Shows external entities and the major processes with which they interact Adds data stores 6 - 31 Level 1 Diagrams Generally, one level 1 diagram is created for every major process on the level 0 diagram Shows all the internal processes that comprise a single process on the level 0 diagram Shows how information moves from and to each of these processes If a parent process is decomposed into, for example, three child processes, these three child processes wholly and completely make up the parent process 6 - 32 Level 2 Diagrams Shows all processes that comprise a single process on the level 1 diagram Shows how information moves from and to each of these processes Level 2 diagrams may not be needed for all level 1 processes Correctly numbering each process helps the user understand where the process fits into the overall system 6 - 33 Data Flow Splits and Joins A data flow split shows where a flow is broken into its component parts for use in separate processes Data flow splits need not be mutually exclusive nor use all the data from the parent flow As we move to lower levels we become more precise about the data flows A data flow join shows where components are merged to describe a more comprehensive flow 6 - 34 Alternative Data Flows Where a process can produce different data flows given different conditions We show both data flows and use the process description to explain why they are alternatives Tip -- alternative data flows often accompany processes with IF statements 6 - 35 Your Turn At this point in the process it is easy to lose track of the “big picture”. Describe the difference between data flows, data stores, and processes. Describe in your own words the relationship between the DFD and the ultimate new application being developed. Process Descriptions Text-based process descriptions provide more information about the process than the DFD alone If the logic underlying the process is quite complex, more detail may be needed in the form of Structured English Decision trees Decision tables 6 - 37 Structured English Common Statements Example Action Statement Profits = Revenues - Expenses Generate Inventory Report Add Product record to Product Data Store If Statement IF Customer Not in Customer Data Store THEN Add Customer record to Customer Data Store ELSE Add Current Sale to Customer’s Total Sales Update Customer record in Customer Data Store For Statement FOR all Customers in Customer Data Store, do Generate a new line in the Customer Report Add Customer’s Total Sales to Report Total Case Statement 6 - 38 CASE If Income < 10,000: Marginal tax If Income < 20,000: Marginal tax If Income < 30,000: Marginal tax If Income < 40,000: Marginal tax ELSE Marginal tax rate = 38% ENDCASE rate rate rate rate = = = = 10% 20% 31% 35% Decision Trees Graphical way of depicting if-then-else logic 6 - 39 Decision Tables Represent very complex processes with multiple decision rules 6 - 40 Explain the following decision tree ? When should I take a decision not to buy? 5 - 41 CREATING DATA FLOW DIAGRAMS 6 - 42 Integrating Scenario Descriptions DFDs start with the use cases and requirements definition Generally, the DFDs integrate the use cases Names of use cases become processes Inputs and outputs become data flows “Small” data inputs and outputs are combined into a single flow 6 - 43 Use Case Analysis 5 - 44 Key Ideas Use cases are a text-based method of describing and documenting complex processes Use cases add detail to the requirements outlined in the requirement definition Systems analysts work with users to develop use cases Systems analysts develop process and data models later based on the use cases 5 - 45 Role of Use Cases A use case is a set of activities that produce some output result Describes how the system reacts to an event that triggers the system Trigger -- event that causes the use case to be executed Event-driven modeling – everything in the system is a response to some triggering event 5 - 46 Role of Use Cases All possible responses to the event are documented Use cases are helpful when the situation is complicated 5 - 47 Elements of a Use Case Basic information Name, number and brief description Trigger – event that causes the use case to being External trigger – some from outside the system Temporal triggers – time-based occurrences Viewpoint of the use cases should be consistent Major inputs and outputs Sources and destinations Goal is to be all inclusive Details Steps performed and the data inputs and outputs 5 - 48 Sample Use Case Building Use Cases 5 - 50 Process of Developing Use Cases Identify the major use cases Identify the major steps within each use case Identify elements within steps Confirm the use case Cycle through the above steps iteratively 5 - 51 Step 1 – Identify the major use cases Activities •Start a use case form for each use case •If more than nine, group into packages Typical Questions Asked •Ask who, what, and where about the tasks and their inputs and outputs: •What are the major tasks performed? •What triggers this task? What tells you to perform this task? •What information/forms/reports do you need to perform this task? •Who gives you these information/forms/reports? •What information/forms/reports does this produce and where do they go? 5 - 52 Step 2 - Identify the major steps within each use case Activities •For each use case, fill in the major steps needed to process the inputs and produce the outputs Typical Questions Asked •Ask how about each use case: •How do you produce this report? •How do you change the information on the report? •How do you process forms? •What tools do you use to do this step (e.g., on paper, by email, by phone)? 5 - 53 Step 3 – Identify elements within steps Activities Typical Questions Asked •For each step, identify •Ask how about each step its triggers and its •How does the person know when to perform this step? inputs and outputs •What forms/reports/data does this step produce? •What forms/reports/data does this step need? •What happens when this form/report/data is not available? 5 - 54 Step 4 – Confirm the use case Activities •For each use case, validate that it is correct and complete 5 - 55 Typical Questions Asked •Ask the user to execute the process using the written steps in the use case – that is, have the user role-play the use case Summary Use cases contain all the information needed for process modeling, but are easier for users to comprehend Use cases are created in an iterative cycle of steps until they are considered accurate and complete 5 - 60 Some of the Use Cases to work on Registration Use Cases Grades recording Use Case Uploading lectures Use Case Exams Use Case 5 - 61 Steps in Building DFDs Build the context diagram Create DFD fragments for each use case Organize DFD fragments into level 0 diagram Decompose level 0 processes into level 1 diagrams as needed; decompose level 1 processes into level 2 diagrams as needed; etc. Validate DFDs with user to ensure completeness and correctness 6 - 62 Build the Context Diagram Draw one process representing the entire system (process 0) Find all inputs and outputs listed at the top of the use cases that come from or go to external entities; draw as data flows Draw in external entities as the source or destination of the data flows 6 - 63 A Context Diagram Example 6 - 64 Creating DFD Fragments Each use case is converted into one DFD fragment Number the process the same as the use case number Change process name into verb phrase Design the processes from the viewpoint of the organization running the system 6 - 65 Creating DFD Fragments Add data flows to show use to data stores as sources and destinations of data Layouts typically place processes in the center inputs from the left outputs to the right stores beneath the processes 6 - 66 A DFD Fragment Example 6 - 67 Creating the Level 0 Diagram Combine the set of DFD fragments into one diagram Generally move from top to bottom, left to right Minimize crossed lines Iterate as needed DFDs are often drawn many times before being finished, even with very experienced systems analysts 6 - 68 A Level 0 DFD Example 6 - 69 Creating Level 1 Diagrams (and Below) Each use case is turned into its own DFD Take the steps listed on the use case and depict each as a process on the level 1 DFD Inputs and outputs listed on use case become data flows on DFD Include sources and destinations of data flows to processes and stores within the DFD May also include external entities for clarity 6 - 70 Creating Level 1 Diagrams (and Below) Input data flows shown on a parent DFD are often unbundled on the child diagram using splits Output data flows shown on a child DFD are often bundled using joins and shown as a larger data flow on the parent diagram When to stop decomposing DFDs? Ideally, a DFD has at least 3 processes and no more than 7-9. 6 - 71 Validating the DFD Syntax errors – diagram follows the rules Assure correct DFD structure For each DFD: Check each process for: A unique name: action verb phrase; number; description At least one input data flow At least one output data flow Output data flow names usually different than input data flow names Between 3 and 7 processes per DFD 6 - 72 Validating the DFD For each DFD: Check each data flow for: A unique name: noun; description Connects to at least one process Shown in only one direction (no two-headed arrows) A minimum number of crossed lines Check each data store for: A unique name: noun; description At least one input data flow At least one output data flow Check each external entity for: A unique name: noun; description At least one input or output data flow 6 - 73 Validating the DFD Across DFDs: Context Diagram: Every set of DFDs must have one Context Diagram Viewpoint: There is a consistent viewpoint for the entire set of DFDs Decomposition: Every process is wholly and complete described by the processes on its children DFDs Balance: Every data flow, data store, and external entity on a higher level DFD is shown on the lower level DFD that decomposes it No data stores or data flows appear on lower-lever DFDs that do not appear on their parent DFD 6 - 74 Validating the DFD Semantics errors – diagram conveys correct meaning Assure accuracy of DFD relative to actual/desired business processes To verify correct representation, use User walkthroughs Role-play processes Examine lowest level DFDs to ensure consistent decomposition Examine names carefully to ensure consistent use of terms 6 - 75 Summary The Data Flow Diagram (DFD) is an essential tool for creating formal descriptions of business processes. Use cases record the input, transformation, and output of business processes and are the basis for process models. Eliciting use cases and modeling business processes are critically important skills for the systems analyst to master. 6 - 76 When databases are used , we need schema translation ? 5 - 77 Schema Translation 78 Extended Entity Relationship(EER) Model The ER model has been widely used but does not have some shortcomings. It is difficult to represent cases where an entity may have varying attributes dependent upon some property. ER model has been extended into Extended Entity Relationship model It includes more semantics such as generalization, categorization and aggregation. 79 Cardinality: One-to-one relationship A one-to-one relationship between set A and set B is defined as: For all a in A, there exists at most one b in B such that a and b are related, and vice versa. Example • A president leads a nation. 80 Cardinality: One-to-one relationship Relational Model: Relation President (President_name, Race, *Nation_name) Relation Nation (Nation_name, Nation_size) Where underlined are primary keys and "*" prefixed are foreign keys Extended Entity Relationship model 81 In Election System : One-to-one relationship !!!!! Person and ID Persons’ and Vote Judge and Box Username and Person 82 Cardinality: Many-to-one relationship A many-to-one relationship from set A to set B is defined as: For all a in A, there exists at most one b in B such that a and b are related, and for all b in B, there exists zero or more a in A such that a and b are related. Example A director directs many movies. 83 Cardinality: Many-to-one relationship Relational Model: Relation Director (Director_name, Age) Relation Movies (Movie_name, Sales_volume, *Director_name) Extended entity relationship model: 84 In Election System : many to one relationship !!!! Box and judge President position and candidates Candidate and votes Candidate and position 85 Cardinality: Many-to-many relationship A many-to-many relationship between set A and set B is defined as: For all a in A, there exists zero or more b in B such that a and b are related, and vice versa. Example Many students take many courses such that a student can take many courses and a course can be taken by many students. many-many 86 Cardinality: Many-to-many relationship Relational Model: Relation Student (Student_id, Student_name) Relation Course (Course_id, Course_name) Relation take (*Student_id, *Course_id) Extended entity relationship model: 87 In Election System : many to many relationship !!!! Boxes and judges at the same place Security table contains many user names and passwords for many persons 88 Data Semantic: Is-a (Subtype) relationship The relationship A isa B is defined as: A is a special kind of B. Example Father is Male. 89 Data Semantic: Is-a (Subtype) relationship Relational Model: Relation Male (Name, Height) Relation Father (*Name, Birth_date) Extended entity relationship model 90 Data Semantic: Disjoint Generalization The process of generalization is to classify similar entities into a single entity. More than one isa relationship can form data abstraction (i.e. superclass and subclasses) among entities. A subclass entity is a subset of its superclass entity. There are two kinds of generalization. The first is disjoint generalization such that subclass entities are mutually exclusive. The second is overlap generalization such that subclass entities can overlap each other. Example of Disjoint Generalization A refugee and a non-refugee can both be a boat person, but a refugee cannot be a non-refugee, and vice versa. 91 Data Semantic: Disjoint Generalization Relational Model: Relation Boat_person (Name, Birth_date, Birth_place) Relation Refugee (*Name, Open_center) Relation Non-refugee (*Name, Detention_center) Extended entity relationship model: 92 Data Semantic: Overlap Generalization Example of Overlap Generalization A computer programmer and a system analyst can both be a computer professional, and a computer programmer can also be a system analyst, and vice versa. 93 Data Semantic: Overlap Generalization Relational Model: Relation Computer_professional (Employee_id, Salary) Relation Computer_programmer (*Employee_id, Language_skill) Relation System_analyst (*Employee_id, Application_system) Extended entity relationship model: 94 Data Semantic: Categorization Relationship In cases the need arises for modeling a single superclass/subclass relationship with more than one superclass(es), where the superclasses represent different entity types. In this case, we call the subclass a category. 95 Data Semantic: Categorization Relationship Relational Model: Relation Department (Borrower_card, Department_id) Relation Doctor (Borrower_card, Doctor_name) Relation Hospital (Borrower_card, Hospital_name) Relation Borrower (*Borrower_card, Return_date, File_id) Extended Entity Relationship Model 96 Data Semantic: Aggregation Relationship Aggregation is a method to form a composite object from its components. It aggregates attribute values of an entity to form a whole entity. Example The process of a student taking a course can form a composite entity (aggregation) that may be graded by an instructor if the student completes the course. 97 Data Semantic: Aggregation Relationship Relational Model: Relation Student (Student_no, Student_name) Relation Course (Course_no, Course_name) Relation Takes (*Student_no, *Course_no, *Instructor_name) Relation Instructor (Instructor_name, Department) Extended Entity Relationship Model 98 Data Semantic: Total Participation An entity is in total participation with another entity provided that all data occurrences of the entity must participate in a relationship with the other entity. Example An employee must be hired by a department. 99 Data Semantic: Total Participation Relational Model: Relation Department (Department_id, Department_name) Relation Employee (Employee_id, Employee_name, *Department_id) Extended entity relationship model: 100 Data Semantic: Partial Participation An entity is in partial participation with another entity provided that the data occurrences of the entity are not totally participate in a relationship with the other entity. Example An employee may be hired by a department. 101 Data Semantic: Partial Participation Relational Model: Relation Department (Department_id, Department_name) Relation Employee (Employee_no, Employee_name, &Department_id) Where & means that null value is allowed Extended entity relationship model: 102 Data Semantic: Weak Entity The existence of a weak entity depends on its strong entity. Example A hotel room must concatenate hotel name for identification. 103 Data Semantic: Weak Entity Relational Model: Relation Hotel (Hotel_name, Ranking) Relation Room (*Hotel_name, Room_no, Room_size) Extended entity relationship model 104 Cardinality: N-ary Relationship Multiple entities relate to each other in an n-ary relationship. Example Employees use a wide range of different skills on each project they are associated with. 105 Cardinality: N-ary Relationship Relational Model: Relation Engineer (Employee_id, Employee_name) Relation Skill (Skill_name, Years_experience) Relation Project (Project_id, Start_date, End_date) Relation Skill_used (*Employee_id, *Skill_name, *Project_id) Extended entity relationship model: 106 Example name addr Bars name Sells Beers license Note: license = beer, full, none 107 Frequents name Drinkers Likes addr manf Bars sell some beers. Drinkers like some beers. Drinkers frequent some bars. Example For the relationship Sells, we might have a relationship set like: Bar Joe’s Bar Joe’s Bar Sue’s Bar Sue’s Bar Sue’s Bar 108 Beer Bud Miller Bud Pete’s Ale Bud Lite Example name addr name license Bars Beers Preferences Drinkers name 109 addr manf A Typical Relationship Set Bar Drinker Joe’s Bar Ann Sue’s Bar Ann Sue’s Bar Ann Joe’s Bar Bob Joe’s Bar Bob Joe’s Bar Cal Sue’s Bar Cal 110 Beer Miller Bud Pete’s Ale Bud Miller Miller Bud Lite Your Assignment Build Entity-relationship model Relation Order (Order_code, Order_type, Our_reference, Order_date, Approved_date, *Head, *Supplier_code) Relation Supplier (Supplier_code, Supplier_name) Relation Product (Product_code, Product_description) Relation Department (Department_code, Department_name) Relation Head (Head, *Department_code, Title) Relation Order_Product (*Order_code, *Product_code, Qty, Others, Amount) Relation Note (*Order_code, Sequence#, Note) where underlined are primary keys and prefixed with ‘*’ are foreign keys. 111