Software Engineering Practice
eBook - ePub

Software Engineering Practice

A Case Study Approach

  1. 340 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Software Engineering Practice

A Case Study Approach

Book details
Book preview
Table of contents
Citations

About This Book

This book is a broad discussion covering the entire software development lifecycle. It uses a comprehensive case study to address each topic and features the following:

  • A description of the development, by the fictional company Homeowner, of the DigitalHome (DH) System, a system with "smart" devices for controlling home lighting, temperature, humidity, small appliance power, and security
  • A set of scenarios that provide a realistic framework for use of the DH System material
  • Just-in-time training: each chapter includes mini tutorials introducing various software engineering topics that are discussed in that chapter and used in the case study
  • A set of case study exercises that provide an opportunity to engage students in software development practice, either individually or in a team environment.

Offering a new approach to learning about software engineering theory and practice, the text is specifically designed to:

  • Support teaching software engineering, using a comprehensive case study covering the complete software development lifecycle
  • Offer opportunities for students to actively learn about and engage in software engineering practice
  • Provide a realistic environment to study a wide array of software engineering topics including agile development

Software Engineering Practice: A Case Study Approach supports a student-centered, "active" learning style of teaching. The DH case study exercises provide a variety of opportunities for students to engage in realistic activities related to the theory and practice of software engineering. The text uses a fictitious team of software engineers to portray the nature of software engineering and to depict what actual engineers do when practicing software engineering. All the DH case study exercises can be used as team or group exercises in collaborative learning. Many of the exercises have specific goals related to team building and teaming skills.

The text also can be used to support the professional development or certification of practicing software engineers. The case study exercises can be integrated with presentations in a workshop or short course for professionals.

Frequently asked questions

Simply head over to the account section in settings and click on ā€œCancel Subscriptionā€ - itā€™s as simple as that. After you cancel, your membership will stay active for the remainder of the time youā€™ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlegoā€™s features. The only differences are the price and subscription period: With the annual plan youā€™ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, weā€™ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Software Engineering Practice by Thomas B. Hilburn, Massood Towhidnejad in PDF and/or ePUB format, as well as other popular books in Computer Science & Software Development. We have over one million books available in our catalogue for you to explore.

Information

Year
2020
ISBN
9781466591691
Edition
1

Chapter 1

In The Beginning

Birth of DigitalHome

Although home building has its ups and downs, the long-term prospects call for increases in total home square footage and intensified interest by home owners in high technology devices. New home owners, especially young professionals, are interested in living in houses that have ā€œsmartā€ features that automate and facilitate energy efficiency, entertainment delivery, communication, household chores, and home security. The design and construction of such dwellings relies on the latest technology (devices with smart capabilities, distributed computing, wireless and web communications, intelligent agents, etc.).
image
In August 202X, HomeOwner held its annual strategic planning retreat. During these one-week sessions HomeOwner officers and other upper-level managers concentrate on new initiatives that will advance the HomeOwner position as the industry leader in household product retailing.
On the first day of the 202X retreat, Dick Punch (VP of Marketing) and Judy Fielder (Chief Information Officer) made a presentation about the trend for ā€œsmartā€ technology and the market for building dwellings that integrate smart technology into every aspect of home living (environmental and energy control, security, communication, entertainment, household chores, etc.). Punch and Judy argued that the potential market for ā€œsmartā€ houses is tremendous, and although HomeOwner currently sells a number of smart home devices, it does not market the ā€œcomplete packageā€. There are construction companies that during the planning and building phases incorporate computer and communication systems needed to combine and control the smart devices in such a way that best serves the needs and desires of todayā€™s new tech-savvy upwardly mobile professional. Punch and Judy recommended that HomeOwner become a competitor in this field, and look for opportunities to push the industry to building ā€œsmarterā€ houses.
image
Red Sharpson, CEO of HomeOwner, loved the smart house idea and decided to devote the rest of the week to formulating plans for this new initiative. After days of discussion and debate the following decisions were made:
  • ā–  Establish a new DigitalHomeOwner Division of HomeOwner to be headed by Jose Ortiz (currently Deputy CIO).
  • ā–  Develop a two-year strategic plan for the division.
  • ā–  Assemble a staff for the division.
  • ā–  Develop a one-year division budget plan.
