• Complain

Laurie A Williams - An Introduction to Software Engineering

Here you can read online Laurie A Williams - An Introduction to Software Engineering full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2013, publisher: Williams Publishing, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Laurie A Williams An Introduction to Software Engineering
  • Book:
    An Introduction to Software Engineering
  • Author:
  • Publisher:
    Williams Publishing
  • Genre:
  • Year:
    2013
  • Rating:
    5 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

An Introduction to Software Engineering: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "An Introduction to Software Engineering" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

This book is an introduction to software engineering and practice addresses bothagile and plan-driven software engineering. The book is particularly intended foran introduction to software engineering undergraduate course. The title indicates it is a partial introduction because only one chapter, an appendix on UML, deals with design. Other areas of introductory software engineering are covered quite extensively, including software reviews, pair programming, testing, static analysis, requirements engineering, maintenance, and risk management.

Laurie A Williams: author's other books


Who wrote An Introduction to Software Engineering? Find out the surname, the name of the author of the book and a list of all author's works by series.

An Introduction to Software Engineering — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "An Introduction to Software Engineering" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Contents

An Introduction to Software Engineering

Software engineering is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. In this chapter, we will explain the following:

  • the definition of computer science and software engineering and how the two are different
  • how software engineering is similar to other engineering disciplines and what that means for software engineers
  • the unique challenges of software engineering
  • software development models and processes and their component parts, software development practices

Software systems are perhaps the most intricate and complex... of the things humanity makes. Fred Brooks []

As a discipline, software engineering has progressed very far in a very short period of time, particularly when compared to classical engineering fields (like civil or electrical engineering). In the early days of computing, not much more than 50 years ago, computerized systems were quite small. Most of the programming was done by scientists trying to solve specific, relatively small mathematical problems. Today we often build monstrous systems, in terms of size and complexity. And, the visibility of the software has transitioned from mainly scientists and software developers to the general public of all ages. Today, software is working both explicitly and behind the scenes in virtually all aspects of our lives, including the critical systems that affect our health and well-being. [] Essentially every person encounters software throughout their day from cars to phones to television to the Internet.

Despite our rapid progress, the software industry is considered by many to be in a crisis. Some 40 years ago, the term Software Crisis] While the industry can celebrate that software touches nearly all aspects of our daily lives, we can all relate to software availability dates (such as computer games) as moving targets and to computers crashing or locking up. We have many challenges we need to deal with as we continue to progress into a more mature engineering field, one that predictably produces high-quality products.

    1. 1The Engineering of Software

Until this point in your academic career, you have likely focused on being a computer scientist. Consider the definition of computer science developed by an ACM]:

The discipline of computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, What can be (efficiently) automated?

Likely, the main focus of your studies and programming thus far have been to get the computer to do what you want it to do (i.e. transform information), as efficiently as possible. Professionals in the computing industry today must consider many other issues in using computer science to engineer software-intensive. Consider this definition of engineering proposed by Robert Baber (emphasis added) []:

... the systematic and regular application of scientific and mathematical knowledge to the design, construction, and operation of machines, systems, and so on of practical use and, hence, of economic value . Particular characteristic of engineers is that they take seriously their responsibility for correctness, suitability, and safety of the results of their efforts. In this regard they consider themselves to be responsible to their customer (including their employers where relevant), to the users of their machines and systems, and to the public at large.

Computer science is one of the disciplines that provide a theory basis for the profession of software engineering. (Some others are psychology, economics, and management.) The above definition of engineering lays out two important issues involved in transitioning from computer science to software engineering. The issues underlined in the above definition of engineering are further discussed below:

  • Practical use, economic value. Engineers need to produce products that customers actually want and are willing to pay real money for. These products need to help people do the things they need to do. Listening to the customer is of prime importance. Engineers also need to produce these products the customer wants as economically as possible. The best product in the world wont sell if its too expensive. And, if we develop products using inappropriate practices and processes, our products will be too expensive. As engineers, we need to build valuable product for our customers.
  • Responsibility for correctness, suitability, and safety. Engineers are ethically obligated to ensure their programs are correct and suitable for their customers. In fact, the software engineering code of ethics [] authored by professional society ACM2 states that software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession for the benefit and protection of the health, safety and welfare of the public. In some instances, our programs have safety critical implications, where people might die if a program has errors. In other cases, whole businesses could be at risk if a program is not correct or contains security vulnerabilities that enable attackers to steal or delete data. We are sure that you have always tried to get your programs to be correct and suitable in the past. The new dimension now is that you must always consider your responsibility and obligation to your customer. The work you do could impact their safety, their business... and their well being!
    1. 2Software Development

In addition to the ACM professional society, our field had a second professional society IEEE. IEEE]. The systematic, disciplined, quantifiable approach is often termed a software process model (in the general sense) or a software development process (in the specific sense). Specific software development processes consist of a particular set of software development practices, which are often performed by the software engineer in a predetermined order. Software development practices, models, and methodologies will be introduced in the next two subsections.

  1. 2.1Software Development Practices

Engineers adopt a systematic and organized approach to their work. As you learn software engineering, you should be exposed to many specific practices (or techniques) for developing software. By software developmentpractice we refer to a requirement employed to prescribe a disciplined, uniform approach to the software development process [], in other words, a well-defined activity that contributes toward the satisfaction of the project goals; generally the output of one practice becomes the input of another practice. As a software engineer, you should learn as many different types of software development practices as possible. Then, based upon the project and the people on your team, you can decide the right set of practices to take out of your practice bag to use on that particular project. In this book, you will learn practices you can deposit in your bag and about selecting an appropriate set of practices for a project and a team.

First, we provide one list of software development practices (but this list may vary depending upon the process and its associated terminology):

  • Requirements engineering
  • System analysis
  • High-level design/architecture
  • Low-level design
  • Coding
  • Integration
  • Design and code reviews
  • Testing
  • Maintenance
  • Project management
Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «An Introduction to Software Engineering»

Look at similar books to An Introduction to Software Engineering. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «An Introduction to Software Engineering»

Discussion, reviews of the book An Introduction to Software Engineering and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.