Upload
erin-baker
View
212
Download
0
Embed Size (px)
Citation preview
Difference between 480-81 project and other assignments
• real customer• before programming: negotiations with client to clarify requirements • often changes of wishes of the customers misunderstandings
complex task - complex program error-prone software high-pressure deadlines team work
big volume of documents programming only 20 % of all activities of a project long-run usage (5-10 years) modifications of software after delivery (new wishes, new hardware ...)
Software documents (IEEE Standards)• Software Validation and Verification Plan (SVVP) • Software Quality Assurance Plan (SQAP) • Software Configuration Management Plan (SCMP) • Software Project Management Plan (SPMP)
• Software Requirements Specification (SRS) (customer oriented and developer oriented)
• Software Design Document (SDD) (architecture and detailed design)
• Source code • Software Test Documentation (STD) • User's manual
Software engineering is not a special field of computer science
What it is not
compiler construction
computer communication
database
artificial intelligence
.
.
.
software engineeringLudewig, SEUH 97, p. 11 f.
software-engineering
compiler construction
computer c
ommunication
data
base
artifi
cial in
tellig
ence
..
.
What it really is
Areas of software engineering:What belongs to it ?
• „Programming is a comparatively small component of the software engineering field. Some of the other parts (including for example, software specification and design) are equally important.“
Project Management
Softwarespecification
User documentation
User interfacedesign
Softwaredesign
Programming Testing
Hardwareconsiderations
Software EngineeringThe World
M. Pont: Software Engineering with C++ and CASE Tools, Addison-Wesley 1996
Areas of software engineering:from textbooks, research subjects, conferences:
(unordered, partly overlapping)• life cycle models• software processes
(CMM, ISO 9000)• configuration management• effort estimation• project management• quality management• cleanroom software engineering• reverse engineering• program comprehension
(program understanding)• software metrics• software architecture• software maintenance
• requirements engineering• software specification• reuse• program verification• software documentation• knowledge-based SE• systematic testing• prototyping• CASE tools• programming languages for SE • object-orientation (analysis, design,
programming, test)• extreme programming• pair programming
Software Engineering Definitions
• „Software engineering ... aims at the economical development of high-quality software“ (Pagel / Six 1994, p. 49)
„SE is an engineering discipline concerned with the practical problems of developing large software systems“ (Sommerville 1992, 4. ed., p. v)
What is a software engineer?
Project manager• As a project manager you
are responsible of the realization of complex application projects for our customers in industry and management.
• The major goal is a satisfied customer based on an economically accomplished project ...
Project manager• As a project manager you
are responsible of the realization of complex application projects for our customers in industry and management.
• The major goal is a satisfied customer based on an economically accomplished project ...
Software developer
• analysis of technical requirements•feasibility analysis and effort estimation• technical specification• design of the application• programming• test and quality assurance• installation in the target environment
Software developer
• analysis of technical requirements•feasibility analysis and effort estimation• technical specification• design of the application• programming• test and quality assurance• installation in the target environment
Hardware costs and software costs
Distribution of project activities as a function of project size
0%10%
20%30%
40%50%
60%70%
80%90%
100%
project size (function points)
coding
defect removal
paperwork
management andsupport
Yourdon, 1993, p. 151