Announcements Software Engineering for � HW 2, Due Thursday, Jan 19 Capstone Courses � Presentations, Tuesday Jan 23 � 15 minute presentation + 3 minutes discussion Richard Anderson � PowerPoint slides CSE 481b � Group order: A, B, C, D Winter 2007 Key aspects of software Today’s lecture engineering � Software Engineering vs. Computer � Large scale projects Science � Long lasting projects � Software Life Cycle � External constraints � Requirements � E.g., Make money, Support a business process, Don’t kill anyone � Risk Analysis � Life cycle that includes many non- programming activities SE for Capstone Courses Life Cycle Software Engineering Computer Science � Process Useful � Partial Life Cycle � Realistic Challenge � Meet a Delivery 1
Life Cycle Life Cycle (McConnell) (CSE 403 course slides) System specification Requirements Analysis Architectural Design Detailed Design Coding and Debugging Unit testing System testing Maintenance Requirements on requirements Requirements � Who are they for? � "Gather and document the functions that the application should perform for � What are they for? the users in the users' language and � Pitch to management from the users' perspective" � Fodder for market study � Requirements should neither constrain � Basis for legal contract nor define methods of implementation � Easy to understand, concise, complete, unambiguous, . . . Customers Approaches to requirements � (Almost) every large software project � Personas has a customer who is paying the bills � Scenarios � Project requirements driven by this � Use cases customer 2
Project Pitch Is dog food good for you? � What you are going to do � Dog food (verb), to use your own � What value it delivers to the customer software � What is the novelty � What are the risks Risk Risk analysis � Exposure to the chance of injury or loss � Types of Risk � Code Development � External Dependency � For a software project: � Technology � Failure to deliver on time � Personnel � Exceeding resource limits � Requirements Change � Not meeting quality threshold Sources of Risk I Sources of Risk II � Development risks � Integration risks � Code harder to develop than thought � Parts don't fit together � Learning curve on new facilities � Integration reveals bugs � Expected facilities not available � Integration reveals design errors � Need to iterate on requirements / design � Need to rewrite code after integration � Performance Issues � Code left out � Trigger other bugs 3
Sources of Risk III Sources of Risk IV � Testing risks � Requirements Risks � Bugs will be found � New requirements introduced � Bugs won't be found � Change in Specification � Complexity of testing matrix � Inconsistencies in requirements � Deployment beyond development � User feedback machines � Market conditions � Difficulties in test automation and test tools � Platform and technology changes � UI and Workflow feedback Sources of Risk V Sources of Risk VI � People risks � Deployment Risks � Unexpected Loss of Personnel � Packaging distributable � Illness � Rights and licensing of components � Vacation � Legal signoff � Other demands on time � Marketing signoff � Group friction � Systems configuration � Inaccurate evaluation of skills � Drop in performance What to do with risk analysis � Avoid the risk � Transfer risk off the critical path � Buy information � Bring in outside help � Prototype � Publicize risk � The sky is falling � Schedule to accommodate some risk � Monitor risks as project progresses 4
Recommend
More recommend