CS 577b: Software Engineering II CS 577b Software Engineering II -- Introduction 18 September 2018 CS 577b: Software Engineering II Class Introduction (C) 2006-2010 USC-CSSE 1 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 CS 577b Course Objective Learn how to go From a successful RDCR package To a successfully "delivered" software system Main elements Coping with “devils in the details” Doing cost-effective quality management Understanding how stakeholders will operate & maintain system Using IICM-Sw Architected-Agile project guidelines (C) 2006-2010 USC-CSSE 2 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Course Goals I teach you somethings you didn't know You learn Don't be afraid to ask questions Do actively participate You learn By listening in class, reading, … By doing (and making mistakes) You get satisficed WE learn for future semesters' CS577 WE have a satisficed client (C) 2006-2010 USC-CSSE 1/11/2010
Software Engineering Project Course (CS 577) What we told Clients last Fall: Software Engineering Project Course (CS 577) Fall: Develop Life Cycle Architecture Packages Ops. Concept, Requirements, Prototype, Architecture, Plan Feasibility Rationale, including business case Results chain linking project results to desired outcomes 20 projects; 100 students; about 20 clients Spring: Develop Initial Operational Capability 6-10 projects; 30-50 students; 6-10 clients Software, personnel, and facilities preparation 2-week transition period then the student teams disappear Tools and techniques: WikiWinWin; Benefit Chain; Rational Software Modeler; Subversion; USC COCOMO II; MS Project; USC Incremental Commitment model method Reworked annually based on student & client feedback (C) 2006-2010 USC-CSSE 1/11/2010 4
Stakeholder Win-Win Approach What we told Clients last Fall: Stakeholder Win-Win Approach Stakeholders Win Conditions Full range of SW Engr. skills Real-client project experience Non-outsourceable skills Advanced SW tech. experience Students, Employers Useful applications Advanced SW tech. understanding Moderate time requirements Project clients Educate future SW Engr. leaders Better SW Engr. technology Applied on real-client projects Faculty, Profession (C) 2006-2010 USC-CSSE 1/11/2010 5
Timelines: Spring 2010 What we told Clients last Fall: Jan. 11- Feb. 12: Work with teams: Rebaseline prototype, prioritize requirements Plan for CS 577b specifics, including transition strategy, key risk items Participate in ARB review Feb 15 – May 7: Scheduled Weekly Meetings with Teams to: Discuss status and plans Provide access to key transition people for strategy and readiness discussions Mar 8 – 26: Core Capability Drivethrough Apr 15 - Apr 16: Project Transition Readiness ARB Reviews Apr 20: Installation and Transition Install Product Execute Transition Plan May 4-5: Operational Commitment Review for Initial Operational Capability May 7: Client Evaluations (C) 2006-2010 USC-CSSE 1/11/2010 6
What we told YOU last Fall: “Software Engineering”: The disciplines which distinguish the coding of a computer program from the development of a software product Stages Requirements, Design, Implement, Architecture Code Maintain Issues Computer Science User Applications Economics People CS Focus Accommodate new tools and techniques Web services, GUI prototypers, WinWin, Spiral processes Integrate all these considerations - Via Incremental Commitment Model (C) 2006-2010 USC-CSSE 1/11/2010 7
Instructional Incremental Commitment Model – Software Engineering What we told YOU last Fall: Instructional Incremental Commitment Model – Software Engineering (C) 2006-2010 USC-CSSE 1/11/2010 8
CS 577b Software Engineering II -- Introduction 18 September 2018 Course Etiquette Observe normal rules of classroom etiquette Be on time! If you are late, don’t slam the door (Tells your friends) If you are late, CS577b students may be penalized ONE conversation at a time ONE topic at a time Direct all comments to the instructor Encourage (rather than criticize) other students E-mail & browsing at breaks or after class only Turn off/silent cell phones & pagers (C) 2006-2010 USC-CSSE 10 1/11/2010 © 2002-6 USC Center for Software Engineering
Course Etiquette (cont.) CS 577b Software Engineering II -- Introduction 18 September 2018 Course Etiquette (cont.) Respect others & yourself Cheat Don’t! I am a stickler! Be ready to learn…. (C) 2006-2010 USC-CSSE 11 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 12 1/11/2010 © 2002-6 USC Center for Software Engineering
Challenge: IOC vs. RDCR Client Evaluations TBS (C) 2006-2010 USC-CSSE 1/11/2010
Software Engineering Education Stakeholders & Win Conditions CS 577b Software Engineering II -- Introduction 18 September 2018 Software Engineering Education Stakeholders & Win Conditions Stakeholder Student Industry Win Conditions Life-long value Knowledge Skills Incl. learning & evaluation Marketable near-term skills Technical Tools, languages, techniques Managerial skills People, economics Experience using Fair workload Fair (Good) Grade Rewarding experience Intellectual Social Lots of graduates with Including full-spectrum coverage of life-cycle Domain Relevant near-term skills Distance learning opportunities (C) 2006-2010 USC-CSSE 14 1/11/2010 © 2002-6 USC Center for Software Engineering
Software Engineering Education Stakeholders & Win Conditions (cont.) CS 577b Software Engineering II -- Introduction 18 September 2018 Software Engineering Education Stakeholders & Win Conditions (cont.) Stakeholder Class-project Clients Software Engineering Community Win Conditions Well-engineered products Easy to transition & use Efficient use of client time Minimum operational disruption Client knowledge & skills developed in information technology Experience-based improvements in software engineering Technical Tools, languages, techniques Management People, economics (C) 2006-2010 USC-CSSE 15 1/11/2010 © 2002-6 USC Center for Software Engineering
Software Engineering Education Stakeholders & Win Conditions (cont.) CS 577b Software Engineering II -- Introduction 18 September 2018 Software Engineering Education Stakeholders & Win Conditions (cont.) Stakeholder Instructors Teaching Assistants Win Conditions Create & sustain stakeholder win-win enterprise Confront & resolve win-lose risks Contribute to software & system engineering & education State-of-art State-of-practice Manageable workload Rewarding experience Intellectual Incl. see students understand concepts Social See Students Experience teaching Ph.D. (often) (C) 2006-2010 USC-CSSE 16 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 17 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Staff Lead instructor A Winsor Brown TA’s: Pongtip Aroonvatanaporn <Aroonvat@USC.edu> Qi Li <QiLi@USC.edu> Guest lectures Dr. Barry Boehm Jim Land Warren Reid Others? (C) 2006-2010 USC-CSSE 18 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Grading – “On Campus” Individual Homework & Quizzes: ~15%? Project: ~50% (functionality & documentation)? Individual Critique: ~20%? CSSE “Process Improvement” Presentation: ~5%? Individual Contribution: ~5%? Client Evaluation: ~5%? (C) 2006-2010 USC-CSSE 19 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Grading –DEN About the same? Special considerations? (C) 2006-2010 USC-CSSE 20 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Grading Philosophy Hard I like a large distribution Better feedback for you Adjusted when assigning final grades (C) 2006-2010 USC-CSSE 21 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 22 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Course Schedule See http://greenbay.usc.edu/csci577/spring2010/site/schedule/index.html Some Friday classes Student Presentations Staff will propose topics/guidelines By late Feb Students must select topic and get approval By early March Each student most cover a different aspect of a topic (C) 2006-2010 USC-CSSE 23 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Project Schedule Milestone Date Re-form teams* Jan 22 - Jan 29 Draft Re-baselined LCA on Web Feb 12 ARB for Re-baselined LCA Feb 15-16 Core-Capability Drive-Through Mar 8-26** Draft Transition Package on Web Apr 13 Transition-Readiness Reviews Apr 14-15 Product Deliveries April 19 Individual Critiques, Client Evaluations May 7 * “Mixer” at end of Wednesday’s class ** Subject to client & 577 staff availability (C) 2006-2010 USC-CSSE 24 1/11/2010 © 2002-6 USC Center for Software Engineering
Main Challenge for Clients CS 577b Software Engineering II -- Introduction 18 September 2018 Main Challenge for Clients Products are delivered on or before April 19th Finals: May 7-14 Students disappeared by May 14, or earlier (C) 2006-2010 USC-CSSE 25 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Selected Projects 577a projects selected for continuation should be finalized Wednesday! Students not on selected project need to join one! “New” students and DR/Interns need to fill out a “Student General Information Questionnaire”, and all other forms at the “Forms” page: “New” means not having taken CS577a in Fall 2006! (C) 2006-2010 USC-CSSE 26 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Office Hours Winsor 2:00 to 3:00 on MW Or by appointment Dr. Boehm By appointment Pongtip M, W 5:00 - 6:00 PM Qi Li TBD (C) 2006-2010 USC-CSSE 27 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 28 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Top 10 Risk Items: 1989 & 1995 1989 1. Personnel shortfalls 2. Schedules & budgets 3. Wrong software functions 4. Wrong user interface 5. Gold plating 6. Requirements changes 7. Externally-furnished components 8. Externally-performed tasks 9. Real-time performance 10. Straining computer science 1995 1. Personnel shortfalls 2. Schedules, budgets, process 3. COTS, external components 4. Requirements mismatch 5. User interface mismatch 6. Architecture, performance, quality 7. Requirements changes 8. Legacy software 9. Externally-performed tasks 10. Straining computer science (C) 2006-2010 USC-CSSE 29 1/11/2010 © 2002-6 USC Center for Software Engineering
Top 10 System Risk Items: 1995 and 2007 1. Personnel shortfalls 2. Schedules, budgets, process 3. COTS, external components 4. Requirements mismatch 5. User interface mismatch 6. Architecture, performance, quality 7. Requirements changes 8. Legacy software 9. Externally-performed tasks 10. Straining computer science 2007 1 Architecture complexity; quality tradeoffs 2 Requirements volatility; rapid change 3 Acquisition and contracting process mismatches 4 Customer-developer-user team cohesion 5 Budget and schedule constraints 6 Requirements mismatch 7 Personnel shortfalls 8 COTS and other independently evolving systems 9 Migration complexity 10 User interface mismatch (C) 2006-2010 USC-CSSE 1/11/2010
CS 577b Software Engineering II -- Introduction 18 September 2018 Primary CS577b Risk Items Personnel Commitment Compatibility Ease of communication Skills (management, web/java, Perl, CGI, data compression, …) Schedule Project scope IOC content Critical-path items (COTS, platforms, reviews, …) COTS See next chart Multiple COTS (C) 2006-2010 USC-CSSE 31 1/11/2010 © 2002-6 USC Center for Software Engineering
Primary CS577b Risk Items (cont.) CS 577b Software Engineering II -- Introduction 18 September 2018 Primary CS577b Risk Items (cont.) Requirements & UI Not matching client user needs Performance Memory, Disk Space usage (#Bits) Bus, Network, CPU utilization & bandwidth (#Bits/sec) Overhead sources Reliability of deliver Safe Secure External tasks Client/operator preparation Commitment for transition (C) 2006-2010 USC-CSSE 32 1/11/2010 © 2002-6 USC Center for Software Engineering
COTS & External Component Risks CS 577b Software Engineering II -- Introduction 18 September 2018 COTS & External Component Risks COTS risks Immaturity Inexperience Incompatibility with Application Platform Other COTS Controllability (C) 2006-2010 USC-CSSE 33 1/11/2010 © 2002-6 USC Center for Software Engineering
COTS & External Component Risks (cont.) CS 577b Software Engineering II -- Introduction 18 September 2018 COTS & External Component Risks (cont.) Non-commercial off-the shelf components Sources Reuse libraries Government (GOTS) Universities (ROTS) Issues Qualification testing Benchmarking Inspections Reference checking Compatibility analysis Both Safety Dependability Security (C) 2006-2010 USC-CSSE 34 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 35 1/11/2010 © 2002-6 USC Center for Software Engineering
Heads-Up: CS 577b Planning Common LCP Problems @ RDCR CS 577b Software Engineering II -- Introduction 18 September 2018 Heads-Up: CS 577b Planning Common LCP Problems @ RDCR RDCR operational prototype, business-case iterations: What have you done since last semester? Too many internal-increment deliverables Lack of core-capability specifics End-to-end demonstrable capability Lack of specific team member responsibilities By artifact & increment; but flexible Transition preparation Transition-leader’s success plan (teammates, clients) (C) 2006-2010 USC-CSSE 36 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Test Preparation Test-leader’s success plan Test data, drivers, tools, increments Problem tracking & closeout Bugzilla tool Testing as requirements evaluation e.g. testing full portability, 24x7, ease of use OK to iterate requirements Acceptance test cases developed “independently” Verification cross-reference index Which requirements verified by test, analysis, “inspection” (C) 2006-2010 USC-CSSE 37 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Critical Success Factors for Adoption - I (C) 2006-2010 USC-CSSE 38 1/11/2010 © 2002-6 USC Center for Software Engineering
Critical Success Factors for Adoption - II CS 577b Software Engineering II -- Introduction 18 September 2018 Critical Success Factors for Adoption - II (C) 2006-2010 USC-CSSE 39 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 40 1/11/2010 © 2002-6 USC Center for Software Engineering
CS577 Academic Integrity Guidelines CS 577b Software Engineering II -- Introduction 18 September 2018 CS577 Academic Integrity Guidelines Individual Assignments OK to discuss Not OK to copy each others’ solution elements Not OK to copy external sources without attribution Within “Fair Use Guidelines” Team Assignments OK to use other teams’ patterns e.g. MS Project tasks Must give credit!!! Not OK to copy other teams’ complete/partial solutions e.g. MS course & project schedules (C) 2006-2010 USC-CSSE 41 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Outline Course Challenges Staff & Grading Course & Project Schedule Project & Team Risk Management Project Planning Other Course Preparation Academic Integrity Reminder Forms & Logistics Comment Learning (C) 2006-2010 USC-CSSE 42 1/11/2010 © 2002-6 USC Center for Software Engineering
CS 577b Software Engineering II -- Introduction 18 September 2018 Learning We each have a role Lou Holtz said “Your talent determines what you can do. "Your motivation determines how much you are willing to do. "Your attitude determines how well you do it.” Plutarch said “A mind is not a vessel to fill; but a fire to light.” (C) 2006-2010 USC-CSSE 43 1/11/2010 © 2002-6 USC Center for Software Engineering