Title: CS%20501:%20Software%20Engineering%20Fall%20199
1CS 501 Software EngineeringFall 199
Lecture 1 a) Administration b) Introduction to
Software Engineering
2Course Administration
Web site www.cs.cornell.edu/cs501-fa99 Instructo
r William Arms Teaching assistant Nate
Nystrom Assistant Rosemary Adessa Text book
Software Engineering, Fifth Edition, by Ian
Sommerville (Addison-Wesley), 1996. Computer lab
Computer Science Undergraduate Lab, Upson Hall,
Room 315/317.
3Code of Conduct
? Software Engineering is a collaborative
activity. You are encouraged to work together,
but ... ? Some tasks may require individual
work. ? Always give credit to your sources and
collaborators. Good professional practice To
make use of the expertise of others and to build
on previous work, with proper attribution.
Unethical and academic plagiarism To use the
efforts of others without attribution.
4Projects
? Project teams, about 5 people. ? Select your
own project, any branch of software engineering ?
Real project for real client who intends to use
the software in production. ? Project plan
September 9 ? Progress report October 14 ?
Final presentation End of term (dates to be
announced) ? Seminars on Friday to suggest
projects
5Course Themes
1. Leadership of large software projects
? Software as a product Clients and
their needs Quality ? Requirements
and specification Usability
Evolution ? Project management
Personnel management Economic, legal,
and social factors
6Course Themes
2. Large and very large program codes
? Software design Software
architecture Object-oriented design ?
Dependable systems Reliability
Verification ? Computer-aided software
engineering ? Legacy systems
7Characteristics of Software Products
Sommerville's list Usability
Maintainability Dependability
Efficiency Good software products require good
programming, but ... Programming quality is
the means to the end, not the end
itself. Example DEC's optical scanner
8Previous Experience
Your background ? Biggest program that you have
written? ? Biggest program that you have worked
on? ? Biggest project team that you have been
part of? ? Longest project that you have worked
on? ? Most people who have used your work? ?
Longest that your project has been in
production? My background
9Future Experience
What will you be doing one year from now? Ten
years from now?
10Software as a Product
Software is expensive!!
Every software project has a trade-off between
Function Resources Timeliness Example
Andrew console monitor
11Client (a.k.a Customer)
? The client provides resources and expects some
product in return. ? Client satisfaction is
the primary measurement of success. Question
Who is the client for Microsoft Excel?
12Professional Responsibility
Organizations put trust in software developers ?
Competence Software that does not work
effectively can destroy an organization. ?
Confidentiality Software developers and systems
administrators may have access to highly
confidential information (e.g., trade secrets,
personal data). ? Legal environment Software
exists in a complex legal environment (e.g.,
intellectual property, obscenity). ? Acceptable
use and misuse Computer abuse can paralyze an
organization (e.g., the Internet worm).
13Variety of Software Products
Examples?
14Categories of Product
Categories of client and software product ?
Generic (e.g., Microsoft Excel) ? Bespoke
(customized) (e.g., IRS internal system) Many
systems are customized versions of generic
packages (e.g., Cornell's payroll system)
15Variety of Software Products
Software products are very varied --gt Client
requirements are very different --gt There is no
standard process for software engineering --gt
There is no best language, operating system,
platform, database system, development
environment, etc. A skilled software developer
knows about a wide variety of approaches,
methods, tools. The craft of software
engineering is to select appropriate methods for
each project and apply them effectively.
16Reading
Before next class, read and be ready to
discuss Sommerville Chapters 1, 2 and 3 pages
1 to 59. Pay particular attention to the
discussion of the Software Process, beginning on
page 7.