Post on 02-Jan-2016
CS451 - Lecture 1 1
CS451Introduction to Software
Engineering
Yugi Lee
FH #560D(816) 235-5932
leeyu@umkc.edu
www.sce.umkc.edu/~leeyu
CS451 - Lecture 1 2
Contents
Organizational stuffProjectPaper Presentation Why software engineering?What is software engineering?
CS451 - Lecture 1 3
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 4
Course information
www.umkc.edu/blackboardLecture slides will be available in advanceMailing List:
information will be distributed via the mailing list (e.g. hints for assignments, corrections etc.)
CS451 - Lecture 1 5
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 6
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 7
Assessment
Group Project 40%Individual Work 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 8
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 8% Skill building + Plan 6% Increments (4) 16% Project Report & Presentations 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 9
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 productivityHaving group work experience (work-with-
other)
CS451 - Lecture 1 10
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 11
Potential Projects
A community partner - developing a software or a database system to track the children in their after school programs.
CS451 - Lecture 1 12
Exams (Tentative Schedule)
Midterm exam: 3/27/06Final examination: Final exam period
Covers the whole coursebut will focus on the second part
CS451 - Lecture 1 13
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 15
What is Software? [Pressman]
Software is a set of items or objects that form a “configuration” that
includes
• programs
• documents
• data ...
CS451 - Lecture 1 16
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 17
Why Software Engineering?
...to get away from ad hoc and unpredictable software development towards a systematic, understood one...
CS451 - Lecture 1 18
Characteristics of Today’s Software Development
Development of large & complex systemsSoftware systems must fulfill the
requirements of a clientNumber of persons involved in the
development > 1Software systems are expected to live long
and be used by many people
CS451 - Lecture 1 19
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 20
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 21
Why still Software Engineering?
Has the software crisis vanished?
No!Software projects still run over time and out
of budgetno break through in quality !!!
[still art instead of engineering discipline]
CS451 - Lecture 1 22
Software Crisis?
Unacceptably low quality of software
Delayed deadlines: Average 1 year
Over cost limits: Average 2X estimate
E.g. Air Force Command and Control system
Initial estimate $1.5million Winner’s bid $0.4 million Actual cost $3.7 million
After deliver?
E.g. U.S Army study of 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%
CS451 - Lecture 1 23
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 24
Why is Software so Hard?
Software is [Parnas, 1985]: Buggy Unreliable Forever changing Unwarrantable
CS451 - Lecture 1 25
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 26
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 28
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 29
The Impact of Change
Definition
1 x
Development
1.5 - 6 x
After release
60 - 100 x
Cos
t to
chan
ge
CS451 - Lecture 1 30
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 31
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) [IEEE-93]
CS451 - Lecture 1 33
People, Processes, Products
People education skills communication style .....
• Products– requirements
– design
– source code
– executable
– user documentation
– test cases
– test results
– change request
– ....
• Processes– planning
– coordination
– management
– measuring
– analyzing
– designing
– coding
– .....