90 likes | 223 Views
D ifference 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
E N D
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
What it really is compiler construction compiler construction ... computer communication software-engineering database database artificial intelligence artificial intelligence computer communication ... software engineering Software engineering is not a special field of computer science What it is not Ludewig, SEUH 97, p. 11 f.
Project Management User documentation Softwarespecification Softwaredesign Hardwareconsiderations User interfacedesign Testing Programming Software Engineering The World Areas of software engineering:What belongs to it ? • „Programming is a comparatively small component of the softwareengineering field. Some of the other parts (including for example, software specification and design) are equally important.“ M. Pont: Software Engineering with C++ and CASE Tools, Addison-Wesley 1996
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 Areas of software engineering:from textbooks, research subjects, conferences: (unordered, partly overlapping)
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 ... • 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
Distribution of project activities as a function of project size Yourdon, 1993, p. 151