PPTX

advertisement
Welcome to
CS 410 –
Introduction to
Software Engineering
Spring 2014
Instructor: Marc Pomplun
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
1
Instructor – Marc Pomplun
Office:
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:
marc@cs.umb.edu
Website:
http://www.cs.umb.edu/~marc/cs410/
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
2
The Visual Attention Lab
Eye movement research
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
3
The new EyeLink-2K System
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
4
Example: Distribution of Visual Attention
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
5
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
6
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
7
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
8
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
9
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
10
Selectivity in Complex Scenes
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
11
Modeling of Brain Functions
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
12
Modeling of Brain Functions
unit and connection
in the interpretive network
layer l +1
unit and connection
in the gating network
unit and connection
in the top-down bias network
layer l
layer l -1
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
13
Computer Vision:
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
14
Human-Computer Interfaces:
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
15
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)
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
16
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 cs410-1@cs.umb.edu,
and I will respond to the list.
Send all other questions to me. For these questions,
I will send my reply only to you.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
17
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%
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
18
Grading
For the assignments, exams and your course grade,
the following scheme will be used to convert
percentages into letter grades:
 95%: A
 90%: A-
 86%: B+
 82%: B
 78%: B-
 74%: C+
 70%: C
 66%: C-
 62%: D+
 56%: D
 50%: D-
 50%: F
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
19
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
20
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
21
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
22
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’.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
23
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
24
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
25
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
26
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
27
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
28
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
29
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.
January 28, 2014
CS410 – Software Engineering
Lecture #1: Introduction
30
Download