Software Engineering in the Academy

Slides:



Advertisements
Similar presentations
Carlos D. Rivera February 28, 2007 Design-by-Contract.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
OBP Research Oy for simpler creation of embedded systems.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
Software Engineering and Design Principles Chapter 1.
What is Software Engineering? And why is it so hard?
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Software Engineering General Project Management Software Requirements
Software Requirements
Overview of Software Requirements
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
Describing Syntax and Semantics
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Difference between project and other assignments real customer before programming: negotiations with client to clarify requirements often changes.
Data Structures and Programming.  John Edgar2.
Chapter 3 Software Processes.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
7.1 The Software Engineering Discipline 7.2 The Software Life Cycle 報告者 : 林建任.
Guide to the Software Engineering Body of Knowledge Chapter 1 - Introduction.
Chapter 6 Software Implementation Process Group
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
Software Processes.
Computer Science School of Computing Clemson University Introduction to Formal Specification Murali Sitaraman Clemson University.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Waterfall Life Cycle
UNIT-1 SOFTWARE PRODUCT AND PROCESS: Introduction – S/W Engineering paradigm – Verification – Validation – Life cycle models – System engineering –
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
MANP1163 (Course Overview).  Dr Suriayati Chuprat   Room: IT-Manager’s.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
HCI Meeting 1 Thursday, August 26. Class Activities [1] Student questionnaire Answer the following questions: 1.When and where was the computer mouse.
Chapter 2 Principles of Programming and Software Engineering.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
1 Software Requirements Descriptions and specifications of a system.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Principles of Programming & Software Engineering
CompSci 280 S Introduction to Software Development
Advanced Computer Systems
Chapter3:Software Processes
Introduction: Computer programming
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
IS301 – Software Engineering V:
Principles of Programming and Software Engineering
Software Processes (a)
Project Topic 2: Migration to Java 9
Frequently asked questions about software engineering
HCI in the software process
Software Processes.
Software Engineering in the Academy
Frequently asked questions about software engineering
An Introduction to Software Engineering
HCI in the software process
Chapter 7 –Implementation Issues
HCI in the software process
Chapter 2. Problem Solving and Software Engineering
Human Computer Interaction Lecture 14 HCI in Software Process
Rapid software development
Presentation transcript:

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.

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

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.

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.

The Principles: What Software Professionals Know Typing: study of type systems for safe construction of software. Contracts: pre and post conditions and invariants. (How does this apply to aspects?) Exception handling. Errors and debugging.

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

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

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.

Mathematics Programming and programming languages are mathematical beasts!