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

CSE2101 Lecture 1

Uploaded by

Ejaz Yusuff
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)
24 views

CSE2101 Lecture 1

Uploaded by

Ejaz Yusuff
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/ 30

CSE 2101 Software Engineering I

You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Fundamentals of Software Engineering


Software Engineering Fundamentals
Attributes of Quality Software
Defining Software
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Complexity and detail of definition depends on ‘who you ask’


• Software is the set of instructions that tells the hardware what to
do and how to do it
From www.gcflearnfree.org/computerbasics/what-is-a-computer/1/
• Software is:
(1) instructions (computer programs) that when executed provide
desired features, function, and performance; data structures that
enable the programs to adequately manipulate information and;
(2) documentation that describes the operation and use of the
programs. From Software engineering: a practitioner's approach.
Palgrave Macmillan

Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.
Categories of Software
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Bocij, P. et al. (2018). Business Information Systems: Technology, Development and Management for the Modern Business. Pearson.
Categories of Software
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Systems software
– Set of programs that coordinates activities and
functions of the hardware and various other
programs
• Application software
– Programs that help users solve particular
computing problems or serve a specific purpose

Bocij, P. et al. (2018). Business Information Systems: Technology, Development and Management for the Modern Business. Pearson.
Spheres of Influence – Application
Software
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Personal
– Software that serve the needs of an individual user
• Workgroup
– Two or more people who work together to achieve a
common goal
• Enterprise
– Software that support the firm in its interaction with its
environment (ERP software)

Bocij, P. et al. (2018). Business Information Systems: Technology, Development and Management for the Modern Business. Pearson.
Types of Systems
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]
• Transaction processing systems
– An information processing system for business transactions involving
the collection, modification and retrieval of all transaction data (e.g.,
order processing systems, reservation systems)
• Management information systems
– A planned system of collecting, processing, storing and disseminating
data in the form of information needed to carry out the functions of
management (e.g., HR Management System)
• Decision support systems
– Interactive software-based systems intended to help managers in
decision-making by accessing large volumes of information generated
from various related information systems involved in organizational
business processes
• Expert systems
– A computer system that emulates the decision-making ability of a
human expert. Expert systems are designed to solve complex
problems by reasoning through bodies of knowledge

Mohapatra, H. and Rath, A.K. (2020), Fundamentals of Software Engineering: Designed to provide an insight into the software engineering concepts. BPB Publications.
Software Prevalence and Importance
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Software is important to the modern world - playing a


crucial role in:
– National infrastructure and utility companies
– Industrial manufacturing
– Healthcare
– Telecommunications
– Transport
– Entertainment
– …and more
• Heavy reliance on software and significant investment
is made

Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.
The Nature of Software
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Data is the raw material of the 21st century


– Managing, collecting, analysing, distributing: software!
• More sophisticated and complex computer-based
systems/hardware
– Dramatic improvements in hardware performance
– Profound changes in computing architectures, vast
increases in memory and storage capacity
– Wide variety of exotic input and output options
• Software industry has become a dominant factor in the
economies of the industrialized world
– Teams of software specialists replace the lone developer

Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.
Adoption of Software Engineering
Practices
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• There is concern about software and the manner in


which it is developed
– Why does it take so long to get software finished?
– Why are development costs so high?
– Why can’t we find all errors before giving software to our
customers?
– Why do we spend so much time and effort maintaining
existing programs?
– Why is it so difficult to measure development progress?
• Professional software development entails managing
a host of non-technical and technical elements

Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.
Software Development Challenges
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Challenges faced by software project


manager:
– Working with a budget
– Managing teams
– Deadlines
– Meeting user expectations
• …while coping with demands for reduced
delivery times and developing trustworthy
software.

Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.
Software Development Challenges
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]
• 20% of all IT projects are scrapped before completion and 80% of
those that are completed, finish behind schedule, over budget and
with lower functionality than anticipated
– Cats-Baril and Thompson (1996)
• Between 60-85% of e-government projects fail in some way
– Heeks (2006)
• Over the last decade, only 28% of technology investments were
found to be successful (on time, on budget, full functionality)
– The Standish Group (2015)
• Time and budget estimates for IT projects
in the private sector are underestimated by 50%
– Laudon and Laudon (2016)
Defining Software Engineering
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]
• Effective software engineering can address the
challenges
• How?
– “Engineering”: applying appropriate tools and techniques
to the development process
– Creating a systematic approach
– Working around real-world constraints
• Why?
– To create high quality software that meets customer
needs given time and budget constraints
– Intended for professional software development

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Defining Software Engineering
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

IEEE definition of Software Engineering:


“The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance
of software” (... and design and testing)
• Speaks to the processes _______
– All aspects of software: development, operation and
maintenance
• The process as a standard or a systematized approach
– There is no single “best” technique - only appropriate technique

IEEE [IEE93a]
Defining Software Engineering
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Software engineering involves the practical application


of scientific knowledge to the design and construction
of computer programs and associated documentation
required to develop, operate, and maintain them.

• Software engineering is an engineering discipline that is


concerned with all aspects of software production
from the early stages of system specification through to
maintaining the system after it has gone into use

