Unit 1 Final
Unit 1 Final
Textbook
Software Engineering,
Roger S. Pressman,
Seventh Edition
UNIT-1
CONTENTS
The Nature of Software
The Unique Nature of Web Apps
Software Engineering
The Software Process
Software Engineering Practice
Software Myths
A Generic Process Model
Process Assessment and Improvement
Prescriptive Process Models
Specialized Process Models
The Unified Process
Personal and Team Process Models
Process Technology
INTRODUCTION OF SOFTWARE
Software is:
(1) instructions (computer programs) that when executed provide desired features,
function, and performance;
(2) data structures that enable the programs to adequately manipulate information,
and
(3) descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs.
Software is an information transformer—producing, managing, acquiring,
modifying, displaying, or transmitting information. It transforms the personal
data and useful in a local context.
Software manages business information to enhance competitiveness, provides a
gateway to worldwide information networks, provides the means for acquiring
information in all of its forms.
CHARACTERISTICS OF SOFTWARE:
i. Network intensiveness:-A Web App resides on a network and must serve the
needs of a different types of clients.
ii. Concurrency:-A large number of users may access the Web App at one time.
iii. Unpredictable load:-The number of users of the Web App may vary by orders
of magnitude from day to day.
iv. Performance:- Web App should work effectively in terms of processing
speed.
v. Availability:- Although expectation of 100 percent availability is unreasonable,
users of popular Web Apps often demand access on a 24/7/365 basis.
vi. Data driven:- The primary function of many Web Apps is to use hypermedia
to present text, graphics, audio, and video content to the end user. Web Apps
are commonly used to access information that exists on databases.
vii. Content sensitive:- The quality and aesthetic (beauty) nature of content
remains an important determinant of the quality of a Web App.
viii. Continuous evolution:- Unlike conventional application software that
evolves over a series of planned, chronologically spaced releases, Web
applications evolve continuously.
ix. Immediacy:- The compelling need to get software to market quickly, is a
characteristic of many application domains.
x. Security:- Because Web Apps are available via network access, it is difficult, if
not impossible, to limit the population of end users who may access the
application
xi. Aesthetics:- An undeniable part of the appeal of a Web App is its look and
feel. When an application has been designed to market or sell products or ideas,
aesthetics may have as much to do with success as technical design.
SOFTWARE CRISIS
It is the symptoms of the problem of engineering the software and approaches
for software development.
Software crisis symptoms are
• Complexity
• Hardware versus software cost
• Lateness and costliness
• Poor quality
• Unmanageable nature
• Immaturity
• Lack of planning and management practices
• Change
• Maintenance and Migration etc.
SOFTWARE CRISIS
Increasing Increase
Increasing complexit challenge
demand y s
Software crisis
Same Same
Same
workforc tools
methods
e
SOFTWARE ENGINEERING
progress against the project plan and take any necessary action to maintain the
schedule.
Risk management- assesses risks that may affect the outcome of the project or
uncover and remove errors before they are propagated to the next activity.
Measurement- defines and collects process, project, and product measures that
required to create work products such as models, documents, logs, forms, and
lists.
SOFTWARE ENGINEERING PRACTICE
Generic software process model composed of a set of activities that
establish a framework for software engineering practice. Generic
framework activities are communication, planning, modeling,
construction, and deployment.
The essence of software engineering practice:
Understand the problem (communication and analysis)
Plan a solution (modeling and software design)
Carry out the plan (code generation)
Examine the result for accuracy (testing and quality assurance)
General Principles:- David Hooker has proposed seven principles that focus on
software engineering practice as a whole. They are reproduced in the following.
The First Principle: The Reason It All Exists- to provide value to its users.
The Second Principle: KISS (Keep It Simple, Stupid!)- All design should be as
simple as possible, but no simpler.
The Third Principle: Maintain the Vision- A clear vision is essential to the
success of a software project.
The Fourth Principle: What You Produce, Others Will Consume- always
specify, design, and implement knowing someone else will have to understand
what you are doing.
The Fifth Principle: Be Open to the Future- Never design yourself into a
corner.
The Sixth Principle: Plan Ahead for Reuse- Planning ahead for reuse reduces
the cost and increases the value of both the reusable components and the systems
into which they are incorporated.
The Seventh principle: Think!- Placing clear, complete thought before action
almost always produces better results.
SOFTWARE DEVELOPMENT MYTHS
A number of common beliefs or myths that software managers, customers, and
developers believe falsely.
These myths as misleading attitudes that have caused serious problems.
To see why they are false, and why they lead to trouble.
Three types of myths:
Management Myths- Software manager for improving quality &
controlling budges.
Customer Myths- Software myths believed by customer who can be
internal or external .
Practitioner’s Myths/Developer- Misconception believed by software
developer.
MANAGEMENT MYTHS
Some standard tools are present ,they are sufficient for development.
We can add more program to catch up.
They think they have latest computer .
A good manager can manage any project.
Myth: We already have a book that’s full of standards and procedures for
building software. Won’t that provide my people with everything they need
to know?
Reality: The book of standards may very well exist, but is it used? Are
software practitioners aware of its existence? Does it reflect modern
software engineering practice? Is it complete? Is it adaptable? Is it
streamlined to improve time-to-delivery while still maintaining a focus on
quality?
In many cases, the answer to all of these questions is “no.”
CUSTOMER MYTHS
Myth: Once we write the program and get it to work, our job is done.
Reality: Someone once said that “the sooner you begin ‘writing code,’ the longer
it’ll take you to get done.” Industry data indicate that between 60 and 80
percent of all effort expended on software will be expended after it is delivered
to the customer for the first time.
A GENERIC PROCESS MODEL
A generic process framework for software engineering defines five framework
activities like communication, planning, modeling, construction and
deployment and in addition, a set of umbrella activities.
The process flow describes how the framework activities and the actions and
tasks that occur within each framework activity are organized with respect to
sequence and time.
PROCESS FLOW TYPES
Stage pattern: defines a problem associated with a framework activity for the
process. An example of a stage pattern might be establishing communication.
Task pattern: defines a problem associated with a software engineering action
or work task and relevant to successful software engineering practice (e.g.,
Requirements Gathering is a task pattern).
Phase pattern: defines the sequence of framework activities that occurs
within the process, even when the overall flow of activities is iterative in
nature.
PROCESS ASSESSMENT AND IMPROVEMENT
1. PRESCRIPTIVE PROCESS MODELS
The name prescriptive is given because the model prescribes a set of activities,
actions, tasks, quality assurance and change control mechanisms for each
project.
Linear/Sequential Process Models– The Waterfall Model, V-Model and
Iterative waterfall Model
Incremental Process Models– The Incremental Model and the RAD Model.
Evolutionary Process Models– The Prototype Model , The Spiral Model.
Concurrent Development Model
THE WATERFALL MODEL