Welcome to your Software Design, Development and Engineering reading list. Here you will find resources selected by your course team to support you throughout this module.
Essential Reading
Security Engineering by Anderson, R.J.The world has changed radically since the first edition of thisbook was published in 2001. Spammers, virus writers, phishermen,money launderers, and spies now trade busily with each other in alively online criminal economy and as they specialize, they getbetter. In this indispensable, fully updated guide, Ross Andersonreveals how to build systems that stay dependable whether facedwith error or malice. Here's straight talk on critical topics suchas technical engineering basics, types of attack, specializedprotection mechanisms, security psychology, policy, and more.
Call Number: 005.8 AND + eBook
ISBN: 9780470068526
Publication Date: 2008
Writing Effective Use Cases by Cockburn, AUse cases have never been this easy to understand -- or this easy to create! In Writing Effective Use Cases, Alistair Cockburn offers a hands-on, soup-to-nuts guide to use case development, based on the proven concepts he has refined through years of research, development, and seminar presentations. Cockburn begins by answering the most basic questions facing anyone interested in use cases: "What does a use case look like? When do I write one?" Next, he introduces each key element of use cases: actors, stakeholders, design scope, goal levels, scenarios, and more. Writing Effective Use Cases contains detailed guidelines, formats, and project standards for creating use cases -- as well as a detailed chapter on style, containing specific do's and don'ts. Cockburn shows how use cases fit together with requirements gathering, business processing reengineering, and other key issues facing software professionals. The book includes practice exercises with solutions, as well as a detailed appendix on how to use these techniques with UML. For all application developers, object technology practitioners, software system designers, architects, and analysts.
Call Number: 005.3 COV
ISBN: 9780201702255
Publication Date: 2000
Waltzing with Bears by Demarco, T.The authors, consultants in risk and management, show how to identify and embrace worthwhile risks in software development and offer strategies for common risks that software projects face, such as schedule flaws, requirements inflation, and specification breakdown. Annotation (c) Book News, Inc., P
Call Number: 005.1068 DEM
ISBN: 9780932633606
Publication Date: 2003
Peopleware by DeMarco, T.; Lister, T.; House, D.In this classic book, the authors demonstrate the major human - not technical - issues of software development and give challenging, but successful answers to the questions of software managers and developers. For this edition, the authors have added six new chapters and updated the text throughout, bringing it in line with today's development environments and challenges. The book now discusses pathologies of leadership that hadn't previously been judged to be pathological; an evolving culture of meetings; hybrid teams made up of people from seemingly incompatible generations; and a growing awareness that some of our most common tools are more like anchors than propellers. Anyone who needs to manage a software project or software organisation will find invaluable advice throughout the book.
Call Number: 658.4022 DEM
ISBN: 9780321934116
Publication Date: 2013
The Pragmatic Programmer by Hunt, A."One of the most significant books in my life." --Obie Fernandez, Author, The Rails Way "Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours." --Mike Cohn, Author of Succeeding with Agile , Agile Estimating and Planning , and User Stories Applied ". . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come." --Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks ". . . lightning does strike twice, and this book is proof." --VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks The Pragmatic Programmer is one of those rare tech books you'll read, re-read, and read again over the years. Whether you're new to the field or an experienced practitioner, you'll come away with fresh insights each and every time. Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories. Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to: Fight software rot Learn continuously Avoid the trap of duplicating knowledge Write flexible, dynamic, and adaptable code Harness the power of basic tools Avoid programming by coincidence Learn real requirements Solve the underlying problems of concurrent code Guard against security vulnerabilities Build teams of Pragmatic Programmers Take responsibility for your work and career Test ruthlessly and effectively, including property-based testing Implement the Pragmatic Starter Kit Delight your users Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Call Number: 005.1 THO
ISBN: 9780135957059
Publication Date: 2019
Software Estimation by McConnell. SOften referred to as the "black art" because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward--once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation--distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency. Discover how to: Estimate schedule and cost--or estimate the functionality that can be delivered within a given time frame Avoid common software estimation mistakes Learn estimation techniques for you, your team, and your organization * Estimate specific project activities--including development, management, and defect correction Apply estimation approaches to any type of project--small or large, agile or traditional Navigate the shark-infested political waters that surround project estimates When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
Call Number: 005.1 MCC + eBook
ISBN: 9780735605350
Publication Date: 2006
Software Engineering: a Practitioner's Approach by Pressman, R.For almost four decades, Software Engineering: A Practitioner's Approach (SEPA) has been the world's leading textbook in software engineering. The ninth edition represents a major restructuring and update of previous editions, solidifying the book's position as the most comprehensive guide to this important subject.
Call Number: 005.1 PRE
ISBN: 9781260423310
Publication Date: 2019
Software Engineering by Somerville, I.The Fundamental Practice of Software Engineering
Software Engineering introduces students 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 world's 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 10th Edition contains new information that highlights various technological updates of recent years, providing students with highly relevant and current information. Sommerville's 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.
Call Number: 005.1 SOM + eBook
ISBN: 9781292096131
Publication Date: 2015
Software Requirements by Wiegers, K.Now in its third edition, this classic guide to software requirements engineering has been fully updated with new topics, examples, and guidance. Two leaders in the requirements community have teamed up to deliver a contemporary set of practices covering the full range of requirements development and management activities on software projects. Describes practical, effective, field-tested techniques for managing the requirements engineering process from end to end. Provides examples demonstrating how requirements "good practices" can lead to fewer change requests, higher customer satisfaction, and lower development costs. Fully updated with contemporary examples and many new practices and techniques. Describes how to apply effective requirements practices to agile projects and numerous other special project situations. Targeted to business analysts, developers, project managers, and other software project stakeholders who have a general understanding of the software development process. Shares the insights gleaned from the authors' extensive experience delivering hundreds of software-requirements training courses, presentations, and webinars. New chapters are included on specifying data requirements, writing high-quality functional requirements, and requirements reuse. Considerable depth has been added on business requirements, elicitation techniques, and nonfunctional requirements. In addition, new chapters recommend effective requirements practices for various special project situations, including enhancement and replacement, packaged solutions, outsourced, business process automation, analytics and reporting, and embedded and other real-time systems projects.
UML 2 and the Unified Process by Arlow, J.; Neustadt, I."This book manages to convey the practical use of UML 2 in clear and understandable terms with many examples and guidelines. Even for people not working with the Unified Process, the book is still of great use. UML 2 and the Unified Process, Second Edition is a must-read for every UML 2 beginner and a helpful guide and reference for the experienced practitioner." --Roland Leibundgut, Technical Director, Zuehlke Engineering Ltd. "This book is a good starting point for organizations and individuals who are adopting UP and need to understand how to provide visualization of the different aspects needed to satisfy it. " --Eric Naiburg, Market Manager, Desktop Products, IBM Rational Software This thoroughly revised edition provides an indispensable and practical guide to the complex process of object-oriented analysis and design using UML 2. It describes how the process of OO analysis and design fits into the software development lifecycle as defined by the Unified Process (UP). UML 2 and the Unified Process contains a wealth of practical, powerful, and useful techniques that you can apply immediately. As you progress through the text, you will learn OO analysis and design techniques, UML syntax and semantics, and the relevant aspects of the UP. The book provides you with an accurate and succinct summary of both UML and UP from the point of view of the OO analyst and designer. This book provides Chapter roadmaps, detailed diagrams, and margin notes allowing you to focus on your needs Outline summaries for each chapter, making it ideal for revision, and a comprehensive index that can be used as a reference New to this edition: Completely revised and updated for UML 2 syntax Easy to understand explanations of the new UML 2 semantics More real-world examples A new section on the Object Constraint Language (OCL) Introductory material on the OMG's Model Driven Architecture (MDA) The accompanying website provides A complete example of a simple e-commerce system Open source tools for requirements engineering and use case modeling Industrial-strength UML course materials based on the book
Call Number: 005.11 ARL
ISBN: 9780321321275
Publication Date: 2005
Unified Modeling Language User Guid by Booch,G.For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. As the de facto standard modeling language, the UML facilitates communication and reduces confusion among project stakeholders. The recent standardization of UML 2.0 has further extended the language's scope and viability. Its inherent expressiveness allows users to model everything from enterprise information systems and distributed Web-based applications to real-time embedded systems. In this eagerly anticipated revision of the best-selling and definitive guide to the use of the UML, the creators of the language provide a tutorial to its core aspects in a two-color format designed to facilitate learning. Starting with an overview of the UML, the book explains the language gradually by introducing a few concepts and notations in each chapter. It also illustrates the application of the UML to complex modeling problems across a variety of application domains. The in-depth coverage and example-driven approach that made the first edition of The Unified Modeling Language User Guide an indispensable resource remain unchanged. However, content has been thoroughly updated to reflect changes to notation and usage required by UML 2.0. Highlights include: A new chapter on components and internal structure, including significant new capabilities for building encapsulated designs New details and updated coverage of provided and required interfaces, collaborations, and UML profiles Additions and changes to discussions of sequence diagrams, activity diagrams, and more Coverage of many other changes introduced by the UML 2.0 specification With this essential guide, you will quickly get up to speed on the latest features of the industry standard modeling language and be able to apply them to your next software project.
Call Number: 005.1 BOO
ISBN: 9780134852157
Publication Date: 2017
The Mythical Man-Month by Brooks, F.P.Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time. The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of lab∨ that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."
Call Number: 005.1 BRO
ISBN: 0201835959
Publication Date: 1995
Refactoring by Fowler, M."Whenever you read [Refactoring], it's time to read it again. And if you haven't read it yet, please do before writing another line of code." -David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp Fully Revised and Updated--Includes New Refactorings and Code Examples "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." -M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand. This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes. Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use. Understand the process and general principles of refactoring Quickly apply useful refactorings to make a program easier to comprehend and change Recognize "bad smells" in code that signal opportunities to refactor Explore the refactorings, each with explanations, motivation, mechanics, and simple examples Build solid tests for your refactorings Recognize tradeoffs and obstacles to refactoring Includes free access to the canonical web edition, with even more refactoring resources. (See inside the book for details about how to access the web edition.)
Call Number: 005.16 FOW
ISBN: 9780134757599
Publication Date: 2019
Growing Object-Oriented Software, Guided by Tests by Freeman, S.; Pryce, N.Foreword by Kent Beck "The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham "At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes * Implementing TDD effectively: getting started, and maintaining your momentum throughout the project * Creating cleaner, more expressive, more sustainable code * Using tests to stay relentlessly focused on sustaining quality * Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project * Using Mock Objects to guide object-oriented designs * Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
Call Number: 007.117 FRE
ISBN: 9780321503626,
Publication Date: 2009
Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.
Call Number: 005.12 GAM
ISBN: 9780201633610
Publication Date: 1994
Software Quality: Theory and management by Gillies, A.The development of high quality software is extremely important throughout the software industry. The second edition of this successful guide to the theory and management of software quality has been expanded to include more practical material.
Call Number: 005.10658 GIL
ISBN: 9781446753989
Publication Date: 2011
Code Complete by McConnell, S.Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor--or evolve--code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project
Mastering the Requirements Process by Robertson, S.; Robertson, J."If the purpose is to create one of the best books on requirements yet written, the authors have succeeded." --Capers Jones Software can solve almost any problem. The trick is knowing what the problem is. With about half of all software errors originating in the requirements activity, it is clear that a better understanding of the problem is needed. Getting the requirements right is crucial if we are to build systems that best meet our needs. We know, beyond doubt, that the right requirements produce an end result that is as innovative and beneficial as it can be, and that system development is both effective and efficient. Mastering the Requirements Process: Getting Requirements Right, Third Edition, sets out an industry-proven process for gathering and verifying requirements, regardless of whether you work in a traditional or agile development environment. In this sweeping update of the bestselling guide, the authors show how to discover precisely what the customer wants and needs, in the most efficient manner possible. Features include The Volere requirements process for discovering requirements, for use with both traditional and iterative environments A specification template that can be used as the basis for your own requirements specifications Formality guides that help you funnel your efforts into only the requirements work needed for your particular development environment and project How to make requirements testable using fit criteria Checklists to help identify stakeholders, users, non-functional requirements, and more Methods for reusing requirements and requirements patterns New features include Strategy guides for different environments, including outsourcing Strategies for gathering and implementing requirements for iterative releases "Thinking above the line" to find the real problem How to move from requirements to finding the right solution The Brown Cow model for clearer viewpoints of the system Using story cards as requirements Using the Volere Knowledge Model to help record and communicate requirements Fundamental truths about requirements and system development
Call Number: 005.10684 ROB
ISBN: 9780321815743
Publication Date: 2012
Agile Documentation by Rüping, A.Software documentation forms the basis for all communicationrelating to a software project. To be truly effective and usable,it should be based on what needs to be known. AgileDocumentation provides sound advice on how to produce lean andlightweight software documentation. It will be welcomed by allproject team members who want to cut out the fat from this timeconsuming task. Guidance given in pattern form, easily digested andcross-referenced, provides solutions to common problems. Straightforward advice will help you to judge: What details should be left in and what left out When communication face-to-face would be better than paper oronline How to adapt the documentation process to the requirements ofindividual projects and build in change How to organise documents and make them easily accessible When to use diagrams rather than text How to choose the right tools and techniques How documentation impacts the customer Better than offering pat answers or prescriptions, this bookwill help you to understand the elements and processes that can befound repeatedly in good project documentation and which can beshaped and designed to address your individual circumstance. Theauthor uses real-world examples and utilises agile principles toprovide an accessible, practical pattern-based guide which showshow to produce necessary and high quality documentation.
Call Number: 005.15 RUP + eBook
ISBN: 9780470856178
Publication Date: 2003
Software Requirements
Students will need access to specialized software for development, e.g. Eclipse IDE, which is not part of the standard package of software provided by the University of Suffolk. This software is available free of charge.