SW Life Cycle

Download Report

Transcript SW Life Cycle

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