9
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 ...)

Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

Embed Size (px)

Citation preview

Page 1: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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 ...)

Page 2: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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

Page 3: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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

Page 4: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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

Page 5: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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

Page 6: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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)

Page 7: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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

Page 8: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

Hardware costs and software costs

Page 9: Difference between 480-81 project and other assignments real customer before programming: negotiations with client to clarify requirements often changes

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