1 / 27

CS 501: Software Engineering

CS 501: Software Engineering. Lecture 1 Introduction to Software Engineering. About the Course. Web site: www.cs.cornell.edu/Courses/cs501/2002sp/ Email: cs501@cs.cornell.edu Instructor: William Arms Teaching assistants: Matthew Harris, Megha Batra, Gilbert Rivera

sharonhall
Télécharger la présentation

CS 501: Software Engineering

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. About the Course Web site: www.cs.cornell.edu/Courses/cs501/2002sp/ Email: cs501@cs.cornell.edu Instructor: William Arms Teaching assistants: Matthew Harris, Megha Batra, Gilbert Rivera Assistant: Rosemary Adessa Computer lab: Computer Science Undergraduate Lab, Upson Hall, Room 315/317.

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

  4. About the Course Course text: Pfleeger, Shari Lawrence, Software Engineering Theory and Practice, second edition.  Prentice- Hall 2001 Each week, read one or more chapters. Discussions will be held in classes on Tuesdays. Quizzes Four quizzes held in class on Tuesdays. No examinations. (See syllabus on the web site for details.)

  5. 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 engineering  Project teams, about 5 to 7 people.  Feasibility study and plan: due February 15  Group presentations and reports: requirements, design, final

  6. Project Selection Read the web site  Some projects on the web site  Some projects on the web site  Suggest projects will be discussed in class on Thursday Contact potential clients  Gain idea of their expectations  Estimate scope and complexity of the project  Discuss business decisions Assemble project team  Advertise at the beginning of class

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

  8. Grading (Subject to Change) Project (group) 40% Project (individual) 20% Discussion classes 20% Quizzes 20%

  9. COM S 730  -  Seminar on Scholarly Information Architecture This seminar course will examine on-line information systems designed for scholarly usage, covering ongoing trends and highlighting current problems and new research directions. Topics will include techniques for rendering, indexing, and linking scholarly information, and also formats and protocols for querying, accessing, mining, and transmitting the information. Examples include automated classification systems, real-time closeness measures, authoring tools, and next-generation document formats to facilitate efficient datamining and long-term archival stability. Some of the non-technical obstacles to realization of ideal systems -- sociological, legal, financial, and political -- will also be examined. Prof. Paul Ginsparg, Physics and Computer Science

  10. 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. Soon you will be in charge! It may be your money! We want you to make your mistakes now and learn from your mistakes.

  11. 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?

  12. Observations about Big Projects • A course project is about 0.3 person/years. A big project is 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. • Nobody comprehends more than a fraction of the project.

  13. Future Experience What will you be doing one year from now? Ten years from now?

  14. Previous Experience (Mine) Much of my career, I was in charge of computing at Dartmouth and Carnegie Mellon, with some time in industry. Programs where I wrote most of the code  Financial system (convertible bonds with sinking funds)  Linear and integer programming package  Graphical language extension little recent programming experience

  15. Previous Experience (Mine) Projects where I was in charge  Operating system rewrite, 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.

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

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

  18. Course Themes 3. Risk  Problems Over budget Late Does not work  Never used Does the wrong thing Needs change Users dislike to use it etc.

  19. Software as a Product Software is expensive! The major cost is your salary! Every software project has a trade-off between: Functionality Resources (cost) Timeliness Example: Andrew console monitor

  20. 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?

  21. Variety of Software Products Examples?

  22. 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., ....

  23. Characteristics of All 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

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

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

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

  27. Next Steps • Selection of projects -- read the web site. • Form project teams. • Read the first Chapter of Pfleeger.

More Related