CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.
-
Upload
tyrone-hodge -
Category
Documents
-
view
223 -
download
0
Transcript of CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.
CS 5150Software
EngineeringLecture 1
Introduction to Software Engineering
2CS 5150
Course Coordinates
• Website: http://www.cs.cornell.edu/Courses/cs5150/2012fa/
• Instructor: Benjamin Ylvisaker [email protected]
• Teaching assistant: Yue Gao [email protected]
• Administrative assistant: Maria Witlox [email protected]
• This course does not use the Course Management System (CMS)
3CS 5150
Contacting Course Staff
• For most course issues, please send email to both:
• 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
4CS 5150
Benjamin Ylvisaker
• PhD from University of Washington, 2010
• Working for GrammaTech in Ithaca
• Previously worked for several startups as well as IBM Research
5CS 5150
Academic Integrity & Professional Practice
• Software engineering is about working in groups to get things done, but ...
• 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
6CS 5150
Professional Responsibility
• Organizations put trust in software engineers:
• 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
7CS 5150
CS 5150 Administrivia
• Schedule
• Most of the information about lectures, assignments, quizzes, presentations, etc will be linked from the schedule part of the website
• Monday evening
• The Monday evening time slot is usually reserved for team meetings
• Occasionally used for other activities like quizzes
8CS 5150
Six Worlds
Shrink wrapShrink wrap
EmbeddedEmbedded
Systems/Systems/frameworksframeworks
Self-serveSelf-serveInternal/Internal/
corporate/business corporate/business logiclogic
Contract/small Contract/small nicheniche
9CS 5150
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
• Must be read critically
10
CS 5150
Lectures and Quizzes
• Lectures
• The posted slides are outlines of lecture material
• Primary purpose: familiarize you with the language of software engineering
• Quizzes
• 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
11
CS 5150
Grading
• 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
12
CS 5150
Feedback
• There will be a few short surveys
• Project. Trying to avoid a train wreck
• Team members. Helping your team members learn effective teamwork
13
CS 5150
Project
• 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
14
CS 5150
Team
• Organize/find a team as soon as you can
• Contact course staff if you cannot find a team
15
CS 5150
Varied Skills and Experiences
• 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?
16
CS 5150
Project Selection
• Read our suggestions
• Think of your own
• Contact potential clients
• Understand their goals
• Get a sense for the scope and complexity of the project
17
CS 5150
Project Constraints and Suggestions
• 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
18
CS 5150
Your Takeaway from 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
19
CS 5150
Software Engineering is a Profession and a Craft
• 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
20
CS 5150
Software is Expensive
• Salaries are the #1 cost
• “Free” software still costs time
• When someone else is paying for it, their satisfaction is all that matters
• You don’t know what success and failure of the software means to them
21
CS 5150
Customers and Users
• 5150 is about shifting your focus
• From: The many wonders of beautiful computer technology
• To: How do you understand other people’s needs and facilitate their activities with computer technology?
22
CS 5150
Thanks for your attention
• Before next lecture
• Find a team!
• Next lecture
• Software Processes 1