0% found this document useful (0 votes)
16 views22 pages

ASE Ch1-Intro

Uploaded by

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

ASE Ch1-Intro

Uploaded by

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

Chapter 1 – INTRODUCTION

Chapter 1 Introduction 1
Topics covered

 Professional software development


 What is meant by software engineering.
 Ethical & sustainable software engineering
 A brief introduction to ethical issues that affect software
engineering.

Ch1. Introduction 2
What is software?

 Software =
Computer program(s) +
associated documentation
 Software products may be
developed for
 a particular customer
(bespoken)
 or a general market
(market driven)

Ch1. Introduction 3
SOFTWARE IS COMPLEX

 Complex  complicated
 Complex = composed of many simple parts
related to one another
 Complicated = not well understood, or explained

Ch1. Introduction 4
TYPE OF SOFTWARE

Ch1. Introduction 5
Software engineering using appropriate theories
and methods to solve
problems bearing in mind
organizational and
financial constraints.

Software engineering is an engineering discipline that


is concerned with all aspects of software production

technical process of development,


project management, the development
of tools, methods etc.

Aug 2019 Ch1. Introduction 6


Who is in charge for the specification?

 Product specification at initial stage and the changes


later
 Generic products
 The software engineering team
 Customized products
 The customer

Agile value. Working software


over Comprehensive document

Ch1. Introduction 7
Good software?

 “Good” is a general attribute:


 of a high quality or level
 to be desired or approved of
 Break-down “good” quality into required quality
attributes:
 performance
 maintainable
 dependable
 usable

Ch1. Introduction 8
Importance of software engineering

 Quality can mean the difference between excellence


and disaster
 Airbus A400M Atlas crash in 2015, 4 killed
Importance of software engineering

 8/2016: Security breach with Bitcoin cost 72 mil. Usd lost


in market
Importance of software engineering

 We need:
 Reliability & trustworthy products
 Delivering on time
 Reusable
 Cost effective in changing/evolution

 More?

Ch1. Introduction 11
Software costs

 Software costs ~ computer system costs


 Costs to maintain > to develop

 Software engineering is concerned with cost-effective


software development.

Ch1. Introduction 12
Fundamental Software engineering activities

Ch1. Introduction 13
General issues that affect most software

 Heterogeneity
 Increasingly, systems are required to operate as distributed
systems across networks that include different types of computer
and mobile devices.
 Business and social change
 Business 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.
 Security and trust
 As software is intertwined with all aspects of our lives, it is
essential that we can trust that software.

Ch1. Introduction 14
Software diversity

 Many different types of software system


 Stand-alone
 Transaction-based
 Embedded system  no universal set
 Batch processing of software
 Entertainment techniques
 Modeling and simulation
applicable to all!
 System of systems
 Software development is context-specific
 Large companies
 SME
 Startups
 In-house
 Outsourcing
Ch1. Introduction 15
Software engineering fundamentals

 Some fundamental principles apply to all types of


software system:
 Use a managed and understood development process
 Consider dependability and performance
 Understand and manage the software specification and
requirements
 Try reuse software

Ch1. Introduction 16
The Software Development Life Cycle (SDLC)

Ch1. Introduction 17
Software engineering and sustainability

Ch1. Introduction 18
Software engineering and sustainability -
Example

 Green Software Engineering is an emerging


discipline at the intersection of climate science,
software practices and architecture, electricity
markets, hardware and data centre design.

 Green Software Engineering concerns the design,


development and operation of software-intensive
products in a way that reduces pollution, promotes
sustainability, and minimizes risk to human health
and the environment without sacrificing economic
viability and efficiency

Ch1. Introduction https://principles.green/ 19


Software engineering and sustainability -
Example

 Carbon: Build applications that are carbon efficient.


 Electricity: Build applications that are energy efficient.
 Carbon Intensity: Consume electricity with the lowest carbon
intensity.
 Embodied Carbon: Build applications that are hardware efficient.
 Energy Proportionality: Maximize the energy efficiency of hardware.
 Networking: Reduce the amount of data and distance it must travel
across the network.
 Demand Shaping: Build carbon-aware applications.
 Measurement & Optimization: Focus on step-by-step optimizations
that increase the overall carbon efficiency.

Ch1. Introduction https://principles.green/ 20


Summary

 Software engineering is an engineering discipline that is


concerned with all aspects of software production.
 Essential software product attributes are maintainability,
dependability and security, efficiency and acceptability.
 The high-level activities of specification, development,
validation and evolution are part of all software
processes.
 The fundamental notions of software engineering are
universally applicable to all types of system
development.

Ch1. Introduction 21
Summary (cont.)

 There are many different types of system and each


requires appropriate software engineering tools and
techniques for their development.
 The fundamental ideas of software engineering are
applicable to all types of software system.
 Sustainability is an emerging concern in all engineering
discipline, including software development and
operation.

Ch1. Introduction 22

You might also like