Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Lecture 1: Introduction.

Slides:



Advertisements
Similar presentations
Department of Computer Science Requirements Analysis for Complex Software Systems Vereistenanalyse voor complexe softwaresystemen.
Advertisements

CS487 Software Engineering Omar Aldawud
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
CS3773 Software Engineering Lecture 01 Introduction.
Learning and Teaching Conference 2012 Skill integration for students through in-class feedback and continuous assessment. Konstantinos Dimopoulos City.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Fall 2004 WWW IS112 Prof. Dwyer Intro1: Overview and Syllabus Professor Catherine Dwyer.
Software Engineering COMP 201
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Chair of Software Engineering Updated: 04 April 2006 Lecture 1: Course overview and introduction Concurrent Object-Oriented Programming Bertrand Meyer,
Capstone Design Project (CDP) Civil Engineering Department First Semester 1431/1432 H 10/14/20091 King Saud University, Civil Engineering Department.
Chapter 1 The Systems Development Environment
Software Development Process
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 1 Large Scale Systems Design G52LSS Semester 1 of session.
GE105: Introduction to Engineering Design Course Information College of Engineering King Saud University Feb 1, 2012.
Abdulmotaleb El Saddik Prof. Dr.-Ing., FIEEE, FCAE University Research Chair ELG 4913F ELG 4913F Electrical Engineering Design Project II
Software Engineering Methodologies (Introduction)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CSE 436 Software Engineering Workshop Course Overview Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
Chapter 1: Introduction to Project Management
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Introduction to Programming Lecture 1 – Overview
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Cs498dm Software Testing Darko Marinov January 15, 2008.
Course Introduction Software Engineering
PBL in Team Applied to Software Engineering Education Liubo Ouyang Software School, Hunan University CEIS-SIOE, January 2006, Harbin.
Introduction to Information Systems and Technology MIS 213, Spring 2015 CIS 2005, CIS 1007.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Module Info Web Application and Development Digital Media Department Unit Credit Value : 4 Essential Learning time : 120 hours
Software Engineering Management Lecture 1 The Software Process.
Understanding the Academic Structure of the US Classroom: Syllabus.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Course Guide IS325 Systems Analysis & Design II Ms Fatima Khan Prince Sultan University, College for Women.
Principles of Financial Accounting I Fall Semester 2007 Orientation Welcome – We are glad you are here! Let’s look at the syllabus for this course.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Introduction to CS Senior Design Project I / II Prof. Dr. H. Altay Güvenir.
An Introduction to Software Engineering. Communication Systems.
CSEP 545 Transaction Processing for E-Commerce Course Information Spring (March – May) 2007.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
1 CAP 4063 Web Application Design Summer 2012 TR 9:30 – 11:40 PM CHE 102 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB 336.
1 COP 3331 Object Oriented Design Spring 2016 Section 001 F 8:00 AM – 10:45 AM CPR 115 Classroom Lecture 3 credit hours Instructor:Dr. Rollins Turner ENB.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Winter 2016CISC101 - Prof. McLeod1 CISC101 Elements of Computing Science I Course Web Site: The lecture outlines.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
Introduction: What is AI? CMSC Introduction to Artificial Intelligence January 7, 2003.
Course Information CSE 2031 Fall Instructor U.T. Nguyen Office: CSE Home page:
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
CSE305 Software Engineering
Introduction to CS Senior Design Project I / II
Two part course Software Engineering option only!
EECE 310 Software Engineering
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Practical Software Engineering
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
CS 425 / CS 625 Software Engineering
Course Information EECS 2031 Fall 2016.
Topic 1: Introduction to the Module and an Overview of Agile
Presentation transcript:

Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Lecture 1: Introduction

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 2 2 Goal of the course Introduce you, in both theory and practice, to: The challenges and techniques of building production software in an industrial environment

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 3 3 What is software engineering?

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 4 4 The world of software Software now controls much of the modern world:  Business operations (administrative etc.)  Government  Factories  Transportation  Defense, finance, health…  Many traditional processes, e.g. publishing  New technologies now mainstream, e.g. the Web, which have transformed our life Achille’s heel of this revolution: cost, schedule, quality Business and political concern, not just technical

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 5 5 The need for quality software Many lives and businesses now depend on software. We now need larger, more complex, and safer software systems on predictable schedules. Without different software practices, this will not happen. The Team Software Process (TSP) addresses this need. The PSP provides the knowledge and skill that developers need to work on TSP teams

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 6 6 Many projects fail … See Info I slides

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 7 7 Why projects fail Five major reasons:  Unrealistic commitments  Inadequate leadership and management  Lack of control (no personal plans by developers, insufficient knowledge by management)  Insufficient quality (driven by quality of worst part)  Insufficient technology (methods, tools, languages)

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 8 8 So, what is software engineering? The production of operational software satisfying defined standards of quality

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP 9 9 Software engineering … includes programming, but is more than programming As von Clausewitz did not write: “the continuation of programming through other means”.

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP The five components of software engineering Describe Implement Assess Manage Operate Requirements, design specification documentation … Design, programming Testing and other V&V* techniques *Validation & Verification Plans, schedules, communication, reviews… Deployment, installation,

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP In this course… … Every one of these five aspects gets approximately equal weight Describe Implement Assess Manage Operate

12 Practical information

