180 likes | 422 Views
Class 6 PHP MySQL. Writing Functional Specifications. Reference: http://www.w3schools.com/php/. Functional Specification (Requirements – Inception). Minimum necessary documentation to begin formal design and implementation Forms common denominator for all stake holders
E N D
Class 6PHP MySQL Writing Functional Specifications Reference: http://www.w3schools.com/php/
Functional Specification(Requirements – Inception) • Minimum necessary documentation to begin formal design and implementation • Forms common denominator for all stake holders • Formal design in UML (Elaboration) • Implementation and testing (Construction) • System deployment (Transition) • Homework 6 & 7 – Functional Specification • Homework 8 – Function specification briefing • Homework 9 – Sprint 1
Why? What? How? Execute! Design & Development Requirements Analysis Operation & Maintenance Production Typical Product Life Cycle Concept Development Phase Out & Disposal
Product Life Cycle • Concept Development • Identify customer needs • The consumer/user need is identified as a basic concept. • It is later expanded to include features which are simply desirable. • Product Planning Function • Marketing analysis, feasibility study, advanced product planning. • Product Research Function. • Basic research and applied research. • Evolution from basic research to product design and development. • Product Requirements & Design Function. • Design requirements, conceptual design, preliminary system design, and detailed design. • Prototyping, and transition from design to production. • Production and Construction. • Production requirements, operational analysis, and manufacturing. • Methods engineering, production control. • Product Evaluation • Evaluation requirements, test preparation phases, formal test and evaluation. • Data collection, analysis, reporting, corrective action, retesting. • Product Operation & Maintenance • Product is distributed to the consumer/user and in operational use. • Production team supports users and performs maintenance activities. • Product phase-out, disposal, or recycle.
Development Life Cycle Models Each life cycle phase is completed before the next is started. After requirements are established, design, code and test is done in overlapped stages. Multiple iterations are done throughout the life cycle. WATERFALL INCREMENTAL PHASED EVOLUTIONARY TRANSFORM SPIRAL Agile System evolves based on prototype versus an established set of requirements. Automatic transformation of a formal specification into code. Repetition of cycles, where each cycle involves same or similar steps (e.g., prototyping). On the final spiral the final product is produced. Scrum or similar implementation, rapid iterations offeatures on feature backlog.
Cumulative cost Progress through steps Determine objectives, alternatives, and constraints Risk analysis Evaluate alternatives; identify, resolve risks Risk analysis Risk analysis Risk analysis Operational Prototype Commitment Prototype 3 P1 Prototype 2 Review Reqmts plan Life cycle plan Partition Concept of operation Develop, Verify next-level process plans Software reqmts Detailed design Software product design Develop- ment plan Requirement validation Code Unit test Evaluate process alternatives; identify, resolve process risks Integration and test plan Design validation and verification Integration and test Determine process object, alternatives, constraints Formal test Implementation Develop, Verify Next-Level Product Figure based on the concept by Barry Boehm published in Information Technology in Action, Prentice Hall, 1993. Spiral Model
Development Model Thoughts • There is no magic model – they are largely the creation of academia • Many experienced software & systems engineers create development life cycles as needed • In particular, rapidly evolving software technology leaves most standard models in the dust Don’t be afraid to experiment!
A Simplified Software Engineering Process Software Engineering Inputs... • Environment Management • Technology Base • Plan • Outputs from Prior Manage Risk • Phase Assess • Program Decisions • • Requirements Control • Applied Through Regulations, Specifications and Standards • Outputs of Systems Engineering Process Outputs… Technical • Baselined Set of requirements • Requirements • Final software design Design • • Final Code & Executable Implementation • • Final software tests Testing • • Well Defined Engineering Process
Scrum One of the AgileMethods
Scrum Sprint Cycle Planning In this phase, the project is planned and high-level design decisions are made. Sprint Cycle
Scrum Sprint Cycle cont. • The sprint cycle is: • an iterative cycle of about 3-4 weeks • in which the actual development of the product is done • starts with a Sprint Planning Meeting to decide what will be done in the current sprint • development is done • A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated • Sprint is reviewed, and adjustments are made to the project as necessary • The sprint cycle is repeated until the product's development is complete. • The product is complete when the variables of time, quality, competition • and cost are at a balance. • Develop the product further - implement, test, and document. • Wrap up the work - get it ready to be evaluated and integrated. • Review the work done in this sprint. • Adjust for any changes in requirements or plans. • Closure • In this phase, the product's development is brought to a close, and the product is released.
Analyze/MapsRequirements Test &Document Release Production Weekly Review Daily Scrum Product Plan Sprint Product Life Cycle
Our Scrum • I am the scrum master • You are the project lead • You create the functional spec (2-3 Wks) • You plan the 1 week sprints (homework) • You demo your sprint each week to the class • You status your sprint and sprint plan
Functional Specifications • Functional Specification – Joel on Software Parts 1 to 4 • What Time Is It – Example • Aardvark – Example
Our Functional Spec • HTML Functional Specification with links to artifacts • (Folder) Project Description (word) • User Conops (how the user sees the product) • System Conops (perspective of technology) • Requirements Table (id, description, sprint no., date complete) • (Folder) UI Storyboard (your favorite graphics editor or html) • Screen Flow Diagrams (a -> b -> c • Screen prototypes • (Folder) Business Processes (Argo UML) • Activity Diagrams • Class Diagrams • Sequence Diagrams • (Folder) Feature Backlog (Excel) • Prioritized List of features and requirements • Sprint Plan – Assign features to sprints • Percent Complete
Base App Project • Homework for implemented • Download ProjectBaseApp.0.0.2.zip • Class to discuss the source code and operations of the Base App Project
Homework 7, 8, 9 • Read Joel-On-Software articles • Begin your functional spec • Think of a project • Create Project Description • Create UI story boards • Create UML Models • Create Sprint plan/backlog Due 10/24/2006 – Present to class