skip to main content
Skip header Section
Software EngineeringApril 2015
Publisher:
  • Pearson
ISBN:978-0-13-394303-0
Published:03 April 2015
Pages:
816
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

For courses in computer science and software engineering The Fundamental Practice of Software Engineering Software Engineering introduces readers to the overwhelmingly important subject of software programming and development. In the past few years, computer systems have come to dominate not just our technological growth, but the foundations of our worlds major industries. This text seeks to lay out the fundamental concepts of this huge and continually growing subject area in a clear and comprehensive manner. The Tenth Edition contains new information that highlights various technological updates of recent years, providing readers with highly relevant and current information. Sommervilles experience in system dependability and systems engineering guides the text through a traditional plan-based approach that incorporates some novel agile methods. The text strives to teach the innovators of tomorrow how to create software that will make our world a better, safer, and more advanced place to live.

Cited By

  1. ACM
    Kirova V, Ku C, Laracy J and Marlowe T Software Engineering Education Must Adapt and Evolve for an LLM Environment Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1, (666-672)
  2. ACM
    Tan I and Poskitt C Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When Teaching Code Refactoring Proceedings of the 55th ACM Technical Symposium on Computer Science Education V. 1, (1307-1313)
  3. Telea A, Machado A and Wang Y (2024). Seeing is Learning in High Dimensions: The Synergy Between Dimensionality Reduction and Machine Learning, SN Computer Science, 5:3, Online publication date: 21-Feb-2024.
  4. Ruiz M, Hu J and Dalpiaz F (2023). Why don’t we trace? A study on the barriers to software traceability in practice, Requirements Engineering, 28:4, (619-637), Online publication date: 1-Dec-2023.
  5. ACM
    Varajão J, Trigo A and Almeida M (2023). Low-code Development Productivity, Queue, 21:5, (87-107), Online publication date: 31-Oct-2023.
  6. Chong C, Kang E and Shaw M Open Design Case Study - A Crowdsourcing Effort to Curate Software Design Case Studies Proceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training, (23-28)
  7. ACM
    Bhat A, Coursey A, Hu G, Li S, Nahar N, Zhou S, Kästner C and Guo J Aspirations and Practice of ML Model Documentation: Moving the Needle with Nudging and Traceability Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, (1-17)
  8. Elzen S, Andrienko G, Andrienko N, Fisher B, Martins R, Peltonen J, Telea A, Verleysen M and Rhyne T (2023). The Flow of Trust: A Visualization Framework to Externalize, Explore, and Explain Trust in ML Applications, IEEE Computer Graphics and Applications, 43:2, (78-88), Online publication date: 1-Mar-2023.
  9. Moroz B, Saltan A and Hyrynsalmi S A Process Model of Product Strategy Development: A Case of a B2B SaaS Product Product-Focused Software Process Improvement, (181-200)
  10. ACM
    Bolloju N Software Engineering Course Restructured to Support Agile Software Development Projects Proceedings of the 15th Annual ACM India Compute Conference, (17-22)
  11. ACM
    Synovic N, Hyatt M, Sethi R, Thota S, Shilpika , Miller A, Jiang W, Amobi E, Pinderski A, Läufer K, Hayward N, Klingensmith N, Davis J and Thiruvathukal G Snapshot Metrics Are Not Enough: Analyzing Software Repositories with Longitudinal Metrics Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, (1-4)
  12. Wiesmayr B, Zoitl A, Prenzel L and Steinhorst S Supporting a Model-driven Development Process for Distributed Control Software 2022 IEEE 27th International Conference on Emerging Technologies and Factory Automation (ETFA), (1-8)
  13. Springer O and Miler J (2022). A comprehensive overview of software product management challenges, Empirical Software Engineering, 27:5, Online publication date: 1-Sep-2022.
  14. ACM
    Müller I, Hussain W and Grundy J So who is impacted anyway Proceedings of the 15th International Conference on Cooperative and Human Aspects of Software Engineering, (36-40)
  15. ACM
    Raglianti M Topology of the documentation landscape Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings, (297-299)
  16. ACM
    Shishkov B, Branzov T, Ivanova K and Verbraeck A Using Drones for Resilience: A System of Systems Perspective 10th International Conference on Telecommunications and Remote Sensing, (19-25)
  17. ACM
    Pan Y (2021). Reflexivity of Account, Professional Vision, and Computer-Supported Cooperative Work: Working in the Maritime Domain, Proceedings of the ACM on Human-Computer Interaction, 5:CSCW2, (1-32), Online publication date: 13-Oct-2021.
  18. ACM
    Günay C and Doloc-Mihu A An Open Educational Resource for an Agile Software Engineering Course Proceedings of the 22nd Annual Conference on Information Technology Education, (51-52)
  19. ACM
    Lomio F, Jurvansuu S and Taibi D Metrics selection for load monitoring of service-oriented system Proceedings of the 5th International Workshop on Machine Learning Techniques for Software Quality Evolution, (31-36)
  20. ACM
    Xexéo G, Mangeli E, Silva F, Ouriques L, Costa L and Monclar R Games as Information Systems Proceedings of the XVII Brazilian Symposium on Information Systems, (1-8)
  21. ACM
    Mishra S and Sharma A Crawling Wikipedia Pages to Train Word Embeddings Model for Software Engineering Domain Proceedings of the 14th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference), (1-5)
  22. ACM
    Ferdinansyah A and Purwandari B Challenges in Combining Agile Development and CMMI: A Systematic Literature Review Proceedings of the 2021 10th International Conference on Software and Computer Applications, (63-69)
  23. ACM
    Gunawan F and K. Budiardjo E  A Quest of Software Process Improvements in DevOps and Kanban: Proceedings of the 2021 4th International Conference on Software Engineering and Information Management, (39-45)
  24. Zhou Z, Zhi Q and Morisaki S (2021). A Composite Safety Assurance Method for Developing System Architecture Using Model Checking, International Journal of Systems and Software Security and Protection, 12:1, (78-93), Online publication date: 1-Jan-2021.
  25. ACM
    Haris M and Kurniawan T Automated requirement sentences extraction from software requirement specification document Proceedings of the 5th International Conference on Sustainable Information Engineering and Technology, (142-147)
  26. Li Z, Wan H, Deng Y, Zhao X, Gao Y, Song X and Gu M (2020). Model-Based Adaptation of Mixed-Criticality Multiservice Systems for Extreme Physical Environments, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 39:7, (1386-1399), Online publication date: 1-Jul-2020.
  27. Webber T, Santana J, Vermeulen A and Bowles J Designing a Patient-Centric System for Secure Exchanges of Medical Data Computational Science and Its Applications – ICCSA 2020, (598-614)
  28. Banach R, Razavi J, Debicki O and Lesecq S Formal Modelling and Verification as Rigorous Review Technology: An Inspiration from INSPEX Formal Methods. FM 2019 International Workshops, (77-91)
  29. ACM
    Sousa B, Bigonha M and Ferreira K Analysis of Coupling Evolution on Open Source Systems Proceedings of the XIII Brazilian Symposium on Software Components, Architectures, and Reuse, (23-32)
  30. Meixner K, Winkler D and Biffl S Supporting Domain Experts by using Model-Based Equivalence Class Partitioning for Efficient Test Data Generation 2019 24th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), (134-141)
  31. ACM
    Rodriguez G, Pérez J and Benavides D Accessibility Variability Model Proceedings of the 23rd International Systems and Software Product Line Conference - Volume B, (114-121)
  32. Al-Rousan T and Abualese H (2019). Simplifying the Structural Complexity of Software Systems, Cybernetics and Information Technologies, 19:3, (57-73), Online publication date: 1-Sep-2019.
  33. ACM
    Rindell K, Bernsmed K and Jaatun M Managing Security in Software Proceedings of the 14th International Conference on Availability, Reliability and Security, (1-8)
  34. Saleme E, Santos C and Ghinea G (2019). A mulsemedia framework for delivering sensory effects to heterogeneous systems, Multimedia Systems, 25:4, (421-447), Online publication date: 1-Aug-2019.
  35. ACM
    Larsén S and Glassey R RepoBee Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, (534-540)
  36. ACM
    Peláez C, Granollers T, Solano A and Castillo P Product Design and Development Methodologies vs. Multimedia Systems Development Methodologies Proceedings of the XX International Conference on Human Computer Interaction, (1-7)
  37. ACM
    Glassey R Adopting Git/Github within Teaching Proceedings of the ACM Conference on Global Computing Education, (143-149)
  38. ACM
    Tianual P and Pohthong A Defects Detection Technique of Use Case Views during Requirements Engineering Proceedings of the 2019 8th International Conference on Software and Computer Applications, (277-281)
  39. Brant-Ribeiro T, Araújo R, Mendonça I, Soares M and Cattelan R (2019). Interactive web interfaces modeling, simulation and analysis using Colored Petri Nets, Software and Systems Modeling (SoSyM), 18:1, (721-737), Online publication date: 1-Feb-2019.
  40. ACM
    Hestomo C, Budiardjo E and Ferdinansyah A Quality Function Deployment Analysis in Selecting Software Development Methodology Proceedings of the 2nd International Conference on Software Engineering and Information Management, (63-68)
  41. ACM
    Grimm C, Smart W and Hartzog W An Education Model of Reasonable and Good-Faith Effort for Autonomous Systems Proceedings of the 2018 AAAI/ACM Conference on AI, Ethics, and Society, (117-121)
  42. Guidini Gonçalves T, Marçal de Oliveira K and Kolski C (2018). HCI in practice, Journal of Software: Evolution and Process, 30:11, Online publication date: 14-Nov-2018.
  43. ACM
    Hebig R, Seidl C, Berger T, Pedersen J and Wąsowski A Model transformation languages under a magnifying glass: a controlled experiment with Xtend, ATL, and QVT Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (445-455)
  44. ACM
    Pawełoszek I and Korczak J Merging of Ontologies - Conceptual Design Issues Proceedings of the 2018 10th International Conference on Information Management and Engineering, (59-63)
  45. ACM
    Odeh Y Deriving a Goal-based Use Case Model from Business Goals and Process Model Proceedings of the 2018 10th International Conference on Information Management and Engineering, (16-20)
  46. ACM
    Santos A, Souza M, Oliveira J and Figueiredo E Mining Software Repositories to Identify Library Experts Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse, (83-91)
  47. ACM
    de Kinderen S and Ma Q Towards purposeful enterprise modeling for enterprise analysis Proceedings of the 1st International Conference on Information Management and Management Science, (163-167)
  48. ACM
    Braught G, Maccormick J, Bowring J, Burke Q, Cutler B, Goldschmidt D, Krishnamoorthy M, Turner W, Huss-Lederman S, Mackellar B and Tucker A (2018). A Multi-Institutional Perspective on H/FOSS Projects in the Computing Curriculum, ACM Transactions on Computing Education, 18:2, (1-31), Online publication date: 14-Jul-2018.
  49. Ki-Aries D, Faily S, Dogan H and Williams C System of Systems Characterisation assisting Security Risk Assessment 2018 13th Annual Conference on System of Systems Engineering (SoSE), (485-492)
  50. ACM
    Moise G, Moise P and Moise P Towards holons-based architecture for medical systems Proceedings of the International Workshop on Software Engineering in Healthcare Systems, (26-29)
  51. ACM
    Gutierrez F, Simmonds J, Hitschfeld N, Casanova C, Sotomayor C and Peña-Araya V Assessing software development skills among K-6 learners in a project-based workshop with scratch Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training, (98-107)
  52. ACM
    Gasparic M, Gurbanov T and Ricci F Improving integrated development environment commands knowledge with recommender systems Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training, (88-97)
  53. Silveira F, Russo R, Júnior I and Sbragia R (2018). Systematic Review of Risks in Domestic and Global IT Projects, Journal of Global Information Management, 26:1, (20-40), Online publication date: 1-Jan-2018.
  54. Barros D, Begosso L, Fabri J and L'Erario A The use of comic strips in the teaching of software engineering 2017 IEEE Frontiers in Education Conference (FIE), (1-8)
  55. ACM
    Odeh Y BPMN in Engineering Software Requirements Proceedings of the 9th International Conference on Information Management and Engineering, (11-16)
  56. Gonzlez-Esquiva J, Oates M, Garca-Mateos G, Moros-Valle B, Molina-Martnez J and Ruiz-Canales A (2017). Development of a visual monitoring system for water balance estimation of horticultural crops using low cost cameras, Computers and Electronics in Agriculture, 141:C, (15-26), Online publication date: 1-Sep-2017.
  57. Pham V, Liu X, Zheng X, Fu M, Deshpande S, Xia W, Zhou R and Abdelrazek M PaaS - black or white Proceedings of the 39th International Conference on Software Engineering Companion, (285-287)
  58. Zhang W, Liu X and Yang Y Let smart ants help you reduce the delay penalty of multiple software projects Proceedings of the 39th International Conference on Software Engineering Companion, (271-273)
  59. Oudshoorn M (2017). Pathways to software engineering courses, Journal of Computing Sciences in Colleges, 32:5, (76-87), Online publication date: 1-May-2017.
  60. Ryan M and Wheatcraft L (2017). On a Cohesive Set of Requirements Engineering Terms, Systems Engineering, 20:2, (118-130), Online publication date: 1-Mar-2017.
  61. Navarro A and da Silva A (2016). A metamodel-based definition of a conversion mechanism between SOAP and RESTful web services, Computer Standards & Interfaces, 48:C, (49-70), Online publication date: 1-Nov-2016.
  62. ACM
    Alcover E, Jaume-i-Capó A and Moyà-Alcover B A Process Framework for Serious Games Development for Motor Rehabilitation Therapy Proceedings of the XVII International Conference on Human Computer Interaction, (1-2)
  63. ACM
    Greene G and Fischer B CVExplorer: identifying candidate developers by mining and exploring their open source contributions Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (804-809)
  64. ACM
    Honig W, Noda N and Takada S (2016). Lack of Attention to Singular (or Atomic) Requirements Despite Benefits for Quality, Metrics and Management, ACM SIGSOFT Software Engineering Notes, 41:4, (1-5), Online publication date: 19-Aug-2016.
  65. ACM
    Ciancarini P, Russo D, Sillitti A and Succi G Reverse engineering Proceedings of the 31st Annual ACM Symposium on Applied Computing, (1498-1503)
  66. ACM
    Pereira R, Baranauskas M and Liu K The value of values for HCI Proceedings of the 14th Brazilian Symposium on Human Factors in Computing Systems, (1-10)