In the next year, DigitalHomeOwner will carry out the following activities:
  • ā–  With the assistance of the Marketing Division, DigitalHomeOwner will research the existing smart houses, and conduct a needs assessment for a DigitalHome product, which will provide the computer and communication infrastructure for managing and controlling the ā€œsmartā€ devices in a home to best meet the needs and desires of homeowners. In other words, building houses that take the advantage of Internet of Things (IoT) technology.
  • ā–  Choose a set of features for the DigitalHome product to develop a high-quality ā€œproof of conceptā€ prototype to illustrate how the DigitalHome needs will be met. Because of time constraints, the features chosen will be a subset of the actual needs. It is envisioned that this will primarily be a ā€œsoftware effortā€, with simulation being used to represent dwelling structures, hardware devices, and communication links.
  • ā–  Jose Ortiz will form a team and supervise it in the development of the DigitalHome prototype.
  • ā–  Jose Ortiz will deliver a report on the DigitalHome efforts at the August 202Y strategic planning retreat.
  • ā–  In addition, DigitalHome will include the following special considerations:
    • ā€“ It is anticipated that the DigitalHome prototype will be the foundation for future development of DigitalHomeOwner products. Hence, it is essential that the development team use established software engineering practices and fully document their work.
    • ā€“ In development of the prototype, DigitalHomeOwner should have two primary client groups: (1) potential DigitalHome users and (2) the upper management of HomeOwner. These clients should be part of an acceptance testing process for the prototype.
    • ā€“ At the retreat, Judy Fielder, the CIO, also presented a proposal (HomeOwner Cloud Computing Initiative Proposal) for development of a HomeOwner cloud server. Although the decision on the cloud initiative was tabled for further study, it was recommended that the DigitalHome developers consult the guidance provided in the proposal, especially as related to the privacy and security of client communication and data.
Judy Fielder pointed out that to make this project a success it was important that the project team use the best software engineering practices. Red Sharpson stated that he had little understanding about software engineering and did not know what the ā€œbestā€ software engineering practices were. Judy suggested that they ask Jose Ortiz to deliver a talk on software engineering on the last day of the retreat. Red agreed.
MiniTutorial 1.1: What Is Software Engineering?
The IEEE Standard Systems and Software Engineering Vocabulary [IEEE 24765] defines software engineering as ā€œthe application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to softwareā€. One of the earliest recorded uses of the term ā€œSoftware Engineeringā€ was in the 1968 NATO Software Engineering Conference; in the Conference report [Naur 1969], it was stated that the term was used to imply ā€œthe need for software manufacture to be based on the types of theoretical foundations and practical disciplines, that are traditional in the established branches of engineeringā€. Hence, software engineering is a relatively young engineering discipline.

Software Engineering Problems

Software plays a critical and central role in almost all aspects of human endeavor. The size, complexity, and number of application domains of software products and services continue to grow. Unfortunately, there are serious problems in the cost, timeliness, and quality of development of many software systems. A significant number of development projects are never completed, and many of those completed do not meet the user requirements and are late, over budget, and of poor quality [Standish 2020]. A 2002 study from the National Institute of Standards and Technology [Tassey 2002] reports that software defects are so prevalent and so detrimental that they cost the U.S. economy an estimated $59.5 billion annually, or about 0.6% of the gross domestic product. Parnas and Lawford [Parnas 2003] state ā€œDespite more than 30 yearsā€™ effort to improve software quality, companies still release programs containing numerous errors. Many major products have thousands of bugsā€.
Although, software development has improved considerably in the last 40 years, the development and maintenance of software systems are still plagued by serious budget, schedule and quality problems. One of the reasons for this is the lack of software engineers with adequate qualifications and background. There is a very high demand for software engineers; the Occupational Outlook Handbook 2016ā€“17 edition (Bureau of Labor Statistics) [BLS 2016] highlights the increased need, in the coming decade, for software engineers. The handbook states, ā€œEmployment of software developers is projected to grow 17% from 2014 to 2024, much faster than the average for all occupations. The main reason for the rapid growth is a large increase in the demand for computer softwareā€.

The Nature of Software

Another reason for the problems in software engineering is that by its nature, software is different from other engineered products. In the paper ā€œNo silver Bulletā€ [Brooks 1995], Brooks argues that software has the following ā€œessential difficultiesā€ that do not plague other engineering products (or at least not to the same extent):
  • ā–  Complexity ā€“ Brooks argues that software entities are more complex, for their size, than perhaps any other human construct. Even moderately complex software systems may have millions of distinct parts (components/packages, classes/objects, variables, methods, and statements), which may be stored in an extremely small physical ...

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. Preface
  7. Acknowledgments
  8. Authors
  9. 1 In The Beginning
  10. 2 Launching DigitalHome
  11. 3 Assuring DigitalHome Quality
  12. 4 Managing the DH Project
  13. 5 Engineering the DH Requirements
  14. 6 Designing DigitalHome
  15. 7 Constructing DigitalHome
  16. 8 Maintaining DigitalHome
  17. 9 Acting Ethically and Professionally
  18. 10 Using the Scrum Development Process
  19. References
  20. Appendix A: Digital Home Customer Need Statement
  21. Appendix B: DigitalHome Software Requirements Specification
  22. Appendix C: DigitalHome Use Case Model
  23. Index