SWE Chapter 1 (Part 1)
SWE Chapter 1 (Part 1)
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
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
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
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
7. Data collection to collect data from their environment using a set of sensors and send that
systems data to other systems for processing