0% found this document useful (0 votes)
4 views20 pages

Chapter-2 Software Process

software process
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)
4 views20 pages

Chapter-2 Software Process

software process
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

Chapter-2

Software Process
Topics Covered

 Layered Technology
 Software Process Framework
 Generic Process Framework Activities
 Umbrella Activities
Overview

 What? A software process – as a framework for the


tasks that are required to build high-quality software.

 Who? Managers, software engineers, and customers.

 Why? Provides stability, control, and organization to an


activity

 Steps? A handful of activities are common to all


software processes, details vary.

 Work product? Programs, documents, and data.


Software Engineering – Layered Technology
Software Engineering – Layered Technology

A quality Focus
 Every organization is rest on its commitment to quality.
 Total quality management, Six Sigma, or similar
continuous improvement culture and it is this culture
ultimately leads to development of increasingly more
effective approaches to software engineering.
 The bedrock that supports software engineering is a
quality focus.
QUALITY/ SOFTWARE QUALITY

 Software quality is the degree of conformance to


explicit or implicit requirements and expectations.
 Explicit: clearly defined and documented
 Implicit: not clearly defined and documented but indirectly
suggested
 Requirements: business/product/software requirements
 Expectations: mainly end-user expectations
 Definition by IEEE
— The degree to which a system, component, or process meets
specified requirements / customer or user needs or
expectations.
 Software Quality:
— The totality of functionality and features of a software product
that bear on its ability to satisfy stated or implied needs.
SOFTWARE QUALITY DIMENSIONS

 Accessibility: 
— The degree to which software can be used comfortably by a
wide variety of people, including those who require assistive
technologies like screen magnifiers or voice recognition.
 Compatibility: 
— The suitability of software for use in different environments like
different Operating Systems, Browsers, etc.
 Concurrency: 
— The ability of software to service multiple requests to the same
resources at the same time.
 Efficiency: 
— The ability of software to perform well or achieve a result
without wasted energy, resources, effort, time or money.
SOFTWARE QUALITY DIMENSIONS

 Functionality:
— The ability of software to carry out the functions as specified or
desired.
 Install ability: 
— The ability of software to be installed in a specified environment.
 Localizability: 
— The ability of software to be used in different languages, time
zones etc.
 Maintainability:
—  The ease with which software can be modified (adding features,
enhancing features, fixing bugs, etc)
 Performance: 
— The speed at which software performs under a particular load.
 Portability: 
— The ability of software to be transferred easily from one location to
SOFTWARE QUALITY DIMENSIONS

 Reliability: 
— The ability of software to perform a required function under
stated conditions for stated period of time without any errors.
 Scalability: 
— The measure of software’s ability to increase or decrease in
performance in response to changes in software’s processing
demands.
 Security: 
— The extent of protection of software against unauthorized
access, invasion of privacy, theft, loss of data, etc.
 Testability: 
— The ability of software to be easily tested.
 Usability: 
— The degree of software’s ease of use.
QUALITY/ SOFTWARE QUALITY

 A product should meet its specification.


 This is problematical for software systems.

 Customer quality requirements (efficiency, reliability, etc.)


 Developer quality requirements (maintainability, reusability, etc.)
 Users (usability, efficiency, etc.), and etc.
Software Engineering – Layered Technology

Process:
 It’s a foundation layer for software engineering.
 It’s define framework for a set of key process areas
(KRA) for effectively manage and deliver quality
software in a cost effective manner
 The processes define the tasks to be performed and
the order in which they are to be performed
Software Engineering – Layered Technology

Process:
 A software development methodology (also known as
a system development methodology, software
development life cycle, software development process,
software process) is a division of software
development work into distinct phases (or stages)
containing activities with the intent of better planning
and management.
Software Engineering – Layered Technology

• Purpose of process is to deliver software in a timely


manner and with sufficient quality to satisfy those who
have sponsored its creation and those who will use it.

• The methodology may include the pre-definition of


specific deliverables and artifacts that are created and
completed by a project team to develop or maintain an
application.
Software Engineering – Layered Technology

Methods:
 It 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.
 There could be more than one technique to perform a
task and different techniques could be used in different
situations.
Software Engineering – Layered Technology

Tools:
 Provide automated or semi-automated support for the
process, methods and quality control.
 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 (CASE)
Process Framework
Process framework

Why process
A process defines who is doing what, when and how to
reach a certain goal.
 To build complete software process.
 Identified a small number of framework activities that
are applicable to all software projects, regardless of
their size or complexity.
 It encompasses a set of umbrella activities that are
applicable across the entire software process.
Generic Process Framework Activities

 Communication:
— Heavy communication with customers, stakeholders, team
— Encompasses requirements gathering and related activities
 Planning:
— Workflow that is to follow
— Describe technical task, likely risk, resources will require, work
products to be produced and a work schedule.
 Modeling:
— Help developer and customer to understand requirements
(Analysis of requirements) & Design of software
 Construction
— Code generation: either manual or automated or both
— Testing – to uncover error in the code.
 Deployment:
— Delivery to the customer for evaluation
— Customer provide feedback
Umbrella Activities

 Software project tracking and control


— Assessing progress against the project plan.
— Take adequate action to maintain schedule.

 Formal technical reviews


— Assessing software work products in an effort to uncover and
remove errors before goes into next action or activity.

 Software quality assurance


— Define and conducts the activities required to ensure software
quality.

 Software configuration management


— Manages the effects of change.
Umbrella Activities

 Document preparation and production


— Help to create work products such as models, documents, logs,
form and list.

 Reusability management
— Define criteria for work product reuse
— Mechanisms to achieve reusable components.

 Measurement
— Define and collects process, project, and product measures
— Assist the team in delivering software that meets customer’s
needs.

 Risk management
— Assesses risks that may effect that outcome of project or

You might also like