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

Introduction To Software Engineering

This document discusses an introduction to software engineering. It defines software as instructions (computer programs), data structures, and documentation. Software is engineered, not manufactured, and does not physically wear out over time. The document outlines different types of software applications and discusses how software engineering aims to address issues like software failures and late/overbudget projects through systematic and quantifiable approaches. It also summarizes characteristics of different types of modern software like web applications.

Uploaded by

VISHNU RATHORE
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)
55 views7 pages

Introduction To Software Engineering

This document discusses an introduction to software engineering. It defines software as instructions (computer programs), data structures, and documentation. Software is engineered, not manufactured, and does not physically wear out over time. The document outlines different types of software applications and discusses how software engineering aims to address issues like software failures and late/overbudget projects through systematic and quantifiable approaches. It also summarizes characteristics of different types of modern software like web applications.

Uploaded by

VISHNU RATHORE
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

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

You might also like