Skip to content
VUBuddy

CS605 Highlighted Handouts Set 2 by Masters

Software EngineeringII PDF 5 MBUpdated 23 Oct 2026
Highlighted handout CS605 Highlighted Handouts Set 2 by Masters PDF 5 MB
vubuddy.com
Type
Highlighted handout
Course
CS605 Software EngineeringII
Size
PDF 5 MB
Updated
23 Oct 2026
Free download 0 of 3 used today
Download free · 5 MB

You get 3 free files a day on the website. Add the Chrome extension for 30 a day.

Unlimited downloads in the Android app Get it free on Google Play

Preview text

Text from pages 4, 5, 6 of 178. Download the file for all 178 pages.

he design of Ada language was considered as the considerable effort in software software production.

Introduction to Software Engineering

This course is a continuation of the first course on Software Engineering. In order to set the context of our discussion, let us first look at some of the definitions of software engineering.

Therefore Software Engineering encompasses all those things that are used in software production like:

So all those thing that are related to software are also related to software engineering.

Some of you might have thought that how programming language design could be related to software engineering. If you look more closely at the software engineering definitions described above then you will definitely see that software engineering is related to all those things that are helpful in software development. So is the case with programming language design. Programming language design is one of the major successes in last fifty years. T

These days object-oriented programming is widely being used. If programming languages will not support object-orientation then it will be very difficult to implement objectoriented design using object-oriented principles. All these efforts made the basis of software engineering.

Well-Engineered Software

Let’s talk something about what is well-engineered software. Well-engineered software is one that has the following characteristics.

  •  It is cost-effective
  •  It is of good quality
  •  It has acceptable performance
  •  Maintenance
  •  Tools
  •  Software Design Techniques ftware oftware Engineering is the set of processes and tools to develop software. So

S

Programming Language Engineering is the combination of all the tools, techniques, and processes that used in

MC

Q

  •  Programming Language Design
  •  Testing
  •  Development etc.

engineering

  •  It is reliable
  •  It has good user-interface

Software has very close relationship with economics. Every company can build software with unlimited resources but well-engineered software is one that conforms to all characteristics listed above.

When ever we talk about engineering systems we always first analyze whether this is economically feasible or not. Therefore you have to engineer all the activities of software development while keeping its economical feasibility intact.

Therefore well-engineered software has the following characteristics.

But most of the times software engineers ends up in conflict among all these goals. It is also a big challenge for a software engineer to resolve all these conflicts.

The Balancing Act!

Software Engineering is actually the balancing act. You have to balance many things like cost, user friendliness, Efficiency, Reliability etc. You have to analyze which one is the more important feature for your software is it reliability, efficiency, user friendliness or something else. There is always a trade-off among all these requirements of software. It may be the case that if you try to make it more user-friendly then the efficiency may suffer. And if you try to make it more cost-effective then reliability may suffer. Therefore there is always a trade-off between these characteristics of software.

These requirements may be conflicting. For example, there may be tension among the following:

A Software Engineer is required to analyze these conflicting entities and tries to strike a balance.

Challenge is to balance these requirements.

Software Engineers always confront with the challenge to make a good balance of all these tings depending on the requirements of the particular software system at hand. He

  •  Efficiency vs. User-interface
  •  Cost-effective
  •  Maintainable

limited time and budget in a cost-effective way and with good quality

st vs. Efficiency C

MC · Q · MC · Q

build software within The major challenges for a software engineer is that he has to

Provides the required functionality

  •  Reliable
  •  Efficient
  •  User-friendly
  •  Cost vs. Reliability

benefit · t s · o · c

little money it could be improved to a higher degree. . If the quality of your system is not acceptable then with the investment of of software described in the previous section. And should analyze how much weight should all these things get such that it will have acceptable quality, acceptable performance and will have acceptable user-interface.

In some software the efficiency is more important and desirable. For example if we talk about a cruise missile or a nuclear reactor controller that are droved by the software systems then performance and reliability is far more important than the cost-effectiveness and user-friendliness. In these cases if your software does not react within a certain amount of time then it may result in the disaster like Chernobyl accident.

it is an art to come up with such a good balance and that art can be learned from experience.

Law of diminishing returns

In order to understand this concept lets take a look at an example. Most of you have noticed that if you dissolve sugar in a glass of water then the sweetness of water will increase gradually. But at a certain level of saturation no more sugar will dissolved into water. Therefore at that point of saturation the sweetness of water will not increase even if you add more sugar into it.

The law of diminishing act describes the same phenomenon. Similar is the case with software engineering. Whenever you perform any task like improving the efficiency of the system, try to improve its quality or user friendliness then all these things involves an element of cost But after reaching at a certain level of quality the return on investment on the system’s quality will become reduced. Meaning that the return on investment on quality of software will be less than the effort or money we invest. Therefore, in most of the cases, after reaching at a reasonable level of quality we do not try to improve the quality of software any further. This phenomenon is shown in the figure below.

Software Background

cost

Therefore software development is a process of balancing among different characteristics

All CS605 files →
CS605 Software EngineeringII All CS605 handouts, past papers, quizzes and MCQs in one place. Open course page

Get more out of VUBuddy, for free

Android app Free on Google Play
  • Unlimited downloads
  • The explanation behind every MCQ answer
  • Study offline on slow data
Get the Android app
Chrome extension Free on the Chrome Web Store
  • 30 downloads a day instead of 3
  • Sign in and buy Pro Semester here
Add to Chrome

One Pro Semester membership works in both the extension and the app.