CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering

advertisement
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
Download