Software Engineering Process I Dr. Rob Hasker L-331, email: hasker https://faculty-web.msoe.edu//hasker/ (Adapted from notes by Dr. Sebern, used with permission.) Copyright © 2012-2014 by Mark J. Sebern Logistics • Course web site, syllabus • Book, schedule, policies, grading • Prereq check: CS 2852, SE 2030 • Roster Copyright © 2012-2014 by Mark J. Sebern Grading (1) Letter Numeric (academic catalog) % of passing grades * A 93-100 8/31 = 25.8% AB 89-92 4/31 = 12.9% B 85-88 4/31 = 12.9% BC 84-81 4/31 = 12.9% C 77-80 4/31 = 12.9% CD 74-76 3/31 = 9.7% D 70-73 4/31 = 12.9% * Assumes uniform, linear distribution Copyright © 2012-2014 by Mark J. Sebern Grading (2) Letter A AB B BC C CD Definition (VP of Academics, sent each quarter) Student has performed outstandingly in all regards and is clearly exceptional. Student has performed with excellence. Student has shown very high command of course content. Student has done a commendable job dealing with course content. Student has an adequate grasp of course content. Student has met fair expectations. D Student has attained minimal expectations in the course. F Student has not attained minimal expectations in the course. Copyright © 2012-2014 by Mark J. Sebern Grading (2) Letter A AB B BC C CD Definition (VP of Academics, sent each quarter) Student has performed outstandingly in all regards and is clearly exceptional. Student has performed with excellence. Student has shown very high command of course content. Student has done a commendable job dealing with course content. Student has an adequate grasp of course content. Student has met fair expectations. D Student has attained minimal expectations in the course. F Student has not attained minimal expectations in the course. So, what grade is appropriate for "no errors" work? Copyright © 2012-2014 by Mark J. Sebern Grading (3) • What's a professor to do? • Conflicting messages from MSOE • Which is closer to employee evaluation? • Is this the choice? • Make students happier now • Make graduates happier later • Duty: preparation for lifelong career Copyright © 2012-2014 by Mark J. Sebern How to Get an "A" • • Be "outstanding" and "exceptional"? What does that mean? • • • Go a little beyond the requirements Demonstrate learning and thinking Talk to the prof Copyright © 2012-2014 by Mark J. Sebern Curriculum Context SE 2832 Verification CS 2852 Data Structures SE 2030 Tools/Practices SE 2800 SE Process I SE 3821 Requirements SE 3800 SE Process II Software Development Lab Copyright © 2012-2014 by Mark J. Sebern Process? • How should we plan and execute a project of moderate size (small team)? • How would you do it? Pair exercise • What was the process you used in SE 1011/SE 1021/CS 2852? • What was good or bad about it? Copyright © 2012-2014 by Mark J. Sebern Practice vs Process • Practice = “what we do” • Analyze requirements, create architectural/detailed designs, implement, verify • Process = “how & when we do it” • Plan, organize, measure, make/meet commitments, ensure quality, control, improve, adapt Copyright © 2012-2014 by Mark J. Sebern Activities • • • • • Planning & tracking Requirements analysis & specification Architecture & high-level design (HLD) HLD review Detailed design • • • • • • Detailed design review Implementation (coding) Code review/inspection Unit testing Integration testing System testing There are many different ways to break down software development activities; this is just one way of doing it. Copyright © 2012-2014 by Mark J. Sebern Traditional Model • Requirements: talking to customer • Design: How to impl. Reqs • Implementation: coding • Verfication: testing • Maintenance • Covers all necessary products • Similar process to other engineering disciplines Copyright © 2012-2014 by Mark J. Sebern Traditional Model • Requirements: talking to customer • Design: How to impl. Reqs • Implementation: coding • Verfication: testing • Maintenance Known as waterfall model: Covers all necessary • • Water gently flowing down hill products towards a goal… Similar process to other a • • But what happens if discover engineering disciplines problem? • Is this really more like Niagara Falls? Copyright © 2012-2014 by Mark J. Sebern Process Models • Process models provide frameworks for organizing software development activities • One pass, sequential (“waterfall”) • Iterative/incremental • “Agile”: XP, Scrum In SE-2800, we will use a process • SEI: PSP/TSP model based on Scrum Copyright © 2012-2014 by Mark J. Sebern Process Goals Overwhelmingly, software development managers and stakeholders ask us for two things: Copyright © 2012-2014 by Mark J. Sebern Comparing Iterative Models Waterfall model/ Predictive Process Planning model Scrum Heavy focus on Team experience, process data, tracking integrated customer Quality management Tests written by external agent Short cycles to provide monitoring Final product definition Schedule target, defined Flexible, adaptive Copyright © 2012-2014 by Mark J. Sebern Course Goal • Experience with one approach to software process • Why Scrum? • Gaining acceptance in industry • Easier introduction: fewer process artifacts, learn as you go Copyright © 2012-2014 by Mark J. Sebern Textbook • Essential Scrum • A Practical Guide to the Most Popular Agile Process, Kenneth S. Rubin • • Good reference on process framework – not a real textbook Needs supplement on practices Copyright © 2012-2014 by Mark J. Sebern Tools • Atlassian • JIRA/Agile (plan/track) • Confluence (wiki) • Bitbucket • Git repository Copyright © 2012-2014 by Mark J. Sebern • JUnit • Test automation • Jenkins • Continuous build Next Lecture • Next session: cover chapter 2 • Lab this week will also be used to cover textbook material • Note will use lecture time at end of quarter for project work • Quiz at start of session on Ch. 2! Copyright © 2012-2014 by Mark J. Sebern Review • SE 2800: Software Process I • Introduction to software process • Practice vs. process • Practices: what needs to be done • Process: how & when • Process models • Sequential vs. iterative • Predictive vs. agile • Scrum: Read Ch. 2 Copyright © 2012-2014 by Mark J. Sebern