1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.

Slides:



Advertisements
Similar presentations
CS 5150 Software Engineering
Advertisements

1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 24 People 2.
CS CS 5150 Software Engineering Lecture 27 People 2.
1 CS 425 / CS 625 Software Engineering Fall 2007 Course Syllabus August 27, 2007.
CS 501: Software Engineering
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 26 People 1.
CS CS 5150 Software Engineering Lecture 27 People 3.
CS 501: Software Engineering Fall 2000 Lecture 1 Introduction to Software Engineering.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 24 People 2.
MIS 470: Information Systems Project Yong Choi School of Business Administration CSU, Bakersfield.
1 / 16 CS 790z Seminar on Software Engineering Spring 2003 Syllabus Details January 23, 2003.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 26 Delivering the System.
Lecture 1.
Computers Are Your Future Eleventh Edition Chapter 10: Careers & Certification Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
Chapter 1- Introduction
CSE 1111 Week 1 CSE 1111 Introduction to Computer Science and Engineering.
PROGRAM LAUNCHING Business Plan Writing ELIB 203.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
Introduction to Project Management
Software Engineering Methodologies (Introduction)
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring Chapter 1 u define software engineering.
CGS 1000-FALL 2009 Intro to Computers & Tech. Topics  Syllabus  Faculty Website  Campus Cruiser Introduction to Computers and Technology.
An Introduction to Software Engineering. Communication Systems.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 7 Business Aspects of Software Engineering.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
 What are CASE Tools ?  Rational ROSE  Microsoft Project  Rational ROSE VS MS Project  Virtual Communication  The appropriate choice for ALL Projects.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Why You Should All Become Computer Engineers ECE 200 (Fall 2015) Saurabh Bagchi School of Electrical and Computer Engineering Purdue University.
CS CS 5150 Software Engineering Lecture 24 People 2.
CS CS 5150 Software Engineering Lecture 26 People 2.
1 SWE 513: Software Engineering People II. 2 Future Experience What will you be doing one year from now? Ten years from now?
An Introduction to Software Engineering (Chapter 1 from the textbook)
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 25 People II.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 Business Aspects of Software Engineering SWE 513.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 26 Delivering the System.
Software Engineering Chapter 1- Introduction. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
CS CS 5150 Software Engineering Lecture 23 People 2.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission.
CS 501: Software Engineering Fall 199 Lecture 1 a) Administration b) Introduction to Software Engineering.
CS CS 5150 Software Engineering Lecture 26 Professionalism.
1 CS 425 / 625 Software Engineering Fall 2003 Course Syllabus August 25, 2003.
CS 501: Software Engineering Fall 1999 Lecture 22 (a) Managing the Software Process (b) Software Reuse.
IMS 4212: Course Introduction 1 Dr. Lawrence West, Management Dept., University of Central Florida ISM 4212 Dr. Larry West
CPIT 251: S OFTWARE E NGINEERING Lecture 1 Introduction to Software Engineering 1.
CompSci 280 S Introduction to Software Development
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
Chapter 1- Introduction
Software Process ICS 225 Spring 2002
Chapter 1- Introduction
CS 5150 Software Engineering
CS 501: Software Engineering
Introduction To software engineering
AppointmentmentPeach Appointment Manager
Presentation transcript:

1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering

2 CS 501 Spring 2005 About the Course Web site: (student to course team) Newsgroup: cornell.class.cs501 (student to student) Instructor: William Arms Teaching assistants: Lin Guo, Amar Phanishayee Assistant: Anat Nidar-Levi Computer lab: Computer Science Undergraduate Lab, Upson Hall, Room 315/317.

3 CS 501 Spring 2005 Course Administration To contact members of the course team, send to: Do not send to the instructor or an individual teaching assistant, except for questions to the teaching assistant assigned to your project. Teaching Assistants do not have office hours, but you can schedule an appointment by .

4 CS 501 Spring 2005 Academic Integrity 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. See: Code of Academic Integrity on the course Web site, which points to the Cornell code.

5 CS 501 Spring 2005 About the Course Syllabus For the schedule of lectures, assignments, readings and quizzes, see the Syllabus file on the course Web site. (Note that this syllabus may change as the course progresses.) Quizzes Four quizzes held during class times. No examinations. (See Quizzes on the Web site for details.) Wednesday 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.