Mohapatra, H. and Rath, A.K. (2020), Fundamentals of Software Engineering: Designed to provide an insight into the software engineering concepts. BPB Publications.
Aspects of Software Production
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Software Process Activities


– Software specification
– Software development
– Software validation
– Software evolution
• Project Management
– Project planning
– Managing people
– Cost estimation
– Risk management

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Software Quality
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• At a rudimentary level it is how good or bad something is


• A measure of excellence or a state of being free from
defects, deficiencies and significant variations
– Brought about by strict and consistent commitment to certain
standards (businessdictionary.com)
• ISO definition: quality as the totality of features and
characteristics of a product or service that bears its ability
to satisfy stated or implied needs
• Quality is about making organisations perform for their
stakeholders

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Project Success
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]
• There are several dimensions or perspectives that can be
used in assessing the success and/or failure of a
software/software project
– Resource success: the utilisation of time, budget and other
resources
– Technical success: the technical soundness of the system;
degree to which it is error-free
– Impact success: how much benefit stakeholders receive
– Business success: value of the system in terms of profit, client
reach, market share, client satisfaction
– Learning success: creation of organisational experience and
capacity to handle development

Pearlson, K. E., & Saunders, C. S. (2006). Managing and Using Information Systems: A Strategic Approach. JohnWiley & Sons.
Success/Failure
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Most systems fail in some way. Three-way


success/failure classification system
– Total Failure
• The system was never implemented or was
implemented but immediately abandoned
– Partial Failure/ Partial Success
• Major goals for the information system were not
achieved and/or there were significant undesirable
outcomes

Heeks, R. (2005). Implementing and managing eGovernment: an international text. Sage.


Software Quality Models
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Software engineering systematizes “quality”


• Software products are developed based on a software
quality model
• In software engineering literature, there are a number
of quality models that guide developers
• The models contain a number of quality characteristics
(or factors, as called in some models)
• Some quality models are:
– McCall’s Quality Model, Boehm’s Quality Model, FURPS
Quality Model, ISO 9126 Quality Model

Al-Qutaish, R. E. (2010). Quality models in software engineering literature: an analytical and comparative study. Journal of American Science, 6(3), 166-175.
Quality Attributes
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Maintainability
– Customers have ever-changing needs
– New features may have to be added (within
reason of the contract) and bugs have to be fixed
– Software change is therefore expected
– Maintainable software facilitates change with
great ease
– Importance of documentation to maintainabiliy

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Quality Attributes
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Benefits of maintainable software


– Easy to understand how it works and what it does
– Quickly find where changes need to be made
– Possible to efficiently localize errors and bugs
– Easy to include new developers (transferability)
– More attractive to future clients and investors

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Quality Attributes
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Dependability

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Quality Attributes
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• Efficiency
– Efficient software does not waste system
resources such as memory and processor cycles
– Therefore related to source code, software
architecture and complexity
– Most important in systems that require high
execution speed environments
– Impact of project constraints and requirements on
efficiency

Sommerville, I. (2016). Software engineering. Boston: Pearson.


Quality Attributes
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

• 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
– Measured by end user feedback and response
– Based on uptake and quality of interaction with
the system

Sommerville, I. (2016). Software engineering. Boston: Pearson.


McCall’s Software Quality Model
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

https://github.com/caseyscarborough/notes/blob/master/_posts/2013-08-15-software-engineering-ii.md
Boehm’s Quality Model
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Doinea, M., & Van Osch, W. (2010). Collaborative systems: Defining and measuring quality characteristics. Journal of Applied Collaborative Systems, 2(1).
ISO 2196 Quality Model
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Al-Qutaish, R. E. (2010). Quality models in software engineering literature: an analytical and comparative study. Journal of American Science, 6(3), 166-175.
Comparison of Quality Models
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Al-Qutaish, R. E. (2010). Quality models in software engineering literature: an analytical and comparative study. Journal of American Science, 6(3), 166-175.
Homework
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]

Complete Reading 1 by next Monday before


class
References
You may not copy, reproduce, distribute, transmit, modify, create derivative works, or in any other way exploit
any part of this material. Report violations to [email protected]
Pressman, R. S. & Maxim, B.R. (2015). Software engineering: a practitioner's approach. Palgrave Macmillan.

Bocij, P., Greasley, A. and Hickie, S., 2018. Business information systems: Technology, development and management for the
modern business. Pearson Higher Ed.

Sommerville, I., 2016. Software Engineering. global ed. Boston: Pearson.


Mohapatra, H. and Rath, A.K., 2020. Fundamentals of Software Engineering: Designed to provide an insight into the software
engineering concepts. BPB Publications.
Pearlson, K.E. and Saunders, C.S., 2006. Managing and Using Information Systems: A Strategic Approach. JohnWiley & Sons.
Heeks, R., 2005. Implementing and managing eGovernment: an international text. Sage.

Al-Qutaish, R.E., 2010. Quality models in software engineering literature: an analytical and comparative study. Journal of
American Science, 6(3), pp.166-175.

Doinea, M. and Van Osch, W., 2010. Collaborative systems: Defining and measuring quality characteristics. Journal of Applied
Collaborative Systems, 2(1).

You might also like