220 likes | 462 Vues
Two Case Studies. CCPDS-R, TRW How Microsoft Builds Software Different development environments Software development life cycle Software project management techniques. CCPDS-R Case Study. Command Center Processing and Display System – Replacement TRW Space and Defense in Redondo Beach, CA
E N D
Two Case Studies • CCPDS-R, TRW • How Microsoft Builds Software • Different development environments • Software development life cycle • Software project management techniques
CCPDS-R Case Study • Command Center Processing and Display System – Replacement • TRW Space and Defense in Redondo Beach, CA • Customer : U.S. Air Force • Focus : Common Subsystem • Mission critical software
Common Subsystem • Primary missile warning system • Main installation : Cheyenne Mountain • Backup system : Offutt Air Force Base, Nebraska • 48-month software development schedule • 355,000 SLOC • Ada : design & implementation language • 6 builds were required • Completed successfully, on time within budget to customer satisfaction
CCPDS-R Acquisition • Concept definition (CD), 12-month schedule • 5 major bidders, 2 contracts awarded • Full-scale development (FSD) • 1 contract awarded to TRW • Contract award based on performance in Software Engineering Exercise
Concept Definition (CD) • Vision • Analyze and specify the project requirements • Define and develop the top-level architecture • Plan FSD phase software development activities • Configure the process and development environment • Establish trust and win-win relationships among the stakeholders • Software engineering exercise
Process Overview for FSD • Standard DOD life cycle after contract award • Software requirements review (SRR) • Interim preliminary design review (IPDR) • Preliminary design review (PDR) • Critical design review (CDR) • Final qualification test (FQT)
Incremental Design Process • Individual milestones within a build • Preliminary design walkthrough • Critical design walkthrough • Code walkthrough • Turnover review
Incremental Test Process • Stand-alone test • Build integration test; establish a stable, reliable baseline • Reliability test • Engineering string test • Final qualification test
IPDR Demonstration • Demonstrate defined capabilities at NORAD • Capabilities well understood by the customer and TRW • 37 evaluation criteria • Results were apt to change requirements, plans and designs • 31 satisfactory, 6 were not met • Required redesign and re-demonstration
Metrics • Build Progress (% coded) vs time • Requirements verified vs time • Cumulative SLOC vs time • Average hours per software change order (SCO) • Mean time between failure (MTBF) vs total test hours • Cumulative SLOC vs budget
People factors • Core team concept • Leverage skills of a few experts across the entire team • Avoid attrition • Profit sharing of award fees
Microsoft Case Study • High volume, mass market software • Redmond, Washington • Excel, Word, Windows 95, Windows NT, etc. • Respond to events in the marketplace • Highly flexible, entrepreneurial company
Microsoft Competitive Strategy • Identify mass markets quickly • Introduce products that are “good enough” • Improve products by incrementally evolving their features • Sell multiple product versions and upgrades • Sell globally
Product Development Philosophy • Utilize small parallel teams (3 to 8 developers) • Teams evolve features and products incrementally • Occasionally introduce new concepts and technologies • Synchronize changes frequently so product components work together • Structured hacker-like approach
Synch-and-Stabilize • Continually synchronize what developers are doing as individuals and team members • Stabilize the product in increments • Daily build • Continual testing • Testers work in parallel with developers (1 to 1) • Fix defect immediately if checked in code “breaks” the daily build
Big Picture Procedures • Teams work at single physical site • Common development languages (C and C++) • Common coding styles • Standardized development tools • Teams must communicate, debate design ideas, and resolve problems face to face
Synch-and-StabilizeDevelopment Approach • Planning Phase • Development Phase • Stabilization Phase
Planning Phase • Vision statement • Product managers define goals for a new product based on market research • Specification document written up by Program manager • During development, feature set in specification document may change by 30% or more • Schedule and feature team formation
Development Phase • Developers design, code, and debug • Testers pair with developers for continuous testing • 3 major milestones • Milestone 1 : first 1/3 of features (most critical and shared components) • Milestone 2 : second third of features • Milestone 3 : final third of features (least critical)
Stabilization Phase • Internal testing • External testing (“beta” sites and users) • Release preparation
Principles – Developing and Shipping Products • Work in parallel teams but “synch up” and debug daily • Always have a product you can ship, with versions for different platforms and markets • Speak a “common language” on a single development site • Continuously test the product as you build it • Use metric data to determine milestone completion and product release
Conclusions • Stakeholders and type of software being developed effect the software development life cycle • CCPDS-R - more externally controlled process • Microsoft – market driven – internally controlled process geared towards customer satisfaction and market share • Both cases illustrate extensive use of modern software project management techniques • Both cases show level 3 (defined) of CMM