6 CS 501 Spring 2005 About the Course Readings: Required readings. Material that will be tested in the quizzes will be identified during classes. Background reading. Recommended material, that will not be tested explicitly. Textbook: There is no course textbook. See the Web site for general books on Software Engineering. See the Books and Readings file on the Web site.

7 CS 501 Spring 2005 Grading (Subject to Change) Project (group)45% Project (individual)25% Quizzes30%

8 CS 501 Spring 2005 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 costs 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.

9 CS 501 Spring 2005 Projects The Course is Built around the Projects Real project for real client who intends 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 February 18 Group presentations and reports: requirements, design, final The class on Thursday will discuss the projects.

10 CS 501 Spring 2005 Project Selection Read the Web site Some projects are suggested on the Web site and will be discussed in class on Thursday 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 team Post message on newsgroup cornell.class.cs501 Advertise at the beginning of class

11 CS 501 Spring 2005 Thoughts about Project Selection Projects Target must be a production system (not research) Client should be one or two designated 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 leader to coordinate the effort

12 CS 501 Spring 2005 Variety of Software Products Examples Real time: air traffic control Embedded systems: digital camera, GPS Data processing: telephone billing, pensions Information systems: web sites, digital libraries Sensors: weather data System software: operating systems, compilers Communications: routers, mobile telephones Offices: word processing, video conferences Scientific: simulations, weather forecasting Graphical: film making, design etc., etc., etc.,....

13 CS 501 Spring 2005 Client Client (a.k.a. Customer) The client provides resources and expects some product in return. Client satisfaction is the primary measurement of success in a software project. Question: Who is the client for Microsoft Excel?

14 CS 501 Spring 2005 Categories of Software Product Categories of client and software product: Generic (e.g., Microsoft Excel) Packages (e.g., Mathematica) Customized versions of generic packages (e.g., Cornell's payroll system) Bespoke (customized) (e.g., IRS internal system) Demonstration, prototype, research,... Who is the client for each category of product?

15 CS 501 Spring 2005 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?

16 CS 501 Spring 2005 Observations Most software development is by teams Effectiveness of team determines success Most large software projects are built on older ones It is rare to start a new suite of programs from scratch Building on the work of others is a fundamental skill of software development

17 CS 501 Spring 2005 Observations about Big Projects A CS 501 project is about 0.3 person/years. A big project may be 100 to 1,000+ person years. Every important program is written by many people, who are constantly changing. Before a big project is completed the requirements have changed many times. No large system is ever complete.

18 CS 501 Spring 2005 Future Experience What will you be doing one year from now? Ten years from now? Typical career paths in computing combine technical work with varying degrees of project management, marketing, entrepreneurship, etc.

19 CS 501 Spring 2005 Previous Experience (Mine) Projects where I was in charge Operating system, compilers, etc. Two campus networks, routers, SNMP, etc. Distributed computing environment, file systems, etc. Administrative data processing, general ledger, etc. Digital libraries (including current large project for the National Science Foundation) (Theme has been first production system where the methods have previously been used only in research.) Much of my career, I was in charge of computing at Dartmouth and Carnegie Mellon, with some time in industry.

20 CS 501 Spring 2005 Software is Expensive Software is expensive! The major costs are salaries (your salaries)! Every software project has a trade-off between: Functionality Resources (cost) Timeliness Example: Console monitor

21 CS 501 Spring 2005 Course Themes: Risk Risk (as Seen by a Manager) Problems Over budget Late delivery Does not work as expected Never used Does the wrong thing Needs change Users dislike to use it etc. Failures of software development projects can bankrupt companies!

22 CS 501 Spring 2005 Course Themes: Visibility Visibility (as Seen by a Manager) Problem Must rely on others for reports of progress or difficulties Software Developers Have difficulty evaluating progress Optimistic Consider reporting a waste time etc. The people who take the responsibility must know what is happening!

23 CS 501 Spring 2005 Course Themes: Process Process in 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 Nobody comprehends more than a fraction of the project!

24 CS 501 Spring 2005 Course Themes: Scale Techniques for large and very large systems Software design Software architecture Object-oriented design Dependable systems Reliability Verification Legacy systems

25 CS 501 Spring 2005 What is Good Software? 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: Optical scanner

26 CS 501 Spring 2005 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 craft of software development is to select appropriate methods for each project and apply them effectively.

27 CS 501 Spring 2005 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).

28 CS 501 Spring 2005 Next Steps Read the Web site. Begin planning for your projects and forming project teams.