CS451 - School of Computing and Engineering

advertisement
CS451
Introduction to Software
Engineering
Yugi Lee
FH #560D
(816) 235-5932
leeyu@umkc.edu
www.sce.umkc.edu/~leeyu
CS451 - Lecture 1
1
Contents
Organizational stuff
Project
Paper Presentation
Why software engineering?
What is software engineering?
CS451 - Lecture 1
2
General stuff
 Class: M/W 12:30 – 1:15pm, RHFH460
 Office hours:
M/W 3:30-4:30 pm or by appointment
CS451 - Lecture 1
3
Course information
 www.umkc.edu/blackboard
Lecture slides will be available in advance
Mailing List:
information will be distributed via the mailing list
(e.g. hints for assignments, corrections etc.)
CS451 - Lecture 1
4
Textbooks
Required:
 Software Engineering - A Practitioner's Approach - Pressman
(McGraw Hill), 6th Edition
Additional readings
 Classical and Object-Oriented Software Engineering Stephen R. Schach (McGraw Hill)
 UML Distilled - Fowler, Scott (Addison Wesley)
 IEEE & ACM Magazine Papers
CS451 - Lecture 1
5
Course Objectives
 Have a comprehensive picture of software
development
 Gain hands-on experiences on object oriented
development in software engineering.
 learn the skill on UML (Unified Modeling Language)
and tools (National Rose, Project, etc).
 learn object-oriented programming (C#, Java or
C++) and Web technologies (XML, .NET ASP, etc)
 Understand current trends and requirements of
software systems and applications.
CS451 - Lecture 1
6
Assessment
Group Project
Individual Work
40%
60%
Midterm Exam:
15%
Final Exam:
20%
Paper Presentation & Discussion:
5%
In-Class Exercise & Participation:
20%
Both components must be passed in order to pass the
course.
CS451 - Lecture 1
7
Projects
 Team project
Teams of 3-4 members
Development of an “entire” system following Agile software
engineering process (feature based planning, Unit testing,
etc) and OO techniques (UML)
The overall assignment will be divided into several steps
that will be marked individually.
 Project proposal
 Skill building + Plan
 Increments (4)
 Project Report & Presentations
8%
6%
16%
10%
Being late leads to 10 % reduction per day
Assignments that are submitted more than three days
late will no longer be accepted.
CS451 - Lecture 1
8
Goal of the Team Assignment
Learning to develop a modular software
system within a team following an object
oriented methodology
Getting a feeling for the (management)
problems in software development
Getting an idea of your own productivity
Having group work experience (work-withother)
CS451 - Lecture 1
9
Team Assignment
The software should be developed following
basic software engineering principles
processes: analysis, design, implementation,
review, and testing phases
products: requirements and design documents,
source code, review results, test cases, test
results, and productivity metrics
CS451 - Lecture 1
10
Potential Projects
A community partner - developing a software
or a database system to track the children in
their after school programs.
CS451 - Lecture 1
11
Exams (Tentative Schedule)
Midterm exam: 3/27/06
Final examination: Final exam period
Covers the whole course
but will focus on the second part
CS451 - Lecture 1
12
Paper Presentation
Each student presents one or two papers
about 20 minutes
sign-up schedule
actively involved in discussion
IEEE Magazines i.e., Internet Computing,
Computer
ACM Magazine Communications
CS451 - Lecture 1
13
Introduction to
Software Engineering
CS451 - Lecture 1
14
What is Software? [Pressman]
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
CS451 - Lecture 1
15
Software’s Dual Role [Pressman]
Software is a product
Delivers computing potential
Produces, manages, acquires, modifies, displays, or
transmits information
Software is a vehicle for delivering a
product
Supports or directly provides system functionality
Controls other programs (e.g., an operating system)
Effects communications (e.g., networking software)
Helps build other software (e.g., software tools)
CS451 - Lecture 1
16
Why Software Engineering?
...to get away from ad hoc and unpredictable
software development towards a
systematic, understood one...
CS451 - Lecture 1
17
Characteristics of
Today’s Software Development
Development of large & complex systems
Software systems must fulfill the
requirements of a client
Number of persons involved in the
development > 1
Software systems are expected to live long
and be used by many people
CS451 - Lecture 1
18
What are the Problems?
 Increased quality demands on software products
 High cost and time pressure
 Shorter time to market
 Coordination problems within the projects
 Scarce resources
