Author: Dines Bjørner
Publisher: Springer Science & Business Media
ISBN: 3540312889
Category : Computers
Languages : en
Pages : 736
Book Description
The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches. Volume 1 covers the basic principles and techniques of formal methods abstraction and modelling. First this book provides a sound, but simple basis of insight into discrete mathematics: numbers, sets, Cartesians, types, functions, the Lambda Calculus, algebras, and mathematical logic. Then it trains its readers in basic property- and model-oriented specification principles and techniques. The model-oriented concepts that are common to such specification languages as B, VDM-SL, and Z are explained here using the RAISE specification language (RSL). This book then covers the basic principles of applicative (functional), imperative, and concurrent (parallel) specification programming. Finally, the volume contains a comprehensive glossary of software engineering, and extensive indexes and references. These volumes are suitable for self-study by practicing software engineers and for use in university undergraduate and graduate courses on software engineering. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.
Software Engineering 1
Author: Dines Bjørner
Publisher: Springer Science & Business Media
ISBN: 3540312889
Category : Computers
Languages : en
Pages : 736
Book Description
The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches. Volume 1 covers the basic principles and techniques of formal methods abstraction and modelling. First this book provides a sound, but simple basis of insight into discrete mathematics: numbers, sets, Cartesians, types, functions, the Lambda Calculus, algebras, and mathematical logic. Then it trains its readers in basic property- and model-oriented specification principles and techniques. The model-oriented concepts that are common to such specification languages as B, VDM-SL, and Z are explained here using the RAISE specification language (RSL). This book then covers the basic principles of applicative (functional), imperative, and concurrent (parallel) specification programming. Finally, the volume contains a comprehensive glossary of software engineering, and extensive indexes and references. These volumes are suitable for self-study by practicing software engineers and for use in university undergraduate and graduate courses on software engineering. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.
Publisher: Springer Science & Business Media
ISBN: 3540312889
Category : Computers
Languages : en
Pages : 736
Book Description
The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches. Volume 1 covers the basic principles and techniques of formal methods abstraction and modelling. First this book provides a sound, but simple basis of insight into discrete mathematics: numbers, sets, Cartesians, types, functions, the Lambda Calculus, algebras, and mathematical logic. Then it trains its readers in basic property- and model-oriented specification principles and techniques. The model-oriented concepts that are common to such specification languages as B, VDM-SL, and Z are explained here using the RAISE specification language (RSL). This book then covers the basic principles of applicative (functional), imperative, and concurrent (parallel) specification programming. Finally, the volume contains a comprehensive glossary of software engineering, and extensive indexes and references. These volumes are suitable for self-study by practicing software engineers and for use in university undergraduate and graduate courses on software engineering. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.
Software Engineering at Google
Author: Titus Winters
Publisher: O'Reilly Media
ISBN: 1492082767
Category : Computers
Languages : en
Pages : 602
Book Description
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
Publisher: O'Reilly Media
ISBN: 1492082767
Category : Computers
Languages : en
Pages : 602
Book Description
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
How to Engineer Software
Author: Steve Tockey
Publisher: John Wiley & Sons
ISBN: 1119546672
Category : Computers
Languages : en
Pages : 1188
Book Description
A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software.
Publisher: John Wiley & Sons
ISBN: 1119546672
Category : Computers
Languages : en
Pages : 1188
Book Description
A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software.
Become an Effective Software Engineering Manager
Author: James Stanier
Publisher: Pragmatic Bookshelf
ISBN: 9781680507249
Category :
Languages : en
Pages : 398
Book Description
Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.
Publisher: Pragmatic Bookshelf
ISBN: 9781680507249
Category :
Languages : en
Pages : 398
Book Description
Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.
Guide to the Software Engineering Body of Knowledge (Swebok(r))
Author: IEEE Computer Society
Publisher:
ISBN: 9780769551661
Category : Computer software
Languages : en
Pages : 348
Book Description
In the Guide to the Software Engineering Body of Knowledge (SWEBOK(R) Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society's responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide's 15 knowledge areas summarize generally accepted topics and list references for detailed information. The editors for Version 3.0 of the SWEBOK(R) Guide are Pierre Bourque (Ecole de technologie superieure (ETS), Universite du Quebec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).
Publisher:
ISBN: 9780769551661
Category : Computer software
Languages : en
Pages : 348
Book Description
In the Guide to the Software Engineering Body of Knowledge (SWEBOK(R) Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society's responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide's 15 knowledge areas summarize generally accepted topics and list references for detailed information. The editors for Version 3.0 of the SWEBOK(R) Guide are Pierre Bourque (Ecole de technologie superieure (ETS), Universite du Quebec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).
Model-Driven Software Engineering in Practice
Author: Marco Brambilla
Publisher: Morgan & Claypool Publishers
ISBN: 1627056955
Category : Computers
Languages : en
Pages : 391
Book Description
This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The second edition of the book features: a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com, including the examples presented in the book.
Publisher: Morgan & Claypool Publishers
ISBN: 1627056955
Category : Computers
Languages : en
Pages : 391
Book Description
This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The second edition of the book features: a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com, including the examples presented in the book.
Basics of Software Engineering Experimentation
Author: Natalia Juristo
Publisher: Springer Science & Business Media
ISBN: 1475733046
Category : Computers
Languages : en
Pages : 405
Book Description
Basics of Software Engineering Experimentation is a practical guide to experimentation in a field which has long been underpinned by suppositions, assumptions, speculations and beliefs. It demonstrates to software engineers how Experimental Design and Analysis can be used to validate their beliefs and ideas. The book does not assume its readers have an in-depth knowledge of mathematics, specifying the conceptual essence of the techniques to use in the design and analysis of experiments and keeping the mathematical calculations clear and simple. Basics of Software Engineering Experimentation is practically oriented and is specially written for software engineers, all the examples being based on real and fictitious software engineering experiments.
Publisher: Springer Science & Business Media
ISBN: 1475733046
Category : Computers
Languages : en
Pages : 405
Book Description
Basics of Software Engineering Experimentation is a practical guide to experimentation in a field which has long been underpinned by suppositions, assumptions, speculations and beliefs. It demonstrates to software engineers how Experimental Design and Analysis can be used to validate their beliefs and ideas. The book does not assume its readers have an in-depth knowledge of mathematics, specifying the conceptual essence of the techniques to use in the design and analysis of experiments and keeping the mathematical calculations clear and simple. Basics of Software Engineering Experimentation is practically oriented and is specially written for software engineers, all the examples being based on real and fictitious software engineering experiments.
Software Engineering in C
Author: Peter A. Darnell
Publisher: Springer Science & Business Media
ISBN: 1468403087
Category : Computers
Languages : en
Pages : 633
Book Description
The author starts with the premise that C is an excellent language for software engineering projects. The book con- centrates on programming style,particularly readability, maintainability, and portability. Documents the proposed ANSI Standard, which is expected to be ratified in 1987. This book is designed as a text for both beginner and inter- mediate-level programmers.
Publisher: Springer Science & Business Media
ISBN: 1468403087
Category : Computers
Languages : en
Pages : 633
Book Description
The author starts with the premise that C is an excellent language for software engineering projects. The book con- centrates on programming style,particularly readability, maintainability, and portability. Documents the proposed ANSI Standard, which is expected to be ratified in 1987. This book is designed as a text for both beginner and inter- mediate-level programmers.
Continuous Software Engineering
Author: Jan Bosch
Publisher: Springer
ISBN: 331911283X
Category : Computers
Languages : en
Pages : 230
Book Description
This book provides essential insights on the adoption of modern software engineering practices at large companies producing software-intensive systems, where hundreds or even thousands of engineers collaborate to deliver on new systems and new versions of already deployed ones. It is based on the findings collected and lessons learned at the Software Center (SC), a unique collaboration between research and industry, with Chalmers University of Technology, Gothenburg University and Malmö University as academic partners and Ericsson, AB Volvo, Volvo Car Corporation, Saab Electronic Defense Systems, Grundfos, Axis Communications, Jeppesen (Boeing) and Sony Mobile as industrial partners. The 17 chapters present the “Stairway to Heaven” model, which represents the typical evolution path companies move through as they develop and mature their software engineering capabilities. The chapters describe theoretical frameworks, conceptual models and, most importantly, the industrial experiences gained by the partner companies in applying novel software engineering techniques. The book’s structure consists of six parts. Part I describes the model in detail and presents an overview of lessons learned in the collaboration between industry and academia. Part II deals with the first step of the Stairway to Heaven, in which R&D adopts agile work practices. Part III of the book combines the next two phases, i.e., continuous integration (CI) and continuous delivery (CD), as they are closely intertwined. Part IV is concerned with the highest level, referred to as “R&D as an innovation system,” while Part V addresses a topic that is separate from the Stairway to Heaven and yet critically important in large organizations: organizational performance metrics that capture data, and visualizations of the status of software assets, defects and teams. Lastly, Part VI presents the perspectives of two of the SC partner companies. The book is intended for practitioners and professionals in the software-intensive systems industry, providing concrete models, frameworks and case studies that show the specific challenges that the partner companies encountered, their approaches to overcoming them, and the results. Researchers will gain valuable insights on the problems faced by large software companies, and on how to effectively tackle them in the context of successful cooperation projects.
Publisher: Springer
ISBN: 331911283X
Category : Computers
Languages : en
Pages : 230
Book Description
This book provides essential insights on the adoption of modern software engineering practices at large companies producing software-intensive systems, where hundreds or even thousands of engineers collaborate to deliver on new systems and new versions of already deployed ones. It is based on the findings collected and lessons learned at the Software Center (SC), a unique collaboration between research and industry, with Chalmers University of Technology, Gothenburg University and Malmö University as academic partners and Ericsson, AB Volvo, Volvo Car Corporation, Saab Electronic Defense Systems, Grundfos, Axis Communications, Jeppesen (Boeing) and Sony Mobile as industrial partners. The 17 chapters present the “Stairway to Heaven” model, which represents the typical evolution path companies move through as they develop and mature their software engineering capabilities. The chapters describe theoretical frameworks, conceptual models and, most importantly, the industrial experiences gained by the partner companies in applying novel software engineering techniques. The book’s structure consists of six parts. Part I describes the model in detail and presents an overview of lessons learned in the collaboration between industry and academia. Part II deals with the first step of the Stairway to Heaven, in which R&D adopts agile work practices. Part III of the book combines the next two phases, i.e., continuous integration (CI) and continuous delivery (CD), as they are closely intertwined. Part IV is concerned with the highest level, referred to as “R&D as an innovation system,” while Part V addresses a topic that is separate from the Stairway to Heaven and yet critically important in large organizations: organizational performance metrics that capture data, and visualizations of the status of software assets, defects and teams. Lastly, Part VI presents the perspectives of two of the SC partner companies. The book is intended for practitioners and professionals in the software-intensive systems industry, providing concrete models, frameworks and case studies that show the specific challenges that the partner companies encountered, their approaches to overcoming them, and the results. Researchers will gain valuable insights on the problems faced by large software companies, and on how to effectively tackle them in the context of successful cooperation projects.
Beginning Software Engineering
Author: Rod Stephens
Publisher: John Wiley & Sons
ISBN: 1119901715
Category : Computers
Languages : en
Pages : 963
Book Description
Discover the foundations of software engineering with this easy and intuitive guide In the newly updated second edition of Beginning Software Engineering, expert programmer and tech educator Rod Stephens delivers an instructive and intuitive introduction to the fundamentals of software engineering. In the book, you’ll learn to create well-constructed software applications that meet the needs of users while developing the practical, hands-on skills needed to build robust, efficient, and reliable software. The author skips the unnecessary jargon and sticks to simple and straightforward English to help you understand the concepts and ideas discussed within. He also offers you real-world tested methods you can apply to any programming language. You’ll also get: Practical tips for preparing for programming job interviews, which often include questions about software engineering practices A no-nonsense guide to requirements gathering, system modeling, design, implementation, testing, and debugging Brand-new coverage of user interface design, algorithms, and programming language choices Beginning Software Engineering doesn’t assume any experience with programming, development, or management. It’s plentiful figures and graphics help to explain the foundational concepts and every chapter offers several case examples, Try It Out, and How It Works explanatory sections. For anyone interested in a new career in software development, or simply curious about the software engineering process, Beginning Software Engineering, Second Edition is the handbook you’ve been waiting for.
Publisher: John Wiley & Sons
ISBN: 1119901715
Category : Computers
Languages : en
Pages : 963
Book Description
Discover the foundations of software engineering with this easy and intuitive guide In the newly updated second edition of Beginning Software Engineering, expert programmer and tech educator Rod Stephens delivers an instructive and intuitive introduction to the fundamentals of software engineering. In the book, you’ll learn to create well-constructed software applications that meet the needs of users while developing the practical, hands-on skills needed to build robust, efficient, and reliable software. The author skips the unnecessary jargon and sticks to simple and straightforward English to help you understand the concepts and ideas discussed within. He also offers you real-world tested methods you can apply to any programming language. You’ll also get: Practical tips for preparing for programming job interviews, which often include questions about software engineering practices A no-nonsense guide to requirements gathering, system modeling, design, implementation, testing, and debugging Brand-new coverage of user interface design, algorithms, and programming language choices Beginning Software Engineering doesn’t assume any experience with programming, development, or management. It’s plentiful figures and graphics help to explain the foundational concepts and every chapter offers several case examples, Try It Out, and How It Works explanatory sections. For anyone interested in a new career in software development, or simply curious about the software engineering process, Beginning Software Engineering, Second Edition is the handbook you’ve been waiting for.