0% found this document useful (0 votes)
49 views20 pages

SWE Chapter 1 (Part 1)

This document provides an overview of an introductory software engineering course. It discusses key topics like software processes, attributes, engineering fundamentals, and diversity of applications. The lecture introduces software engineering principles, challenges, and their increasing relevance due to trends like web and cloud computing.

Uploaded by

fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views20 pages

SWE Chapter 1 (Part 1)

This document provides an overview of an introductory software engineering course. It discusses key topics like software processes, attributes, engineering fundamentals, and diversity of applications. The lecture introduces software engineering principles, challenges, and their increasing relevance due to trends like web and cloud computing.

Uploaded by

fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

SWE 202: Introduction to

Software Engineering
Chapter 1: Course Introduction
Lecturer: Rand Albrahim
Topics covered
 Professional software development
 What is meant by software engineering?
 Software engineering ethics
 A brief introduction to ethical issues that affect software
engineering
 Case studies
 An introduction to 3 examples that are used in later
chapters.
 Lecture 1
Software engineering

 The economies of all developed nations are dependent on software.


 More and more systems are software controlled.
 What is software engineering?
 Theories
 Methods
 Tools for professional software development
Software costs
 The software often cost more than the hardware.
 The software maintenance cost more that the software
development.
 Software engineering is concerned with cost-effective software
development.
Software products
1. Generic products: stand-alone systems intended to be sold to any
customer.
 E.g. PC software such as project management tools; CAD software;
software for specific markets such as appointments systems for
dentists.
 The specification of what the software should do is owned by the
software developed
2. Customized products: commissioned by a specific customer to
meet their own needs.
 E.g. traffic monitoring systems and embedded control systems.
 The specification is own by the customer and they make decisions on
software changes.
Frequently asked questions about SWE
Question Answer

What is software? Computer programs and associated documentations. It may be developed for a particular
customer or for general market.
What are the attributes of a good software? • Deliver the required functionality.
• Maintainable
• Dependable
• Usable
What is software engineering? A discipline that is concerned with all aspects of software production. From early stages of
system specification to maintenance after it has gone into use
What are the fundamental software • Software specification
engineering activities? • Software design
• Software development
• Software validation
• Software evolution
What is the difference between software CS focuses on theory and fundamentals, SWE is concerned with the practicalities of developing
engineering(SWE) and computer science and delivering useful software.
(CS)?
What is the difference between software SE is concerned with all aspects of computer-based systems development including hardware,
engineering (SWE) and System engineering software and process engineering, SWE is part of this general process
(SE)?
Continued
Question Answer

What are the key challenges • Coping with the increasing diversity.
facing software engineering? • Reduce delivery time.
• Develop trust-worthy software.
What are the costs of software • 60% development costs
engineering? • 40%testing cost
• For custom software, evolution costs often exceed development cost.

What are the best software Different techniques are appropriate for different types of systems.
engineering techniques and e.g. games should be developed using a series of prototype whereas safety control
method? critical systems require a complete and analyzable specification to be developed.

What difference has the web It has led to the availability of software services and the possibility of developing
made to software engineering? highly distributed service-based systems.
Web-based systems development has led to important advances in programming
languages and software reuse.
Essential attributes of good software
Product characteristic Description

Maintainability Written in a way so that it can evolve to meet changes by customer


Dependability It includes:
• Reliability
• Security: malicious users should not be able to access and damage the system.
• Safety: does not cause physical or economic damage.

Efficiency It includes:
• Responsiveness
• Processing time
• Memory utilization
Acceptability Acceptable to the type of users for which it is designed
It includes:
• Understandable
• Usable
• Compatible with other systems that they use
 Lecture 2
Software engineering
 Software specification: where the customer and engineers define the
software that is to be produced and the constraints on its operation.
 Software design: software is designed
 Software development: where the software programed.
 Software validation: where the software is checked to ensure that it meets
the customer requirements.
 Software evolution: where the software is modified to reflect changing
customer and market requirement.
General issues that affect most software
 Heterogeneity
 when a system operate as a distributed system across networks that
include different types of computers and mobile devices.
 Business and social change
 As emerging economies develop, and new technologies become
available.
 Security and trust
 Software has become in all aspects of our lives, it is essential that we
can trust that software.
Software engineering diversity

 There are different types of software and there is no universal set of


techniques that is applicable to all these.
 The software engineering methods and tools used depend on:
 the type of application being developed
 The requirements of the customer
 The background of the development team
Application types
Application type Description

1. Stand-alone systems • Run on local computer such as PC


• Include all necessary functionality
• Do not need to be connected to a network

2. Interactive transaction- • Execute on a remote computer and accessible by users from their own PCs
based • E.g. web applications such as e-commerce applications
systems

3. Embedded control The software that control hardware devices. Numerically, there are probably more
systems embedded systems that any other type of systems.

4. Batch processing Business systems that are designed to process data in large batches, process large
systems number of individual input and create corresponding output.
Application types (continued)
Application Description

5. Entertainment Intended to entertain user


systems

6. Modeling and Developed by scientists and engineers to model physical processes or


simulation systems situations, which include many, separate, interacting objects.

7. Data collection to collect data from their environment using a set of sensors and send that
systems data to other systems for processing

8. Systems of systems Composed of a number of other software systems.


Software engineering fundamentals
 Some fundamentals apply to all types of software systems, which include:
 Developing the system using a managed and understood development
process. (Of course, different processes are used for different types of
software).
 Dependability and performance.
 Understanding and managing the software specification and requirements.
 Reusing software that has already been developed where appropriate rather
than writing new software.
Software engineering and the web
 Organizations are increasingly developing web-based systems rather than
local systems.
 Web services allow application functionality to be accessed over the web.
 Cloud computing is an approach to the provision of computer services where
applications run remotely on the “cloud”
 Users do not buy software but pay according to use.
Web software engineering

 Software reuse is the dominant approach for constructing web-based systems


(assembled from pre-existing software components and systems)
 Web-based systems should be developed and delivered incrementally.
 User interfaces are constrained by the capabilities of web browsers
 Web-based systems are complex distributed systems, but the fundamental principles of
software engineering are as applicable to them as they are to any other types of system.
Key points

 Software engineering is a discipline that is concerned with all aspects of


software production.
 Essential software attributes are:
 Maintainability
 Dependability
 Security
 Efficiency
 acceptability
Key points (continued)

 The high-level software processes are:


 Specification
 design
 Development
 Validation
 Evolution
 The fundamental notions of software engineering are universally applicable to all
types of system development.
 Different types of systems require different techniques for development

You might also like