Title: CS451 Introduction to Software Engineering
1CS451Introduction to Software Engineering
- Yugi Lee
- FH 560D
- (816) 235-5932
- leeyu_at_umkc.edu
- www.sce.umkc.edu/leeyu
2Contents
- Organizational stuff
- Project
- Paper Presentation
- Why software engineering?
- What is software engineering?
3General stuff
- Class M/W 1230 115pm, RHFH460
- Office hours
- M/W 330-430 pm or by appointment
4Course 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.)
5Textbooks
- 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
6Course 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.
7Assessment
- 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.
8Projects
- 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.
9Goal 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-with-other)
10Team 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
11Potential Projects
- A community partner - developing a software or a
database system to track the children in their
after school programs.
12Exams (Tentative Schedule)
- Midterm exam 3/27/06
- Final examination Final exam period
- Covers the whole course but will focus on
the second part
13Paper 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
14Introduction to Software Engineering
15What is Software? Pressman
- Software is a set of items or objects
- that form a configuration that
- includes
- programs
- documents
- data ...
16Softwares 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)
17Why Software Engineering?
- ...to get away from ad hoc and unpredictable
software development towards a systematic,
understood one...
18Characteristics of Todays Software Development
- Development of large complex systems
- Software systems must fulfill the requirements of
a client - Number of persons involved in the development gt
1 - Software systems are expected to live long and be
used by many people
19What 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
20The Software Crisis and Solution
- 1968 NATO conference in Garmisch-Partenkirchen
- software crisis (to characterize the situation)
- software engineering (idea for a solution)
21Why 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
22Software 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
- Winners 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
23Practical 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
24Why is Software so Hard?
- Software is Parnas, 1985
- Buggy
- Unreliable
- Forever changing
- Unwarrantable
25Legacy 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.
26Management 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
27Management myths
28Customer 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
29The Impact of Change
Cost to change
30Practitioners 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)
31Definition 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
32Three Ps
People
Processes
Products
33People, 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
- .....
34Scope 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.