A Concise Introduction to Software Engineering


Book Description

An introductory course on Software Engineering remains one of the hardest subjects to teach largely because of the wide range of topics the area enc- passes. I have believed for some time that we often tend to teach too many concepts and topics in an introductory course resulting in shallow knowledge and little insight on application of these concepts. And Software Engineering is ?nally about application of concepts to e?ciently engineer good software solutions. Goals I believe that an introductory course on Software Engineering should focus on imparting to students the knowledge and skills that are needed to successfully execute a commercial project of a few person-months e?ort while employing proper practices and techniques. It is worth pointing out that a vast majority of the projects executed in the industry today fall in this scope—executed by a small team over a few months. I also believe that by carefully selecting the concepts and topics, we can, in the course of a semester, achieve this. This is the motivation of this book. The goal of this book is to introduce to the students a limited number of concepts and practices which will achieve the following two objectives: – Teach the student the skills needed to execute a smallish commercial project.




An Integrated Approach to Software Engineering


Book Description

Details the different activities of software development with a case-study approach whereby a project is developed through the course of the book The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project.




PANKAJ JALOTE'S SOFTWARE ENGINEERING: A PRECISE APPROACH


Book Description

The goal of this book is to introduce to the students a limited number of concepts and practices which will achieve the following two objectives: Teach the student the skills needed to execute a smallish commercial project. Provide the students necessary conceptual background for undertaking advanced studies in software engineering, through organized courses or on their own. This book focuses on key tasks in two dimensions - engineering and project management - and discusses concepts and techniques that can be applied to effectively execute these tasks. The book is organized in a simple manner, with one chapter for each of the key tasks in a project. For engineering, these tasks are requirements analysis and specification, architecture design, module level design, coding and unit testing, and testing. For project management, the key tasks are project planning and project monitoring and control, but both are discussed together in one chapter on project planning as even monitoring has to be planned. In addition, one chapter clearly defines the problem domain of Software Engineering, and another Chapter discusses the central concept of software process which integrates the different tasks executed in a project. Each chapter opens with some introduction and clearly lists the chapter goals, or what the reader can expect to learn from the chapter. For the task covered in the chapter, the important concepts are first discussed, followed by a discussion of the output of the task, the desired quality properties of the output, and some practical methods and notations for performing the task. The explanations are supported by examples, and the key learnings are summarized in the end for the reader. The chapter ends with some self-assessment exercises. Finally, the book contains a question bank at the end which lists out questions with answers from major universities.




Software Project Management in Practice


Book Description




CMM in Practice


Book Description

Project initiation; Project planning; Project execution and termination.




The Art and Science of Analyzing Software Data


Book Description

The Art and Science of Analyzing Software Data provides valuable information on analysis techniques often used to derive insight from software data. This book shares best practices in the field generated by leading data scientists, collected from their experience training software engineering students and practitioners to master data science. The book covers topics such as the analysis of security data, code reviews, app stores, log files, and user telemetry, among others. It covers a wide variety of techniques such as co-change analysis, text analysis, topic analysis, and concept analysis, as well as advanced topics such as release planning and generation of source code comments. It includes stories from the trenches from expert data scientists illustrating how to apply data analysis in industry and open source, present results to stakeholders, and drive decisions. - Presents best practices, hints, and tips to analyze data and apply tools in data science projects - Presents research methods and case studies that have emerged over the past few years to further understanding of software data - Shares stories from the trenches of successful data science initiatives in industry




Software Requirements


Book Description

This revision of the bestselling software requirements book reflects the new way of categorizing software requirements techniques--objects, functions, and states. The author takes an analytical approach by helping the reader analyze which technique is best, rather than imposing one specific technique.




Software Engineering with Reusable Components


Book Description

The book provides a clear understanding of what software reuse is, where the problems are, what benefits to expect, the activities, and its different forms. The reader is also given an overview of what sofware components are, different kinds of components and compositions, a taxonomy thereof, and examples of successful component reuse. An introduction to software engineering and software process models is also provided.




Software Project Management For Dummies


Book Description

The increase in project outsourcing has forced traditional programmers to take on the role of project managers and quickly learn how to manage software projects The author discusses all of the essentials in widely accepted project management methodology, from managing programmers to assessing and eliminating risk The book covers the iterative development model, using Microsoft Project 2003, as well as a variety of methodologies including eXtreme, open source, SQA testing, software life cycle management, and more The companion Web site contains tools, case studies and other resources to help even novices get up and running




Cyber Security Engineering


Book Description

Cyber Security Engineering is the definitive modern reference and tutorial on the full range of capabilities associated with modern cyber security engineering. Pioneering software assurance experts Dr. Nancy R. Mead and Dr. Carol C. Woody bring together comprehensive best practices for building software systems that exhibit superior operational security, and for considering security throughout your full system development and acquisition lifecycles. Drawing on their pioneering work at the Software Engineering Institute (SEI) and Carnegie Mellon University, Mead and Woody introduce seven core principles of software assurance, and show how to apply them coherently and systematically. Using these principles, they help you prioritize the wide range of possible security actions available to you, and justify the required investments. Cyber Security Engineering guides you through risk analysis, planning to manage secure software development, building organizational models, identifying required and missing competencies, and defining and structuring metrics. Mead and Woody address important topics, including the use of standards, engineering security requirements for acquiring COTS software, applying DevOps, analyzing malware to anticipate future vulnerabilities, and planning ongoing improvements. This book will be valuable to wide audiences of practitioners and managers with responsibility for systems, software, or quality engineering, reliability, security, acquisition, or operations. Whatever your role, it can help you reduce operational problems, eliminate excessive patching, and deliver software that is more resilient and secure.