Concise guide to software engineering
Subtitle: from fundamentals to application methods
By: Gerard O'Regan
Series: Undergraduate topics in computer science; Undergraduate topics in computer science
Publisher: Springer
Published: 2017
Language: eng
Number of pages: 331
ISBN-13: 9783319577494
Subjects: Software engineering
Description: This essential textbook presents a concise introduction to the fundamental principles of software engineering, together with practical guidance on how to apply the theory in a real-world, industrial environment. The wide-ranging coverage encompasses all areas of software design, management, and quality. Topics and features: Presents a broad overview of software engineering, including software lifecycles and phases in software development, and project management for software engineering Examines the areas of requirements engineering, software configuration management, software inspections, software testing, software quality assurance, and process quality Covers topics on software metrics and problem solving, software reliability and dependability, and software design and development, including Agile approaches Explains formal methods, a set of mathematical techniques to specify and derive a program from its specification, introducing the Z specification language Discusses software process improvement, describing the CMMI model, and introduces UML, a visual modelling language for software systems Reviews a range of tools to support various activities in software engineering, and offers advice on the selection and management of a software supplier Describes such innovations in the field of software as distributed systems, service-oriented architecture, software as a service, cloud computing, and embedded systems Includes key learning topics, summaries and review questions in each chapter, together with a useful glossary This practical and easy-to-follow textbook/reference is ideal for computer science students seeking to learn how to build high quality and reliable software on time and on budget. The text also serves as a self-study primer for software engineers, quality professionals, and software managers.
Notes: Includes bibliographical references and index.
Table of contents: title: Background : What is software engineering? ; Challenges in software engineering ; Software processes and lifecycles ; Activities in waterfall lifecycle ; Software inspections ; Software project management ; CMMI maturity model ; Formal methods; title: Software project management : Project start-up and initiation ; Estimation ; Project planning and scheduling ; Risk management ; Quality management in projects ; Project monitoring and control ; Managing issues and change requests ; Project board and governance ; Project reporting ; Project closure ; Prince 2 methodology; title: Requirements engineering : Requirements process ; System modelling; title: Software design and development : Architecture design ; Detailed design and development ; Software maintenance and evolution; title: Configuration management : Configuration management system ; Change control ; Configuration management audits; title: Software inspections : Economic benefits of software inspections ; Informal reviews ; Structured walk-through ; Semi-formal review meeting ; Fagan inspections ; Automated software inspections; title: Software testing : Test process ; Test planning ; Test case design and definition ; Test execution ; Test reporting and project sign-off ; Testing and quality improvements ; Traceability of requirements ; Test tools ; e-commerce testing; title: Supplier selection and management : Planning and requirements ; Identifying suppliers ; Prepare and issue RFP ; Evaluate proposals and select  supplier ; Formal agreement ; Managing the supplier ; Acceptance of software ; Roll-out and customer support; title: Software quality assurance : Audit planning ; Audit meeting ; Audit reporting ; Follow-up activity ; Audit escalation ; Review of audit activities ; Other audits; title: Software metrics and problem solving : The goal, question, metric paradigm ; The balanced scorecard ; Metrics for an organization ; Implementing a metrics programme ; Problem-solving techniques; title: Software reliability and dependability : Software reliability ; Dependability ; Computer security ; System availability ; Safety critical systems; title: Formal methods : Why should we use formal methods? ; Applications of formal methods ; Tools for formal methods ; Approaches to formal methods ; Proof and formal methods ; The future of formal methods ; The Vienna Development Method ; VDM, the Irish school of VDM ; The Z specification language ; The B-method ; Predicate transformers and weakest preconditions ; The process calculii ; Finite state machines ; The Parnas way ; Usability of formal methods; title: Z formal specification language : Sets ; Relations ; Functions ; Sequences ; Bags ; Schemas and schema composition ; Reification and decomposition ; Proof in Z; title: Unified modeling language : Overview of UML ; UML diagrams ; Object constraint language ; Tools for UML : Rational unified process; title: Software process improvement : What is a software process? ; What is software process improvement? ; Benefits of software process improvement ; Software process improvement models ; Process mapping ; Process improvement initiatives ; Barriers to success ; Setting up an improvement initiative ; Appraisals; title: Capability maturity model integration : The CMMI ; CMMI maturity levels ; Categories of CMMI processes ; CMMI process areas ; Components of CMMI process areas ; SCAMPI appraisals; title: Software engineering tools : Tools for project management ; Tools for requirements ; Tools for design and development ; Tools for configuration management and change control ; Tools for code analysis and code inspections ; Tools for testing; title: Agile methodology : Scrum methodology ; User stories ; Estimation in agile ; Test-driven development ; Pair programming; title: A miscellany of innovation : Distributed systems ; Service-oriented architecture ; Software as a service ; Cloud computing ; Embedded systems ; Software engineering and innovation; title: Epilogue : The future of software engineering.