CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

22
Software Engineering Lecture 1 Introduction to Software Engineering

Transcript of CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

Page 1: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

CS 5150Software

EngineeringLecture 1

Introduction to Software Engineering

Page 2: CS 5150 Software Engineering Lecture 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)

Page 3: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

3CS 5150

Contacting Course Staff

• For most course issues, please send email to both:

[email protected]

[email protected]

• 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

Page 4: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 5: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 6: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 7: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 8: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 9: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 10: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 11: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 12: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 13: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 14: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

14

CS 5150

Team

• Organize/find a team as soon as you can

• Contact course staff if you cannot find a team

Page 15: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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?

Page 16: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 17: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 18: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 19: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 20: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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

Page 21: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

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?

Page 22: CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering.

22

CS 5150

Thanks for your attention

• Before next lecture

• Find a team!

• Next lecture

• Software Processes 1