1 / 20

Software Engineering

30 August 2010. Software Engineering. Common Mistakes. Over committing (“big eyes”) Unrealistic schedules Training Access to people or materials Hours in the day Level of detail Vague descriptions Over specification Not knowing your user Assuming that you’ll get it right the first time.

Télécharger la présentation

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. 30 August 2010 Software Engineering

  2. Common Mistakes • Over committing (“big eyes”) • Unrealistic schedules • Training • Access to people or materials • Hours in the day • Level of detail • Vague descriptions • Over specification • Not knowing your user • Assuming that you’ll get it right the first time

  3. Software Engineering Objective The right software delivered defect free, on time and on cost, every time. Carnegie Mellon Software Engineering Institute

  4. Software Engineering Process • Requirements • Design • Implementation • Test • Maintenance

  5. Transparency • Track what you do AND document it • …not as an afterthought • Living, heavily-used documentation

  6. No Silver Bullet

  7. For Every Paper You Read • What did you learn? • What surprised you? • When was it written? • What has changed? What hasn’t? • Who is the author? • What are his credentials?

  8. Engineering • Turning ideas into reality • Creating something useful from other things using science and math

  9. Software Engineering vs. Other Engineering Disciplines • Maturity • Roman aqueducts 2000 years ago • Software engineering 50 years ago • Startup costs • Barriers to entry • Rate of change

  10. Different Types of Projects • Consider 4 different types of systems • COMP 523 projects • Productivity suites • Commercial web sites • Airplane systems • Pacemakers • How do they differ in criticality? • What does that mean for the development process?

  11. All software projects are different but … Requirements will change. Surprises will happen. Schedules will slip. Life will happen.

  12. Fundamental Steps • Requirements • Design • Implementation • Test • Deployment • Maintenance • Functional Spec • Design Document • Code • Test Plan • User Documentation • Design Document Step Documentation

  13. Our first task • Spec for the project • Need to understand • Concept • Users • Use cases • Requirements

  14. Need to Start with a Concept How do you tell people about your project Why are you doing it What makes it unique or different brochure elevator speech

  15. Capture Essence of Project Refer back if losing your way Remind yourself and others why Prominent: first page of your web

  16. Clients vs. Users • The client is the person “paying the bill” • The users are the ones that will • Use your system • Maintain your system • Administer your system • Know their • Skill level • Time constraints • Tolerances • Expectations

  17. Requirements Analysis To build something, we first must understand what it is we’re building Establish expectations Understandable by both the client and the developer

  18. Requirements

  19. Why Written Requirements? Unambiguous Defines goals Cost of finding a requirements bug later can be 100 times more expensive

  20. Mars Climate Orbiter (December 1998) • Intended to orbit Mars • Supposed to provide output in newton seconds • Instead crashed into it • Instead provided pound-force seconds Minimum distance: 80 km

More Related