January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 –...

30
January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor: Marc Pomplun

Transcript of January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 –...

Page 1: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

1

Welcome to

CS 410 – Introduction to

Software Engineering

Spring 2014

Instructor: Marc Pomplun

Page 2: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

2

Instructor – Marc PomplunOffice: S-3-171

Lab: S-3-135

Office Hours: Tuesdays 4:30pm – 5:30pm Thursdays 6:45pm – 8:45pm

Phone: 287-6443 (office) 287-6485 (lab)

E-Mail: [email protected]

Website: http://www.cs.umb.edu/~marc/cs410/

Page 3: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

3

The Visual Attention Lab

Eye movement research

Page 4: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

4

The new EyeLink-2K System

Page 5: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

5

Example: Distribution of Visual Attention

Page 6: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

6

Selectivity in Complex Scenes

Page 7: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

7

Selectivity in Complex Scenes

Page 8: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

8

Selectivity in Complex Scenes

Page 9: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

9

Selectivity in Complex Scenes

Page 10: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

10

Selectivity in Complex Scenes

Page 11: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

11

Selectivity in Complex Scenes

Page 12: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

12

Modeling of Brain Functions

Page 13: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

13

Modeling of Brain Functionsunit and connectionin the interpretive network

unit and connectionin the gating network

unit and connectionin the top-down bias network

layer l +1

layer l -1

layer l

Page 14: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

14

Computer Vision:

Page 15: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

15

Human-Computer Interfaces:

Page 16: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

16

Now back to CS 410:Textbook (available at the UMB Bookstore):

C++ programming with design patterns revealed. By Thomasz Müldner. Addison-Wesley, ISBN 0-201-72231-3

Course materials on the Web:

http://www.cs.umb.edu/~marc/cs410/

(contains all kinds of course information and also my slides in PPT and PDF formats, updated after each session)

Page 17: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

17

Mailing List

Please use the ‘apply’ command on the UNIX system to register for our mailing list (CS410, section 1).

I expect everyone to be on the list, because I will use it to make announcements.

Also, I would like to encourage you to use the list for discussion. If you have a question that you think is important for many students in the course, please send it to the list at [email protected],

and I will respond to the list.

Send all other questions to me. For these questions, I will send my reply only to you.

Page 18: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

18

Your Evaluation

• 3 sets of exercises each set 3.33% 10%

(only individual submissions allowed)

• software project 40%

(groups of 3 or 4 students)

• midterm (1.5 hours) 20%

• final exam (2.5 hours) 30%

Page 19: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

19

Grading

95%: A 90%: A-

74%: C+ 70%: C 66%: C-

86%: B+ 82%: B 78%: B-

62%: D+ 56%: D 50%: D-

50%: F

For the assignments, exams and your course grade, the following scheme will be used to convert percentages into letter grades:

Page 20: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

20

Complaints about Grading

If you think that the grading of your assignment or exam was unfair,

• write down your complaint (handwriting is OK),• attach it to the assignment or exam, • and give it to me or put it in my mailbox.

I will re-grade the whole exam/assignment and return it to you in class.

Page 21: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

21

Software Engineering

• 1968: Conference on ‘software crisis’.• Delivery of software was sometimes years late.• Its cost was often much higher than predicted.• Many programs were unreliable.• Maintenance of software tended to be difficult.• The software often poorly performed the task

for which it was designed.

The term ‘software engineering’ was coined.

Page 22: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

22

Questions about Software Engineering

Q: What is software engineering?A: Software engineering is an engineering

discipline which is concerned with all aspects of software production, for example, software specification, development, validation and evolution.

Q: What is the difference between software engineering and computer science?

A: Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

Page 23: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

23

Problems: Complexity and Change

Complexity:• Software systems can include a huge number of

functions and components.• Many participants with usually different

backgrounds participate in the development of software systems.

• Often no single person can understand the whole system.

• Sometimes systems become so hard to understand that they are never finished:‘vaporware’.

Page 24: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

24

Problems: Complexity and Change

Change:• Requirements are updated when errors are

discovered and when developers get a better understanding of the application.

• Long-term projects involve high staff-turnaround.• Often, important technological changes occur

during the development of a software system.• The client’s needs may change during the

development process.

It is impossible to specify a static set of requirements.

Page 25: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

25

Aspects of Software Engineering

• Modeling: Focusing on the relevant parts of the system and ignoring everything else.

• Problem solving: Using models to find an acceptable – not necessarily an optimal – solution (“engineering = making things work”).

• Knowledge acquisition: Gaining sufficient knowledge about the problem domain and formalizing it to build a model.

• Rationale-driven development: Capturing the context in which decisions were made and representing it as a set of issue models.

Page 26: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

26

Software Engineering Concepts

The following definitions follow those of the IEEE Standards on Software Engineering.

A project is composed of a number of activities.

Each activity is in turn composed of a number of tasks.

A task consumes resources and produces a work product.

A work product can either be a system, a model, or a document.

Resources are either participants, time, or equipment.

Page 27: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

27

Software Engineering Concepts

All persons involved in a project (developers, project manager, client, end users, etc.) are referred to as participants.

A role is a set of responsibilities in the project or the system.

A role is associated with a set of tasks and is assigned to a participant.

The same participant can fill multiple roles.

The term system refers to the underlying reality, and the term model refers to any abstraction of the reality.

Page 28: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

28

Software Engineering Concepts

A work product is an artifact that is produced during the development, such as a document or a piece of software.

A work product for the project’s internal consumption is called an internal work product, while a work product for a client is called a deliverable.

An activity is a set of tasks that is performed toward a specific purpose, for example, delivery.

Activities are also called phases.

A task represents an atomic unit of work that can be managed.

Page 29: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

29

Software Engineering Concepts

Resources such as time, equipment, and labor, are assets that are used to accomplish work.

The project manager breaks down the work into tasks and assigns them to resources.

A goal is a high-level principle that is used to guide the project. Goals define the attributes of a system that are important.

A functional requirement is an area of functionality that the system must support, whereas a nonfunctional requirement is a constraint on the operation of the system.

Page 30: January 28, 2014CS410 – Software Engineering Lecture #1: Introduction 1 Welcome to CS 410 – Introduction to Software Engineering Spring 2014 Instructor:

January 28, 2014 CS410 – Software Engineering Lecture #1: Introduction

30

Software Engineering Concepts

A notation is a graphical or textual set of rules for representing a model. In this course, we will use UML (Unified Modeling Language) to represent models.

A method is a repeatable technique for solving a problem.

A methodology is a collection of methods for solving a class of problems.