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 +ebook
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 +ebook
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.
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
Call Number: 005.1 MCC + eBook
ISBN: 9780735619678
Publication Date: 2004
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.