software engineering in the academy bertrand meyer ieee computer, may 2001
TRANSCRIPT
![Page 1: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/1.jpg)
Software Engineeringin the Academy
Bertrand Meyer
IEEE Computer, May 2001
![Page 2: Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081811/5697bf841a28abf838c86abf/html5/thumbnails/10.jpg)
Mathematics
• Programming and programming languages are mathematical beasts!