Dfd

16
Large Scale Systems Design Dr Dario Landa-Silva 1 University of Nottingham School of Computer Science Large Scale Systems Design G52LSS Lecture 15 – Constructing DFDs Steps to Construct DFDs Examples of Creating DFDs Learning outcomes: describe the steps to approach the construction of multi-level DFDs; understand the relationship between DFDs and use case analysis; develop context diagrams; develop Level 0 DFDs; decompose DFDs; engage in discussions when creating DFDs.

description

dfd

Transcript of Dfd

  • Large Scale Systems DesignDr Dario Landa-Silva

    1University of NottinghamSchool of Computer Science

    Large Scale Systems DesignG52LSS

    Lecture 15 Constructing DFDs

    Steps to Construct DFDsExamples of Creating DFDs

    Learning outcomes: describe the steps to approach the constructionof multi-level DFDs; understand the relationship between DFDs anduse case analysis; develop context diagrams; develop Level 0 DFDs;decompose DFDs; engage in discussions when creating DFDs.

  • Large Scale Systems DesignDr Dario Landa-Silva

    2University of NottinghamSchool of Computer Science

    1. Build the context diagram

    2. Create the level 0 diagram using (if necessary) therequirements definition, use case diagrams, use cases,user stories, summary of business activities, etc.

    3. Decompose level 0 processes into level 1 DFDs

    4. Decompose level 1 processes into level 2 DFDs anddecompose further if needed

    5. Balance and validate DFDs to ensure completenessand correctness

    Steps to Construct DFDs

  • Large Scale Systems DesignDr Dario Landa-Silva

    3University of NottinghamSchool of Computer Science

    Important Considerations When Constructing DFDs

    Keep focus on modelling flow and storage of data

    Identify processes that transform data

    Maintain the balance between diagrams

    Assess the need for decomposition

    Follow conventions to name DFD elements

    Think of data flows as data in motion

    Think of data stores are as data at rest

    Think of processes as actions performed on data

    Do not worry about how data is produced or used bythe external entities

  • Large Scale Systems DesignDr Dario Landa-Silva

    4University of NottinghamSchool of Computer Science

    Creating the context diagram Identify actors or user roles (external entities) from any

    documentation available Identify the information that each external entity sends to

    the system and receives from the system

    Creating the level 0 DFD Identify the major functions of the system (processes) from

    any documentation available Identify which processes produce the data sent to the

    external entities and which processes require the dataproduced by the external entities

    Identify data flows and data stores and their interaction Data flow to data store means update, data flow from data

    store means retrieve

  • Large Scale Systems DesignDr Dario Landa-Silva

    5University of NottinghamSchool of Computer Science

    Creating level 1, level 2, etc. DFDs

    Functional decomposition in an iterative process whichresults in DFDs that give more details about a process

    The lowest level DFDs are called primitive DFDs Describing a process can help to decide whether it is

    necessary to decompose the corresponding DFD If a process requires to carry out several tasks (logical

    functions), it is a good candidate for decomposition Ensure the conservation of inputs and outputs (data flows)

    when decomposing processes (balancing) Data splits and data joins can be used in the decomposition

    process to provide more detailed view of how data istransmitted

    Ensure completeness, consistency, no timing dependence,iterative development, creation of primitive DFDs

  • Large Scale Systems DesignDr Dario Landa-Silva

    6University of NottinghamSchool of Computer Science

    Example 15.1 Creating a multi-level DFD for this scenario.

    University Registration System. The system should enablestaff of each academic department to examine the modulesoffered by their department, add and remove modules, andchange the information about them (e.g. the maximumnumber of students permitted). It should permit students toexamine currently available modules, add and drop modulesto and from their schedules, and examine the modules forwhich they are enrolled. Department staff should be able toprint a variety of reports about the modules and the studentsenrolled in them. The system should ensure that no studenttakes too many modules and that students who have anyunpaid fees are not permitted to register (students can verifytheir fee paying status). Note: assume that a fees data store ismaintained by the universitys financial office and this datastore is accessed by the registration system but the fees datastore is not modified by the registration system.

  • Large Scale Systems DesignDr Dario Landa-Silva

    7University of NottinghamSchool of Computer Science

    module enrolmentmodule offering list

    enrolment report

    enrolmentreport request

    Example 15.1 (cont.) The Context Diagram

    0

    UniversityRegistration

    System

    DepartmentStaff

    Student

    moduleoffering change

    module drop

    availablemodule request

    Finance Staff

    financialstatus request

    financialstatus

    financial status request

    available modules

    student schedule

    financial status

  • Large Scale Systems DesignDr Dario Landa-Silva

    8University of NottinghamSchool of Computer Science

    DeptStaff

    1

    Maintaindepartmentmoduleofferings

    2

    Maintainstudentenrolments

    3

    ModuleEnrolmentReports

    module offering change

    moduleofferings

    availablemodules

    D1 Fees

    D2 Module Offering

    D3 Enrolmentmodule information

    enrolment report request

    enrolment report

    enrolmentinformation

    Student

    moduleofferingupdate

    module offering list

    availablemodules request

    available modules

    module enrolment

    student schedule

    studentschedule

    moduleenrolmentrequest

    module drop

    4

    VerifyFinancialStatus

    payments update payments history

    FinanceStaff

    financialstatus request

    financial status

    financialstatus request

    financialstatus

    request

    Produce

    Example 15.1 (cont.)The Level 0 DFD

  • Large Scale Systems DesignDr Dario Landa-Silva

    9University of NottinghamSchool of Computer Science

    Process 2 (maintain student enrolments) of the Level 0DFD can be decomposed to a number of child processes.The corresponding use case and user story can be used toguide the decomposition.

    Examples of possible child processes are:2.1 Validate student identity2.2 Find fee paying status2.3 Find available modules2.4 Enrol student in module2.5 Drop student from module2.6. Find student schedule

    Example 15.1 (cont.) Level 1 DFD

  • Large Scale Systems DesignDr Dario Landa-Silva

    10University of NottinghamSchool of Computer Science

    userregistration

    2.1Validatestudentidentity

    username

    password

    availablemodule request

    D4 Student Users

    user record

    new user details

    2.3Find

    availablemodules

    login messagelist of available modules

    available modules

    available modules

    2.2Find fee

    paying status

    user IDuser

    registration

    fee paying history

    2.6Find student

    schedule

    student schedule

    student schedule

    user registration

    2.4Enrol student

    in module

    moduleenrolment

    2.5Drop studentfrom module

    enrolment

    drop

    studentschedule

    moduledrop

    user registration

    add module request

    drop modulerequest

    module enrolment request

  • Large Scale Systems DesignDr Dario Landa-Silva

    11University of NottinghamSchool of Computer Science

    Example 15.2 Creating a multi-level DFD for this scenario.

    Health Club Membership System. When members join thehealth club, they pay a fee for a certain length of time. Mostmemberships are for one year, but memberships as short as 2months are available. Throughout the year, the health cluboffers a variety of discounts on their regular membershipprices (e.g. two memberships for the price of one forValentines Day). It is common for members to pay differentamounts for the same length of membership. The club wantsto mail out reminder letters to members asking them torenew their memberships 1 month before their membershipsexpire. Some members have become angry when asked torenew at a much higher rate than their original membershipcontract, so the club wants to track the price paid so that themanager can override the regular prices with special priceswhen members are asked to renew.

  • Large Scale Systems DesignDr Dario Landa-Silva

    12University of NottinghamSchool of Computer Science

    The system must track these new prices so that renewals canbe processed accurately. One of the problems in the healthclub industry is the high turnover rate of members. Whilesome members remain active for many years, about half ofthe members do not renew their memberships. This is a majorproblem, because the health club spends a lot in advertisingto attract each new member.

    The manager wants the system to track each time a membercomes into the club. The system will then identify the heavyusers and generate a report so that the manager can askthem to renew their memberships early, perhaps offeringthem a reduce rate for early renewal. Likewise, the systemshould identify members who have not visited the club inmore than a month, so the manager can call them andattempt to re-interest them in the club.

  • Large Scale Systems DesignDr Dario Landa-Silva

    13University of NottinghamSchool of Computer Science

    delete member requestmember details

    update request

    renew details request

    Example 15.2 (cont.) The Context Diagram

    0

    Health ClubMembership

    SystemMember

    ClubManager

    renewal info

    club visit info

    new member request

    renew details request

    current membership

    club usage report

  • Large Scale Systems DesignDr Dario Landa-Silva

    14University of NottinghamSchool of Computer Science

    new membership details

    renewal details

    Example 15.2 (cont.) The Level 0 DFD

    MemberClub

    Manager

    1MaintainMembersDetails

    2Maintain

    MembershipsDetails

    3Maintain

    Club UsageRecords

    D1 Members

    D2 Memberships

    D3 Club usageclub visit

    usage details

    club usage reportclub visit info

    current membershipdetails

    renew details request

    new member requestcurrent membership

    member recordmember to delete

    member updates

    member record

    delete member requestupdate request

    member details

    renew detailsrequest

    renewal offer

  • Large Scale Systems DesignDr Dario Landa-Silva

    15University of NottinghamSchool of Computer Science

    Example 15.2 (cont.) Level 1DFD

    From the above Level 0 DFD, a good candidate for furtherdecomposition is process 2: Maintain memberships details.This is because of the various types of memberships,discounts and offers mentioned in the scenario narrative.

    Examples of possible child processes are:2.1 Validate renewal request2.2 Find membership status2.3 Find available membership types2.4 Validate renewal payment

  • Large Scale Systems DesignDr Dario Landa-Silva

    16University of NottinghamSchool of Computer Science

    Additional Reading

    Chapter 6 of (Dennis et al., 2006)

    Chapter 7 of (Kendall and Kendall, 2005)