100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
logo-home
INF3705 Summary Chapters 1-12, 15 and 18-19 R50,00   Add to cart

Summary

INF3705 Summary Chapters 1-12, 15 and 18-19

1 review
 114 views  9 purchases

This summary has Chapters 1-12, 15 and 18-19. This reduced the pages from 430 to 145. These notes are made for me to study for my exam, do my assignments and such so you can trust that this is for people who are want a reduced version of the book.

Last document update: 2 year ago

Preview 4 out of 145  pages

  • No
  • Chapter 1-12, 15 and 18-19
  • March 31, 2022
  • March 31, 2022
  • 145
  • 2021/2022
  • Summary
book image

Book Title:

Author(s):

  • Edition:
  • ISBN:
  • Edition:
All documents for this subject (39)

1  review

review-writer-avatar

By: lindiswagum41 • 8 months ago

avatar-seller
LinkCroft
Advanced Systems Development
(Information Systems)
INF3705
Chapter 1: Introduction
Software engineering is essential for the functioning of government, society, and national and international
businesses and institutions. We can’t run the modern world without software.
Software systems are abstract and intangible. They are not constrained by the properties of materials, nor are they
governed by physical laws or by manufacturing processes. This simplifies software engineering, as there are no
natural limits to the potential of software. However, because of the lack of physical constraints, software systems
can quickly become extremely complex, difficult to understand, and expensive to change.
There are still many reports of software projects going wrong and of “software failures.” Software engineering is
criticized as inadequate for modern software development. However, in my opinion, many of these so-called
software failures are a consequence of two factors:
• Increasing system complexity
o As new software engineering techniques help us to build larger, more complex systems, the
demands change.
• Failure to use software engineering methods
o It is fairly easy to write computer programs without using software engineering methods and
techniques.

Professional software development
Lots of people write programs. People in business write spreadsheet programs to simplify their jobs. However,
most software development is a professional activity in which software is developed for business purposes, for
inclusion in other devices, or as software products such as information systems and computer-aided design
systems. The key distinctions are that professional software is intended for use by someone apart from its
developer and that teams rather than individuals usually develop the software.
Software engineering is intended to support professional software development rather than individual
programming. It includes techniques that support program specification, design, and evolution, none of which are
normally relevant for personal software development. To help you to get a broad view of software engineering, I
have summarized frequently asked questions about the subject in Figure 1.1.

, Question Answer
What is software? Computer programs and associated documentation. Software
products may be developed for a particular customer or may be
developed for a general market.
What are the attributes of good software? Good software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production from initial
conception to operation and maintenance.
What are the fundamental software Software specification, software development, software
engineering activities? validation and software evolution.
What is the difference between software Computer science focuses on theory and fundamentals; software
engineering and computer science? engineering is concerned with the practicalities of developing
and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of computer
engineering and system engineering? based systems development including hardware, software and
process engineering. Software engineering is part of this more
general process.
What are the key challenges facing Coping with increasing diversity, demands for reduced delivery
software engineering? times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs, 40% are
engineering? testing costs. For custom software, evolution costs often exceed
development costs.
What are the best software engineering While all software projects have to be professionally managed
techniques and methods? and developed, different techniques are appropriate for
different types of system. For example, games should always be
developed using a series of prototypes whereas safety critical
control systems require a complete and analyzable specification
to be developed. There are no methods and techniques that are
good for everything.
What differences has the Internet made to Not only has the Internet led to the development of massive,
software engineering? highly distributed, service-based systems, it has also supported
the creation of an “app” industry for mobile devices which has
changed the economics of software.
Figure 1.1

Software engineers are concerned with developing software products, that is, software that can be sold to a
customer. There are two kinds of software product:
• Generic products
o These are stand-alone systems that are produced by a development organization and sold on the
open market to any customer who is able to buy them.
• Customized (or bespoke) software
o These are systems that are commissioned by and developed for a particular customer. A
software contractor designs and implements the software especially for that customer.

,The critical distinction between these types of software is that, in generic products, the organization that develops
the software controls the software specification. This means that if they run into development problems, they can
rethink what is to be developed. For custom products, the specification is developed and controlled by the
organization that is buying the software. The software developers must work to that specification.
However, the distinction between these system product types is becoming increasingly blurred. More and more
systems are now being built with a generic product as a base, which is then adapted to suit the requirements of a
customer.
When we talk about the quality of professional software, we have to consider that the software is used and
changed by people apart from its developers. Quality is therefore not just concerned with what the software does.
Rather, it has to include the software’s behaviour while it is executing and the structure and organization of the
system programs and associated documentation.
Essential characteristics of a professional software system.