CS451 - Lecture 1
19
The Software Crisis and Solution
1968: NATO conference in
Garmisch-Partenkirchen
software crisis (to characterize the situation)
software engineering (idea for a solution)
CS451 - Lecture 1
20
Why still Software Engineering?
Has the software crisis vanished?
No!
Software projects still run over time and out
of budget
no break through in quality !!!
[still art instead of engineering discipline]
CS451 - Lecture 1
21
Software Crisis?
 Unacceptably
low quality of
software
 Delayed
deadlines:
Average 1
year
 Over cost limits:  After deliver?
Average 2X
E.g. U.S Army study of
estimate
E.g. Air Force Command
and Control system
Initial estimate
$1.5million
Winner’s bid
$0.4 million
Actual cost
$3.7 million
CS451 - Lecture 1
Federal projects
Delivered, but not used
47%
Paid for, but not delivered
29%
Abandoned or reworked
19%
Used after changes
3%
Used as delivered
2%
22
Practical Disasters
European Space Agency Ariane 5
Track control system failure results in self
destruction
Denver Airport
Late delivery of software for the baggage system
delays the opening of the airport by 16 months
US study (1995): 81 billion US$ spend per
year for failing software development
projects
CS451 - Lecture 1
23
Why is Software so Hard?
Software is [Parnas, 1985]:




Buggy
Unreliable
Forever changing
Unwarrantable
CS451 - Lecture 1
24
Legacy Software
• Why must it change?
software must be adapted to meet the
needs of new computing environments or
technology.
software must be enhanced to implement
new business requirements.
software must be extended to make it
interoperable with other more modern
systems or databases.
software must be re-architected to make it
viable within a network environment.
CS451 - Lecture 1
25
Management Myths
State-of-the-art tools are the solution
A fool with a tool is still a fool
Getting behind schedule resolved by hiring
additional programmers
“adding people to a late software project makes it
later”
CS451 - Lecture 1
26
Management myths
CS451 - Lecture 1
27
Customer Myths
A general statement of objectives is sufficient
to begin writing programs - we can fill in
details later.
Thorough communication between customer and
developer needed
Changes can be easily accommodated
because software is flexible
changes happen as a fact of life
late changes are expensive
CS451 - Lecture 1
28
The Impact of Change
Cost to change
60 - 100 x
1.5 - 6 x
1x
Definition
Development
CS451 - Lecture 1
After release
29
Practitioner’s Myths
 Once we write a program and get it to work, our job
is done
50-70% of all effort after first delivery
 Until I get the program “running”, I really have no
way in assessing its quality
inspections & reviews
 The only deliverable for a successful project is the
working program
documentation (users, maintenance)
CS451 - Lecture 1
30
Definition: Software Engineering
Software Engineering:
(1) The application of a systematic,
disciplined, quantifiable approach to the
development, operation, and maintenance of
software; that is, the application of
engineering to software.
(2) The study of approaches as in (1) [IEEE93]
CS451 - Lecture 1
31
Three P’s
People
Processes
Products
CS451 - Lecture 1
32
People, Processes, Products
 People
 education
 skills
 communication
 style
 .....
• Products
–
–
–
–
–
–
–
–
–
requirements
design
source code
executable
user
documentation
test cases
test results
change request
....
CS451 - Lecture 1
• Processes
–
–
–
–
–
–
–
–
planning
coordination
management
measuring
analyzing
designing
coding
.....
33
Scope: Software Engineering
 extremely broad
 the software life
cycle
 team or
organization
economic aspect
 legal aspect,
 etc.
 various disciplines
Mathematics,
Computer science,
Economics,
Management,
Psychology
etc.
CS451 - Lecture 1
34
Download