140 likes | 280 Views
Class Agenda: 04/17/2014. Completed the core concepts of the course: Database Design SQL Programming Questions? Discuss database development process. Emphasize process differences for database vs. programming development. Highlight applications in this class. Planning. Analysis.
E N D
Class Agenda: 04/17/2014 • Completed the core concepts of the course: • Database Design • SQL Programming • Questions? • Discuss database development process. • Emphasize process differences for database vs. programming development. • Highlight applications in this class.
Planning Analysis Logical Design Physical Design Implementation Maintenance Systems Development Life Cycle (SDLC)
SDLC general activities Planning:Understand the business situation and identify an approach to pursue it in greater depth. Analysis:Understand the problems that must be solved and identify an appropriate solution by developing the requirements for a system. Design: Take the requirements and design an effective solution. Done “logically” and “physically”. Implementation: Create an actual solution (programs, databases, processes, training, documentation, etc.) Maintenance: Go through the whole cycle again depending on changing circumstances.
Planning Identify steps that must be followed. Why are so many of our projects over budget and time? Why is it difficult to estimate the amount of time required to complete an information systems project?
Analysis Understand in-depth the problem that you are trying to solve. A symptom is not an underlying problem. How do you identify what data should be stored in a database?
Database Design • Logical Design: Goal is a general model of the data required for the system. • All data is included. • Data is integrated. • Data is structured into a series of entities that are in third normal form with appropriate determinants. • Physical Design: Goal is an implementable database model. • All data from the logical model is included. • May also include derived data (calculations, summarizations). • All constraints are defined: data types, primary keys, foreign keys, null, checks, etc. • Data is structured into a series of tables. • Any other constructs (indices, triggers, stored procedures) are designed as required to facilitate performance.
Implementation • Code and test database structures. • Refine design. • Keep design documentation: • ERDs • Explanation of business rules • Data dictionary • Convert data from existing systems. • Train personnel.
What is agile development? • Development methods based on iterative and incremental development. • Core values: • Individuals and interactionsover processes and tools. • Working softwareover comprehensive documentation. • Responding to changeover following a plan. • Customer collaborationover contract negotiation.
What are the agile principles*? Customer satisfaction by rapid delivery of useful software Welcome changing requirements - even late in development Working software is delivered frequently (weeks rather than months) Working softwareis the principal measure of progress Sustainable development; able to maintain a constant pace Close, daily cooperation between business people and developers Face-to-faceconversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity – create what is necessary as simply as possible Self-organizing teams Regular adaptation to changing circumstances *Source = Wikipedia
How do you make agile happen? • Many different approaches: Scrum, pair programming, cross-functional teams, timeboxing, extreme programming, dynamic systems development method, enterprise agile, agile unified process... • Core way to make it happen: • Create small systems. • Test them. • Get immediate feedback.
Accomplished through small iterations • What is a prototype? • How do you create a prototype? • What should be included in a prototype? • How do you test a prototype? • What do you (as a database developer) do with a prototype once you think it works correctly? • What is the “next step” when using small iterations for systems design?
A little more about testing • The goalof testing is to make a system fail. • Finding a defect is a good thing because then it can be fixed before it becomes a big problem. • It is the developer’s responsibility to test the system. • Create an appropriate test dataset. • Write appropriate sample queries. • Compare predicted results with actual results. • Basic problem: a developer creates a system that s/he made work; s/he hatesto make it fail.