0% found this document useful (0 votes)
13 views7 pages

1unit SE Notes

The document provides an overview of software engineering, defining software and its characteristics, and discussing the evolving role of software as both a product and a vehicle for delivering information. It outlines the changing nature of software, categorizing it into seven types, and highlights the challenges faced by software engineers today, including ubiquitous computing and open source. Additionally, it addresses common myths about software development and presents a generic process framework for effective software engineering practices.

Uploaded by

goatwok24
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)
13 views7 pages

1unit SE Notes

The document provides an overview of software engineering, defining software and its characteristics, and discussing the evolving role of software as both a product and a vehicle for delivering information. It outlines the changing nature of software, categorizing it into seven types, and highlights the challenges faced by software engineers today, including ubiquitous computing and open source. Additionally, it addresses common myths about software development and presents a generic process framework for effective software engineering practices.

Uploaded by

goatwok24
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/ 7

SOFTWARE ENGINEERING

UNIT-I
INTRODUCTION TO SOFTWARE ENGINEERING

Software: Software is
Instructions (computer programs) that provide desired features, function, and performance, when
executed
Data structures that enable the programs to adequately manipulate information,
Documents that describe the operation and use of the programs.

Characteristics of Software:
Software is developed or engineered; it is not manufactured in the classical sense.
Software does not
Although the industry is moving toward component-based construction, most software continues
to be custom built.

Software Engineering:
The systematic, disciplined quantifiable approach to the development, operation and maintenance
of software; that is, the application of engineering to software.
The study of approaches as in (1)

EVOLVING ROLE OF SOFTWARE:


Software takes dual role. It is both a product and a vehicle for delivering a product.
As a product: It delivers the computing potential embodied by computer Hardware or bya
network of computers.
As a vehicle: It is information transformer-producing, managing, acquiring, modifying,
displaying, or transmitting information that can be as simple as single bit or as complex as a multimedia
presentation. Software delivers the most important product of our time-information.
It transforms personal data
It manages business information to enhance competitiveness
It provides a gateway to worldwide information networks
It provides the means for acquiring information

The role of computer software has undergone significant change over a span of little more than 50 years
Dramatic Improvements in hardware performance
Vast increases in memory and storage capacity
A wide variety of exotic input and output options

1970s and 1980s:


Osborne characterized a
Toffler called the advent of microelectronics part of the third wave of chang in human history
Naisbitt predicted the transformation from an industrial society to an information society
Feigenbaum and McCorduck suggested that information and knowledge would be the focal
point for power in the twenty-first century
Stoll argued that the electronic community created by networks and software was the key to
knowledge interchange throughout the world
1990s began:
Toffier described a power shift in which old power structures disintegrate as computers and
software lead to a democratization of knowledge .
Yourdon worried that U.S companies might lose their competitive edge in software related
business and predicted the decline and fall of the American programmer .
Hammer and Champy argued that information technologies were to play a pivotal role in the
reengineering of the corporation .
Mid-1990s:
The pervasiveness of computers and software spawned a rash of books by neo-luddites.
SOFTWARE ENGINEERING

Later 1990s:
Yourdon reevaluated the prospects of the software professional and suggested the rise
and the American programmer.
th
The impact of the Y2K time bomb was at the end of 20 century

2000s progressed:
Johnson discussed the power of emergence a phenomenon that explains what happens when
interconnections among relatively simple entities result in a system -organizes to form
more intelligent, more adaptive
Yourdon revisited the tragic events of 9/11 to discuss the continuing impact of global terrorism
on the IT community
Wolfram presented a treatise on posits a unifying theory
based primarily on sophisticated software simulations
Daconta and his colleagues discussed the evolution of the semantic web .

Today a huge software industry has become a dominant factor in the economies of the industrialized world.

THE CHANGING NATURE OF SOFTWARE:

