cs 5150 software engineering l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CS 5150 Software Engineering PowerPoint Presentation
Download Presentation
CS 5150 Software Engineering

Loading in 2 Seconds...

play fullscreen
1 / 22

CS 5150 Software Engineering - PowerPoint PPT Presentation


  • 326 Views
  • Uploaded on

CS 5150 Software Engineering Lecture 1 Introduction to Software Engineering About the Course Web site: www.cs.cornell.edu/Courses/cs5150/2010fa/ Instructor: William Arms, wya@cs.cornell.edu Teaching assistant: Stephen Purpura, stevepurpura@gmail.com

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS 5150 Software Engineering' - ryanadan


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs 5150 software engineering
CS 5150 Software Engineering

Lecture 1

Introduction to Software Engineering

about the course
About the Course

Web site:www.cs.cornell.edu/Courses/cs5150/2010fa/

Instructor: William Arms, wya@cs.cornell.edu

Teaching assistant: Stephen Purpura, stevepurpura@gmail.com

Assistant: Corinne Russell, crussell@cs.cornell.edu

This course does not use the Computer Science Course Management System (CMS)

course administration
Course Administration

Email

To contact members of the course team, send email to:

both wya@cs.cornell.edu

and stevepurpura@gmail.com

The Teaching Assistant does not have office hours, but you can schedule an appointment by email.

academic integrity professional practice
Academic Integrity & Professional Practice

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, withproper attribution.

Unethical and academic plagiarism: To use the efforts of others without attribution.

See: Academic Integrity on the course Web site, which points to the Cornell code.

professional responsibility
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).
about the course6
About the Course

Syllabus

For the schedule of lectures, assignments, and tests, see the Syllabus file on the course Web site. (Note that this syllabus may change as the course progresses.)

Monday evening

This time is for project team meetings. You may choose to meet at other times, but each project should have at least one regular weekly meeting.

The four tests are held on Monday evenings.

about the course7
About the Course

Readings:

There is no course textbook. 

See the Books and Readings file on the Web site.

Wikipedia is often a good source for information about methods of software engineering

but...

beware articles that emphasize the current fashions

lectures and tests
Lectures and Tests

Lectures and Tests

• The slides are outlines of the lecture material. You will need to take additional notes during class.

• Tests are on the material covered in the lectures, including material that is not on the slides.

• Four tests held on Monday evenings, each with two questions. Best six questions count for final grade.

• No make-up times.

See Tests on the Web site for more information.

grading subject to change
Grading (Subject to Change)

Project (group) 45%

Project (individual) 25%

Tests 30%

Do not neglect the material covered in the lectures.

You cannot expect to do well on the tests and get a good final grade in the course from the slides alone.

feedback about the group projects
Feedback about the Group Projects

There will be four short surveys, at the time of each assignment.

Comments on the group projects

Your feedback about what is working well on the project and where you see difficulties: to help anticipate problems early.

Feedback about the contribution of team members

Your feedback about how each member of your team contributed to the work of the group: to identify those individuals who make extra effort or do not contribute fully.

projects
Projects

The projects are a central part of the course

• Real projects for real clients who intend to use the software in production.

• Select your own project, any branch of software development.

• Project teams, 5 to 7 people.

• Feasibility study and plan, due September 24

• Milestones: three reports and group presentations

project selection
Project Selection

Read the Web site

• Some projects are suggested on the Web site and will be discussed in class next week

• You are encouraged to find other projects

Contact potential clients

• Gain idea of their expectations

• Estimate scope and complexity of the project

• Discuss business decisions

Assemble project teams

• Make announcements at the beginning of class

thoughts about project selection
Thoughts about Project Selection

Projects

• Target must be a production system (not prototype or research)

• Client should be one or two named people -- client should be prepared to meet with you regularly and attend the presentations

Team

• Teams need many strengths -- organizational, technical, writing, etc.

• Consider appointing a project manager to coordinate the effort, or a separate project manager for each of the four assignments.

overall aim of the course
Overall Aim of the Course

We assume that you are technically proficient. You know a good deal about computing, can program reasonably, can learn more on the job.

When you leave Cornell, you are going to work on production projects where success or failure may cost millions of dollars.

Soon you will be in charge. It may be your money.

We want you to make your mistakes now and learn from your mistakes.

previous experience yours
Previous Experience (Yours)

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?

previous experience mine
Previous Experience (Mine)

Much of my career, I was in charge of computing at universities such as Dartmouth and Carnegie Mellon, with some time in industry.

Projects where I was in charge

• Operating system, compilers, etc.

• Campus networks, routers, protocols, etc.

• Distributed computing environment, file systems, etc.

• Administrative data processing, general ledger, etc.

• Digital libraries (including recent Cornell Web Lab)

Theme has been first production system where the methods have previously been used only in research.

variety of software products
Variety of Software Products

Examples

Data processing: telephone billing, pensions

Real time: air traffic control

Mobile devices: digital camera, GPS, iPhone

Information systems: web sites, digital libraries

Sensors: weather data

System software: operating systems, compilers

Communications: routers, telephone switches

Offices: word processing, video conferences

Scientific: simulations, weather forecasting

Graphical: film making, design

etc., etc., etc., ....

the craft of software development
The Craft of Software Development

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 craftof software development is to select appropriate methods for each project and apply them effectively.

software is expensive
Software is Expensive

Software is expensive.

The major costs are:

• salaries (your salaries)

• organizational change

software is expensive20
Software is Expensive

Who is paying the money?

What does that person or organization want?

• What is success?

• What is failure?

Technical people may have very different criteria of success from the people in charge of the organization.

Examples:

• Early Unix workstations, Sun and IBM

• Ship date for Dartmouth financial system

clients customers and users
Clients, Customers, and Users

Client

The client provides resources and expects some product in return.

The client is often a member of the organization that is providing the money. The client's job success may depend on the success of the software project.

Client satisfaction is a primary measurement of success in a software project.

Who is the client for Microsoft Excel?

clients customers and users22
Clients, Customers, and Users
  • Customer
  • The customer is the person who buys the software or selects it for use by an organization.
  • User
  • A user is a person who actually uses the software.
  • With personal software, the user may be the same person as the customer.
  • In organizations, the customers and the users are usually different.
  • The Cornell Finance Office uses Microsoft Excel. Who is the customer? Who are the users?