0% found this document useful (0 votes)
23 views24 pages

Lecture # 2

Software Engineering Fundamentals

Uploaded by

aleenashahzad03
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)
23 views24 pages

Lecture # 2

Software Engineering Fundamentals

Uploaded by

aleenashahzad03
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/ 24

Lecture # 2

An overview of software
engineering
Software engineering fundamentals
(CSC-2073)
Futureof softwareindustry

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


– More and more systems are software controlled
– Software engineering is concerned with theories, methods and tools for professional
software development.
– Expenditure on software represents a significant portion of gross national product in
all developed countries.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 2
Cost?

– 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.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 3
Frequentlyasked questionsaboutsoftware engineering

What are the attributes of good software? What are the fundamental software
engineering activities?
– Good software should deliver the required – Software specification, software development,
functionality and performance to the user and software validation and software evolution.
should be maintainable, dependable and usable.
What is the difference between software
What is the difference between software engineering and system engineering?
engineering and computer science?
– System engineering is concerned with all aspects
– Computer science focuses on theory and of computer-based systems development
fundamentals; software engineering is concerned including hardware, software and process
with the practicalities of developing and engineering. Software engineering is part of this
delivering useful software. more general process.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 4
Frequentlyasked questionsaboutsoftware engineering
What are the key challenges facing What are the costs of software
software engineering? engineering?
– Coping with increasing diversity, demands – Roughly 60% of software costs are development
for reduced delivery times and developing costs, 40% are testing costs. For custom
trustworthy software. software, evolution costs often exceed development
What are the best software engineering costs.
techniques and methods? What differences has the web made to
– While all software projects have to be
software engineering?
professionally managed and developed, different
techniques are appropriate for different types – The web has led to the availability of software
of system. For example, games should always be services and the possibility of developing highly
developed using a series of prototypes whereas distributed service-based systems. Web-based
safety critical control systems require a systems development has led to important
complete and analyzable specification to be advances in programming languages and software
developed. You can’t, therefore, say that one reuse.
method is better than another.
Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 5
Software products

Generic products Customized products


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

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 6
Software specification

Generic products specification Customized products specification


– The specification of what the software – The specification of what the software
should do is owned by the software should do is owned by the customer for the
developer and decisions on software change software and they make decisions on
are made by the developer. software changes that are required.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 7
Essentialattributesof good software

Maintainability Dependability and security


– Software should be written in such a way so – Software dependability includes a range of
that it can evolve to meet the changing needs characteristics including reliability, security
of customers. This is a critical attribute and safety. Dependable software should not
because software change is an inevitable cause physical or economic damage in the
requirement of a changing business event of system failure. Malicious users
environment should not be able to access or damage the
system.
Efficiency
– Software should not make wasteful use of Acceptability
system resources such as memory and – Software must be acceptable to the type of
processor cycles. Efficiency therefore includes users for which it is designed. This means
responsiveness, processing time, memory that it must be understandable, usable
utilization, etc. and compatible with other systems that they
use.
Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 8
Industrialperspective

Engineering discipline All aspects of software production


– Using appropriate theories and methods – Not just technical process of development.
to solve problems bearing in mind Also, project management and the
organizational and financial constraints. development of tools, methods etc. to
support software production

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 9
Why software engineeringis important?

– More and more, individuals and society rely on advanced software systems. We need to
be able to produce reliable and trustworthy systems economically and quickly.
– It is usually cheaper, in the long run, to use software engineering methods and techniques
for software systems rather than just write the programs as if it was a personal
programming project. For most types of system, most costs are the costs of changing the
software after it has gone into use.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 10
Software process activities

– Software specification, where customers and 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.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 11
Generalissues thataffect software

Heterogeneity Business and social change


– Increasingly, systems are required to operate – Business and society are changing
as distributed systems across networks incredibly quickly as emerging economies
that include different types of computer develop and new technologies become
and mobile devices. available. They need to be able to change
their existing software and to rapidly develop
Scale new software.
– Software has to be developed across a
Security and trust
very wide range of scales, from very
small embedded systems in portable or – As software is intertwined with all aspects of
wearable devices through to Internet-scale, our lives, it is essential that we can trust that
cloud-based systems that serve a global software
community

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 12
What is legacysoftware?

Legacy software systems were developed decades ago and have been continually modified to
meet changes in business requirements and computing platforms. The proliferation of such
systems is causing headaches for large organizations who find them costly to maintain and
risky to evolve.
– The software must be adapted to meet the needs of new computing environments
or technology.
– The software must be enhanced to implement new business requirements.
– The software must be extended to make it interoperable with other more modern systems
or databases.
– The software must be re-architected to make it viable within an evolving
computing
– environment.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 13
Application types

Stand-alone applications Interactive transaction-based applications


» These are application systems that run on a » Applications that execute on a remote computer
local computer, such as a PC. They include all and are accessed by users from their own PCs or
necessary functionality and do not need to be terminals. These include web applications such
connected to a network. as e-commerce applications.

Embedded control systems Batch processing systems


» These are software control systems that » These are business systems that are designed to
control and manage hardware devices. process data in large batches. They process large
Numerically, there are probably more numbers of individual inputs to create
embedded systems than any other type of corresponding outputs.
system

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 14
Application types

Entertainment systems Systems for modeling and simulation


– These are systems that are primarily for – These are systems that are developed
personal use and which are intended to by scientists and engineers to model
entertain the user. physical processes or situations, which
include many, separate, interacting objects.

Data collection systems Systems of systems


