Chapter summaries for INF3705 - Advanced Systems Development.
All prescribed chapters covered in the summaries. Headings with page references, as well as Figures / Photos from the textbook included (also with notations and page references).
Master Your Classes in 2024 with [Software Engineering, Sommerville,10e] Solutions Manual
INF3705 ASSIGNMENT 1 2023 ANSWERS AND GUIDELINES
All for this textbook (13)
Written for
University of South Africa (Unisa)
INF3705 - Advanced Systems Development (INF3705)
All documents for this subject (39)
1
review
By: lindiswagum41 • 10 months ago
Seller
Follow
dylanainslie
Reviews received
Content preview
31/01/2022, 21:24 Chapter 01
1.1 Professional Software Development: (20)
Professional software is used by someone other than the developer and is developed by teams, instead of one
person
Software engineering includes techniques that support program specification, design and evolution
Software is not just computer programs, but include assiciated documentation, liraries, support websites and
configuration data needed to make the program usefull.
Professional software includes:
- system documentation: describes structure of the system
- user documentation: explanation on how to use the system
- websites for users to download recent product information
Software product: software that can be sold to a customer
2 Types of software products:
1. Generic Products
Stand-alone systems that are produced by a development organisation and sold on the open market to any
customer able to buy them
> the developer controls the software specification
2. Customised (bespoke) software
Systems commissioned by and developed for a particular customer
Software contractor designs and implements the software for THAT customer
> customer controls the specification and the developers must work to that specification
Quality of professional software:
- determined by the system's behaviour while executing and the structure and organisation of the system
programs and associated documentation
- this is reflected in the software's quality or non-functional attributes
Essential attributes of good software (Figure 1.2) p23:
- Acceptability (understandable, usable and compatible with other systems used by the customer)
- Dependability and Security (does not cause loss in the event of system failure, ALSO no malicious users can
access or damage the system)
- Effeciency (not make wasteful use of system resources)
- Maintainability (software must be written in a way that can have it evolve over time)
1.1.1 Software Engineering: (22)
Software Engineering: 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 production.
- 2 Key phrases in this definition:
1. Engineering discipline:
Engineers make things work.
They apply theories, methods and tools where they are approprate, but they use them selectively
They always try to discover solutions to problesm even with no applicable theories and methods
They know to work within organisational and financial constraints
file:///C:/Users/User/Desktop/Unisa/Advanced Systems Development - INF3705/INF3705 - Advanced Systems Development/chapter 01/page.html 1/5
,31/01/2022, 21:24 Chapter 01
2. All aspects of software production:
Software engineering is not just concerned with technical processes of software development
It includes activities such as project management and the development of tools, methods and theories to
support software development
Engineering is about getting results of the required quality within the schedule and budget
Most effective way to produce high-quality software: adopt a systematic and organised approach to software
engineering
Software Engineering importance:
1. More dependancy on advanced software systems. Reliable and trustworthy systems must be produced
economically and quickly
2. Software engineering techniques and methods for professional systems are cheaper than writing programs as
personal projects (failure to use the software engineering technique leads to higher costs for testing, quality
assurance and long-term maintenance)
Software Process: The systematic approach used in software engineering (p24)
- a sequence of activities that lead to the production of a software product
Four fundamental activities in all software processes (24):
1. Software specification customer & engineers define the software to be produced, and the constraints on its
operation
2. Software Development software is designed and programmed
3. Software validation software is checked to ensure it meets customer's request
4. Software evolution software is modified to reflect changing customer and market requirements
Computer Science: concerned with the theories and methods that underlie computers and software systems
System engineering: concerned with all aspects of the development and evolution of complex systems where
software plays a major role (concerned with the hardware, policy and process design and system deployment and
software engineering)
Four related issues that affect different types of software: (24)
1. Heterogenity
Systems are required to operate as distributed systems across networks which include different devices
(PC, tablet, cells)
Software must be integrated with older legacy type systems written in different programming languages
Techniques must be developed for building dependable software that is flexible (to cope with the
heterogeneity)
2. Business and social change
Business and society must be able to change their existing software to rapidly develop new software
Many traditional software engineering techniques are time consuming and delivery of new systems take
longer than planned
These techniques must evolve to deliver value to customers in reduced time
3. Secuirty and trust
Malactors must not be able to succesfully attack our software & that information security is maintained
file:///C:/Users/User/Desktop/Unisa/Advanced Systems Development - INF3705/INF3705 - Advanced Systems Development/chapter 01/page.html 2/5
,31/01/2022, 21:24 Chapter 01
4. Scale
Software must scale from small embedded systems, to wearable devices, to Internet-scale, cloud-based
systems that serve global communities
1.1.2 Software Engineering diversity: (25)
Software Engineering: 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.
- specific methods, tools and techniques used depend on:
The organisation developing the software
Type of software
People involved in the development process
- SEMAT initiative proposes that there can be a fundamental meta-process that can be instantiated to create
different kinds of process
Most Significant Factor for determining which software engineerging method the most important is the TYPE
OF APPLICATION BEING DEVELOPED
Types of aplication: (26)
- Stand-alone application
systems that run on a local device (PC, cell phone) that include all the necessary functionality and may not
need to be connected to a network
- Interactive Transaction-based applications
applications that execute on a remote computer that is accessed by users from their local device
this class of systems include business systems, where businesses provides access to its system through a
web browser or special purpose client program and cloud-based services (mail)
usually incorporate large data stores that is accessed and updated in each transaction
- Embedded control systems
software that controls and manage hardware devices
- Batch Processing Systems
business systems designed to process data in large batches
these process large amounts of individual inputs to create corresponding outputs
- Entertainment Systems
systems for personal use intended to entertain the user
includes games that run on special purpose consoles
file:///C:/Users/User/Desktop/Unisa/Advanced Systems Development - INF3705/INF3705 - Advanced Systems Development/chapter 01/page.html 3/5
, 31/01/2022, 21:24 Chapter 01
- Systems for modeling and simulation
systems developed by scientists and engineers to model physical processes or situations
computationaly intensive and require high-performance parallel systems for execution
- Data collection and analysis systems
systems that collect data from their environment and send it to other systems for processing
system may need to interact with sensors (and may be installed in a hostile environment inside an engine)
or in a remote location
Big-Data Analysis may involve cloud-based systems carrying out statistical analysis and looking for
relationships in the collected data
- Systes of systems
systems used in enterprises and other large organisations that are composed of a number of other software
systems
some may be generic software programs such as ERP (Enterprise Resource Planning) software and others
may be specially written for that environment
Each type of system requires specialised software engineering techniques because of the differing characteristics
of each system
Software Engineering Fundamentals that apply to all types of software systems: (27)
1. They should be developed using a managed and understood development process.
2. Dependability and performance are important for all types of systems
3. Understanding and managing the software specification and requirements
4. Existing resources should be re-used effectively (re-use)
1.1.3 Internet Software Engineering: (28)
When systmes developed in web browsers could run small programs and do local processing, software was
being written and deployed on a web server
- reduces cost (cheaper to upgrade software & no need to install software on local PC's, cheaper development of
UI)
Lead to Software as a Service (SaaS)
Software now runs on remote "clouds" instead of web servers and is accessed over the internet
Computing Cloud: a large number of linked computer systems that is shared by many users
Users do not buy software, but rather pay for amount of software used (licenses) or get free software with ads.
Affects on software engineering for web-based systems: (29)
- software re-use is the dominant approach for construting web-based systems
- web-based systems are developed incrementally (as it is impractical to specify all the requirements in advance)
- software may be implemented using service-orientated software engineering where software components are
stand-alone web services
- interface development technology have emerged that support the creation of rich interfaces within the web
browser
file:///C:/Users/User/Desktop/Unisa/Advanced Systems Development - INF3705/INF3705 - Advanced Systems Development/chapter 01/page.html 4/5
The benefits of buying summaries with Stuvia:
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
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
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 these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller dylanainslie. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.47. You're not tied to anything after your purchase.