software design/database design dr. praveen madiraju department of mathematics, statistics, and...
TRANSCRIPT
Software Design/Database DesignSoftware Design/Database Design
Dr. Praveen Madiraju
Department of Mathematics, Statistics, and Computer Science
Marquette University
http://www.mscs.mu.edu/~praveen/
What is Design?What is Design?
What is Design? (cont’d)What is Design? (cont’d)
What is involved in Design Process?What is involved in Design Process?
Goals, IdeasKnowledge, RepresentationsLanguages, ToolsActivities
Software is somewhat uniqueSoftware is somewhat unique
disparate projectschanging toolsmany advances are in programming languages
eCase Review Management SystemeCase Review Management System
Insurance
Companies
Incoming
Case
Case
Review
Case
TranscriptionBilling
eCase Management System
Software Development ProcessSoftware Development Process
Software Development Process (cont’d)Software Development Process (cont’d)
SCRUM : Agile Software DevelopmentSCRUM : 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
SCRUM (cont’d)SCRUM (cont’d)
Components of Scrum Roles : Scrum Master, Team, Product Owner Process : Sprint Planning, Sprint, Daily Scrum, Sprint Review
Meeting
Requirements Discovery ProcessRequirements Discovery Process
Interviews with clientsGather functional and non-functional requirementsSometimes a quick prototype helps
Requirements Discovery Process (cont’d)Requirements Discovery Process (cont’d)
Capturing Requirements using Use-Case Modeling
Case Receptionist
*
*
Enter PatientDetails
Enter EmployerDetails
Enter ProviderDetails
* **
*
Case Reviewer
Case Transcriptionist
Requirements AnalysisRequirements Analysis
Software DesignSoftware 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
UML Class Diagram ExampleUML Class Diagram Example
The company is organized into DEPARTMENTs. Each department has a name, unique number and an employee who manages the department. We keep track of the start date of the department manager. Each department controls a number of PROJECTs. Each project has a name, unique number and a location. We store each EMPLOYEE’s social security number, address, salary, sex, and birthdate. Each employee works for one department but may work on several projects. We keep track of the number of hours per week that an employee currently works on each project. We also keep track of the direct supervisor of each employee.
Database DesignDatabase Design
SSN FName DNO
123 John 1
234 Leela 2
DNO DName
1 Accounting
2 Administration
EMPLOYEE DEPARTMENT
Row Column
Primary Key Table NameForeign Key
Basic Concepts of DatabaseBasic Concepts of Database
Table : Row, Column, Primary Key, Foreign Key, Index
Database Design (cont’d)Database Design (cont’d)
Main Phases of Database Design
ER (Entity Relationship) ModelingER (Entity Relationship) Modeling
Conceptual design phase; result is a conceptual schemaER consists of : entities, attributes, and relationships
Example: Company Database System.“We store each EMPLOYEE’s 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, BirthdateRelationship: WORKS_FOR, …
Higher Level Requirements
ER Modeling (cont'd)ER Modeling (cont'd)
EMPLOYEE WORKS_FOR DEPARTMENT
SSN Name
FName LName
MIDNO DName
N 1
DOB
AgePhone
Sex
ER Modeling (cont'd)ER Modeling (cont'd)
Types of Relationships:1:1; 1:N (previous slide)
EMPLOYEE MANAGES DEPARTMENT1 1
M:N
EMPLOYEE WORKS_ON PROJECTM N
Hours PNO PName
Strong Participation
ER to Relational SchemaER to Relational Schema
Entities Tables Attributes Columns
SSN FName LName MI
DOB Age Sex
123 John Smith A … … M
234 Leela B … … F
EMPLOYEE
SSN Phone
123 414-111-…
123 262-000
EMPLOYEE_PHONE
Database ToolsDatabase Tools
ER Modeling Tools/TechnologiesER Modeling Tools/Technologies
Microsoft VisioOracle DesignerRational RoseERWin, …
Database VendorsDatabase Vendors
Commercial : Oracle, IBM DB2, Microsoft SQL Server, …Free Ware : MySQL, SQLLite, PostgresSQL, …
Database LanguagesDatabase Languages
Structured Query Language (SQL), PL/SQL
Application Design ModelsApplication Design Models
Data Flow DiagramsPseudo codeAlgorithmsObject-Oriented Analysis and Modeling using UML (Unified Modeling Language)
UMLUML
Use Case DiagramsActivity DiagramsSequence DiagramsClass Diagrams
Component ReuseComponent Reuse
If a component already exists, why re invent the wheel?There exists components for almost anything these daysRisks associated with free or third party components
User Interface DiagramsUser Interface Diagrams
Mock-ups, Sketches, User interaction Diagrams, Prototype Demos, Browser
User Interface Diagrams (cont’d)User Interface Diagrams (cont’d)
Wireframe
Application Design ToolsApplication Design Tools
UML ToolsRational Software Modeler, Microsoft Visio, Eclipse-Omondo, Dia (free ware), …
User Interface ToolsYour favorite browser, Microsoft .NET framework, Java Swing, Visio, WireframeSketcher, …
ImplementationImplementation
Small stand alone applications Java, Microsoft .NET, …
Web based applications Java Servlets, Microsoft .NET, PHP-MySQL,
Enterprise Resource Planning Applications SAP, Oracle Apps, …
Multi-tier Application ArchitectureMulti-tier Application Architecture
Client
(Presentation Logic)
(Business Logic)
(Data Access Logic)
Server
(Business Logic)
(Data Access Logic)
Two-tier Architecture
Web Server
(Business Logic)
(Data Access Logic)
Data Resources
Three-tier Architecture
Multi-tier Application Architecture (cont’d)Multi-tier Application Architecture (cont’d)
Construction and TestingConstruction and Testing
Unit testingSystem testing
Installation and DeliveryInstallation and Delivery
Training Manual
System Operation and MaintenanceSystem Operation and Maintenance
Program Back up, Recovery and MaintenanceTechnical SupportFurther System EnhancementsHopefully no bugs
Thank youThank you
Questions?
ER to Relational Schema (cont’d)ER to Relational Schema (cont’d)
Dealing with Relationships – 1:1Dealing with Relationships – 1:1
EMPLOYEE MANAGES DEPARTMENT1 1
SSNDNO
FNameDName
StartDate
SSN FName
123 John
234 Leela
DNO DName MgrSSN MgrStartDate
1 Account..
234 …
TRANSLATES TO
EMPLOYEEDEPARTMENT
ER to Relational Schema (cont’d)ER to Relational Schema (cont’d)
Dealing with Relationships – 1:NDealing with Relationships – 1:N
EMPLOYEE WORKS_FOR DEPARTMENTN 1
SSNDNO
FNameDName
SSN FName DNO
123 John 1
234 Leela 1
DNO DName
1 Account..
2 Admin…
TRANSLATES TO
DEPARTMENTEMPLOYEE
ER to Relational Schema (cont’d)ER to Relational Schema (cont’d)
Dealing with Relationships – M:NDealing with Relationships – M:N
SSN FName
SSN FName
123 John
234 Leela
PNO PName
1001 OceanBlue
1002 EverGreen
PROJECTEMPLOYEE
EMPLOYEE WORKS_ON PROJECTM N
Hours PNO PName
SSN PNO Hours
123 1001 20
123 1002 20
WORKS_ON