software engineering in the academy bertrand meyer ieee computer, may 2001

10
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Upload: marion-jackson

Post on 17-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Software Engineeringin the Academy

Bertrand Meyer

IEEE Computer, May 2001

Page 2: 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.

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

Page 3: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Goals

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

Page 4: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

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, grammars, functions, etc.

• Information hiding: what you export and what you hide.

Page 5: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

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.

Page 6: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

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.

Page 7: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Practices

• Configuration management

• Project management

• Metrics

• Ergonomics and user interfaces

• Documentation

• User interaction

• High-level system analysis

Page 8: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Applications

• Includes traditional areas:– Compilers, operating systems, data bases,

numerical computing, etc.

Page 9: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

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.

Page 10: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001

Mathematics

• Programming and programming languages are mathematical beasts!