0% found this document useful (0 votes)
22 views19 pages

Unit-1 SE

Uploaded by

anisha.kumari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views19 pages

Unit-1 SE

Uploaded by

anisha.kumari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

UNIT-1

SOFTWARE ENGINEERING
What is software?

• Computer software is the product that software professionals build


and then support over the long term.
• It encompasses programs that execute within a computer of any size
and architecture, content that is presented as the computer programs
execute, and descriptive information in both hard copy and virtual
forms that encompass virtually any electronic media.
• Software engineering encompasses a process, a collection of methods
(practice) and an array of tools that allow professionals to build high-
quality computer software
Why is it important?
• Software is important because it affects nearly every aspect of our
• lives and has become pervasive in our commerce, our culture, and
our everyday activities.
• Software engineering is important because it enables us to build
complex systems in a timely manner and with high quality.
The Nature of Software
• Software delivers the most important product of our time—
information.
• It transforms personal data (e.g., an individual’s financial
transactions) so that the data can be more useful in a local context.
• It manages business information to enhance competitiveness;
• It provides a gateway to worldwide information networks (e.g., the
Internet), and provides the means for acquiring information in all of
its forms.
Defining 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.
Characteristics of Software
• Software has characteristics that are considerably different than those
of hardware:

1. Software is developed or engineered; it is not manufactured in the


classical sense.
2. Software doesn’t “wear out.”
3. Although the industry is moving toward component-based
construction, most software continues to be custom built.
Software Application Domains
• Today, seven broad categories of computer software present
continuing challenges for software engineers:
System software
Application software
Engineering/scientific software
Embedded software
Product-line software
Web applications
Artificial intelligence software
Legacy Software
• Hundreds of thousands of computer programs fall into one of the
seven broad application domains discussed in the preceding
subsection.
• These older programs—often referred to as legacy
software—have been the focus of continuous attention and
concern since the 1960s. Dayani-Fard and his colleagues [Day99]
describe legacy software in the following way:
Cont…
• “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.”
• “Liu and his colleagues [Liu98] extend this description by noting that
“many legacy systems remain supportive to core business functions
and are ‘indispensable’ to the business.” Hence, legacy software is
characterized by longevity and business criticality.”
Software Engineering
• The IEEE [IEE93a] has developed a more comprehensive definition
when it states:
• Software Engineering: (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to
software.
Cont…
Cont…
• Process:
• The software engineering process is the glue that holds the
technology layers together and enables rational and timely
development of computer software.
• Methods: Software engineering methods provide the technical how-
to’s for building software.
• Tools:
• Software engineering tools provide automated or semiautomated
support for the process and the methods.
The software process
• A process framework establishes the foundation for a complete
software engineering process by identifying a small number of
framework activities that are applicable to all software projects,
regardless of their size or complexity.
• In addition, the process framework encompasses a set of umbrella
activities that are applicable across the entire software process.
• A generic process framework for software engineering encompasses
five activities:
Cont…
Communication.
Planning.
Modelling.
Construction.
Deployment.
Software Engineering practice
• Software engineering practices includes:
• 1. Understand the problem (communication and analysis).
• 2. Plan a solution (modeling and software design)
• 3.Carry out the plan (code generation).
• 4. Examine the result for accuracy (testing and quality assurance).
General Principles
• David Hooker [Hoo96] has proposed seven principles that focus on
software engineering practice as a whole. They are as follows:
1. The First Principle: The Reason It All Exists
2. The Second Principle: KISS (Keep It Simple, Stupid!)
3. The Third Principle: Maintain the Vision
4. The Fourth Principle: What You Produce, Others Will Consume
5. The Fifth Principle: Be Open to the Future
6. The Sixth Principle: Plan Ahead for Reuse
7. The Seventh principle: Think!
Software Myths
• There are number of myths that exists in relation to software engineering a few
are listed down:
• Management myths:
• 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 soft-
• ware 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.”
Cont…
• Customer myths:
• Myth: A general statement of objectives is sufficient to begin writing
• programs—we can fill in the details later.
• Reality: Although a comprehensive and stable statement of
requirements is not always possible, an ambiguous “statement of
objectives” is a recipe for disaster. Unambiguous requirements
(usually derived iteratively) are developed only through effective and
continuous communication between customer and developer.
Cont…
• Practitioner’s 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.

You might also like