Contributors
  • University of St Andrews

Recommendations

Reviews

Naga R Narayanaswamy

Software engineering is a vast field with many techniques to accomplish various tasks. It encompasses topics from requirements to maintenance. This book tries to look at all of the processes, forming a common theme where possible and exposing readers to all aspects of software engineering such as requirements, design, implementation, testing, and maintenance. This ubiquitous book is geared toward students and working professionals, and includes an addendum with PowerPoint files and videos on the associated website. The book is divided into four parts. Using case studies, it covers various introductory material, system dependability and security, advanced concepts, and management aspects. In Part 1, software engineering processes are explored in great detail. Agile software development has been in vogue for the past several years, and concepts such as sprint, scrums, and user stories are explained. The modeling is elucidated with many diagrams, message flows, and lots of examples. Topics such as requirements, architectural designs, design, implementation, software verification, and validation are explained for readers to gain a thorough understanding of them. Part 2 includes reliability, security, and resilience engineering. Cybersecurity gets excellent coverage because it is a growing area. The first edition from 15 years ago did not even cover the topic, but its current importance cannot be downplayed. The current edition covers cybersecurity extensively, following the trend in software engineering. Part 3 covers reuse, distributed software engineering, and RESTful services. Representational state transfer (REST) is another model for multiple systems to interface with each other that is currently very popular. The last section explores software management concepts such as project management, planning, quality, and configuration management. Software quality management and risk assessment and planning, which are critical to software project success, are covered extensively. Key points are highlighted, as are exercises and open discussions. In my opinion, this book is a must read for software managers. Although coverage includes practically all areas of software development and testing, I would have liked more emphasis on agile programming, as the book still leans toward waterfall development. Also, the book lacks a focus on tools that make various software engineering tasks easier. Granted, the tools keep changing and information about them may quickly become outdated, but a section on current tools would help professionals make informed decisions. Overall, the book covers a lot of ground and is very thorough. More reviews about this item: Amazon Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.