– These are systems that collect data from
their environment using a set of sensors and – These are systems that are composed of
send that data to other systems for processing. several other software systems.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 15
Software engineering fundamentals?

Some fundamental principles apply to all types of software system, irrespective of the
development techniques used.

– Systems should be developed using a managed and understood development process.


Of course, different processes are used for different types of software.
– Dependability and performance are important for all types of system.
– Understanding and managing the software specification and requirements (what the
software should do) are important.
– Where appropriate, you should reuse software that has already been developed rather
than write new software.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 16
Internet software engineering?

– The Web is now a platform for running application and 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’. In cloud based services the users do not buy software but pay
according to use.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 17
Web-based software engineering?

– Web-based systems are complex distributed systems, but the fundamental principles
of software engineering discussed previously are as applicable to them as they are to any
other types of system.
– The fundamental ideas of software engineering apply to web-based software in the same
way that they apply to other types of software system.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 18
Websoftware engineering

Software reuse Incremental and agile development


– Software reuse is the dominant approach – Web-based systems should be developed
for constructing web-based systems. and delivered incrementally. It is now
When building these systems, you think generally recognized that it is impractical to
about how you can assemble them from specify all the requirements for such systems in
pre-existing software components and systems. advance.
Service-oriented systems
Rich interfaces
– Software may be implemented using
service- oriented software engineering, – Interface development technologies such
where the software components are as AJAX and HTML5 have emerged that
stand-alone web services. support the creation of rich interfaces
within a web browser.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 19
The changingnatureof software
WebApps mobile web vs. Mobile app
– WebApps have evolved into sophisticated – The term app has evolved to connote software
computing tools that not only provide that has been specifically designed to reside on a
stand- alone function to the end user, but mobile platform. Mobile app can gain direct
also have been integrated with corporate access to the hardware of the device (e.g.,
databases and business applications. accelerometer or GPS location) and then provide
the local processing and storage capabilities noted
Product Line Software earlier. Where A mobile web application
– The Software Engineering institute defines a (WebApp) allows a mobile device to gain access
software product line as “a set of to web-based content via a browser that has been
software- intensive systems that share a specifically designed to accommodate the
common, managed set of features satisfying strengths and weaknesses of the mobile platform.
the specific needs of a particular market As time passes, the distinction between mobile
segment or mission and that are developed WebApps and mobile apps will blur as mobile
from a common set of core assets in a browsers become more sophisticated and gain
prescribed way.” access to device level hardware and information.

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 20
The changingnatureof software
Cloud Computing
It encompasses an infrastructure or “ecosystem”
that enables any user, anywhere, to use a
computing device to share computing resources
on a broad scale. Referring to the figure,
computing devices reside outside the cloud and
have access to a variety of resources within the
cloud. These resources encompass applications,
platforms, and infrastructure. its simplest form,
an external computing device accesses the cloud
via a Web browser or analogous software. The
cloud provides access to data that resides with
databases and other data structures. In addition,
devices can access executable applications that
can be used in lieu of apps that reside on the
computing device.
Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 21
Software Engineering(A LayeredTechnology)

– Tools provide automated or semi-automated support for the process and methods.
– Method provides technical aspects for building software. It covers many tasks i.e.,
communication, requirement analysis, design modeling, program construction, testing and
support.
– Process deals delivery and to stablish the context where products (model, data, report, and
forms) are produced, milestone are established, quality is ensured, and change is managed.
– Any engineering approach must rest on organizational commitment to quality which fosters
a continuous process improvement culture.
Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 22
Thanks

Any question ?

Dr.CMNadeemFaisal www.hci.uniovi.es/en-members.htm 23
Reference

1. Sommerville, I. (2016). Software Engineering GE. Pearson Australia Pty Limited.


2. Course/Section 1 Project Organization and Management/Introduction, Software Engineering Essentials, TUMx SEECx, edx.org [accessed date: October
01, 2022]
3. Roger, S. P., & Bruce, R. M. (2015). Software engineering: a practitioner’s approach. McGraw-Hill Education.
4. Roger S. Pressman, Software Engineering: A Practitioner’s Approach, 7/e, 1996, 2001, 2005, 2009
5. Luca Ventura, World’s Largest Companies 2020, https://www.gfmag.com/global-data/economic-data/largest-companies [accessed date: March 28, 2021]
6. Wikipedia, Software engineering, https://en.wikipedia.org/wiki/Software_engineering, [accessed date: March 28, 2021]
7. Software, https://web.stanford.edu/class/cs101/software [accessed date: March 28, 2021]
8. Sankar, Cloud based Secured Password Less and Card less ATM machine interaction using
http://www.techielabs.in/?p=121 [accessed date: March 28, 2021]
9. Tag: Secure Coding, https://www.checkmarx.com/tag/secure-coding/ [accessed date: March 28, 2021]
10. https://www.graphicsprings.com/logographics/financial-money-plant [accessed date: March 28, 2021]
11. https://www.spaceotechnologies.com/blog/web-app-vs-website/ [accessed date: October 01, 2022]
12. https://www.correcttechno.com/software/mobile-applications-development/ [accessed date: October 01, 2022]
13. https://www.applicationnexus.com/services/web-development/desktop-application-development/ [accessed date: October 01, 2022]
14. https://www.arcweb.com/blog/embedded-systems-trends-technologies [accessed date: October 01, 2022]

Dr.CMNadeemFaisal BEST FOR You www.hci.uniovi.es/en-members.htm 24


O R G A N I C S C O M P A N Y

You might also like