CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering Course Coordinates • • • • • CS 5150 Website: http://www.cs.cornell.edu/Courses/cs5150/2012fa/ Instructor: Benjamin Ylvisaker biy3@cornell.edu Teaching assistant: Yue Gao ygao@cs.cornell.edu Administrative assistant: Maria Witlox mpr13@cornell.edu This course does not use the Course Management System (CMS) 2 Contacting Course Staff • • • CS 5150 For most course issues, please send email to both: • • biy3@cornell.edu ygao@cs.cornell.edu Benjamin will be on campus Monday and Wednesday afternoon/evening The TA does not have office hours, but you can schedule an appointment by email 3 Benjamin Ylvisaker • • • CS 5150 PhD from University of Washington, 2010 Working for GrammaTech in Ithaca Previously worked for several startups as well as IBM Research 4 Academic Integrity & Professional Practice • Software engineering is about working in groups to get things done, but ... • • • CS 5150 You’re not out of school yet; some individual assignments and tests Always properly acknowledge sources and collaborators See the Academic Integrity section of the course website, which points to the Cornell code 5 Professional Responsibility • Organizations put trust in software engineers: • • • • CS 5150 Competence. Software has become critical to activities throughout our economy and society Confidentiality. Software engineers and other IT professionals have and control access to highly sensitive information Regulatory environment. We’re not in the wild west anymore Security. Computer system misuse can paralyze organizations 6 CS 5150 Administrivia • • Schedule • Monday evening • • CS 5150 Most of the information about lectures, assignments, quizzes, presentations, etc will be linked from the schedule part of the website The Monday evening time slot is usually reserved for team meetings Occasionally used for other activities like quizzes 7 Six Worlds Shrink wrap Contract/small niche Systems/frameworks Internal/corporate/bu siness logic Self-serve Embedded CS 5150 8 Texts on Software Engineering • • • • No required reading for 5150 Suggested readings are listed on the website Wikipedia has become a good source for generally accepted definitions of terms Blogs and social sites like Stack Overflow have become great resources • CS 5150 Must be read critically 9 • Lectures and Quizzes Lectures • • • Primary purpose: familiarize you with the language of software engineering Quizzes • • CS 5150 The posted slides are outlines of lecture material Did you come to lecture with your brain turned on? No after-the-fact make-ups; contact me well in advance if you cannot be present for a quiz 10 Grading • • • • • CS 5150 Project (group): 0.4 Project (individual): 0.4 Quizzes: 0.2 (I will not apologize for shifting this breakdown in the neighborhood of +/-0.1) Message: Do a good job on the project! • But you won’t see everything in 4 months, so come to lecture 11 Feedback • • • CS 5150 There will be a few short surveys Project. Trying to avoid a train wreck Team members. Helping your team members learn effective teamwork 12 Project • • • • • CS 5150 Real software for real people Project teams of 5-7 Select your project from the suggestions we have collected or come up with your own Feasibility study and plan due mid September Milestones: three reports and group presentations 13 Team • • CS 5150 Organize/find a team as soon as you can Contact course staff if you cannot find a team 14 Varied Skills and Experiences • • • • • • • • • CS 5150 Biggest project you have written? (nearest order of magnitude LOC) Biggest project you have participated in? (same as above) Biggest project team you have been a member of? Longest time you have participated in a project? Most people who have used your work? Longest that your work has been in use? Have you led/spearheaded a real-world project? Do you have design experience? Do you have experience working with non-technical users of your software? 15 Project Selection • • • CS 5150 Read our suggestions Think of your own Contact potential clients • • Understand their goals Get a sense for the scope and complexity of the project 16 Project Constraints and Suggestions • • CS 5150 Must be a production system; not research or prototype You need a “client”: one or two people who will work with you to define the project, attend presentations 17 Your Takeaway from 5150 • • • CS 5150 We assume you already know how to program proficiently in at least one language/framework Most software projects that fail do so because the software does something other than what its target users want, not because the programmers failed to build the project as planned Use 5150 to learn how to interact with users to give yourself the best chance of solving the right problem 18 Software Engineering is a Profession and a Craft • • • • CS 5150 Software is more varied than most engineering disciplines Client needs are highly varied Software development processes are highly varied Software development environments are highly varied 19 Software is Expensive • • Salaries are the #1 cost • When someone else is paying for it, their satisfaction is all that matters • CS 5150 “Free” software still costs time You don’t know what success and failure of the software means to them 20 Customers and Users • 5150 is about shifting your focus • • CS 5150 From: The many wonders of beautiful computer technology To: How do you understand other people’s needs and facilitate their activities with computer technology? 21 Thanks for your attention • • CS 5150 Before next lecture • Find a team! Next lecture • Software Processes 1 22