0% found this document useful (0 votes)
15 views6 pages

Introduction

maAm,s

Uploaded by

saranya
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)
15 views6 pages

Introduction

maAm,s

Uploaded by

saranya
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/ 6

Unit-12 Software Engineering

1. INTRODUCTION

A discipline whose aim is the production of quality software, software that is delivered on time,
within budget and that satisfies its requirements.
Program vs Software
Software is more than programs. It consist of programs, documentation of any facet of the
program and the procedures used to setup and operate the software system.

Programs

Operating
Documentation
Procedures

Any program is subset of software and it becomes software only if documentation and operating
procedures manuals are prepared. Program is a combination of source code and object code.
Documentation consist of different types of manuals as shown.
Formal spec ification
Analysis
Context Diagram
Specification
Data Flow Dig (DFA)

Design Flow Charts

ER Diagrams
Documentation
Manuals Source Code Listings

Implementation Cross Reference Listings

Test data
Testing
Test Results

Operating procedures consist of instructions to setup and use the software system and instructions
on how to react to system failure.
System Overview
User
Beginner’s guide tutorial
Manuals
Operating Reference guide
procedures
Installation guide
Operating
Manuals
System admin guide

Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 1


Computer Science and Applications (Software Engineering)

Software Process
The software process is the way in which we produce software. This differs from organization
to organization. We need effective software development processes, so that developers can systematically
use the best technical and managerial practices to successfully complete their projects.
It is however very difficult to improve the software process. Reasons –
1. Not enough time : Unrealistic schedules leave insufficient time to do essential project
work. No software groups are sitting with plenty of time to explore what is wrong with their
current development process and what should they do differently.
2. Lack of Knowledge : Many software developers do not seem to be familiar with industry
best practices. Developers look out for books on Java, but do not look for anything about
processes, testing or quality.
Industry awareness of process improvement such as CMM and ISO 9001 have grown but
not effective.
3. Wrong Motivations : Developers aim for higher CMM level or external certification (ISO
9000) just because an external entity / senior manager demand it. However, main motivation
should be customer satisfaction, reusability.
4. Insufficient Commitments : Software process improvement fails because of true
commitments. Management sets no expectation from the development community regarding
process improvement.
The investment made in process improvement will not have an impact on current
productivity because it is to work toward better tomorrow.
Improved future state
Initial Process
state improvement
begins

Productivity

Learing Curve

Time 
Process Improvement Learning Curve
Software Characteristics
1. Software doesn't wear out : There is a well known bath tub curve that applies to
hardware products.

Burn
in

Failure Wear Out


Intensity Useful Life

Time 

Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 2


Computer Science and Applications (Software Engineering)

There are 3 phases


a. Initial/burn inphase : Failure intensity is high. Test the product in industry before
delivery. Due to testing and fixing faults, failure intensity came down and then
stabilize.
b. Useful life of a product : Failure intensity is approx constant.
c. Wear out phase : Failure intensity again increases due to wear out of components.
Software does not wear out. It becomes reliable overtime.

Failure
Intensity

Time
It becomes obsolete only if the environment for which it was developed changes. Retired
due to new environmental changes, new requirements, new expectation etc.
2. Software is not manufactured : It is a one-time development and continuous maintenance
effort, in order to keep it operational. Making 1000 copies is not an issue and does not
involve cost. For hardware every copy cost due to raw material and other expense.
3. Reusability of Components : Every project is a new project. We start from scratch.
However effort has been made to design standard components (like GUI) that may be
used in new projects. However in hardware revsability is a natural part.
4. Software is Flexible : A program can be developed to do almost anything. This sometimes
make software development difficult to plan, monitor and control. This unpredictable behavior
is referred to as 'Software Crisis'.
Software Myths
1. Software is Easy to Change : Source code is easy to alter, but making changes without
introducing error is extremely difficult. Every change require the complete system to be
reverified. If not taken care, it is tedious and expensive process.
2. Computers provide greater reliability that the devices they replace : In manual
account systems, human error was a fact of life. Now software error.
3. Testing can Remove all errors : Testing is to show presence of errors not its absence.
Effective test case is to find maximum possible errors. The more we test the more
confident we are about the design.
4. Reusing Software Increases Safety : Code Reusability affects development efficiency.
5. Software can Work Right the First time : Software engineers are often asked to deliver
the software without even building a prototype.
6. Software can be Designed Thoroughly enough to Avoid Most Integration Problems
: There is no tool for inconsistencies in specification. Special care is required to under
stand the specification and should be resolved right before design.
7. Software with more Features is better Software : It is better, that software with less
features works out well.
8. Addition of more software engineers will make up delay : Software engineers if don't
coordinate with can other well will add up to delay.
Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 3
Computer Science and Applications (Software Engineering)

