The Database Application Development Process 1 Outline • Information Engineering • Client Server (2 tier) vs. Web Application (3 tier) software systems • Functional Decomposition (analysis technique) • Planning Matrix (analysis technique) • Enterprise Data Model vs. Project (system level) data model • Software Development Life Cycle (SDLC) vs. Agile (prototyping approach) • Case tools • Roles in software development 2 Information Engineering • A data-oriented methodology to create and maintain information systems. • Determine what software systems the corporation needs. • Take inventory of existing software systems. • Determine the difference (between desired and actual). • Come up with a plan to bridge the gap. What new systems are needed? 3 Systems: Client/Server versus Web Application • Client Server – works only on the LAN (local area network). Application software is installed on each PC. • Web Application – works anywhere you can get on the web. Application software is installed on a web server(s). Client software is a browser (e.g., IE or firefox) 4 Older systems usually two-tier SW design architecture: database with local area network (also called “Client – Server” or “Windows App”) 5 Newer Systems usually three-tiered sw architecture (Web application shown) 3. Presentation Tier (how it looks) 2. Application Tier (business rules) 1. Data Tier (database & DBMS) 6 Analysis: coming up with functionality and data attributes. • Functional (process) decomposition functionality – Iterative process breaking system description into finer and finer detail • Planning matrixes – Describe interrelationships between planning objects 7 Example of Functional (Process) Decomposition 8 Example Planning Matrix Business Function-to-Data Entity Matrix 9 Enterprise Data Model • Single, high level specification of the data used by ALL software applications (even though those apps might have separate data models) • Overall picture of organizational data at high level of abstraction – should indicate scope • Descriptions of entity types and relationships between entities as defined by the company’s business rules • Represented by a Entity-Relationship (ER) diagram - as shown on next slide • It is important to create an enterprise data model before working on a detailed project level data model (understand the context first) 10 Segment from ENTERPRISE data model (ER Diagram) 11 shows ALL the high-level entities in an organization. shows the relationships between these entities. does not show attributes. Segment of a Project Data Model 12 Only shows the entities that are used by the software system (that you are working on) DOES show attributes. Two Approaches to Application Development • SDLC – – – – System Development Life Cycle Detailed, well-planned development process Time-consuming, but comprehensive Long development cycle • Prototyping – – – – 13 Rapid application development (RAD) Cursory attempt at conceptual data modeling Define database during development of initial prototype Repeat implementation and maintenance activities with new prototype versions Systems Development Life Cycle • Planning (or feasibility study) – What will the system do (high level) – How much will that cost? What is the benefit of the system? Is it worthwhile to even create the SW? • Analysis – What should the system do (define with much more detail, e.g., screen captures, sample reports). – Data element analysis (e.g., what entities need to be stored in the DB, what attributes do the entities need) • Design – Design the data model – Design the software 14 Systems Development Life Cycle (continued) • Implementation – Programming (according to the SW design) – Ends in SW rollout (user docs, training, operational docs, hand over to production staff) • Maintenance – Users will report bugs that need to be fixed – Users will request additional functionality. This new functionality has to go thru a mini life cycle (analysis, design, implementation/ rollout) 15 Prototyping small releases often – get user feedback each time 16 CASE • Computer-Aided Software Engineering (CASE)– software tools providing automated support for systems development, such as software that – Lets you design a data model (drawing entity-relationship diagrams) – Generates code (e.g., SQL code for table creation, basic insert/edit/delete) – Lets you document database entities (e.g., customer or product), attributes (e.g., customer name, id number) – Lets you track and manage project related tasks – Lets you track and manage software versions. 17 DB Application Projects: People Involved • • • • • • • • 18 Project managers Business analysts Users Technical Lead or Programmer/Analyst Database analysts and data modelers Database architects Data administrators Other technical experts Summary • Information Engineering • Client Server (2 tier) vs. Web Application (3 tier) software systems • Functional Decomposition (analysis technique) • Planning Matrix (analysis technique) • Enterprise Data Model vs. Project (system level) data model • Software Development Life Cycle (SDLC) vs. Agile (prototyping approach) • Case tools • Roles in software development 19