Title: Software Design/Database Design
1Software Design/Database Design
Dr. Praveen Madiraju Department of Mathematics,
Statistics, and Computer Science Marquette
University http//www.mscs.mu.edu/praveen/
2What is Design?
3What is Design? (contd)
- What is involved in Design Process?
- Goals, Ideas
- Knowledge, Representations
- Languages, Tools
- Activities
- Software is somewhat unique
- disparate projects
- changing tools
- many advances are in programming languages
4eCase Review Management System
Insurance Companies
Incoming Case
Case Review
Case Transcription
Billing
eCase Management System
5Software Development Process
6Software Development Process (contd)
7SCRUM Agile Software Development
- SCRUM is an agile, lightweight process for
managing and controlling software and product
development in rapidly changing environments. - Iterative, incremental process
- Team-based approach
- developing systems/ products with rapidly
changing requirements - Improve communication and maximize cooperation
- A way to maximize productivity
8SCRUM (contd)
- Components of Scrum
- Roles Scrum Master, Team, Product Owner
- Process Sprint Planning, Sprint, Daily Scrum,
Sprint Review Meeting
9Requirements Discovery Process
- Interviews with clients
- Gather functional and non-functional requirements
- Sometimes a quick prototype helps
10Requirements Discovery Process (contd)
- Capturing Requirements using Use-Case Modeling
11Requirements Analysis
12Software Design
- System design
- describes what the software system should do
- focuses more on desirability
- typically captures the overall, essential framing
of the solution - Includes database design as well
- specific technology and database independent
- Implementation design
- describes what the implementer should do
- focuses more on feasibility
- typically represents a final completed design
- typically captures a fully detailed roadmap
13Database Design
- Basic Concepts of Database
- Table Row, Column, Primary Key, Foreign Key,
Index
Primary Key
Table Name
Foreign Key
EMPLOYEE
DEPARTMENT
SSN FName DNO
123 John 1
234 Leela 2
DNO DName
1 Accounting
2 Administration
Row
Column
14Database Design (contd)
Main Phases of Database Design
15ER (Entity Relationship) Modeling
- Conceptual design phase result is a conceptual
schema - ER consists of entities, attributes, and
relationships - Example Company Database System.
- We store each EMPLOYEEs social security number,
address, salary, sex, and birthdate. Each
employee works for one department but may work on
several projects - Entity EMPLOYEE, DEPARTMENT,
- Attributes SSN, Address, Sex, Birthdate
- Relationship WORKS_FOR,
Higher Level Requirements
16ER Modeling (cont'd)
LName
FName
MI
DName
DNO
Name
SSN
WORKS_FOR
1
DEPARTMENT
N
EMPLOYEE
DOB
Sex
Age
Phone
17ER Modeling (cont'd)
Strong Participation
- Types of Relationships
- 11 1N (previous slide)
MANAGES
1
DEPARTMENT
1
EMPLOYEE
WORKS_ON
N
PROJECT
M
EMPLOYEE
Hours
PNO
PName
18ER to Relational Schema
- Entities ? Tables
- Attributes ? Columns
EMPLOYEE_PHONE
EMPLOYEE
SSN Phone
123 414-111-
123 262-000
SSN FName LName MI DOB Age Sex
123 John Smith A M
234 Leela B F
19Database Tools
- ER Modeling Tools/Technologies
- Microsoft Visio
- Oracle Designer
- Rational Rose
- ERWin,
- Database Vendors
- Commercial Oracle, IBM DB2, Microsoft SQL
Server, - Free Ware MySQL, SQLLite, PostgresSQL,
- Database Languages
- Structured Query Language (SQL), PL/SQL
20Application Design Models
- Data Flow Diagrams
- Pseudo code
- Algorithms
- Object-Oriented Analysis and Modeling using UML
(Unified Modeling Language)
21UML
- Use Case Diagrams
- Activity Diagrams
- Sequence Diagrams
- Class Diagrams
22Component Reuse
- If a component already exists, why re invent the
wheel? - There exists components for almost anything these
days - Risks associated with free or third party
components
23User Interface Diagrams
- Mock-ups, Sketches, User interaction Diagrams,
Prototype Demos, Browser
24User Interface Diagrams (contd)
Wireframe
25Application Design Tools
- UML Tools
- Rational Software Modeler, Microsoft Visio,
Eclipse-Omondo, Dia (free ware), - User Interface Tools
- Your favorite browser, Microsoft .NET framework,
Java Swing, Visio, WireframeSketcher,
26Implementation
- Small stand alone applications
- Java, Microsoft .NET,
- Web based applications
- Java Servlets, Microsoft .NET, PHP-MySQL,
- Enterprise Resource Planning Applications
- SAP, Oracle Apps,
27Multi-tier Application Architecture
Server (Business Logic) (Data Access Logic)
Data Resources
Web Server (Business Logic) (Data Access Logic)
Client (Presentation Logic) (Business
Logic) (Data Access Logic)
Two-tier Architecture
Three-tier Architecture
28Multi-tier Application Architecture (contd)
29Construction and Testing
- Unit testing
- System testing
30Installation and Delivery
31System Operation and Maintenance
- Program Back up, Recovery and Maintenance
- Technical Support
- Further System Enhancements
- Hopefully no bugs
32Thank you
33ER to Relational Schema (contd)
- Dealing with Relationships 11
DName
DNO
StartDate
SSN
FName
MANAGES
1
DEPARTMENT
1
EMPLOYEE
TRANSLATES TO
EMPLOYEE
DEPARTMENT
SSN FName
123 John
234 Leela
DNO DName MgrSSN MgrStartDate
1 Account.. 234
34ER to Relational Schema (contd)
- Dealing with Relationships 1N
DName
DNO
SSN
FName
WORKS_FOR
1
DEPARTMENT
N
EMPLOYEE
TRANSLATES TO
EMPLOYEE
DEPARTMENT
SSN FName DNO
123 John 1
234 Leela 1
DNO DName
1 Account..
2 Admin
35ER to Relational Schema (contd)
- Dealing with Relationships MN
FName
SSN
WORKS_ON
N
PROJECT
M
EMPLOYEE
Hours
PNO
PName
PROJECT
EMPLOYEE
WORKS_ON
PNO PName
1001 OceanBlue
1002 EverGreen
SSN FName
123 John
234 Leela
SSN PNO Hours
123 1001 20
123 1002 20