The 7 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.
System software: System software is a collection of programs written to service other
programs. The systems software is characterized by
heavy interaction with computer hardware
heavy usage by multiple users
concurrent operation that requires scheduling, resource sharing, and sophisticated
process management
complex data structures
multiple external interfaces
E.g. compilers, editors and file management utilities.
Application software:
Application software consists of standalone programs that solve a specific business need.
It facilitates business operations or management/technical decision making.
It is used to control business functions in real-time
E.g. point-of-sale transaction processing, real-time manufacturing process control.

Engineering/Scientific software: Engineering and scientific applicationsrange

-from astronomy to volcanology


- from automotive stress analysis to space shuttle orbital dynamics
- from molecular biology to automated manufacturing
E.g. computer aided design, system simulation and other interactive applications.
Embedded software:
Embedded software resides within a product or system and is used to implement
and control features and functions for the end-user and for the system itself.
It can perform limited and esoteric functions or provide significant function and
control capability.
SOFTWARE ENGINEERING

E.g. Digital functions in automobile, dashboard displays, braking systems etc.


Product-line software: Designed to provide a specific capability for use by many different
customers, product-line software can focus on a limited and esoteric market place or address mass
consumer markets
E.g. Word processing, spreadsheets, computer graphics, multimedia, entertainment,
database management, personal and business financial applications
Web-applications: WebApps are evolving into sophisticated computing environments that not
only provide standalone features, computing functions, and content to the end user, but also are
integrated with corporate databases and business applications.
Artificial intelligence software: AI software makes use of nonnumerical algorithms to solve
complex problems that are not amenable to computation or straightforward analysis. Application
within this area includes robotics, expert systems, pattern recognition, artificial neural networks,
theorem proving, and game playing.

The following are the new challenges on the horizon:


Ubiquitous computing
Netsourcing
Open source
The new economy

Ubiquitous computing: The challenge for software engineers will be to develop systems and application
software that will allow small devices, personal computers and enterprise system to communicate across
vast networks.
Net sourcing: The challenge for software engineers is to architect simple and sophisticated applications
that provide benefit to targeted end-user market worldwide.
Open Source: The challenge for software engineers is to build source that is self descriptive but more
importantly to develop techniques that will enable both customers and developers to know what changes
have been made and how those changes manifest themselves within the software.
The new economy : The challenge for software engineers is to build applications that will facilitate mass
communication and mass product distribution.

SOFTWARE MYTHS

Beliefs about software and the process used to build it- can be traced to the earliest days of computing
myths have a number of attributes that have made them insidious.
Management myths: Manages with software responsibility, like managers in most disciplines, are often
under pressure to maintain budgets, keep schedules from slipping, and improve quality.
Myth - Wont 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?
Myth: If we get behind schedule, we can add more programmers and catch up.
Reality: Software development is not a mechanistic process like manufacturing. As new people are added,
people who were working must spend time educating the new comers, thereby reducing the amount of time
spend on productive development effort. People can be added but only in a planned and well coordinated
manner.
Myth: If I decide to outsource the software project to a third party, I can just relax and let that firm built it.
Reality: If an organization does not understand how to manage and control software projects internally, it
will invariably struggle when it outsources software projects.
SOFTWARE ENGINEERING

Customer myths: The customer believes myths about software because software managers and
practitioners do little to correct misinformation. Myths lead to false expectations and ultimately,
dissatisfaction with the developer.

Myth: A general statement of objectives is sufficient to begin with 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 recipe for disaster.

Myth: Project requirements continually change, but change can be easily accommodated because software
is flexible.

Reality: It is true that software requirements change, but the impact of change varies with the time at which
it is introduced and change can cause upheaval that requires additional resources and major design
modification.

Myths that are still believed by software practitioners: during the early days of
software, programming was viewed as an art from old ways and attitudes die hard.

Myth: Once we write the program and get it to work, our jobs are done.

Reality:
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.

Myth: The only deliverable work product for a successful project is the working program.

Reality: A working program is only one part of a software configuration that includes many elements.
Documentation provides guidance for software support.