9. Aim is to Develop Working Program : Aim of software engineering has been shifted to
good quality, maintainable programs.
Some Terminologies
1. Deliverable and Milestones :
Deliverables – generated during software development.
Example : Source code, user manuals.
Milestone – that ascertain status of the project.
Example : Formalization of specification, completion of design document.
2. Product and Process :
Product – what is to be delivered to the customer set of deliverables only.
Process – It is the way in which we produce software.
It is important for good quality software.
3. Measure, Metrics and Measurement :
Measure – Quantitative indication of size, capacity, productivity, reliability of product/process.
Measurement – act of evaluating a measure
Metrics – quantitative measure of degree to which a system, component or process
possesses a given attribute.
Example :
 Measure (single data point) – Number of errors uncovered in a single module.
 Measurement (collection of one or more data points) – a number of module reviews
are investigated to collect measures of number of errors in each modules
 Metrics (relate individual measure in some way) – average number of errors found
per review.
4. Software Process and Product Review :
Process Metrics : quantity attributes of software development process and environment.
Example – productivity, quality, failure rate, efficiency.
Product Metrics – measure for software product.
Example Size, complexity, functionality etc.
5. Productivity and effect :
Productivity – rate of output
– quantity, of output & unit of time

LOC
KLOC / PM
days / month

Effort – person-month (PM)


6. Module and Software Components :
Modules are subprogram
Software component – modular, deployable and replaceable part of a system that
encapsulates implementation and exposes a set of interfaces.
7. Generic and Customized Software Products :
Generic products – developed for anonymous customers.
Target is entire world. Example, compiler, word processors.
Customized products – developed for customers / specific customers. 80% of development
comes under this category.

Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 4


Computer Science and Applications (Software Engineering)

Role of Management in Software Development


The management of software development depends
People
1

Project Dependency
4 2 Product
order

3
Process
Software development is a people centric activity. Hence, success of the project is on the
shoulders of people who are involved in the development.
People
 Software development require good managers. Managers who can understand the
psychology of people and provide good leadership. A good manager ensure probability of
success improves.
 Areas to focus include proper selection, training, compensation, career development,
work culture etc.
 It is the responsibility of manager to manage, motivate, encourage, guide and control
people of his/her team.
Product
 It is what we want to deliver to the customer.
 Objectives and scope of work should be defined clearly to understand the requirements.
Alternate solution should be discussed to help managers select the best approach within
constraints such as delivery, deadlines, budgetary restrictions, technical interfaces etc.
Without well defined requirements, it is impossible to define reasonable estimates of cost, time
and schedule of projects.
Process
Way in which we produce software.
If the process is weak, end product will suffer.
There are now a days different life cycle models and process improvement models that can be
selected. Ex-CMM.
Project
A proper planning is required to monitor the status of development and to control the complexity.
Also, the requirements should be defined, concrete. Do freeze the requirement. Changes should
not be incorporated to avoid software surprises. Software surprises are risky and should minimize them.
All four factors are important for project's success.
Solved Examples
1. Software does not wear-out in the traditional sense of the term, but software does tend to
deteriorate as it evolves, because :
(A) Software suffers from exposure to hostile environments.'
(B) Defects are more likely to arise after software has been used often.
(C) Multiple change requests introduce errors in component interactions.
(D) Software spare parts become harder to order.
Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 5
Computer Science and Applications (Software Engineering)

1. (C) Software doesn't wear out but as the environment changes and needs change, it becomes
gradually less useful/effective and more errors.

2. Which of the following is not a key issue stressed by an agile philosophy of software engineering?
(A) The importance of self-organizing teams as well as communication and collaboration
between team members and customers.
(B) Recognition that change represents opportunity.
(C) Emphasis on rapid delivery of software that satisfies the customer.
(D) Having a separate testing phase after a build phase.
2. (D) List the key issues stressed by an agile philosophy of software engineering:
 The importance of self-organizing teams
 Communication and collaboration between team members and customers
 Recognition that change represents opportunity
 Emphasis on rapid delivery of software that satisfies the customer

3 _________ are applied throughout the software process.


(A) Framework activities (B) Umbrella activities
(C) Planning activities (D) Construction activities
3. (B) Umbrella activities are applied throughout the software process.
Umbrella activities include:
Document Preparation and Production.
Configuration Management.
Project Tracking and Control.
Quality Assurance.
Formal Technical Review.
Reusability Management.
Measurement.
Risk Management

4. Main aim of software engineering is to produce


(A) Program
(B) Software
(C) Within Budget
(D) Software within budget, in the given schedule
4. (D)

5. _________ ascertain the status of the project


(A) Deliverables (B) Milestone
(C) Customer accepting the product (D) Productivity
5. (B)

Contact Us : Website : www.eduncle.com | Email : [email protected] | Call Toll Free : 1800-120-1021 6

You might also like