06-01-2021
2 What is software
Software is:
Instructions (computer programs) that when
Introduction to Software executed provide desired features, function, and
performance
1
Engineering Data structures that enable the programs to
adequately manipulate information
By
Dr.Pooja Jain Documentation that describes the operation and
use of the programs.
3 4
What is Software? Wear vs. Deterioration
Software is developed or engineered, it is not
manufactured in the classical sense. increased failure
rate due to side effects
Software doesn't "wear out." Failure
rate
Although the industry is moving toward
component-based construction, most software
continues to be custom-built. change
actual curve
idealized curve
Time
1
06-01-2021
5
Software Applications Software Engineering
system software
application software
engineering/scientific software Engineering approach to build a software
embedded software Write 10-20 lines of code can be done through intutions
product-line software Writing 1000-10000 lines of code-engineering is required
WebApps (Web applications)
AI software IEEE definition
Software engineering is the application of a systematic, disciplined, quantifiable
approach to the design, development, operation, and maintenance of software, and the
study of these approaches; that is, the application of engineering to software.
Software crisis Good software
• Fail to meet user requirements
• Expensive-very much as compared to h/w • Earlier considered as as art
• Difficult to alter, debug and enhance • Later the process of writing good software identified
• Often delivered late • Qualifiable techniques identified
• Use resources non-optimally • Every technique starts as an art form-then craft and slowly into
• S/w is indispensable engineering form
• Easy and faster to develop • Experiences of developers are documented and thumb rules
• consumes no space , weight or power identified
2
06-01-2021
9 10
Software—New Categories Legacy Software
Open world computing—pervasive, distributed
computing Why must it change?
Ubiquitous computing—wireless networks
Netsourcing—the Web as a computing engine software must be adapted to meet the needs of
new computing environments or technology.
Open source—”free” source code open to the
software must be enhanced to implement new
computing community (a blessing, but also a business requirements.
potential curse!) software must be extended to make it interoperable
Also with other more modern systems or databases.
Data mining software must be re-architected to make it viable
within a network environment.
Grid computing
Cognitive machines
Software for nanotechnologies
11 12
Characteristics of WebApps - I Characteristics of WebApps - II
Data driven. The primary function of many WebApps is to use
Network intensiveness. A WebApp resides on a network and must serve the hypermedia to present text, graphics, audio, and video content to
needs of a diverse community of clients. the end-user.
Concurrency. A large number of users may access the WebApp at one time. Content sensitive. The quality and aesthetic nature of content
Unpredictable load. The number of users of the WebApp may vary by orders of remains an important determinant of the quality of a WebApp.
magnitude from day to day. Continuous evolution. Unlike conventional application software
Performance. If a WebApp user must wait too long (for access, for server-side that evolves over a series of planned, chronologically-spaced
releases, Web applications evolve continuously.
processing, for client-side formatting and display), he or she may decide to go
Immediacy. Although immediacy—the compelling need to get
elsewhere. software to market quickly—is a characteristic of many application
Availability. Although expectation of 100 percent availability is unreasonable, domains, WebApps often exhibit a time to market that can be a
users of popular WebApps often demand access on a “24/7/365” basis. matter of a few days or weeks.
Security. Because WebApps are available via network access, it
is difficult, if not impossible, to limit the population of end-users
who may access the application.
Aesthetics. An undeniable part of the appeal of a WebApp is its
look and feel.
3
06-01-2021
13 Software Engineering 14 Software Engineering
Some realities: The IEEE definition:
a concerted effort should be made to understand the problem before a software solution Software Engineering: (1) The application of a systematic, disciplined, quantifiable
is developed approach to the development, operation, and maintenance of software; that is, the
design becomes a pivotal activity application of engineering to software. (2) The study of approaches as in (1).
software should exhibit high quality Discipline + adaptability and agility
software should be maintainable
The seminal definition:
[Software engineering is] the establishment and use of sound engineering principles in
order to obtain economically software that is reliable and works efficiently on real
machines.
15 16
A Layered Technology A Process Framework
Process framework
Framework activities
tools
work tasks
methods work products
milestones & deliverables
process model QA checkpoints
a “quality” focus
Umbrella Activities
Software Engineering
4
06-01-2021
17 18
Framework Activities Umbrella Activities
Communication Software project management
Planning Formal technical reviews
Modeling Software quality assurance
Analysis of requirements Software configuration management
Design
Work product preparation and production
Construction
Code generation Reusability management
Testing Measurement
Deployment Risk management
19 Adapting a Process Model 20 The Essence of Practice
the overall flow of activities, actions, and tasks and the
interdependencies among them Polya suggests:
the degree to which actions and tasks are defined within 1. Understand the problem (communication and analysis).
each framework activity 2. Plan a solution (modeling and software design).
3. Carry out the plan (code generation).
the degree to which work products are identified and 4. Examine the result for accuracy (testing and quality assurance).
required
the manner which quality assurance activities are applied
the manner in which project tracking and control activities
are applied
the overall degree of detail and rigor with which the
process is described
the degree to which the customer and other stakeholders
are involved with the project
the level of autonomy given to the software team
the degree to which team organization and roles are
prescribed
5
06-01-2021
21 Understand the Problem 22 Plan the Solution
Who has a stake in the solution to the problem? That is, who are the stakeholders? Have you seen similar problems before? Are there patterns that are
What are the unknowns? What data, functions, and features are required to recognizable in a potential solution? Is there existing software that
properly solve the problem?
Can the problem be compartmentalized? Is it possible to represent smaller implements the data, functions, and features that are required?
problems that may be easier to understand? Has a similar problem been solved? If so, are elements of the solution
Can the problem be represented graphically? Can an analysis model be created? reusable?
Can subproblems be defined? If so, are solutions readily apparent for the
subproblems?
Can you represent a solution in a manner that leads to effective
implementation? Can a design model be created?
23 Carry Out the Plan 24 Examine the Result
Does the solution conform to the plan? Is source code traceable to the design Is it possible to test each component part of the solution? Has a reasonable testing
model? strategy been implemented?
Is each component part of the solution provably correct? Has the design and code Does the solution produce results that conform to the data, functions, and features
been reviewed, or better, have correctness proofs been applied to algorithm? that are required? Has the software been validated against all stakeholder
requirements?
6
06-01-2021
25 Hooker’s General Principles 26
Software Myths
Affect managers, customers (and other non-
1: The Reason It All Exists
technical stakeholders) and practitioners
2: KISS (Keep It Simple, Stupid!)
Are believable because they often have
3: Maintain the Vision
elements of truth,
4: What You Produce, Others Will Consume
but …
5: Be Open to the Future
Invariably lead to bad decisions,
6: Plan Ahead for Reuse
therefore …
7: Think!
Insist on reality as you navigate your way
through software engineering
28 How It all Starts
Exploratory style of software development
Fix SafeHome:
Every software project is precipitated by some business need—
the need to correct a defect in an existing application;
the need to the need to adapt a ‘legacy system’ to a changing business environment;
the need to extend the functions and features of an existing application, or
the need to create a new product, service, or system.
Intial coding Test
Doesnt work for large projects