Search for notes by fellow students, in your own course and all over the country.
Browse our notes for titles which look like what you need, you can preview any of the notes via a sample of the contents. After you're happy these are the notes you're after simply pop them into your shopping cart.
Title: software engg
Description: this will help you to know the basics of software development and devloping methods
Description: this will help you to know the basics of software development and devloping methods
Document Preview
Extracts from the notes are below, to see the PDF you'll receive please use the links above
Software Engineering
Overview of Software
Engineering and the
Software
Development Process
CONTENTS
I
...
Definition of Software and Characteristics of Software
Types / Categories of Software
1
...
3
...
5
...
7
...
System Software
Real-time Software
Business Software
Engineering and Scientific Software
Embedded Software
Personal Computer Software
Web-based Software
Software Engineering –
1
...
Need
IV
...
VI
...
2
...
4
...
Software Process
Software Product
Basic Framework Activities
Umbrella Activities
...
Concept
2
...
Goals
4
...
Perspective Process Models
1
...
The Incremental Model (Nature, Situations in which applicable with example,
General Steps, Drawbacks)
3
...
Prototyping (Nature, Situations in which applicable with example, General
Steps, Drawbacks)
5
...
Agile Software Development
6
...
Features of the Agile Software Development Approach
8
...
Definition of Software and Characteristics of Software
1
...
Instructions (computer programs) that when executed provide desired function and
performance
...
Data structures that enable the programs to adequately manipulate information
...
Documents that describe the operation and use of the programs
...
Characteristics of Software
(Question: Define software
...
– 3 Marks)
Software is a logical rather than a physical system element
...
Software is developed or engineered, it is not manufactured in the classical sense
...
– 3 Marks)
1
...
2
...
3
...
4
...
5
...
This means that software projects
cannot be managed as if they were manufacturing projects
...
Software doesn't "wear out
...
– 3 Marks)
1
...
1 explains the failure rate as a function of time for hardware
...
1
2
...
3
...
4
...
5
...
6
...
2
...
Undiscovered defects will cause high failure rates early in the life of a program
...
8
...
9
...
But it does deteriorate!
Anuradha Bhatia
Software Engineering
Figure 1
...
Although the industry is moving toward component-based assembly, most
software continues to be custom built
...
Consider the manner in which the control hardware for a computer-based product
is designed and built
...
Each integrated circuit (called an IC or a chip) has a part number, a defined and
validated function, a well-defined interface, and a standard set of integration
guidelines
...
2
...
In the 1960s, we built scientific subroutine
libraries that were reusable in a broad array of engineering and scientific
applications
...
Today, we have extended
our view of reuse to encompass not only algorithms but also data structure
...
For
example, today's graphical user interfaces are built using reusable components that
enable the creation of graphics windows, pull-down menus, and a wide variety of
interaction mechanisms
...
Types / Categories of Software
1
...
System software is a collection of programs written to service other programs
...
Few examples of system software are compilers, editors, and file management
utilities, process complex, but determinate, information structures
...
Other systems applications are operating system components, drivers, and
telecommunications
...
Real-time Software
(Question: Explain the features of real world software
...
Software that monitors or analyzes or controls real-world events as they occur is
called real time
...
Elements of real-time software include a data gathering component that collects
and formats information from an external environment, an analysis component that
transforms information as required by the application
...
A control/output component that responds to the external environment, and a
monitoring component that coordinates all other components so that real-time
response can be maintained
...
Business Software
1
...
Discrete "systems”
...
For example: payroll, accounts receivable/payable, inventory have evolved into
management information system (MIS) software that accesses one or more large
databases containing business information
...
Applications in this area restructure existing data in a way that facilitates business
operations or management decision making
...
In addition to conventional data processing application, business software
applications also encompass interactive computing
...
Engineering and Scientific Software
1
...
2
...
3
...
Anuradha Bhatia
Software Engineering
4
...
5
...
Intelligent products have become commonplace in nearly every consumer and
industrial market
...
Embedded software resides in read-only memory and is used to control products
and systems for the consumer and industrial markets
...
Embedded software can perform very limited and esoteric functions, for example:
keypad control for a microwave oven
...
To provide significant function and control capability, for example: digital functions
in an automobile such as fuel control, dashboard displays, and braking systems
...
Personal Computer Software
1
...
2
...
7
...
The Web pages retrieved by a browser are software that incorporates executable
instructions and data
...
Software Engineering
1
...
Software engineering can be divided into
ten sub disciplines
...
Software requirements: The elicitation, analysis, specification, and validation
of requirements for software
...
Software design: The process of defining the architecture, components, interfaces,
and other characteristics of a system or component
...
3
...
4
...
Anuradha Bhatia
Software Engineering
5
...
6
...
7
...
8
...
9
...
10
...
2
...
Computer information and control systems are increasingly embedded and
integrated into the fabric of human society
...
Computer systems are not standalone, but are usually just component parts of
much larger, complex systems involving hardware, software, people, and all the
unpredictable events in the natural world
...
Our very lives depend on these interdependent systems working reliably all the
time
...
Most people, even most computer science graduates, are not fully aware of both
the difficulty involved in building such complex systems and the essential need for
those building them to be equipped with advanced techniques not taught in
ordinary computer programming courses
...
Software Engineering is the discipline dedicated to the principles and techniques
required for the sound construction of the computer systems of today and
tomorrow
...
Model and understand complex interactive systems
...
iii
...
IV
...
Manage the construction of the information system components
...
Relationship between System Engineering and Software
Engineering
(Question: What is Software engineering? How it differs from system
engineering? – 3 Marks)
1
...
2
...
While a software engineer will only work on the
programs that the user uses
...
Software engineering is a branch to make software this is a continuous task, while
software system is a product which is made by the software engineering
...
3
Anuradha Bhatia
Software Engineering
V
...
This is known as the layered approach of software engineering
as shown in Figure 1
...
4
1
...
Software engineering is a layered technology
...
4, any
engineering approach must rest on an organizational commitment to quality
...
Total quality management and similar philosophies foster a continuous process
improvement culture, and this culture ultimately leads to the development of
increasingly more mature approaches to software engineering
...
The bedrock that supports software engineering is a quality focus
...
Process Layer
1
...
2
...
3
...
3
...
Software engineering methods provide the technical how-to's for building software
...
Methods encompass a broad array of tasks that include requirements analysis,
design, program construction, testing, and support
...
Tools Layer
1
...
2
...
CASE combines software, hardware, and a
software engineering database
...
Software Development Generic Process Framework
1
...
5
...
2
...
3
...
4
...
Figure 1
...
Level 1: Initial
...
Few processes are defined, and success depends on individual effort
...
Level 2: Repeatable
...
The necessary process discipline is in place to
repeat earlier successes on projects with similar applications
...
Level 3: Defined
...
All projects use a documented and approved version of the
organization's process for developing and supporting software
...
4
...
Detailed measures of the software process and product quality
are collected
...
This level includes all
characteristics defined for level 3
...
Level 5: Optimizing
...
This
level includes all characteristics defined for level 4
...
Personal and Team Process Models (PSP and TSP)
(Question: Compare PSP and TSP with respect to software engineering - 4 Marks)
1
...
PSP (Personal Software Process) provide a standard personal process structure for
software developers
...
that serve
as a guideline for software developers to plan, measure and manage their work,
including how to define their processes and measure quality and productivity
...
PSP provides software engineers a disciplined methods for improving personal
software development process
...
PSP helps software engineers to
i
...
ii
...
iii
...
iv
...
4
...
5
...
Anuradha Bhatia
Software Engineering
2
...
Planning: This activity isolates requirements and specifications to be decided
prior to the development and estimates the size and the cost of the project
...
High Level Design Review: Formal verification methods are applied to uncover
errors
3
...
4
...
The code
is generated, reviewed and tested
...
High-Level Design: External specifications and requirements for each
component to be constructed and developed
...
Goals of PSP
The goal of PSP is to provide software engineers with disciplined
methods for improving personal software development
...
Improve their estimating and planning skill
...
Make commitment they can keep
...
Manage the quality of their product
...
Reduce the number of defects in their work
...
Disadvantage of PSP
1
...
2
...
3
...
5
...
TSP (Team Software Process) is a guideline for software product development
teams
...
TSP focuses on helping development teams to improve their quality and
productivity to better meet goals of cost and progress
...
TSP is designed for groups ranging from 2 persons to 20 persons
...
4
...
Each step is focused on solving
particular process problems
...
1
...
3
...
To facilitate university teaching of industrial grade team skills
...
7
...
Launch: It reviews course objective and describes the TSP structure and
content
...
2
...
3
...
Planning also
identifies tasks to be performed, and estimates the time to complete each task
...
Requirement: Analyzes the need statement and interviews the customer,
specify and inspect the requirements
...
Design: it creates the high level design, specify the design, inspect the design
and develop the integration plan
...
Implement: This uses the PSP to implement the modules and the functions
...
Test: Testing builds and integrates the system
...
Postmortem: Writes the cycle report and produces peer and team review
...
Perspective Process Models
a
...
Also known as the classic life cycle or the waterfall model, the linear sequential
model suggests a systematic, sequential approach to software development that
begins at the system level and progresses through analysis, design, coding, testing,
and support
...
Figure 1
...
3
...
6
4
...
Because software is always part of
a larger system (or business), work begins by establishing requirements for all
system elements and then allocating some subset of these requirements to
software
...
Phases of waterfall model:
i
...
ii
...
The design
process translates requirements into a representation of the software that
can be assessed for quality before coding begins
...
iii
...
The code generation step performs this task
...
iv
...
The testing
process focuses on the logical internals of the software, ensuring that all
statements have been tested, and on the functional externals; that is,
conducting tests to uncover errors and ensure that defined input will
produce actual results that agree with required results
...
Advantages
i
...
ii
...
7
...
Doesn’t cope well with changes the client
...
Development required by teams might wait for each other
...
A working version of the product is available only late
...
Applicability
i
...
ii
...
b
...
The incremental model combines elements of the linear sequential model with the
iterative philosophy of prototyping
...
Figure 1
...
3
...
4
...
5
...
Figure 1
...
The incremental process model, like prototyping and other evolutionary
approaches, is iterative in nature
...
But unlike prototyping, the incremental model focuses on the delivery of an
operational product with each increment
...
Early increments are stripped down versions of the final product, but they do
provide capability that serves the user and also provide a platform for evaluation by
the user
...
Advantages:
i
...
ii
...
iii
...
iv
...
v
...
vi
...
vii
...
10
...
Increments need be relatively small
ii
...
iii
...
11
...
When it is possible to deliver the system “part-by-part”
...
RAD Model
(Question: Describe various phases of RAD process model with neat
diagram, - 6 Marks)
1
...
2
...
3
...
g
...
4
...
The information flow defined as part of the business modeling phase
is refined into a set of data objects that are needed to support the business
...
5
...
The data objects defined in the data modeling phase are
transformed to achieve the information flow necessary to implement a business
function
...
Anuradha Bhatia
Software Engineering
6
...
RAD assumes the use of fourth generation techniques
...
7
...
8
...
Since the RAD process emphasizes reuse, many of the
program components have already been tested
...
However, new components must be tested and all interfaces must be fully
exercised
...
8
d
...
The prototyping paradigm (Figure 1
...
2
...
3
...
The quick design focuses on a representation of those
aspects of the software that will be visible to the customer/user (e
...
, input
approaches and output formats)
...
9
4
...
5
...
Iteration occurs as the prototype is tuned to
satisfy the needs of the customer, while at the same time enabling the developer to
better understand what needs to be done
...
The customer sees what appears to be a working version of the software, unaware
that the prototype is held together “with chewing gum and baling wire,” unaware
that in the rush to get it working no one has considered overall software quality or
long-term maintainability
...
When informed that the product must be rebuilt so that high levels of quality can
be maintained, the customer cries foul and demands that "a few fixes" be applied
to make the prototype a working product
...
Too often, software development management relents
...
The developer often makes implementation compromises in order to get a
prototype working quickly
...
An inappropriate operating system or programming language may be used simply
because it is available and known; an inefficient algorithm may be implemented
simply to demonstrate capability
...
After a time, the developer may become familiar with these choices and forget all
the reasons why they were inappropriate
...
The less-than-ideal choice has now become an integral part of the system
...
Spiral Model
(Question: Describe various phases of Spiral process model with neat
diagram, - 6 Marks)
A spiral model is divided into a number of framework activities, also called task regions
...
Figure 1
...
Customer communication—tasks required to establish effective communication
between developer and customer
...
Planning—tasks required to define resources, timelines, and other project related
information
...
Risk analysis—tasks required to assess both technical and management risks
...
Engineering—tasks required to build one or more representations of the
application
...
Construction and release—tasks required to construct, test, install, and provide
user support (e
...
, documentation and training)
...
10
6
...
Risk reduction mechanisms are in place
ii
...
Systematic approach
7
...
Requires expertise in risk evaluation and reduction
ii
...
Applicable only to large systems
8
...
IX
...
Difference between Perspective and Agile Process Model
(Question: Difference between Prescriptive and Agile Process Model - 3
marks)
1
...
2
...
3
...
4
...
5
...
6
...
But those habits persist
...
It can be difficult to keep the interest of customers who are involved in the process
...
Team members may be unsuited to the intense involvement that characterizes agile
method
...
Prioritizing changes can be difficult where there are multiple stakeholders
...
Maintaining simplicity requires extra work
...
Contracts may be a problem as with other approaches to iterative development
...
Features of the Agile Software Development Approach
(Question: Give the Features of the Agile Software Development
Approach- 6 marks)
1
...
Customer
involvement
Customers should be closely involved throughout the
development process
...
3
...
4
...
Team members should be left to develop their own
ways of working without prescriptive processes
...
Embrace
change
Expect the system requirements to change and so design the
system to accommodate these changes
...
Maintain
simplicity
Focus on simplicity in both the software being developed and in
the development process
...
h
...
1
...
Increments are delivered to customers every 2 weeks;
3
...
4
...
11
5
...
Principle
practice
or Description
2
...
The developers break these stories into
development ‘Tasks’
...
5 and 3
...
3
...
Releases of the system are frequent
and incrementally add functionality to the first release
...
Simple
design
Enough design is carried out to meet the current requirements
and no more
...
Test-first
An automated unit test framework is used to write tests for a
development new piece of functionality before that functionality itself is
implemented
...
Refactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found
...
Anuradha Bhatia
Title: software engg
Description: this will help you to know the basics of software development and devloping methods
Description: this will help you to know the basics of software development and devloping methods