Software Engg - Week-01
Software Engg - Week-01
Software Crisis
Software Crisis cont’d
If we will use same workforce, same methods and same tools after fast increasing in software demand,
software complexity and software challenges, then there arise some problems like software budget problem,
software efficiency problem, software quality problem, software managing and delivering problem etc.
Increasing
Demand
Software Crisis
Same Same
Workforce Resources
Software Crisis Solution
• Solution was to the problem was transforming unorganized coding effort into a software
engineering discipline.
• These engineering models helped companies to streamline operations and deliver software
meeting customer requirements.
Why Software is Important?
• The economies of ALL developed nations are dependent on software.
• More and more systems are software controlled ( transportation, medical, telecommunications,
military, industrial, entertainment,)
• Software engineering is concerned with theories, methods and tools for professional software
development.
What is Software Engineering
• Software engineering is defined as a process of analyzing user requirements and then designing,
building, and testing software application which will satisfy those requirements.
User
Testing
UML Development
Why Software Engineering is Popular?
• Every software failure indicates an error in design or in the process through which design was
translated into machine executable code.
• System software may fail because of mistakes in its specification, design, or implementation.
Key Points of Software Failure?
Immature Engineering
Software Failure
Low Quality Management
Professional Software Development
✔ Software engineering is intended to support professional software development rather than
individual programming.
✔ It includes techniques that support program specification, design, and evolution, none of which are
normally relevant for personal software development.
✔ software is not just the programs themselves but also all associated
✔ Documentation
✔ Libraries
✔ support websites, and configuration data that are needed to make these programs useful.
Professional Software Development
✔ A professionally developed software system is often more than a single program.
✔ A system may consist of several separate programs and configuration files that are used to set up
these programs.
✔ It may include system documentation, which describes the structure of the system, user
documentation.
✔ which explains how to use the system, and websites for users to download recent product
information.
Why Professional Development is important
Reuse-code Re
ode us
e-c
c
se- od
u e
Re
Why Professional Development is important
• This is one of the important differences between professional and amateur software development.
If you are writing a program for yourself, no one else will use it.
• and you don’t have to worry about writing program guides, documenting the program design.
kinds of software product
1. Generic products
2. Customized (or bespoke) software
Generic Product
• The term generic brand refers to a type of consumer product on the market that lacks a widely
recognized name or logo because it typically isn't advertised. Generic brands are usually less
expensive than their brand name counterparts due to their lack of promotion.
• These are stand-alone systems that are produced by a development organization and sold on the
open market to any customer who is able to buy them.
• This kind of software also includes “vertical” designed for a specific market such as library
information systems, accounting systems, or systems for maintaining dental records.
Generic Product
Intellectual
Competence Confidentiality Computer misuse
property rights
Essential attributes of good software
1. Efficiency
1. Software should not make wasteful use of system resources such as memory and processor cycles.
Efficiency therefore includes responsiveness, processing time, resource utilization, etc.
2. Maintainability
1. Software should be written in such a way 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.
Essential attributes of good software
3. 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.
Business and
Heterogeneity Security Scale
social change
• Systems are increasingly • business and society are • We must ensure that • The software must be built
essential to operate as evolving extremely rapidly. unauthorized users are unable over a broad range of scales,
distributed systems across They need to be in a position to target our applications, and from very tiny embedded
networks, which include to update their current that information is protected systems in portable or
various types of computers software and create new and secured. wearable devices through the
and mobile devices. software quickly. Internet sizes, a cloud-based
framework that serves global
population
Software engineering diversity
phones, or
tablets. Entertainment
systems
Batch processing
games
Embedded
control systems systems
interacting
Data collection
and analysis objects Systems of
systems systems
run on a
personal ERP system
computer
Case Studies
• An embedded system
This is a system where the software controls some hardware device and is embedded in that
device.
Issues in embedded systems typically include physical size, responsiveness, and power
management, etc.
The example of an embedded system that I use is a software system to control an insulin
pump for people who have diabetes.
An insulin pump control system
• An insulin pump is a medical system that simulates the operation of the pancreas (an internal
organ). The software controlling this system is an embedded system that collects information from
a sensor and controls a pump that delivers a controlled dose of insulin to a user.
• The problem is that the level of insulin required does not just depend on the blood glucose level
but also on the time of the last insulin injection
Insulin pump hardware architecture
• hardware components and
organization of the insulin pump
Activity model of the insulin pump