Introduction and Overview Jacques Carette, 09/2004 1 SE 3M04 SE - - PowerPoint PPT Presentation

introduction and overview
SMART_READER_LITE
LIVE PREVIEW

Introduction and Overview Jacques Carette, 09/2004 1 SE 3M04 SE - - PowerPoint PPT Presentation

SE 3M04 SE 3M04 Fall 2004 Introduction and Overview Jacques Carette, 09/2004 1 SE 3M04 SE 3M04 Fall 2004 Mission 1. Understand the professional responsibilities of software engineers. 2. Understand the role of precise specifications


slide-1
SLIDE 1

SE 3M04 Fall 2004

SE 3M04

Introduction and Overview

Jacques Carette, 09/2004 –1–

slide-2
SLIDE 2

SE 3M04 Fall 2004

SE 3M04

Mission

  • 1. Understand the professional responsibilities of software engineers.
  • 2. Understand the role of precise specifications in software development.
  • 3. Learn how to read and use specifications in program design, implementation, testing,

and inspection.

  • 4. Learn the basic principles of software design with emphasis on programs that are

sequential, terminating, and composed of modules.

Jacques Carette, 09/2004 –2–

slide-3
SLIDE 3

SE 3M04 Fall 2004

SE 3M04

Work Plan

  • Lectures (see schedule in course outline)
  • A course-oriented lab most weeks. 30%

– Done in groups of 3 – Programs (if any) will be written in C

  • 1 midterm test (20%), to be scheduled
  • Final exam (50%). Need to pass.

Jacques Carette, 09/2004 –3–

slide-4
SLIDE 4

SE 3M04 Fall 2004

SE 3M04

Texts

  • 1. Required: M. v. Mohrenschildt, SE3M04 Lecture Notes, available in bookstore .
  • 2. Required: Ghezzi, Jazayeri and Mandrioli Fundamentals of Software Engineering
  • 3. Optional: F

. P . Brooks, Jr., The Mythical Man-Month, Anniversary Edition, Addison Wesley, 1995.

  • 4. Optional: D. M. Hoffman and D. M. Weiss, Software Fundamentals: Collected Papers

by David L. Parnas, Addison Wesley, 2001.

Jacques Carette, 09/2004 –4–

slide-5
SLIDE 5

SE 3M04 Fall 2004

SE 3M04

Mechanics

  • Course web site:

http://www.cas.mcmaster.ca/˜carette/SE3M04/2004/

  • Teaching assistants

– Two EE graduate students

∗ Naser Faramarzpour and Wei Liu

– Provide assistance with lab exercises and course material – Mark assignments

  • Each student is required to keep a log

Jacques Carette, 09/2004 –5–

slide-6
SLIDE 6

SE 3M04 Fall 2004

SE 3M04

Selected Policy Statements

  • 1. I would appreciate your suggestions on how I can improve my teaching methods.
  • 2. You are urged to ask questions during class.
  • 3. You are welcome to discuss lab exercises with other students, but all such interactions

must be recorded in your log.

  • 4. Your final documentation and code must be your own (group’s).
  • 5. Lab exercises may not be turned in late and midterm tests may not be taken later

without prior approval from the instructor.

Jacques Carette, 09/2004 –6–

slide-7
SLIDE 7

SE 3M04 Fall 2004

SE 3M04

Labs and Tutorials

  • Labs are designed to be possible to do in 3 hours (although not all of you are expected

to succeed)

  • Labs will all be handed in electronically using WebCT

Jacques Carette, 09/2004 –7–

slide-8
SLIDE 8

SE 3M04 Fall 2004

SE 3M04

What is “Software Engineering”

  • Engineering is a discipline
  • Goal: Creation of a Product
  • The Product is specified, documented, and it is possible to verify that it performs as it is

supposed to

  • An engineer is responsible for his/her product (Not a disclaimer!)

Jacques Carette, 09/2004 –8–

slide-9
SLIDE 9

SE 3M04 Fall 2004

SE 3M04

“Engineered” Software Products

  • Pure software products

– COTS: Microsoft Word, Matlab, PSpice – Banking system, MUGSI

  • Software as part of others products

(Car, Airplane, Nuclear Power Plant, X-ray-machine)

  • Software used in the design of products

– program computing the beams of a bridge

Jacques Carette, 09/2004 –9–

slide-10
SLIDE 10

SE 3M04 Fall 2004

SE 3M04

Mission and Safety Critical software

Definition:

  • failure causes harm to life or environment
  • financial disaster (recalls)

Who of you ever wrote a program larger than N lines which worked perfectly the first time? How can we trust software consisting of 1’000’000 lines of code or more?

Jacques Carette, 09/2004 –10–

slide-11
SLIDE 11

SE 3M04 Fall 2004

SE 3M04

Goals of this course:

Learn how to develop (large) software products that

  • are reliable
  • really do what they are supposed to
  • can be verified
  • can be developed by a team
  • can be easily maintained

Jacques Carette, 09/2004 –11–

slide-12
SLIDE 12

SE 3M04 Fall 2004

SE 3M04

Engineering Principles

  • Accept individual responsibility

– Social – Professional – Ethical – Environmental

  • Solve the Real Problem
  • Be honest about the capabilities
  • Produce Reviewable Designs (Documentation)
  • Specify and document your software
  • State the limitations of your software

Jacques Carette, 09/2004 –12–