Myth: software engineering will make us create voluminous and unnecessary documentation and will
invariably slows down.

Reality: software engineering is not about creating documents. It is about creating quality. Better quality
leads to reduced rework. And reduced rework results in faster delivery times.

A GENERIC VIEW OF PROCESS

SOFTWARE ENGINEERING - A LAYERED TECHNOLOGY:

Software Engineering Layers


SOFTWARE ENGINEERING

Software engineering is a layered technology. Any engineering approach must rest on an organizational
commitment to quality. The bedrock that supports software engineering is a quality focus.

The foundation for software engineering is the process layer. Software engineering process is the glue that
holds the technology layers. Process defines a framework that must be established for effective
delivery of software engineering technology.

The software forms the basis for management control of software projects and establishes the context
in which
- technical methods are applied,
- work products are produced,
- milestones are established,
- quality is ensured,
- And change is properly managed.

Software engineering methods rely on a set of basic principles that govern area of the technologyand
include modeling activities.

Methods encompass a broad array of tasks that include


communication,
requirements analysis,
design modeling,
program construction,
Testing and support.

Software engineering tools provide automated or semi automated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by another, a
system for the support of software development, called computer-aided software engineering, isestablished.

A PROCESS FRAMEWORK:
Software process must be established for effective delivery of software engineering technology.
A process framework establishes the foundation for a complete software process by identifying a
small number of framework activities that are applicable to all software projects, regardless of their size
or complexity.
The process framework encompasses a set of umbrella activities that are applicable across the entire
software process.
Each framework activity is populated by a set of software engineering actions
Each software engineering action is represented by a number of different task sets- each a collection
of software engineering work tasks, related work products, quality assurance points, and project
milestones.

In brief
"A process defines who is doing what, when, and how to reach a certain goal."

A Process Framework
establishes the foundation for a complete software process
identifies a small number of framework activities
applies to all s/w projects, regardless of size/complexity.
also, set of umbrella activities
applicable across entire s/w process.
Each framework activity has
set of s/w engineering actions.
Each s/w engineering action (e.g., design) has
SOFTWARE ENGINEERING

- collection of related tasks (called task sets):

work tasks

work products (deliverables)

quality assurance points

project milestones.
Software process

\
SOFTWARE ENGINEERING

Generic Process Framework: It is applicable to the vast majority of software projects


Communication activity
Planning activity
Modeling activity
analysis action
requirements gathering work task
elaboration work task
negotiation work task
specification work task
validation work task
design action
data design work task
architectural design work task
interface design work task
component-level design work task
Construction activity
Deployment activity

Communication: This framework activity involves heavy communication and collaboration with
the customer and encompasses requirements gathering and other related activities.
Planning: This activity establishes a plan for the software engineering work that follows. It
describes the technical tasks to be conducted, the risks that are likely, the resources that will be
required, the work products to be produced, and a work schedule.
Modeling: This activity encompasses the creation of models that allow the developer and
customer to better understand software requirements and the design that will achieve those
requirements. The modeling activity is composed of 2 software engineering actions- analysis and
design.
Analysis encompasses a set of work tasks.
Design encompasses work tasks that create a design model.
Construction: This activity combines core generation and the testing that is required to
uncover the errors in the code.
Deployment: The software is delivered to the customer who evaluates the delivered product and
provides feedback based on the evolution.
These 5 generic framework activities can be used during the development of small programs, the
creation of large web applications, and for the engineering of large, complex computer-based systems.

The following are the set of Umbrella Activities.


Software project tracking and control allows the software team to assess progress against
the project plan and take necessary action to maintain schedule.
Risk Management - assesses risks that may effect the outcome of the project or the quality of
the product.
Software Quality Assurance - defines and conducts the activities required to ensure
software quality.
Formal Technical Reviews - assesses software engineering work products in an effort to
uncover and remove errors before they are propagated to the next action or activity.

You might also like