0% found this document useful (0 votes)
20 views

Software Engineering (SE2223) : Ibrar Arhsad Ibrar - Arshad@cust - Edu.pk

slide 2

Uploaded by

Qaiser sultan
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Software Engineering (SE2223) : Ibrar Arhsad Ibrar - Arshad@cust - Edu.pk

slide 2

Uploaded by

Qaiser sultan
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Software Engineering

(SE2223)
Ibrar arhsad
[email protected]
SOFTWARE

• Computer programs and associated documentation such as


requirements, design models and user manuals
• Software products may be developed for a particular customer or may
be developed for a general market
• Software products may be
 Generic - developed to be sold to a range of different customers e.g. PC
software such as Excel or Word
 Bespoke (custom) - developed for a single customer according to their
specification
• New software can be created by developing new programs, configuring
generic software systems or reusing existing software
SE 2223 Software Engineering 2
SOFTWARE ENGINEERING

• Software engineering is an engineering discipline that is


concerned with all aspects of software production
• Software engineers should adopt a systematic and
organised approach to their work and use appropriate
tools and techniques depending on the problem to be
solved, the development constraints and the resources
available

SE 2223 Software Engineering 3


COMPUTER SCIENCE VS SOFTWARE ENGINEERING

• Computer science is concerned with theory and


fundamentals
• Software engineering is concerned with the practicalities of
developing and delivering useful software
• Computer science is about taking complex problems and
deriving a solution from mathematics, science and
computational theory
• Software engineering is very much focused around designing,
developing and documenting beautiful, complete, user-
friendly software
SE 2223 Software Engineering 4
SYSTEM ENGINEERING VS SOFTWARE ENGINEERING

• System engineering is concerned with all aspects of computer-


based systems development including hardware, software and
process engineering
• Software engineering is part of this process concerned with
developing the software infrastructure, control, applications
and databases in the system
• System engineers are involved in system specification,
architectural design, integration and deployment

SE 2223 Software Engineering 5


SOFTWARE COST

• Roughly 60% of costs are development costs, 40% are testing


costs. For custom software, evolution costs often exceed
development costs
• Costs vary depending on the type of system being developed
and the requirements of system attributes such as
performance and system reliability
• Distribution of costs depends on the development model that
is used

SE 2223 Software Engineering 6


SOFTWARE COST CONT..

• Software costs often dominate computer system costs


 The costs of software on a PC are often greater than the hardware
cost
• Software costs more to maintain than it does to develop
 For systems with a long life, maintenance costs may be several times
development costs
• Software engineering is concerned with cost-effective
software development

SE 2223 Software Engineering 7


SOFTWARE PROCESS ACTIVITIES

• Software specification, where customers and software


engineers define the software that is to be produced and the
constraints on its operation
• Software development, where the software is designed and
programmed
• Software validation, where the software is checked to ensure
that it is what the customer requires
• Software evolution, where the software is modified to reflect
changing customer and market requirements

SE 2223 Software Engineering 8


PRODUCT SPECIFICATION

• Generic products
 The specification of what the software should do is owned by the
software developer and decisions on software change are made by
the developer
• Customized products
 The specification of what the software should do is owned by the
customer for the software and they make decisions on software
changes that are required

SE 2223 Software Engineering 9


SOFTWARE PRODUCT

• Generic products
 Stand-alone systems that are marketed and sold to any customer who
wishes to buy them
 Examples – PC software such as graphics programs, project management
tools; CAD software; software for specific markets such as appointments
systems for dentists
• Customized products
 Software that is commissioned by a specific customer to meet their own
needs
 Examples – embedded control systems, air traffic control software, traffic
monitoring systems

SE 2223 Software Engineering 10


SOFTWARE APPLICATION TYPES
• Stand-alone applications
 These are application systems that run on a local computer, such as a PC
 They include all necessary functionality and do not need to be connected to a
network
• Interactive transaction-based applications
 Applications that execute on a remote computer and are accessed by users
from their own PCs or terminals
 These include web applications such as e-commerce applications
• Embedded control systems
 These are software control systems that control and manage hardware devices
 Numerically, there are probably more embedded systems than any other type
of system

SE 2223 Software Engineering 11


SOFTWARE APPLICATION TYPES CONT..

• Batch processing systems


 These are business systems that are designed to process data in large batches
 They process large numbers of individual inputs to create corresponding
outputs
• Entertainment systems
 These are systems that are primarily for personal use and which are intended to
entertain the user
• Modeling and simulation
 These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects

SE 2223 Software Engineering 12


SOFTWARE APPLICATION TYPES CONT..

• Data collection systems


 These are systems that collect data from their environment using a
set of sensors and send that data to other systems for processing.
• Systems of systems
 These are systems that are composed of a number of other software
systems

SE 2223 Software Engineering 13


CASE

• Computer Aided Software Engineering


 Software systems that are intended to provide automated
support for software process activities
 Examples
• ERwin
• Visual UML
• Ecore Diagram Editor
• IBM Rational Rose

SE 2223 Software Engineering 14


SOFTWARE QUALITY ATTRIBUTES

• The software should deliver the required functionality and


performance to the user and should be maintainable,
dependable and acceptable
• Maintainability
 Software should be written in such a way so 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

SE 2223 Software Engineering 15


SOFTWARE QUALITY ATTRIBUTES CONT..

• 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
 Malicious users should not be able to access or damage the
system

SE 2223 Software Engineering 16


SOFTWARE QUALITY ATTRIBUTES CONT..

• Efficiency
 Software should not make wasteful use of system resources such as
memory and processor cycles
 Efficiency therefore includes responsiveness, processing time, memory
utilization, etc.
• 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

SE 2223 Software Engineering 17


ISSUES THAT AFFECT SOFTWARE

• Heterogeneity
 Sometimes, 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

SE 2223 Software Engineering 18


ISSUES THAT AFFECT SOFTWARE CONT..

• Security and trust


 As software is intertwined with all aspects of our lives, it is essential
that we can trust that software
• 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

SE 2223 Software Engineering 19


PROFESSIONAL AND ETHICAL RESPONSIBILITY

• Software engineering involves wider responsibilities than


simply the application of technical skills
• Software engineers must behave in an honest and
ethically responsible way if they are to be respected as
professionals
• Ethical behaviour is more than simply upholding the law

SE 2223 Software Engineering 20


ISSUES OF PROFESSIONAL RESPONSIBILITY

• Confidentiality
 Engineers should normally respect the confidentiality of their
employers or clients irrespective of whether or not a formal
confidentiality agreement has been signed.
• Competence
 Engineers should not misrepresent their level of competence.
They should not knowingly accept work which is outwit their
competence.

SE 2223 Software Engineering 21


ISSUES OF PROFESSIONAL RESPONSIBILITY CONT..

• Intellectual property rights


 Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc.
 They should be careful to ensure that the intellectual property of
employers and clients is protected
• Computer misuse
 Software engineers should not use their technical skills to misuse
other people’s computers
 Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of
viruses)

SE 2223 Software Engineering 22

You might also like