1 / 10

Software Engineering in the Academy

Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001 Definitions of SE The body of methods, tools and techniques intended to produce quality software.

Télécharger la présentation

Software Engineering in the Academy

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. Software Engineeringin the Academy Bertrand Meyer IEEE Computer, May 2001

  2. Definitions of SE • The body of methods, tools and techniques intended to produce quality software. • The development (management, maintenance, validation, etc.) of possibly large systems intended for use in production environments, over possibly a long period, worked on by possibly many people, and possibly undergoing many changes.

  3. Goals • How to instill software engineering concerns into an entire software curriculum. • Principles • Practices • Applications • Tools • Mathematics

  4. The Principles: What Software Professionals Know • Abstraction: separate essential from the auxiliary. • Distinction between specification and implementation: confusing in software. • Recursion: apply definition to some of its parts: classes, grammers, functions, etc. • Information hiding: what you export and what you hide.

  5. The Principles: What Software Professionals Know • Reuse: when to rely on someone else’s job. • Battling complexity: recognize simplicity in an apparent mess. • Scaling up: which techniques will scale up? • Designing for change: change process can be painful, especially for large systems. • Classification: class hierarchies.

  6. The Principles: What Software Professionals Know • Typing: study of type systems for safe construction of software. • Contracts: pre and post conditions and invariants. • Exception handling. • Errors and debugging.

  7. Practices • Configuration management • Project management • Metrics • Ergonomics and user interfaces • Documentation • User interaction • High-level system analysis

  8. Applications • Includes traditional areas: • Compilers, operating systems, data bases, numerical computing, etc.

  9. Tools • Choose a few programming languages and implementations and help students to understand them in depth. • Educators are responsible for choosing the appropriate tools on the basis of their best professional assessment of student’s interests over the course of a career.

  10. Mathematics • Programming and programming languages are mathematical beasts!

More Related