A one-semester college course in software engineering focusing on cloud computing, software as a service (SaaS), and Agile development using Extreme Programming (XP). This book is neither a step-by-step tutorial nor a reference book. Instead, our goal is to bring a diverse set of software engineering topics together into a single narrative, help readers understand the most important ideas through concrete examples and a learn-by-doing approach, and teach readers enough about each topic to get them started in the field. Courseware for doing the work in the book is available as a virtual machine image that can be downloaded or deployed in the cloud. A free MOOC (massively open online course) at saas-class.org follows the book's content and adds programming assignments and quizzes. See http: //saasbook.info for details.
Author: Muhammad Ali Babar
Release Date: 2013-11-27
Agile software development approaches have had significant impact on industrial software development practices. Today, agile software development has penetrated to most IT companies across the globe, with an intention to increase quality, productivity, and profitability. Comprehensive knowledge is needed to understand the architectural challenges involved in adopting and using agile approaches and industrial practices to deal with the development of large, architecturally challenging systems in an agile way. Agile Software Architecture focuses on gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox. Readers will learn how agile and architectural cultures can co-exist and support each other according to the context. Moreover, this book will also provide useful leads for future research in architecture and agile to bridge such gaps by developing appropriate approaches that incorporate architecturally sound practices in agile methods. Presents a consolidated view of the state-of-art and state-of-practice as well as the newest research findings Identifies gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox Explains whether or not and how agile and architectural cultures can co-exist and support each other depending upon the context Provides useful leads for future research in both architecture and agile to bridge such gaps by developing appropriate approaches, which incorporate architecturally sound practices in agile methods
Author: Mike Holcombe
Publisher: John Wiley & Sons
Release Date: 2008-12-05
A Practical Approach To Building Small To Medium Software Systems For Real Business Clients Based on more than 100 actual commercial projects, this book clearly explains how to run an agile software development project that delivers high-quality, high-value solutions to business clients. It concentrates on the practical, social, business, and management aspects as well as the technical issues involved. Professor Holcombe successfully connects readers with the wave of "Agile 2.0" concepts that take the techniques of agile development and place them in the service of business goals. Since it is widely believed that the use of Windows XP will become much more common in coming years, readers should be armed with cutting-edge knowledge of the latest practices in the field. Further features of the book include: Case studies provide real-world examples and describe how XP was introduced into the environment Analysis is provided to help readers determine which elements of XP are suitable for the unique challenges and environments for different projects Problems of a failing agile project and how they can be fixed are covered, including insight into which managerial techniques can be employed An Instructor's Guide provides practical advice on how to motivate students, organize real group projects, and deal, in a simple and effective way, with many of the problems that arise A sample syllabus, sample tests, and additional case study information are available on an instructor's password-protected ftp site Running an Agile Software Development Project is an indispensable guide for professional software developers, engineers, and project managers interested in learning how to use agile processes. It is also a valuable textbook for advanced undergraduate- and graduate-level students in computer engineering and software engineering courses.
Author: Orit Hazzan
Publisher: Springer Science & Business Media
Release Date: 2009-02-28
Overview and Goals The agile approach for software development has been applied more and more extensively since the mid nineties of the 20th century. Though there are only about ten years of accumulated experience using the agile approach, it is currently conceived as one of the mainstream approaches for software development. This book presents a complete software engineering course from the agile angle. Our intention is to present the agile approach in a holistic and compreh- sive learning environment that fits both industry and academia and inspires the spirit of agile software development. Agile software engineering is reviewed in this book through the following three perspectives: l The Human perspective, which includes cognitive and social aspects, and refers to learning and interpersonal processes between teammates, customers, and management. l The Organizational perspective, which includes managerial and cultural aspects, and refers to software project management and control. l The Technological perspective, which includes practical and technical aspects, and refers to design, testing, and coding, as well as to integration, delivery, and maintenance of software products. Specifically, we explain and analyze how the explicit attention that agile software development gives these perspectives and their interconnections, helps viii Preface it cope with the challenges of software projects. This multifaceted perspective on software development processes is reflected in this book, among other ways, by the chapter titles, which specify dimensions of software development projects such as quality, time, abstraction, and management, rather than specific project stages, phases, or practices.
Today’s advancements in technology have brought about a new era of speed and simplicity for consumers and businesses. Due to these new benefits, the possibilities of universal connectivity, storage and computation are made tangible, thus leading the way to new Internet-of Things solutions. Resource Management and Efficiency in Cloud Computing Environments is an authoritative reference source for the latest scholarly research on the emerging trends of cloud computing and reveals the benefits cloud paths provide to consumers. Featuring coverage across a range of relevant perspectives and topics, such as big data, cloud security, and utility computing, this publication is an essential source for researchers, students and professionals seeking current research on the organization and productivity of cloud computing environments.
Applying methodologies of Software Process Improvement (SPI) is an effective way for businesses to remain competitive in the software industry. However, many organizations find implementing software process initiatives challenging. Agile Estimation Techniques and Innovative Approaches to Software Process Improvement reviews current SPI techniques and applications through discussions on current and future trends as well as the presentation of case studies on SPI implementation. Ideal for use by academics, students, and policy-makers, as well as industry professionals and managers, this publication provides a complete overview of current tools and methodologies regarding Software Process Improvement.
Author: Dean Leffingwell
Publisher: Addison-Wesley Professional
Release Date: 2010-12-27
“We need better approaches to understanding and managing software requirements, and Dean provides them in this book. He draws ideas from three very useful intellectual pools: classical management practices, Agile methods, and lean product development. By combining the strengths of these three approaches, he has produced something that works better than any one in isolation.” –From the Foreword by Don Reinertsen, President of Reinertsen & Associates; author of Managing the Design Factory; and leading expert on rapid product development Effective requirements discovery and analysis is a critical best practice for serious application development. Until now, however, requirements and Agile methods have rarely coexisted peacefully. For many enterprises considering Agile approaches, the absence of effective and scalable Agile requirements processes has been a showstopper for Agile adoption. In Agile Software Requirements, Dean Leffingwell shows exactly how to create effective requirements in Agile environments. Part I presents the “big picture” of Agile requirements in the enterprise, and describes an overall process model for Agile requirements at the project team, program, and portfolio levels Part II describes a simple and lightweight, yet comprehensive model that Agile project teams can use to manage requirements Part III shows how to develop Agile requirements for complex systems that require the cooperation of multiple teams Part IV guides enterprises in developing Agile requirements for ever-larger “systems of systems,” application suites, and product portfolios This book will help you leverage the benefits of Agile without sacrificing the value of effective requirements discovery and analysis. You’ll find proven solutions you can apply right now–whether you’re a software developer or tester, executive, project/program manager, architect, or team leader.
Author: Jason Bloomberg
Publisher: John Wiley & Sons
Release Date: 2013-01-23
Genre: Business & Economics
A sneak peek at up-and-coming trends in IT, a multidimensional vision for achieving business agility through agile architectures The Agile Architecture Revolution places IT trends into the context of Enterprise Architecture, reinventing Enterprise Architecture to support continuous business transformation. It focuses on the challenges of large organizations, while placing such organizations into the broader business ecosystem that includes small and midsize organizations as well as startups. Organizes the important trends that are facing technology in businesses and public sector organizations today and over the next several years Presents the five broad organizing principles called Supertrends: location independence, global cubicle, democratization of technology, deep interoperability, and complex systems engineering Provides a new perspective on service-oriented architecture in conjunction with architectural approaches to cloud computing and mobile technologies that explain how organizations can achieve better business visibility through IT and enterprise architecture Laying out a multidimensional vision for achieving agile architectures, this book discusses the crisis points that promise sudden, transformative change, unraveling how organizations' spending on IT will continue to undergo radical change over the next ten years.
Author: Murat Erder
Publisher: Morgan Kaufmann
Release Date: 2015-10-21
Continuous Architecture provides a broad architectural perspective for continuous delivery, and describes a new architectural approach that supports and enables it. As the pace of innovation and software releases increases, IT departments are tasked to deliver value quickly and inexpensively to their business partners. With a focus on getting software into end-users hands faster, the ultimate goal of daily software updates is in sight to allow teams to ensure that they can release every change to the system simply and efficiently. This book presents an architectural approach to support modern application delivery methods and provide a broader architectural perspective, taking architectural concerns into account when deploying agile or continuous delivery approaches. The authors explain how to solve the challenges of implementing continuous delivery at the project and enterprise level, and the impact on IT processes including application testing, software deployment and software architecture. Covering the application of enterprise and software architecture concepts to the Agile and Continuous Delivery models Explains how to create an architecture that can evolve with applications Incorporates techniques including refactoring, architectural analysis, testing, and feedback-driven development Provides insight into incorporating modern software development when structuring teams and organizations
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.
Author: Zaigham Mahmood
Publisher: Springer Science & Business Media
Release Date: 2013-04-19
This book presents the latest research on Software Engineering Frameworks for the Cloud Computing Paradigm, drawn from an international selection of researchers and practitioners. The book offers both a discussion of relevant software engineering approaches and practical guidance on enterprise-wide software deployment in the cloud environment, together with real-world case studies. Features: presents the state of the art in software engineering approaches for developing cloud-suitable applications; discusses the impact of the cloud computing paradigm on software engineering; offers guidance and best practices for students and practitioners; examines the stages of the software development lifecycle, with a focus on the requirements engineering and testing of cloud-based applications; reviews the efficiency and performance of cloud-based applications; explores feature-driven and cloud-aided software design; provides relevant theoretical frameworks, practical approaches and future research directions.
Author: Management Association, Information Resources
Publisher: IGI Global
Release Date: 2013-07-31
Innovative tools and techniques for the development and design of software systems are essential to the problem solving and planning of software solutions. Software Design and Development: Concepts, Methodologies, Tools, and Applications brings together the best practices of theory and implementation in the development of software systems. This reference source is essential for researchers, engineers, practitioners, and scholars seeking the latest knowledge on the techniques, applications, and methodologies for the design and development of software systems.
This authoritative text/reference describes the state of the art in requirements engineering for software systems for distributed computing. A particular focus is placed on integrated solutions, which take into account the requirements of scalability, flexibility, sustainability and operability for distributed environments. Topics and features: discusses the latest developments, tools, technologies and trends in software requirements engineering; reviews the relevant theoretical frameworks, practical approaches and methodologies for service requirements; examines the three key components of the requirements engineering process, namely requirements elicitation, requirements specification, and requirements validation and evaluation; presents detailed contributions from an international selection of highly reputed experts in the field; offers guidance on best practices, and suggests directions for further research in the area.
Author: Rosado, David G.
Publisher: IGI Global
Release Date: 2012-09-30
"This book provides a theoretical and academic description of Cloud security issues, methods, tools and trends for developing secure software for Cloud services and applications"--Provided by publisher.
Author: Ken Schwaber
Publisher: Microsoft Press
Release Date: 2004-02-11
The rules and practices for Scrum—a simple process for managing complex projects—are few, straightforward, and easy to learn. But Scrum’s simplicity itself—its lack of prescription—can be disarming, and new practitioners often find themselves reverting to old project management habits and tools and yielding lesser results. In this illuminating series of case studies, Scrum co-creator and evangelist Ken Schwaber identifies the real-world lessons—the successes and failures—culled from his years of experience coaching companies in agile project management. Through them, you’ll understand how to use Scrum to solve complex problems and drive better results—delivering more valuable software faster. Gain the foundation in Scrum theory—and practice—you need to: Rein in even the most complex, unwieldy projects Effectively manage unknown or changing product requirements Simplify the chain of command with self-managing development teams Receive clearer specifications—and feedback—from customers Greatly reduce project planning time and required tools Build—and release—products in 30-day cycles so clients get deliverables earlier Avoid missteps by regularly inspecting, reporting on, and fine-tuning projects Support multiple teams working on a large-scale project from many geographic locations Maximize return on investment!