Software Engineering presents a broad perspective on software systems engineering, concentrating on widely used techniques for developing large-scale systems. The objectives of this seventh edition are to include new material on iterative software development, component-based software engineering and system architectures, to emphasize that system dependability is not an add-on but should be considered at all stages of the software process, and not to increase the size of the book significantly. To this end the book has been restructured into 6 parts, removing the separate section on evolution as the distinction between development and evolution can be seen as artificial. New chapters have been added on: Socio-technical Systems ? discussing the context of software in a broader system composed of other hardware and software, people, organisations, policies, procedures and laws. Application System Architectures ? to teach students the general structure of application systems such as transaction systems, information systems and embedded control systems. The chapter covers 6 common system architectures with an architectural overview and discussion of the characteristics of these types of system. Iterative Software Development ? looking at prototyping and adding new material on agile methods and extreme programming. Component-based Software Engineering ? introducing the notion of a component, component composition and component frameworks and covering design with reuse. Software Evolution ? revising the presentation of the 6th edition to cover re-engineering and software change in a single chapter. The book supports students taking undergraduate or graduate courses in software engineering, and software engineers in industry needing to update their knowledge.
33 other sections not shown
activities agile methods analysis application approach assessment client client-server COCOMO complete components configuration management constraints CORBA costs critical systems database defined delivered dependability design process detail detect devel development process diagram distributed domain environment errors estimate example extreme programming faults formal specification functionality hardware identified implementation increments input insulin insulin pump integrated interactions involved legacy system LIBSYS ments methods metrics non-functional requirements object architecture object classes object-oriented operation organisation problems process model programming language prototype Rational Unified Process real-time systems reliability request requirements document requirements engineering reuse risk safety schedule sensors sequence server shown in Figure software development software engineering software process software product software system stakeholders standards structure sub-systems system development system failure system models system requirements techniques testing tion understand user interface user requirements validation waterfall model