Effective Methods for Software Engineering
eBook - ePub

Effective Methods for Software Engineering

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

Effective Methods for Software Engineering

About this book

Software is important because it is used by a great many people in companies and institutions. This book presents engineering methods for designing and building software. Based on the author's experience in software engineering as a programmer in the defense and aerospace industries, this book explains how to ensure a software that is programmed operates according to its requirements. It also shows how to develop, operate, and maintain software engineering capabilities by instilling an engineering discipline to support programming, design, builds, and delivery to customers.

This book helps software engineers to:

  • Understand the basic concepts, standards, and requirements of software engineering.
  • Select the appropriate programming and design techniques.
  • Effectively use software engineering tools and applications.
  • Create specifications to comply with the software standards and requirements.
  • Utilize various methods and techniques to identify defects.
  • Manage changes to standards and requirements.

Besides providing a technical view, this book discusses the moral and ethical responsibility of software engineers to ensure that the software they design and program does not cause serious problems. Software engineers tend to be concerned with the technical elegance of their software products and tools, whereas customers tend to be concerned only with whether a software product meets their needs and is easy and ready to use. This book looks at these two sides of software development and the challenges they present for software engineering.

A critical understanding of software engineering empowers developers to choose the right methods for achieving effective results. Effective Methods for Software Engineering guides software programmers and developers to develop this critical understanding that is so crucial in today's software-dependent society.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
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 use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Effective Methods for Software Engineering by Boyd L. Summers,Boyd Summers in PDF and/or ePUB format, as well as other popular books in Computer Science & Information Technology. We have over one million books available in our catalogue for you to explore.

Chapter 1

Introduction

1.1 The Role for Software Engineering

The role of software engineering is to introduce the notion of software as a product designed and built by software engineers using effective methods. Software is important because it is used by a great many people in companies and institutions. Software engineers as programmers should have a moral and ethical responsibility to ensure that the software and design they provide do not cause any serious problems. Software engineers tend to be concerned with the technical elegance of their software products and tools, whereas customers tend to be concerned only with whether a software product meets their needs and is easy and ready to use.
For two years, I was a software programmer for Hercules Missile Defense, where my responsibility was to make sure that the software that is available for implementation and use was programmed and performed according to requirements.
In order to develop, operate, and maintain software engineering capabilities, a major discipline in supporting software programming, design, builds, and delivery to customers should be completely understood. A critical understanding of and a right approach for the methods used for software engineering is necessary to enhance the process and achieve effective programming results.
The right disciplines are identified in Figure 1.1.
image
Figure 1.1 Right approach for software engineering.
It is more than a discussion and a way of life for software engineering to be important related to the standards and requirements for programming and design. Software engineering must comply with these standards and requirements during several stages of the development process. The standards and requirements adopt and deploy the following:
  • ■ Understand the basic concepts, standards, and requirements of software engineering.
  • ■ Select appropriate techniques for programming and designing.
  • ■ Effectively use software engineering tools and applications.
  • ■ Create specifications to comply with the software standards and requirements.
  • ■ Utilize various standards and requirement techniques to identify defects.
  • ■ Manage changes to standards and requirements.

1.2 Software Engineering Process

This section discusses the concept of a software process framework and provides a brief overview of the software engineering Capability Maturity Model Integration (CMMI). It is important to emphasize that CMMI does specify which process model needs to be used for a given project or organization. Rather, it provides a means of assessing how well company and institutional processes allow them to complete and manage and program new software projects.
Software engineering divides the process of software development into distinct phases to improve programming and designing, which is known as “software development life cycle”.
Most modern software engineering processes can be described as Agile. Other methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, and extreme programming.
Software engineering considers “life cycle model” as a more generic term for a category of methodologies and “software engineering development process” as a more specific term to refer to a process chosen by a company or an institution. There are many specific software engineering processes that fit the life cycle model.
Software engineering is the process of envisioning and defining software solutions to one or more sets of problems. One of the main components of software engineering requirement (SER) is part of the software development process that lists specifications used in software engineering. If the software is semi-automated for software engineering, it can help determine those specifications. If the software is completely automated, software engineering may be as simple as describing a planned sequence of events. In either case, a software plan is usually the product of the software engineering and design. Furthermore, software engineering may either be platform-independent or be platform-specific depending on the availability of the technology used for programming processes.

1.3 Software Engineering Planning

It is very important for software engineering programmers to have some basic knowledge of planning and performing software projects. Software engineering planning involves estimating how much time, effort, and resources are required to build a software product. There is enough information provided in the text that allows programmers to estimate their own projects and write their own planning documents. Software engineering programmers should be assigned the task of writing planning documents using appropriate templates as part of their coursework roles.
First, management and software engineering programmers must prepare for planning by identifying contracts and requirements evaluated during a specific period for companies, institutions, military programs, or successful businesses. Then, the identified contracts and requirements require the right criteria derived from associated software plans, documents, procedures, and work instructions.

1.4 Software Applications

Software applications are different from the artifacts produced in most other engineering disciplines. Opportunities for replication without customization are not very common. Software may deteriorate, but it does not wear out. The chief reason for software engineering is that many changes are made to software products over their lifetime. When changes are made, defects may be inadvertently introduced to portions of the software that interact with the portion that was changed. The most popular tools used by the military and defense programs are Rational ClearCase and ClearQuest. I implemented these tools to many Boeing Defense and Space programs to be used by software engineers, software configuration managers, and testers, and I will explain the use of these two tools in Chapter 6.

1.5 Software Engineering Programming

Software engineering programming encompasses preprogramming compilers that effect the translation of languages from a variety of editors to software codes to be used by software engineers in their tools. Software engineers that do programming can be important for software design and delivery. Programming implements design characteristics for the programming language used. There are two design topics used:
  • ■ Data design.
  • Procedural design.
The strategy for software engineering programming is illustrated in Figure 1.2.
image
Figure 1.2 Strategy for software engineering programming.
Economies of the developed software are dependent on software engineering. In recent days, more and more systems are software-controlled and concerned with the methods and tools used for professional software engineering programming and development.
The elements of software engineering are as follows:
  • ■ Software requirements and softwar...

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. List of Figures
  7. List of Tables
  8. Preface
  9. Acknowledgments
  10. Author
  11. 1 Introduction
  12. 2 Software Engineering Peer Reviews
  13. 3 Systems Engineering Capabilities
  14. 4 Systems Engineering Requirements
  15. 5 Software Engineering Problems and Solutions
  16. 6 Rational ClearCase and ClearQuest
  17. 7 C++ Programming
  18. 8 Software Configuration Management
  19. 9 Software Quality Engineering
  20. 10 Verification and Validation
  21. 11 Management Support for Software Engineering
  22. 12 Agile for Software Engineering
  23. 13 Software Engineering Testing Results
  24. 14 Software Programs and Projects Worked
  25. 15 Software Engineering Production
  26. 16 CMMI for Software Engineering
  27. Appendix A: Acronyms and Glossary
  28. Index