You are on page 1of 17

CS 501: Software Engineering Fall 2000

Lecture 1
Introduction to Software Engineering

Course Administration
Web site: www.cs.cornell.edu/cs501-fa00 Instructor: William Arms Teaching assistants: Ken Hopkinson, Amy Siu Assistant: Rosemary Adessa Computer lab: Computer Science Undergraduate Lab, Upson Hall, Room 315/317.

Code 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.

Projects
Project teams, about 5 to 7 people. Select your own project, any branch of software engineering Real project for real client who intends to use the software in production. Feasibility study and plan: September 13 Presentations: requirements design final

Project Selection
Some suggested projects on the web site Recitation section on Monday to suggest projects Contact potential clients:

Gain idea of their expectations Estimate scope and complexity of the project Discuss business decisions Assemble project team
Advertise on the web site

Previous 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

Future Experience

What will you be doing one year from now? Ten years from now?

Course 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

Course Themes
2. Large and very large systems Software design Software architecture Object-oriented design Dependable systems Reliability Verification Legacy systems

Characteristics of Software Products


General characteristics 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

Software as a Product
Software is expensive!! Every software project has a trade-off between: Functionality Resources (cost) Timeliness

Example: Andrew console monitor

Client (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?

Variety of Software Products


Examples?

Categories 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)

Variety of Software Products

Software products are very varied --> Client requirements are very different --> There is no standard process for software engineering --> 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.

Professional 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).

Next Steps
Selection of projects advertise -- send message to TAs and they will post on web site Recitation section Monday at 7:30

You might also like