13 The Teaching Staff

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Bertrand Meyer Office: RZ J6 Appointments: on request Secretary: Claudia Günthart, (01)

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Exercise sessions All groups have one session a week:  Monday IFW A34 Werner Dietl  Thursday 8-10 IFW A34 Hermann Lehner CAB H57 Jörg Derungs IFW B42 Marco Piccioni  Friday 13–15 IFW B42 Mitra Purandare IFW C42 Adam Darvas Registration: today and tomorrow

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP The assistants Adam Darvas English Friday Jörg Derungs (from April) German Thursday Werner Dietl German Monday Hermann Lehner German Thursday Marco Piccioni English Thursday Mitra Purandare English Friday Arsenii Rudich (no exercise group)

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Exercise sessions All groups have one session a week:  Monday IFW A34 Werner Dietl  Thursday 8-10 IFW A34 Hermann Lehner CAB H57 Jörg Derungs IFW B42 Marco Piccioni  Friday 13–15 IFW B42 Mitra Purandare IFW C42 Adam Darvas Registration: today and tomorrow Note: most groups will miss a session in week 2 or 3 – check with assistant

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Course material Course page:  Check it at least twice a week Lecture material:  Lecture slides  No required textbook, but we will recommend books as we go; see bibliography on course page Exercise material:  Exercise sheets  Master solutions

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Electronic forums Discussion forums: Mailing list for each group The usual advice and rules:  Use the forums and mailing lists! Take advantage of every help you can get.  Don’t be shy. There are no stupid questions.  Criticism welcome, but always be polite to every participant and observe the etiquette. To the whole teaching team (professor and assistants): (soon operational)

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Exercise sessions and project Make sure to attend all sessions Exercise sheets will be distributed by your assistant during the exercise session Do all exercises and the project

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Lecture plan Week 1: Basics  20 March Introduction  21 March Basics of the software process, PSP (1) Week 2: Requirements  27 March Requirements (1)  28 March Requirements (2) Week 3: Management  3 April Project management (tools)  4 April Project management (principles) Week 4: Process  10 April PSP (2)  11 April Software engineering process, formal/agile Week 5: From requirements to design  17 April From Requirements to Design  18 April System Design Week 6: UML  24 April Modeling in UML  25 April From requirements to design using UML Week 7: Introduction to V&V  02 May Introduction to the V&V lifecycle Week 8: Design  8 May Detailed Design  9 May Refactoring Week 9: Implementation  15 May Implementation  16 May Implementation Week 10: Testing  22 May Testing basics  23 May More on testing Week 11: V&V beyond testing  29 May Debugging  30 May Other V&V techniques Week 12: Deployment  05 June Deploying a software system  06 June Social, legal and ethical issues: Week 13: CMMI  12 June Introduction to CMMI  13 June More on CMMI Week 14: Conclusion  19 June HCI and usability  20 June Final project presentation

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Special lecture Tomorrow (21 March), second hour Guest lecture by Mark Howard, Axa Rosenberg (Orinda, California) An object-oriented software process in a large investment management organization

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Grading 50% Project 50% Exam Project: a software engineering development (see next…) Exam: review of all the concepts in the course

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP The project Computer Science Academic & Research Daily Advertising Service (CSÁRDÁS) Purpose: Introduce you to problems and techniques of software construction in industry, with constraints mimicking those of actual projects It is not just a programming project but includes the five key aspects of software engineering as taught in this course (DIAMO):  Description  Implementation  Assessment  Management  Operation

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP More on CSÁRDÁS Model: CSEL (the Computer Science Events List): written by Marco Piccioni Source code available for guidance CSÁRDÁS is not an artificial example but reflects a real need We expect that the best student project will actually be deployed at the end of the semester Group size: three students Technologies imposed by the customer:  Web server: Apache  Operating system: Linux  Programming language: Eiffel  Web framework: EiffelWeb  Database technology: mySQL

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Project deliverables Week 1, due week 5:  Requirements document Week 5, due week 7:  Test plan for another group’s requirements  Not released to that group Week 7, due week 12:  Design and implementation of your requirements Week 12, due week 14:  Test other group’s system

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP About the project There will be “stakeholders” to help you define the requirements Informatics Europe can benefit from CSÁRDÁS. We hope to release the best student project (with credit) on the Web page of the association The first project document, describing the first assignment, is on the Web page. Note: it will be revised, please check again by the end of the week.

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Software engineering The production of operational software satisfying defined standards of quality

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Software engineering today Three cultures:  Process  Agile  Object The first two are usually seen as exclusive, but all have major contributions to make.

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Process Emphasize:  Plans  Schedules  Documents  Requirements  Specifications  Order of tasks  Commitments Examples: Rational Unified Process, CMMI, Waterfall…

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Agile Emphasize:  Short iterations  Testing (over specifications); “Test-Driven Development"  Constant customer involvement  Refusal to commit to both functionality and deadlines  Specific practices, e.g. Pair Programming Examples: Extreme Programming (XP), lean programming

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP Object-oriented (the Eiffel variant) Emphasize:  Seamless development  Reversibility  Single Product Principle  Design by Contract

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP More on this course Challenging but should be a rewarding experience. Expect to learn a lot and have your views challenged The project will be demanding; situation similar to what is found in industry. Reserve enough time for it throughout the semester. Observe the rules (in particular confidentiality)

Software Engineering, lecture 1: Personal Software Process for Engineers: Introduction to PSP What to do now Please choose a group