![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
Databases have become an integral part of modern life. Today's society is an information-driven society, and database technology has a direct impact on all aspects of daily life. Decisions are routinely made by organizations based on the information collected and stored in databases. Database management systems such as Oracle are crucial to apply data in industrial or commercial systems. Equally crucial is a graphical user interface (GUI) to enable users to access and manipulate data in databases. The Apache NetBeans IDE with Java is an ideal candidate for developing a GUI with programming functionality. Oracle Database Programming with Java: Ideas, Designs, and Implementations is written for college students and software programmers who want to develop practical and commercial database programming with Java and relational databases such as Oracle Database XE 18c. The book details practical considerations and applications of database programming with Java and is filled with authentic examples as well as detailed explanations. Advanced topics in Java Web, like Java Web Applications and Java Web Services, are covered in real project examples to show how to handle the database programming issues in the Apache NetBeans IDE environment. This book features: A real sample database, CSE _ DEPT, which is built with Oracle SQL Developer, provided and used throughout the book Step by step, detailed illustrations and descriptions of how to design and build a practical relational database Fundamental and advanced Java database programming techniques practical to both beginning students and experienced programmers Updated Java desktop and Web database programming techniques, such as Java Enterprise Edition 7, JavaServer Pages, JavaServer Faces, Enterprise Java Beans, Web applications and Web services, including GlassFish and Tomcat Web servers More than 30 real database programming projects with detailed illustrations Actual JDBC APIs and JDBC drivers, along with code explanations Homework and selected solutions for each chapter to strengthen and improve students' learning and understanding of the topics they have studied
Edsger Wybe Dijkstra (1930-2002) was one of the most influential researchers in the history of computer science, making fundamental contributions to both the theory and practice of computing. Early in his career, he proposed the single-source shortest path algorithm, now commonly referred to as Dijkstra's algorithm. He wrote (with Jaap Zonneveld) the first ALGOL 60 compiler, and designed and implemented with his colleagues the influential THE operating system. Dijkstra invented the field of concurrent algorithms, with concepts such as mutual exclusion, deadlock detection, and synchronization. A prolific writer and forceful proponent of the concept of structured programming, he convincingly argued against the use of the Go To statement. In 1972 he was awarded the ACM Turing Award for "fundamental contributions to programming as a high, intellectual challenge; for eloquent insistence and practical demonstration that programs should be composed correctly, not just debugged into correctness; for illuminating perception of problems at the foundations of program design." Subsequently he invented the concept of self-stabilization relevant to fault-tolerant computing. He also devised an elegant language for nondeterministic programming and its weakest precondition semantics, featured in his influential 1976 book A Discipline of Programming in which he advocated the development of programs in concert with their correctness proofs. In the later stages of his life, he devoted much attention to the development and presentation of mathematical proofs, providing further support to his long-held view that the programming process should be viewed as a mathematical activity. In this unique new book, 31 computer scientists, including five recipients of the Turing Award, present and discuss Dijkstra's numerous contributions to computing science and assess their impact. Several authors knew Dijkstra as a friend, teacher, lecturer, or colleague. Their biographical essays and tributes provide a fascinating multi-author picture of Dijkstra, from the early days of his career up to the end of his life.
Certifiable Software Applications 2: Support Processes explains the process to achieve a certifiable application. This concerns several major topics, skill management, data preparation, requirement management, software verification, and software validation. In addition, analysis of the impact of the use of COTS and pre-existing software on certifiable software is presented. Finally, the last support process concerns the management of commercial tools, the creation of a specific tools, and therefore the qualification of tools, which is based on their impact on the final software.
As long as humans write software, the key to successful software security is making the software development program process more efficient and effective. Although the approach of this textbook includes people, process, and technology approaches to software security, Practical Core Software Security: A Reference Framework stresses the people element of software security, which is still the most important part to manage as software is developed, controlled, and exploited by humans. The text outlines a step-by-step process for software security that is relevant to today's technical, operational, business, and development environments. It focuses on what humans can do to control and manage a secure software development process using best practices and metrics. Although security issues will always exist, students learn how to maximize an organization's ability to minimize vulnerabilities in software products before they are released or deployed by building security into the development process. The authors have worked with Fortune 500 companies and have often seen examples of the breakdown of security development lifecycle (SDL) practices. The text takes an experience-based approach to apply components of the best available SDL models in dealing with the problems described above. Software security best practices, an SDL model, and framework are presented in this book. Starting with an overview of the SDL, the text outlines a model for mapping SDL best practices to the software development life cycle (SDLC). It explains how to use this model to build and manage a mature SDL program. Exercises and an in-depth case study aid students in mastering the SDL model. Professionals skilled in secure software development and related tasks are in tremendous demand today. The industry continues to experience exponential demand that should continue to grow for the foreseeable future. This book can benefit professionals as much as students. As they integrate the book's ideas into their software security practices, their value increases to their organizations, management teams, community, and industry.
Edsger Wybe Dijkstra (1930-2002) was one of the most influential researchers in the history of computer science, making fundamental contributions to both the theory and practice of computing. Early in his career, he proposed the single-source shortest path algorithm, now commonly referred to as Dijkstra's algorithm. He wrote (with Jaap Zonneveld) the first ALGOL 60 compiler, and designed and implemented with his colleagues the influential THE operating system. Dijkstra invented the field of concurrent algorithms, with concepts such as mutual exclusion, deadlock detection, and synchronization. A prolific writer and forceful proponent of the concept of structured programming, he convincingly argued against the use of the Go To statement. In 1972 he was awarded the ACM Turing Award for "fundamental contributions to programming as a high, intellectual challenge; for eloquent insistence and practical demonstration that programs should be composed correctly, not just debugged into correctness; for illuminating perception of problems at the foundations of program design." Subsequently he invented the concept of self-stabilization relevant to fault-tolerant computing. He also devised an elegant language for nondeterministic programming and its weakest precondition semantics, featured in his influential 1976 book A Discipline of Programming in which he advocated the development of programs in concert with their correctness proofs. In the later stages of his life, he devoted much attention to the development and presentation of mathematical proofs, providing further support to his long-held view that the programming process should be viewed as a mathematical activity. In this unique new book, 31 computer scientists, including five recipients of the Turing Award, present and discuss Dijkstra's numerous contributions to computing science and assess their impact. Several authors knew Dijkstra as a friend, teacher, lecturer, or colleague. Their biographical essays and tributes provide a fascinating multi-author picture of Dijkstra, from the early days of his career up to the end of his life.
Provides guidance on performance enhancement and reliability of IC chips. Provides a detailed hybrid optimization strategy for the optimal arrangement of IC chips on a board. The MATLAB program for the hybrid optimization strategy along with its stability analysis is carried out in a detailed manner.
Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. New software tools are emerging that are empowering practicing engineers to improve their requirements engineering habits. However, these tools are not usually easy to use without significant training. Requirements Engineering for Software and Systems, Fourth Edition is intended to provide a comprehensive treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, with an intentional focus on software-intensive systems. It brings into play a variety of formal methods, social models, and modern requirements writing techniques to be useful to practicing engineers. The book is intended for professional software engineers, systems engineers, and senior and graduate students of software or systems engineering. Since the first edition, there have been made many changes and improvements to this textbook. Feedback from instructors, students, and corporate users was used to correct, expand, and improve the materials. The fourth edition features two newly added chapters: "On Non-Functional Requirements" and "Requirements Engineering: Road Map to the Future." The latter provides a discussion on the relationship between requirements engineering and such emerging and disruptive technologies as Internet of Things, Cloud Computing, Blockchain, Artificial Intelligence, and Affective Computing. All chapters of the book were significantly expanded with new materials that keep the book relevant to current industrial practices. Readers will find expanded discussions on new elicitation techniques, agile approaches (e.g., Kanpan, SAFe, and DEVOps), requirements tools, requirements representation, risk management approaches, and functional size measurement methods. The fourth edition also has significant additions of vignettes, exercises, and references. Another new feature is scannable QR codes linked to sites containing updates, tools, videos, and discussion forums to keep readers current with the dynamic field of requirements engineering.
Drones are taking the world by storm. The technology and laws governing them change faster than we can keep up with. The Big Book of Drones covers everything from drone law to laws on privacy, discussing the history and evolution of drones to where we are today. If you are new to piloting, it also covers how to fly a drone including a pre-flight checklist. For those who are interested in taking drones to the next level, we discuss how to build your own using a 3D printer as well as many challenging projects for your drone. For the truly advanced, The Big Book of Drones discusses how to hack a drone. This includes how to perform a replay attack, denial of service attack, and how to detect a drone and take it down. Finally, the book also covers drone forensics. This is a new field of study, but one that is steadily growing and will be an essential area of inquiry as drones become more prevalent.
Advances in Computers, the latest volume in the series published since 1960, presents detailed coverage of innovations in computer hardware, software, theory, design, and applications. In addition, it provides contributors with a medium in which they can explore their subjects in greater depth and breadth than journal articles usually allow. As a result, many articles have become standard references that continue to be of significant, lasting value in this rapidly expanding field.
Managing Trade-Offs in Adaptable Software Architectures explores the latest research on adapting large complex systems to changing requirements. To be able to adapt a system, engineers must evaluate different quality attributes, including trade-offs to balance functional and quality requirements to maintain a well-functioning system throughout the lifetime of the system. This comprehensive resource brings together research focusing on how to manage trade-offs and architect adaptive systems in different business contexts. It presents state-of-the-art techniques, methodologies, tools, best practices, and guidelines for developing adaptive systems, and offers guidance for future software engineering research and practice. Each contributed chapter considers the practical application of the topic through case studies, experiments, empirical validation, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited to, how to architect a system for adaptability, software architecture for self-adaptive systems, understanding and balancing the trade-offs involved, architectural patterns for self-adaptive systems, how quality attributes are exhibited by the architecture of the system, how to connect the quality of a software architecture to system architecture or other system considerations, and more.
This open access book provides an overview of the dissertations of the eleven nominees for the Ernst Denert Award for Software Engineering in 2020. The prize, kindly sponsored by the Gerlind & Ernst Denert Stiftung, is awarded for excellent work within the discipline of Software Engineering, which includes methods, tools and procedures for better and efficient development of high quality software. An essential requirement for the nominated work is its applicability and usability in industrial practice. The book contains eleven papers that describe the works by Jonathan Brachthauser (EPFL Lausanne) entitled What You See Is What You Get: Practical Effect Handlers in Capability-Passing Style, Mojdeh Golagha's (Fortiss, Munich) thesis How to Effectively Reduce Failure Analysis Time?, Nikolay Harutyunyan's (FAU Erlangen-Nurnberg) work on Open Source Software Governance, Dominic Henze's (TU Munich) research about Dynamically Scalable Fog Architectures, Anne Hess's (Fraunhofer IESE, Kaiserslautern) work on Crossing Disciplinary Borders to Improve Requirements Communication, Istvan Koren's (RWTH Aachen U) thesis DevOpsUse: A Community-Oriented Methodology for Societal Software Engineering, Yannic Noller's (NU Singapore) work on Hybrid Differential Software Testing, Dominic Steinhofel's (TU Darmstadt) thesis entitled Ever Change a Running System: Structured Software Reengineering Using Automatically Proven-Correct Transformation Rules, Peter Wagemann's (FAU Erlangen-Nurnberg) work Static Worst-Case Analyses and Their Validation Techniques for Safety-Critical Systems, Michael von Wenckstern's (RWTH Aachen U) research on Improving the Model-Based Systems Engineering Process, and Franz Zieris's (FU Berlin) thesis on Understanding How Pair Programming Actually Works in Industry: Mechanisms, Patterns, and Dynamics - which actually won the award. The chapters describe key findings of the respective works, show their relevance and applicability to practice and industrial software engineering projects, and provide additional information and findings that have only been discovered afterwards, e.g. when applying the results in industry. This way, the book is not only interesting to other researchers, but also to industrial software professionals who would like to learn about the application of state-of-the-art methods in their daily work.
Understanding Interaction explores the interaction between people and technology in the broader context of the relations between the human-made and the natural environments. It is not just about digital technologies - our computers, smartphones, the Internet - but all our technologies, such as mechanical, electrical, and electronic. Our ancestors started creating mechanical tools and shaping their environments millions of years ago, developing cultures and languages, which in turn influenced our evolution. Volume 1 looks into this deep history, starting from the tool-creating period (the longest and most influential on our physical and mental capacities) to the settlement period (agriculture, domestication, villages and cities, written language), the industrial period (science, engineering, reformation, and renaissance), and finally the communication period (mass media, digital technologies, and global networks). Volume 2 looks into humans in interaction - our physiology, anatomy, neurology, psychology, how we experience and influence the world, and how we (think we) think. From this transdisciplinary understanding, design approaches and frameworks are presented to potentially guide future developments and innovations. The aim of the book is to be a guide and inspiration for designers, artists, engineers, psychologists, media producers, social scientists, etc., and, as such, be useful for both novices and more experienced practitioners. Image Credit: Still of interactive video pattern created with a range of motion sensors in the Facets kaleidoscopic algorithm (based underwater footage of seaweed movement) by the author on 4 February 2010, for a lecture at Hyperbody at the Faculty of Architecture, TU Delft, NL.
Rapid Application Generation of Business and Finance Software describes a method for developing wide ranging computing applications with emerging software technologies. The pressure of the market place calls for reducing the time to market of new software applications. This book shows how to build such software faster and more reliably. Using an elegant concept of extended tools, the book presents a method for the constructive building of hybrid' applications. The book includes such application areas as direct marketing, banking insurance and executive information systems. The methods used adopt the latest object-oriented and client-server techniques. Rapid Application Generation of Business and Finance Software is an important book for computer scientists working on rapid application development. It is also of interest to information systems specialists.
Certifiable Software Applications 1: Main Processes is dedicated to the establishment of quality assurance and safety assurance. It establishes the context for achieving a certifiable software application. In it, the author covers recent developments such as the module, component and product line approach. Applicable standards are presented and security principles are described and discussed. Finally, the requirements for mastering quality and configuration are explained. In this book the reader will find the fundamental practices from the field and an introduction to the concept of software application.
Mashups are mostly lightweight Web applications that offer new functionalities by combining, aggregating and transforming resources and services available on the Web. Popular examples include a map in their main offer, for instance for real estate, hotel recommendations, or navigation tools. Mashups may contain and mix client-side and server-side activity. Obviously, understanding the incoming resources (services, statistical figures, text, videos, etc.) is a precondition for optimally combining them, so that there is always some undercover semantics being used. By using semantic annotations, neutral mashups permute into the branded type of semantic mashups. Further and deeper semantic processing such as reasoning is the next step. The chapters of this book reflect the diversity of real-life semantic mashups. Two overview chapters take the reader to the environments where mashups are at home and review the regulations (standards, guidelines etc.) mashups are based on and confronted with. Chapters focusing on DBpedia, search engines and the Web of Things inspect the main Web surroundings of mashups. While mashups upgrading search queries may be nearer to the everyday experience of readers, mashups using DBpedia input and sensor data from the real world lead to important new and therefore less known developments. Finally, the diversity of mashups is tracked through a few application areas: mathematical knowledge, speech, crisis and disaster management, recommendations (for games), inner-city information, and tourism. Participants of the AI Mashup Challenge wrote all the chapters of this book. The authors were writing for their current and future colleagues - researchers and developers all over the Web who integrate mashup functionalities into their thinking and possibly into their applications.
Project or program health checks provide tremendous value to businesses and pay for themselves by multiples of magnitude. No matter how well a project or program is performing, there are always activities that can provide better value, reduce costs, or introduce more innovation. IT project and program health checks can help organizations reach their goals and dramatically improve Return on Investment (ROI). IT Project Health Checks: Driving Successful Implementation and Multiples of Business Value offers a proven approach for evaluating IT projects or programs in order to determine how they are performing and how the eventual outcome for the initiative is currently trending. The project or program health checks provide a set of techniques that produce actionable recommendations that can be applied for any combination of the following outcomes: Drive more business and technical value from a program Set a project or program back on track for successful implementation as defined by executive management Rescue a program that is heading towards failure Act as additional insurance for initiatives that are too important to fail Protect executive careers by creating transparency within the inner workings of complex initiatives. The book shows how a review can quickly identify whether an initiative needs to be rescued even when the project team is not aware that it is hurtling towards failure. It also provides techniques for driving business value even when a project team believes it's been stretched as much as possible. Other outcomes covered in this book include: Objectively develop a project Health-Check Scorecard that establishes how well a project is doing and the direction it is headed Demonstrate how to drive business value from an IT program regardless of how well or badly it is tracking Provide surgical advice to improve a project's outcome How to use the many templates and sample deliverables to get a quick start on your own health check. Designed to provide significant value to any member of a project team, program team, stakeholders, sponsors, business users, system integrators, trainers, and IT professionals, this book can help find opportunities to drive multiples of business value and exceed project success metrics.
Project or program health checks provide tremendous value to businesses and pay for themselves by multiples of magnitude. No matter how well a project or program is performing, there are always activities that can provide better value, reduce costs, or introduce more innovation. IT project and program health checks can help organizations reach their goals and dramatically improve Return on Investment (ROI). IT Project Health Checks: Driving Successful Implementation and Multiples of Business Value offers a proven approach for evaluating IT projects or programs in order to determine how they are performing and how the eventual outcome for the initiative is currently trending. The project or program health checks provide a set of techniques that produce actionable recommendations that can be applied for any combination of the following outcomes: Drive more business and technical value from a program Set a project or program back on track for successful implementation as defined by executive management Rescue a program that is heading towards failure Act as additional insurance for initiatives that are too important to fail Protect executive careers by creating transparency within the inner workings of complex initiatives. The book shows how a review can quickly identify whether an initiative needs to be rescued even when the project team is not aware that it is hurtling towards failure. It also provides techniques for driving business value even when a project team believes it's been stretched as much as possible. Other outcomes covered in this book include: Objectively develop a project Health-Check Scorecard that establishes how well a project is doing and the direction it is headed Demonstrate how to drive business value from an IT program regardless of how well or badly it is tracking Provide surgical advice to improve a project's outcome How to use the many templates and sample deliverables to get a quick start on your own health check. Designed to provide significant value to any member of a project team, program team, stakeholders, sponsors, business users, system integrators, trainers, and IT professionals, this book can help find opportunities to drive multiples of business value and exceed project success metrics.
The Lean Approach to Digital Transformation: From Customer to Code and From Code to Customer is organized into three parts that expose and develop the three capabilities that are essential for a successful digital transformation: 1. Understanding how to co-create digital services with users, whether they are customers or future customers. This ability combines observation, dialogue, and iterative experimentation. The approach proposed in this book is based on the Lean Startup approach, according to an extended vision that combines Design Thinking and Growth Hacking. Companies must become truly "customer-centric", from observation and listening to co-development. The revolution of the digital age of the 21st century is that customer orientation is more imperative -- the era of abundance, usages rate of change, complexity of experiences, and shift of power towards communities -- are easier, using digital tools and digital communities. 2. Developing an information system (IS) that is the backbone of the digital transformation - called "exponential information system" to designate an open IS (in particular on its borders), capable of interfacing and combining with external services, positioned as a player in software ecosystems and built for processing scalable and dynamic data flows. The exponential information system is constantly changing and it continuously absorbs the best of information processing technology, such as Artificial Intelligence and Machine Learning. 3. Building software "micro-factories" that produce service platforms, which are called "Lean software factories." This "software factory" concept covers the integration of agile methods, tooling and continuous integration and deployment practices, a customer-oriented product approach, and a platform approach based on modularity, as well as API-based architecture and openness to external stakeholders. This software micro-factory is the foundation that continuously produces and provides constantly evolving services. These three capabilities are not unique or specific to this book, they are linked to other concepts such as agile methods, product development according to lean principles, software production approaches such as CICD (continuous integration and deployment) or DevOps. This book weaves a common frame of reference for all these approaches to derive more value from the digital transformation and to facilitate its implementation. The title of the book refers to the "lean approach to digital transformation" because the two underlying frameworks, Lean Startup and Lean Software Factory, are directly inspired by Lean, in the sense of the Toyota Way. The Lean approach is present from the beginning to the end of this book -- it provides the framework for customer orientation and the love of a job well done, which are the conditions for the success of a digital transformation.
Includes step-by-step screenshots for all the examples Shows the graphical user interface of COMSOL, which does not require any programming effort Provides chapter-end problems for extensive practice along with solutions Includes actual examples of chemical reactors, transport processes, fluid flow, and heat and mass transfer
This book is a collection of peer-reviewed best selected research papers presented at 22nd International Conference on Computational Mechanics and Modern Applied Software Systems (CMMASS 2021), held at the Alushta Health and Educational Center, The Republic of Crimea, during 4-13 September 2021. The proceedings is dedicated to solving the real-world problems of applied mechanics using smart computational technology. Physical and mathematical models, numerical methods, computational algorithms and software complexes are discussed, which allow to carry out high-precision mathematical modelling in fluid, gas and plasma mechanics, in general mechanics, deformable solid mechanics, in strength, destruction and safety of structures, etc. Smart technologies and software systems that provide effective solutions to the problems at various multi scale-levels are considered. Special attention is paid to the training of highly qualified specialists for the aviation and space industry.
This book focuses on mathematical modeling, describes the process of constructing and evaluating models, discusses the challenges and delicacies of the modeling process, and explicitly outlines the required rules and regulations so that the reader will be able to generalize and reuse concepts in other problems by relying on mathematical logic.Undergraduate and postgraduate students of different academic disciplines would find this book a suitable option preparing them for jobs and research fields requiring modeling techniques. Furthermore, this book can be used as a reference book for experts and practitioners requiring advanced skills of model building in their jobs.
In the 5G era, edge computing and new ecosystems of mobile microservices enable new business models, strategies, and competitive advantage. Focusing on microservices, this book introduces the essential concepts, technologies, and trade-offs in the edge computing architectural stack, providing for widespread adoption and dissemination. The book elucidates the concepts, architectures, well-defined building blocks, and prototypes for mobile microservice platforms and pervasive application development, as well as the implementation and configuration of service middleware and AI-based microservices. A goal-oriented service composition model is then proposed by the author, allowing for an economic assessment of connected, smart mobile services. Based on this model, costs can be minimized through statistical workload aggregation effects or backhaul data transport reduction, and customer experience and safety can be enhanced through reduced response times. This title will be a useful guide for students and IT professionals to get started with microservices and when studying the use of microservices in pervasive applications. It will also appeal to researchers and students studying software architecture and service-oriented computing, and especially those interested in edge computing, pervasive computing, the Internet of Things, and mobile microservices.
"The Testing Network" presents an integrated approach to testing based on cutting-edge methodologies, processes and tools in today's IT context. It means complex network-centric applications to be tested in heterogeneous IT infrastructures and in multiple test environments (also geographically distributed). The added-value of this book is the in-depth explanation of all processes and relevant methodologies and tools to address this complexity. Main aspects of testing are explained using TD/QC - the world-leader test platform. This up-to-date know-how is based on real-life IT experiences gained in large-scale projects of companies operating worldwide. The book is abundantly illustrated to better show all technical aspects of modern testing in a national and international context. The author has a deep expertise by designing and giving testing training in large companies using the above-mentioned tools and processes. "The Testing Network" is a unique synthesis of core test topics applied in real-life.
Asynchronous On-Chip Networks and Fault-Tolerant Techniques is the first comprehensive study of fault-tolerance and fault-caused deadlock effects in asynchronous on-chip networks, aiming to overcome these drawbacks and ensure greater reliability of applications. As a promising alternative to the widely used synchronous on-chip networks for multicore processors, asynchronous on-chip networks can be vulnerable to faults even if they can deliver the same performance with much lower energy and area compared with their synchronous counterparts - faults can not only corrupt data transmission but also cause a unique type of deadlock. By adopting a new redundant code along with a dynamic fault detection and recovery scheme, the authors demonstrate that asynchronous on-chip networks can be efficiently hardened to tolerate both transient and permanent faults and overcome fault-caused deadlocks. This book will serve as an essential guide for researchers and students studying interconnection networks, fault-tolerant computing, asynchronous system design, circuit design and on-chip networking, as well as for professionals interested in designing fault-tolerant and high-throughput asynchronous circuits. |
![]() ![]() You may like...
Data-Driven Modeling of Cyber-Physical…
Sujit Rokka Chhetri, Mohammad Abdullah Al Faruque
Hardcover
R2,892
Discovery Miles 28 920
New Perspectives and Applications of…
Julio B. Clempner, Wen Yu
Hardcover
Energy Management and Energy Efficiency…
Durmus KAYA, Fatma CANKA KILIC, …
Hardcover
R2,901
Discovery Miles 29 010
|