WHAT IS SOFTWARE ENGINEERING Gerardo Schneider Department of

  • Slides: 14
Download presentation
WHAT IS SOFTWARE ENGINEERING? Gerardo Schneider Department of Informatics University of Oslo, March 2009

WHAT IS SOFTWARE ENGINEERING? Gerardo Schneider Department of Informatics University of Oslo, March 2009

The Programming Systems Product X 3 Programming Does it look actual? System Program Taken

The Programming Systems Product X 3 Programming Does it look actual? System Program Taken from The mythical Generalization, testing, docum. , maintenance Interfaces, Frederick P. Brooks, 1975 man-month. system integration We are still facing similar challenges, scaled to a more complex setting Programming X 3 Systems Software Engineering tries to explain things. Product here Product (Software System) * Gerardo Schneider 2

Outline What is Software Engineering Why Software Engineering Differences with other disciplines Challenges Gerardo

Outline What is Software Engineering Why Software Engineering Differences with other disciplines Challenges Gerardo Schneider 3

What Is Software Engineering? Software (System) Software Engineeer Development of Software products (Programs, documentation,

What Is Software Engineering? Software (System) Software Engineeer Development of Software products (Programs, documentation, configuration, etc) Software Engineering An engineering discipline: 1. Focus on cost-effective development of high-quality Sw systems 2. Concerned with all the aspects of software production • From: Specification • To: Delivery and use Gerardo Schneider 4

What Is Software Engineering? Engineering discipline • Engineers make things work • Apply theories,

What Is Software Engineering? Engineering discipline • Engineers make things work • Apply theories, methods, and tools • Even if no theory is well developed • Take organizational and economic constraints into account High-quality software • Maintainability, Dependability, Efficiency, Usability All aspects of software production • Not just concerned with technical aspects of Sw • But with all activities of Sw development (software process) Gerardo Schneider 5

Software Process Software specification • Customers and engineers define the software • Identification of

Software Process Software specification • Customers and engineers define the software • Identification of constraints, etc Software development • Design and programming Software validation • Checking that the Sw does what the customer wants Software evolution • Modification to adapt to market requirement Gerardo Schneider 6

Software Process Models The waterfall approach A software process model is a simplified description

Software Process Models The waterfall approach A software process model is a simplified description of a software process Evolutionary Development Many different models 2 examples. . . The waterfall approach Evolutionary development Gerardo Schneider 7

Why Software Engineering? Some History Software Engineering: Proposed in 1968 to handle the ”software

Why Software Engineering? Some History Software Engineering: Proposed in 1968 to handle the ”software crisis” • Due to: • Introduction of integrated circuits • Very complex software • Many projects were late • Need to develop reliable software • Informal Sofware development not good • Message: New techniques and methods needed Gerardo Schneider 8

Why Software Engineering Now? Archaic use of software process (models) • More than 40%

Why Software Engineering Now? Archaic use of software process (models) • More than 40% of companies use the waterfall process model (IEEE Software survey, 2003) • Shown to have problems (more than 20 years ago) Software is much more complex • Distributed and critical sytems • Something wrong: huge economic and social impact Testing still the dominant validation technique • Need for other validation techniques Gerardo Schneider 9

Software Engineering Computer Science Practical problems of producing software Theories and methods Ideally, should

Software Engineering Computer Science Practical problems of producing software Theories and methods Ideally, should be based on CS theories Ideally, should take inspiration from applications Usually uses ad hoc approaches to develop software Usually develop theories independent of applications Gerardo Schneider 10

Software Engineering System Engineering Practical problems of producing software All aspects of development and

Software Engineering System Engineering Practical problems of producing software All aspects of development and evolution of complex systems Ideally, should be based on CS theories Includes Hw and Sw policies, process design, management Usually uses ad hoc approaches to develop software It subsumes Software Engineering Gerardo Schneider 11

Challenges The heterogeneity challenge • Need to integrate new software with older legacy written

Challenges The heterogeneity challenge • Need to integrate new software with older legacy written in different programming languages Need to fill the gap The delivery challenge between the • Need to shorten delivery time for complex systems without State-of-the-Art compromising quality and the The trust challenge State-of-Practice • Need to develop techniques to enhance trust between (distributed) users Gerardo Schneider 12

Final Remarks A good basic education is needed Including more background from Computer Science

Final Remarks A good basic education is needed Including more background from Computer Science Feedback from industry is needed To match theory with practice Gerardo Schneider 13

Further Reading - - Ian Sommerville. Software Engineering, 8 th edition 2007 (Addison-Wesley) D.

Further Reading - - Ian Sommerville. Software Engineering, 8 th edition 2007 (Addison-Wesley) D. J. Reifer. Is the software engineering state of the practice getting closer to the state of the art? IEEE Software, Nov/Dec 2003 F. P. Brooks. No silver bullet: essence and accidents of software engineering. IEEE Computer, 20 (4), April 1987 F. P. Brooks. The mythical man-month, 2 nd edition 1995 (Addison-Wesley). Gerardo Schneider 14