Product characteristic Description
Acceptability Software must be acceptable to the type of users for which it is designed. This
means that it must be understandable, usable, and compatible with other
systems that they use.
Dependability and security Software dependability includes a range of characteristics including reliability,
security, and safety. Dependable software should not cause physical or
economic damage in the event of system failure. Software has to be secure so
that malicious users cannot access or damage the system.
Efficiency Software should not make wasteful use of system resources such as memory
and processor cycles. Efficiency therefore includes responsiveness, processing
time, resource utilization, etc.
Maintainability Software should be written in such a way that it can evolve to meet the changing
needs of customers. This is a critical attribute because software change is an
inevitable requirement of a changing business environment.


Software engineering
Software engineering is an engineering discipline that 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
definition, there are two key phrases:
• Engineering discipline
o Engineers make things work. They apply theories, methods, and tools where these are
appropriate. However, they use them selectively and always try to discover solutions to problems
even when there are no applicable theories and methods.
• All aspects of software production
o Software engineering is not just concerned with the technical processes of software
development. It also includes activities such as software project management and the
development of tools, methods, and theories to support software development.
Engineering is about getting results of the required quality within schedule and budget. This often involves making
compromises—engineers cannot be perfectionists.
In general, software engineers adopt a systematic and organized approach to their work, as this is often the most
effective way to produce high-quality software. However, engineering is all about selecting the most appropriate
method for a set of circumstances, so a more creative, less formal approach to development may be the right one
for some kinds of software. A more flexible software process that accommodates rapid change is particularly
appropriate for the development of interactive web-based systems and mobile apps, which require a blend of
software and graphical design skills.

, Software engineering is important for two reasons:
1. More and more, individuals and society rely on advanced software systems.
2. It is usually cheaper, in the long run, to use software engineering methods and techniques for professional
software systems rather than just write programs as a personal programming project. Failure to use
software engineering method leads to higher costs for testing, quality assurance, and long-term
maintenance.
The systematic approach that is used in software engineering is sometimes called a software process.
1. Software specification, where customers and engineers define the software that is to be produced and
the constraints on its operation.
2. Software development, where the software is designed and programmed.
3. Software validation, where the software is checked to ensure that it is what the customer requires.
4. Software evolution, where the software is modified to reflect changing customer and market
requirements.
Software engineering is related to both computer science and systems engineering.
1. Computer science is concerned with the theories and methods that underlie computers and software
systems, whereas software engineering is concerned with the practical problems of producing software.
2. System engineering is concerned with all aspects of the development and evolution of complex systems
where software plays a major role. System engineering is therefore concerned with hardware
development, policy and process design, and system deployment, as well as software engineering.
As I discuss in the next section, there are many different types of software.
1. Heterogeneity
• Increasingly, systems are required to operate as distributed systems across networks that include
different types of computer and mobile devices.
2. Business and social change
• Businesses and society are changing incredibly quickly as emerging economies develop and new
technologies become available. They need to be able to change their existing software and to
rapidly develop new software.
3. Security and trust
• As software is intertwined with all aspects of our lives, it is essential that we can trust that
software. This is especially true for remote software systems accessed through a web page or
web service interface.
4. Scale Software
• has to be developed across a very wide range of scales, from very small embedded systems in
portable or wearable devices through to Internet-scale, cloud-based systems that serve a global
community.

Software engineering diversity
Software engineering is a systematic approach to the production of software that takes into account practical cost,
schedule, and dependability issues, as well as the needs of software customers and producers. The specific
methods, tools, and techniques used depend on the organization developing the software, the type of software,
and the people involved in the development process. Rather, a diverse set of software engineering methods and
tools has evolved over the past 50 years. However, the SEMAT initiative (Jacobson et al. 2013) proposes that there
can be a fundamental meta-process that can be instantiated to create different kinds of process.
Perhaps the most significant factor in determining which software engineering methods and techniques are most
important is the type of application being developed. There are many different types of application, including:

The benefits of buying summaries with Stuvia:

Guaranteed quality through customer reviews

Guaranteed quality through customer reviews

Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.

Quick and easy check-out

Quick and easy check-out

You can quickly pay through EFT, credit card or Stuvia-credit for the summaries. There is no membership needed.

Focus on what matters

Focus on what matters

Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!

Frequently asked questions

What do I get when I buy this document?

You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.

Satisfaction guarantee: how does it work?

Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.

Who am I buying this summary from?

Stuvia is a marketplace, so you are not buying this document from us, but from seller LinkCroft. Stuvia facilitates payment to the seller.

Will I be stuck with a subscription?

No, you only buy this summary for R50,00. You're not tied to anything after your purchase.

Can Stuvia be trusted?

4.6 stars on Google & Trustpilot (+1000 reviews)

84866 documents were sold in the last 30 days

Founded in 2010, the go-to place to buy summaries for 14 years now

Start selling
R50,00  9x  sold
  • (1)
  Buy now