Presentation is loading. Please wait.

Presentation is loading. Please wait.

Intro To Design 1 - Project Overview

Similar presentations


Presentation on theme: "Intro To Design 1 - Project Overview"— Presentation transcript:

1 Intro To Design 1 - Project Overview
Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department

2 "Good Design Is Good Design"
Language Independent! Data Independent  Database Table Direct Access File  Text File Should Not Have Multiple Copies Of Redundant Data  Never Makes Sense To Lock & Change Multiple Records When We Could Lock & Change One Record!

3 Take Really Good Notes During Lectures

4 Your Team Will Do A Prototype Focal Point  Team Presentations OVC Credit

5 Think About: Prototype Look Like?

6 MDI Containers Can/Should Have A Background
Your Protoype must be done in C# Your Prototype Must Professional In Appearance I will help you learn to put together MDI Conatainers with a background

7 Sub-Systems  High Level Architecture Diagrams
During the Design Stage, you will partition your project into Sub-Systems Elementary Library Application Your High-Level Architecture Diagram will be a graphic which does nothing more that show the various Sub-Systems for your project. User Media Check-Out Transactional Vendor Purchase Orders Transactional Fine Payment Transactional For Those Of You Who Know Database : These Will Be Tables

8 Sub-System: User  Non-Techie Interface  Develop In 5 Tutorials

9 Non-Techie Interface? 1] Easy To Use! 2] No User Manual Needed!
3] No Training Needed!

10 Class Diagram - EXCEL - 1 During the Design Stage, you will partition each of your Sub-Systems into a collection of items. You might think of these as Fields if you were using a Database or class items if using a Programming Structure DESIGN GUIDELINES Uniquely Identify Each & Every Record Name  May Not Be Unique String Searching Slower Than Numeric Searching

11 Class Diagram - EXCEL - 2 DESIGN GUIDELINES
Even If We Were Willing To Assure That Name Is Unique & If We Were Willing To Tolerate Slower Searching Name  BAD CHOICE First & Last in one container Bad Practice  to put more than one item in a single container! String Searching Slower Than Numeric Searching Slower Searching Difficult To Order By

12 Should Be Able To Uniquely Identify Each & Every Record
Class Diagram - EXCEL - 3 DESIGN GUIDELINES ID INT Auto Increment  No Repeat c Faster Search Rapid/Easy Order By Not Have To Parse Field Name Should Be Able To Uniquely Identify Each & Every Record

13 Group Of 2-3 What Are UserTypes? Elementary Library
Class Diagram - EXCEL - 4 DESIGN GUIDELINES UserType Group Of 2-3 What Are UserTypes? Elementary Library What DataType? c What Do You Think Of This? YUK YUK YUK How Do Users Know What The Choices Are? What Makes You Think Your Users Will Spell Choices Correctly? Order By  String  Slow Searching  String  Slow

14 Suppose  UserType VARCHAR(20)
Class Diagram - EXCEL - 5 Suppose  UserType VARCHAR(20) Suppose UserTypes, at this instant in time, are "Student", "Librarian", "Teacher", "Faculty" We can create a Manual ComboBox to fill a Text Field? We Have Reduced Some Of The Potential Data Entry Errors & Eliminated The Need To Know The Choices!

15 Class Diagram - EXCEL- 6  Bind Data
Suppose UserTypeID INT Suppose UserTypes, at this instant in time, are "Student", "Librarian", "Teacher", "Faculty" Programmatically Populate ComboBox: Code From File From Database Table Bind The Choices Select "Student"  return 1 Select "Librarian"  return 2 Select "Teacher"  return 3 Select "Faculty"  return 4

16 Class Diagram - EXCEL- 7  Next Ten Years
Suppose UserTypeID INT Create Software for the "Next Ten Years" Bind The Choices: Select "Student"  return 1 Select "Librarian"  return 2 Select "Teacher"  return 3 Select "Faculty"  return 4 Programmatically Populate ComboBox: Code  NOT BEST CHOICE From File * From Database Table

17 Class Diagram - EXCEL- 8  Database Choice
Table UserType in UniversityLibrary User Type  Data Entry User Type  Data Entry

18 Class Diagram - EXCEL- 9  Administrative Options #1
How Do I Envision This Working?

19 Class Diagram - EXCEL- 9  Administrative Options #2
How Do I Envision This Working?

20 Class Diagram - EXCEL- 9  Administrative Options #3
How Do I Envision This Working?

21 Not Great! Sub-Systems Low Level Architecture Diagrams - 1
F Next btnA,…, btnZ Last First Next Previous Low Level Architecture Diagrams Illustrate Functionality! Communicate Functionality  Stakeholder/Developer

22 Sub-Systems  Low Level Architecture Diagrams - 2
Not Great!

23 User Sub-System Supporting Classes
How Does UserType Fit In? Supporting Class Does Not Justify A Sub-System F Add F Departments F Edit F Delete F Add F UserType F Edit F Delete User Sub-System Supporting Classes

24 UserTypes Interface For Supporting Class ?
One Of The Teams, Last Year, Did A Complete Sub-System Interface (Next, Previous, First, Last, Edit, OVER-KILL  Too Much Work  UserType Is A Supporting Class

25 Design Is Somewhat Circular
Prototype Class Diagrams Architecture Diagrams

26 Architecture Diagrams
Class Diagrams Help Identify Data Architecture Diagrams Help Identify Data

27 Your Application  3+ Simple Sub-Systems & 1-2 Transactions
All applications will need several forms Bound In An MDI Container. There Must Be At Least One Sub-System For Each Team Member There Must Be At Least One Transactional Sub-System

28 Sub-Systems Must Have Navigation Buttons
You Will Need Navigation Buttons  Buttons Need Not Look Like = = = = = = = > Must Have: Next: Go To The Next Logical Record Previous: Go To The Next Logical Record First: Go To The First Logical Record Last: Go To The Last Logical Record

29 Always Save The User As Many Clicks As Is Possible!
Minimize Key Strokes For User You Should Often Ask: Why Is The User Here  What Do They Need To Do Next? MenuStrips Will Help! Always Save The User As Many Clicks As Is Possible!

30 Sub-Systems Must Have Navigation Buttons
Download/Make Your Own - HOPE THEY ARE BETTER THAN MINE! Use Use Good Tool Tips On Each & Every Button

31 Sub-Systems Must Have Quick Link Buttons
I have found that Users like Quick Link Buttons!

32 Extra Credit For Advanced Searches
Sub-Systems Must Have Simple Searches Search By First Extra Credit For Advanced Searches

33 Most Software Engineers Include The "Brief Class Diagram"
Which Are Required? What Type Of Control On The Screen? Default Values?

34 Most Software Is Completed By Teams!
Software Engineers Have To Wear Many Hats: The Software Engineers, Who Designed The System, May Not Be One Of The Developers Who Are To Implement The Design

35 Detailed Class Diagram  My Preferences
When I Do Design, I Constantly Put On My Developer Hat The Goal Is For The Developer To Implement The Prototype & System Envisioned By The Designer

36 Class Diagrams: Detailed  Supporting Class
Detailed Class Diagrams Can Occupy A Lot Of Real Estate?

37 Select Filters  Help You Drill Down Into The Data
Sub-Systems Must Have At Least One Select Filter Sub-Systems Must Have At Least One Order By SELECT * FROM Users WHERE UserType Like "Students"; Select Filters  Help You Drill Down Into The Data

38


Download ppt "Intro To Design 1 - Project Overview"

Similar presentations


Ads by Google