Software Engineering
Software Engineering
models
www.educlash.com
SDLC
• A framework that describes the activities performed at each stage of a
software development project.
• The development process defines what to do and when to complete and the
order of tasks.
• A software lifecycle model is a standardised format for planning ,
organising, and running a new development project.
• It defines the Project specific parameters which includes size, (person-
years),Budget,Duration.
project plan =
lifecycle model + project parameters
• Within the product lifecycle, software will undergo maintenance to correct
errors and to comply with changes to requirements.
www.educlash.com
Typical Phases in Software
Development
Feasibility study
Feasibility Implementation
Strategy planning
Component
Elicitation Integration
Requirements Testing
Statement Installation
System Operations
Analysis Maintenance
Detailed Support
System
Design Retirement
Detailed
www.educlash.com
Activities During Phases
• Requirements: establish the customer’s needs
SDLC Model
V Model Waterfall
www.educlash.com
b. Waterfall Model
Requirements
Specification
Architectural
Design
Detailed
Design
Code and Unit
Testing
Software
Integration
System
Integration
Acceptance
Testing
www.educlash.com
Different Phases of Sequential
Model :
• Requirements phase - in which the requirements for the software are
gathered and analyzed, to produce a complete and unambiguous
specification of what the software is required to do
• Detailed Design phase - where the detailed implementation of each
component is specified.
• Code and Unit Test phase - in which each component of the software is
coded and tested to verify that it faithfully implements the detailed
design.
• Software Integration phase - in which progressively larger groups of
tested software components are integrated and tested until the software
works as a whole.
• System Integration phase - in which the software is integrated to the
overall product and tested.
• Acceptance Testing phase, where tests are applied and witnessed to
validate that the software faithfully implements the specified
requirements.
• Software specifications will be products of the first three phases of this
lifecycle model. The remaining four phases all involve testing the
software at various levels, requiring test specifications against which the
testing will be conducted as an input to each of these phases.
www.educlash.com
Waterfall Strengths
• Easy to understand, easy to use
• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff,
track)
• Works well when quality is more important
than cost or schedule
www.educlash.com
disadvantages
• Idealised, doesn’t match reality well.
• Doesn’t reflect iterative nature of exploratory development.
• Unrealistic to expect accurate requirements so early in project
• Software is delivered late in project, delays discovery of serious errors.
• Difficult to integrate risk management
• Difficult and expensive to make changes too documents.
• Significant administrative overhead,
• costly for small teams and projects
www.educlash.com
When to use the Waterfall Model
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
www.educlash.com
3. Iterative Model
Requirements Design
Implementation
Review
and Test
www.educlash.com
3. Iterative Model - Phases
• Requirements phase, in which the requirements for the
software are gathered and analyzed. Iteration should
eventually result in a requirements phase which produces a
complete and final specification of requirements.
• Design phase, in which a software solution to meet the
requirements is designed. This may be a new design, or an
extension of an earlier design.
• Implementation and Test phase, when the software is
coded, integrated and tested.
• Review phase - in which the software is evaluated, the
current requirements are reviewed, and changes and
additions to requirements proposed
www.educlash.com
Rapid Application Model (RAD)
• Requirements planning phase (a workshop utilizing
structured discussion of business problems)
• User description phase – automated tools capture
information from users
• Construction phase – productivity tools, such as code
generators, screen generators, etc. inside a time-box.
(“Do until done”)
• Cutover phase -- installation of the system, user
acceptance testing and user training.
www.educlash.com
RAD Strengths
• Reduced cycle time and improved productivity with fewer
people means lower costs
• Time-box approach mitigates cost and schedule risk
• Customer involved throughout the complete cycle minimizes
risk of not achieving customer satisfaction and business needs
• Focus moves from documentation to code.
• Uses modeling concepts to capture information about business,
data, and processes.
www.educlash.com
RAD Weaknesses
• Accelerated development process must give quick responses to
the user
www.educlash.com
When to use RAD
• Reasonably well-known requirements
• User involved throughout the life cycle
• Project can be time-boxed
• Functionality delivered in increments
• High performance not required
• Low technical risks
• System can be modularized
www.educlash.com
The Unified Process
• Booch, Jacobson, and Rumbaugh later developed the unified
process, which is a framework for object-oriented software
engineering using UML
– Draws on the best features and characteristics of conventional
software process models
– Emphasizes the important role of software architecture
– Consists of a process flow that is iterative and incremental,
thereby providing an evolutionary feel
www.educlash.com
Phases of the Unified Process
Inception Elaboration
planning
modeling
communication
construction
Construction
deployment
Production Transition
www.educlash.com
Inception Phase
• Encompasses both customer communication and planning activities of
the generic process
www.educlash.com
Elaboration Phase
• Encompasses both the planning and modelling activities of the generic process
– Use-case model
– Analysis model
– Design model
– Implementation model
– Deployment model
• The baseline demonstrates the viability of the architecture but does not provide
all features and functions required to use the system
www.educlash.com
Construction Phase
• Analysis and design models from the previous phase are completed
to reflect the final version of the increment
• Use cases are used to derive a set of acceptance tests that are
executed prior to the next phase
www.educlash.com
Transition Phase
• Encompasses the last part of the construction activity and the first
part of the deployment activity of the generic process
• Software is given to end users for beta testing and user feedback
reports on defects and necessary changes
www.educlash.com
Production Phase
• Defect reports and requests for changes are submitted and evaluated
23
www.educlash.com
Evolutionary Development..
• Main characteristics:
– The phases of the software construction are interleaved
– Throw-away prototyping
www.educlash.com
Evolutionary Development..
• Advantages:
– Deals constantly with changes
– Provides quickly an initial version of the system
– Involves all development teams
• Disadvantages:
– Quick fixes may be involved
– The client may have the impression the first version is very close to
the final product and thus be less patient
www.educlash.com
Incremental model
www.educlash.com
Incremental model
• Construct a partial implementation of a total system
www.educlash.com
Incremental Model Strengths
www.educlash.com
When to use the Incremental Model
• Risk, funding, schedule, program complexity, or need for
early realization of benefits.
www.educlash.com
Spiral Quadrant
Determine objectives, alternatives and constraints
www.educlash.com
Spiral Quadrant
Evaluate alternatives, identify and resolve risks
www.educlash.com
Spiral Quadrant
Develop next-level product
• Typical activities:
– Create a design
– Review design
– Develop code
– Inspect code
– Test product
www.educlash.com
Spiral Quadrant
Plan next phase
• Typical activities
– Develop project plan
– Develop configuration management plan
– Develop a test plan
– Develop an installation plan
www.educlash.com
Spiral Model Strengths
• Provides early indication of insurmountable risks,
without much cost
• Users see the system early because of rapid
prototyping tools
• Critical high-risk functions are developed first
• The design does not have to be perfect
• Users can be closely tied to all lifecycle steps
• Early and frequent feedback from users
• Cumulative costs assessed frequently
www.educlash.com
Spiral Model Weaknesses
• Time spent for evaluating risks too large for small or low-risk projects
• Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
• The model is complex
• Risk assessment expertise is required
• Spiral may continue indefinitely
• Developers must be reassigned during non-development phase
activities
• May be hard to define objective, verifiable milestones that indicate
readiness to proceed through the next iteration
www.educlash.com
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential
changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
www.educlash.com
Agile Software Development
• Agile software development is a conceptual framework for
software engineering that promotes development iterations
throughout the life-cycle of the project.
www.educlash.com
Agile Software Development:
Intro
• Characteristics of Agile Software Development
-- Light Weighted methodology
-- Small to medium sized teams
-- vague and/or changing requirements
-- vague and/or changing techniques
-- Simple design
-- Minimal system into production
www.educlash.com
Characteristics
• Modularity
• Iterative
• Time-bound
• Incremental
• Convergent
• People-oriented
• Collaborative
www.educlash.com
Disadvantages
• Agile is difficult as It Requires more TESTING & active
CUSTOMERS involvement.
• Agile is More disciplined. The code may be integrated
continuously, sometime after every update in source code
repository. Needs teams and self-discipline
• More Planning is needed Since the planning is done frequently (for
each iteration), and the plan is updated as and when needed more
focused planning needs to be done.
• The plan has to be adaptive to meet the changing requirements.
www.educlash.com
Software
• What Is Software?
Computer software is the product that
software professionals design and build.
• It encompasses
– Programs
– Content
– Documents
www.educlash.com
Information
www.educlash.com
What is Software Engineering
• Solving Problems
• Software products are large and complex
• Development requires analysis and synthesis
– Analysis: decompose a large problem into smaller,
understandable pieces
• abstraction is the key
– Synthesis: build (compose) a software from smaller
building blocks
• composition is challenging
www.educlash.com
Con..
• The analysis process
www.educlash.com
Con..
• The synthesis process
www.educlash.com
What is Software Engineering
Solving Problems (continued)
www.educlash.com
What is Software Engineering
Where Does the SW Engineer Fit in? (continued)
• Relationship between computer science and software
engineering
www.educlash.com
Characteristics
• Software does not wear out
• It becomes reliable over time.
• It becomes obsolete based on new changes
• Software is not manufactured
• One time development efforts
• Continuous maintenance efforts.
• Reusability of components
• Not a single product as a whole
• Every component – Single process
• Component based Software Engineering
• Software is flexible
• Can be made flexible
• Leads to unpredictability
www.educlash.com
The Evolving Role of Software
www.educlash.com
Types of Software
• System software
– it services other programs
– heavy interaction with hardware,
• Real-time software
– data gathering component
– analysis component
– monitoring component
• Business software
– largest single software area
– MIS important component
• Engineering and scientific software
– number crunching numerical algorithms
www.educlash.com
Types of Software
• Embedded software
– resides in read-only memory of any appliances
– controls products and system for consumers
• PC software
– several hundreds of applications available as
software packages
• Web-based software
– unlimited software resource
• AI software
– makes use of non-numerical algorithms
– expert systems, pattern recognition, games
www.educlash.com
Software Myths -
Management
• "We already have a book that is full of standards and procedures for
building software. Won't that provide my people with everything
they need to know?"
– Not used, not up to date, not complete, not focused on quality, time, and
money
• "If we get behind, we can add more programmers and catch up"
– Adding people to a late software project makes it later
– Training time, increased communication lines
• "If I decide to outsource the software project to a third party, I can
just relax and let that firm build it"
– Software projects need to be controlled and managed
www.educlash.com
Software Myths - Customer
www.educlash.com
Software Myths - Practitioner
• "Once we write the program and get it to work, our job is done"
– 60% to 80% of all effort expended on software occurs after it is
delivered
• "Until I get the program running, I have no way of assessing its
quality
– Formal technical reviews of requirements analysis documents,
design documents, and source code (more effective than actual
testing)
• "The only deliverable work product for a successful project is the
working program"
– Software, documentation, test drivers, test results
• "Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down"
– Creates quality, not documents; quality reduces rework and
provides software on time and within the budget
www.educlash.com
Software Planning
www.educlash.com
Problem
• Projects: Needs quantitative estimates and
organized plan.
• Requirement changes as the project
proceeds
• Important to define
1. Definition of problem
2. Scope of problem
3. Decomposition of problem
www.educlash.com
Software Scope
• First activity in Project Management
• It can be the answers of
1. Context:
How to make the system fit for all levels?
What are the constraints for the same?
2. Information Objectives:
What visible objects are projected as output.
What input is required for the same.
3. Function and Performance:
Regular functions (Input to Output)
Special functions
www.educlash.com
Problem Decomposition
• Defined as Partitioning
• Sits at the core of Requirement analysis.
• Two major areas:
1. Functionality – needs to be delivered.
2. The process – to deliver the same.
• Software functions – evaluated in the beginning
• Cost, Schedule estimation – based on
decomposition
• Some degree of decomposition – always good.
www.educlash.com
Software Metrics
www.educlash.com
Project indicators
www.educlash.com
Cont…
www.educlash.com
Project Metrics
Used for strategic purposes
– by a project manager and a software team to
adapt project work
– flow and technical activities .
Project metrics on estimation
effort and time duration estimates
Production rates
–pages of documentation,
–review hours,
–function points,
–delivered source lines
www.educlash.com
Con..
The intent of project metrics is twofold :
–to minimize the development schedule,
–to assess product quality on an ongoing basis and when
necessary, modify the technical approach to improve
quality.
Every project should measure:
Inputs - measures of the resources (e.g., people,
environment) required to do the work
Outputs - measures of the deliverables or work products
created during the software engineering process
Results - measures that indicate the effectiveness of the
deliverables
www.educlash.com
SOFTWARE MEASUREMENT
Direct measures (e.g., the length of a bolt)
Indirect measures (e.g., the "quality" )
Direct measures
–lines of code (LOC)
–execution speed
–memory size
–defects reported over some set period of time
Indirect measures
·functionality, quality, complexity, efficiency,
reliability,
·maintainability and many other "abilities"
www.educlash.com
Size-Oriented Metrics
Derived by normalizing quality and or productivity measures by considering the "size" of
the software
www.educlash.com
Con..
A set of simple size -oriented metrics can be
developed for each project:
• errors per KLOC (thousand lines of code)
• defects per KLOC
• $ per LOC
• pages of documentation per LOC
other interesting metrics:
• errors/person-month
• LOC per person-month
• $/page of documentation
www.educlash.com
Function-Oriented Metrics
Use a measure of the functionality delivered by the application as a
normalization value. Function-oriented metrics were first proposed
by Albrecht.
www.educlash.com
Con..
Number of user inputs. Each user input that provides distinct application
oriented data to the software is counted. Inputs should be distinguished from
inquiries, which are counted separately.
Number of files. Each logical master file (i.e., a logical grouping of data that
may be one part of a large database or a separate file), is counted.
www.educlash.com
COMPUTING FUNCTION POINTS
www.educlash.com
Con..
1. Does the system require reliable backup and recovery?
2. Are data communications required?
3. Are there distributed processing functions?
4. Is performance critical?
5. Will the system run in an existing, heavily utilized operational environment?
6. Does the system require on-line data entry?
7. Does the on-line data entry require the input transaction to be built over multiple
screens or operations?
8. Are the master files updated on-line?
9. Are the inputs, outputs, files, or inquiries complex?
10.. Is the internal processing complex?
11. Is the code designed to be reusable?
12. Are conversion and installation included in the design?
13. Is the system designed for multiple installations in different organizations?
14. Is the application designed to facilitate change and ease o f use by the user?
www.educlash.com
Feature point metrics
• FP doesn’t solve algorithmic complexity of a
software.
• It implies that developing efforts of two functionally
same programs are same.
• To resolve the same, feature point is proposed.
• It includes additional parameter – algorithmic
complexity.
• More complexity of the function – greater efforts to
develop it.
• These are language independent and easily
computed from SRS document.
www.educlash.com
Software Estimation
Determine size of the product.
From the size estimate,
determine the effort needed.
From the effort estimate,
determine project duration, and cost.
www.educlash.com
Software Cost Estimation
www.educlash.com
Three approaches
• Empirical
• Heuristic
• Analytical
www.educlash.com
Cost Estimation Techniques
Empirical techniques:
An educated guess based on past
experience.
Heuristic techniques:
Assume that the characteristics to be
estimated can be expressed in terms of some
Mathematical expression.
Analytical techniques:
Derive the required results starting from
certain simple assumptions.
www.educlash.com
Empirical Estimation Techniques
Expert Judgement:
A guess made by an expert.
Suffers from individual bias.
Delphi Estimation:
Overcomes some of the problems of
expert judgement.
www.educlash.com
Expert Judgment Technique
• Experts divide a software product into
component units:
e.g. GUI, database module, data communication
module, billing module, etc.
• Add up the guesses for each of the
components.
• Subject to human errors and individual bias.
• Experts may overlook some factors.
• Understanding all the aspects would be
difficult.
www.educlash.com
Delphi Estimation
• Team of Experts and a coordinator.
• Experts carry out estimation independently.
• Mention the rationale behind their estimation.
• Coordinator notes down any extraordinary
rationale.
• Circulates among experts.
• Experts re-estimate.
• Experts never meet each other
• To discuss their viewpoints.
www.educlash.com
Heuristic – COCOMO Model
• COCOMO (COnstructive COst MOdel)
proposed by Boehm.
• Divides software product developments into 3
categories:
• Organic
• Semidetached
• Embedded
www.educlash.com
Con.. Elaboration of Product
classes
Organic:
Development of well understood appl. Program.
Size is very small.
Team members develop similar applications.
Semidetached:
If it contains the mix of experienced and inexperienced staff.
Embedded:
The software is strongly coupled to complex hardware, or
real-time systems.
www.educlash.com
Con..
• Software cost estimation is done through
three stages:
– Basic COCOMO,
– Intermediate COCOMO,
– Complete COCOMO.
www.educlash.com
Basic COCOMO Model
• Gives only an approximate estimation:
– Effort = a1*(KLOC)a2
– Tdev = b1*(Effort)b2
KLOC is the estimated kilo lines of source code,
a1,a2,b1,b2 are constants for different
categories of software products,
Tdev is the estimated time to develop the
software in months,
Effort estimation is obtained in terms of person
months (PMs).
www.educlash.com
Development Effort Estimation
• Organic :
Effort = 2.4*(KLOC)1.05 PM
• Semi-detached:
Effort = 3.0*(KLOC)1.12 PM
• Embedded:
Effort = 3.6*(KLOC)1.20 PM
www.educlash.com
Development Time Estimation
• Organic:
Tdev = 2.5*(Effort)0.38 Months
• Semi-detached:
Tdev = 2.5*(Effort)0.35 Months
• Embedded:
Tdev = 2.5*(Effort)0.32 Months
www.educlash.com
Con.
• Development time
sub linear function of product size.
• When product size increases two times,
development time does not double.
• Time taken:
almost same for all the three product
categories.
www.educlash.com
Con..
• Development time is roughly the same for
all the three categories of products:
• For example, a 60 KLOC program can be
developed in approximately 18 months
regardless of whether it is of
organic, semidetached, or embedded type.
• There is more scope for parallel activities for
system and application programs,
• than utility programs.
www.educlash.com
Intermediate COCOMO
Basic COCOMO model assumes
– effort and development time depend on
product size alone.
However, several parameters affect effort
and development time:
– Reliability requirements
– Availability of CASE tools and modern
facilities to the developers
– Size of data to be handled
www.educlash.com
Con..
For accurate estimation,
• the effect of all relevant parameters must
be considered:
Intermediate COCOMO model recognizes
this fact:
• refines the initial estimate obtained by the
basic COCOMO by using a set of 15 cost
drivers (multipliers).
www.educlash.com
Con..
If modern programming practices are used,
• initial estimates are scaled downwards.
If there are stringent reliability requirements on
the product :
• initial estimate is scaled upwards.
Rate different parameters on a scale of one to
three:
• Depending on these ratings, multiply cost
driver values with the estimate obtained using
the basic COCOMO
www.educlash.com
Cost driver classes:
• Product: Inherent complexity of the
product, reliability requirements of the
product, etc.
• Computer: Execution time, storage
requirements, etc.
• Personnel: Experience of personnel, etc.
• Development Environment: Sophistication
of the tools used for software
development.
www.educlash.com
Shortcomings of two models
Both models:
consider a software product as a single
homogeneous entity:
However, most large systems are made up of
several smaller sub-systems.
– Some sub-systems may be considered as
organic type, some may be considered
embedded, etc.
– for some the reliability requirements may be
high, and so on.
www.educlash.com
Complete COCOMO
A Management Information System (MIS) for
an
organization having offices at several places
across the country:
– Database part (semi-detached)
– Graphical User Interface (GUI) part (organic)
– Communication part (embedded)
• Costs of the components are estimated
separately:
Summed up to give the overall cost of the system.
www.educlash.com
Con..
A Management Information System (MIS) for an
organization having offices at several places
across the country:
– Database part (semi-detached)
– Graphical User Interface (GUI) part (organic)
– Communication part (embedded)
Costs of the components are estimated
separately:
• summed up to give the overall cost of the system.
www.educlash.com
The Activities of the Analysis Phase
www.educlash.com
Activities of the Analysis Phase
and Their Key Questions
www.educlash.com
Techniques for Information
Gathering
• Analysis phase done to understand business
functions and develop system requirements
• Original structured approach
– Create model of existing system
– Derive requirements from existing system
model
• Current approach
– Identify logical requirements for new system
– Balance the review of current business
functions with new system requirements
www.educlash.com
Information Gathering and Model
Building
www.educlash.com
Fact Finding Methods
• Review existing reports, forms, and procedure
descriptions
• Interview and discussion processes with users
• Observe and document business processes
• Build prototypes
• Distribute and collect questionnaires
• Conduct joint application design (JAD) sessions
• Research vendor solutions
www.educlash.com
Review Existing Reports, Forms,
and Procedure Descriptions
• Source: External industry wide professional organizations
and trade publications
• Source: Existing business documents and procedure
descriptions within organization
– Identify business rules, discrepancies, and redundancies
– Be cautious of outdated material
– Obtain preliminary understanding of processes
– Use as guidelines / visual clues to guide interviews
www.educlash.com
Analyzing Procedures and Other
Documents
• Types of information to be discovered:
– What problems exist with the existing system
– Are there opportunities to meet new needs
– What’s the organizational direction?
– Who are the “key stakeholders
– What are the values of the organization
– Are there any special information processing
circumstances
– What’s the history of the current system design
– Are there rules for processing data
www.educlash.com
Analyzing Procedures and Other
Documents (cont.)
• Four types of useful documents
– Written work procedures
• Describes how a job is performed
• Includes data and information used and created in the process of
performing the job or task
– Business forms
• Explicitly indicate data flow in or out of a system
– Reports
• Enables the analyst to work backwards from the report to the data
that generated it
– Descriptions of current information system
www.educlash.com
Written work procedure
is a business document
that formally describes
work processes,
provides useful
information regarding
system functionality and
logic.
www.educlash.com
Observe and Document Business
Processes
• Varies from office walkthroughs to performing
actual tasks
• Two forms:
– Open-ended: conversational, questions with
no specific answers in mind
– Closed-ended: structured, questions with
limited range of possible answers
www.educlash.com
Guidelines for Effective
Interviewing
• Plan the interview.
– Prepare interviewee: appointment, priming questions.
– Prepare agenda, checklist, questions.
• Listen carefully and take notes (tape record if
permitted).
• Review notes within 48 hours.
• Be neutral.
• Seek diverse views.
www.educlash.com
Interview
• Step 1: Determine the People to Interview
– Informal structures
• Step 2: Establish Objectives for the
Interview
– Determine the general areas to be discussed
– List the facts you want to gather
www.educlash.com
Interviews
• Step 3: Develop Interview Questions
– Creating a standard list of interview questions
helps to keep you on track and avoid
unnecessary tangents
– Avoid leading questions
– Open-ended questions
– Closed-ended questions
– Range-of-response questions
www.educlash.com
Interviews
• Step 4: Prepare for the Interview
– Careful preparation is essential because
interview is an important meeting and not just
a casual chat
– Limit the interview to no more than one hour
– Send a list of topics
– Ask the interviewee to have samples available
www.educlash.com
Interviews
• Step 5: Conduct the Interview
– Develop a specific plan for the meeting
– Begin by introducing yourself, describing the
project, and explaining interview objectives
– Use engaged listening
– Allow the person enough time to think about
the question
– After interview, summarize the session and
seek a confirmation
www.educlash.com
Interviews
• Step 6: Document the Interview
– Note taking should be kept to a minimum
– After the interview, record the information
quickly
– After the interview, send memo expressing
appreciation, including the main points
discussed so the interviewee has a written
summary and can offer additions or
corrections
www.educlash.com
Interviews
• Step 7: Evaluate the Interview
– In addition to recording the facts obtained in
an interview, try to identify any possible
biases
• Unsuccessful Interviews
– No matter how well you prepare for
interviews, some are not successful
www.educlash.com
Issue with Individual Interviews
• Advantages
– Easier to schedule than group
interviews
• Disadvantages
– Contradictions and inconsistencies
between interviewees
– Follow-up discussions are time
consuming
– Only one at a time
www.educlash.com
Group Interviews
• Interview several key people together
• Advantages
– More effective use of time
– Can hear agreements and disagreements at once
– Opportunity for synergies
• Disadvantages
– More difficult to schedule than individual interviews
www.educlash.com
Sample Checklist to Prepare for User
Interviews
www.educlash.com
Questionnaire Steps
• Selecting participants
– Using samples of the population
• Designing the questionnaire
– Careful question selection
• Administering the questionnaire
– Working to get good response rate
• Questionnaire follow-up
– Send results to participants
www.educlash.com
Distribute and Collect
Questionnaires
• Limited and specific information from a large
number of stakeholders.
Avoid abbreviations
www.educlash.com
Types
• Open ended Questions:
– No response direction or specific response.
– Only questions with space provided for the
answers.
• Closed Questions:
– Fill-in-blanks
– Dichotomous(Yes/No) type
– Ranking scales
– Multiple choice questions
– Multiple choice with rating
www.educlash.com
Advantages
• It is economical and requires less skill.
• It can be administered to large numbers
simultaneously.
• Standardized wording and order of the questions and
standardized instruction for reporting responses.
• The respondents feel greater confidence in the
anonymity of a questionnaire.
• Less pressure on subjects for immediate responses.
• Respondents have time to think the questions .
www.educlash.com
Build Prototypes
• Preliminary working model of a larger,
more complex system component
– Discovery, design, evolving prototypes
• Prototype should be
– Operative
• Working model to provide “look and feel”
– Focused to accomplish single objective
– Quick
• Built and modified rapidly with CASE tools
www.educlash.com
Prototyping
• Quickly converts requirements to working version of system
• Once the user sees requirements converted to system, he will ask
for modifications or will generate additional requests
• Most useful when:
– User requests are not clear
– Few users are involved in the system
– Designs are complex and require concrete form
– History of communication problems between analysts and users
– Tools are readily available to build prototype
www.educlash.com
Basic steps for prototyping
• Identify the user’s information and operating
requirements.
www.educlash.com
Joint Application Design (JAD)
• Intensive group-oriented requirements
determination technique
• Team members meet in isolation for an
extended period of time
• Highly focused
• Resource intensive
• Started by IBM in 1970s
www.educlash.com
www.educlash.com
JAD Participants
• Session Leader: facilitates group process
• Users: active, speaking participants
• Managers: active, speaking participants
• Sponsor: high-level champion, limited
participation
• Systems Analysts: should mostly listen
• Scribe: record session activities
• IS Staff: should mostly listen
www.educlash.com
Joint Application Design Facilities
• Conducted in special room
– Limit interruptions
– May be off-site
• Resources
– Overhead projector, white board, flip charts,
work material
– Electronic support (laptops)
– CASE tools
– Group support systems (GSS)
www.educlash.com
The JAD Session
• Tend to last 5 to 10 days over a three week period
• Prepare questions as with interviews
• Formal agenda and groundrules
• Facilitator activities
– Keep session on track
– Help with technical terms and jargon
– Record group input
– Help resolve issues
• Post-session follow-up
www.educlash.com
Managing Problems in JAD
Sessions
• Reducing domination
• Encouraging non-contributors
• Side discussions
• Agenda merry-go-round
• Violent agreement
• Unresolved conflict
• True conflict
• Use humor
www.educlash.com
Joint Application Development
• JAD Advantages and Disadvantages
– Advantages
• Allows key users to participate effectively
• When properly used, JAD can result in a more accurate
statement of system requirements, a better understanding of
common goals, and a stronger commitment to the success of the
new system
– Disadvantages
• More expensive and can be cumbersome if the group is too
large relative to the size of the project
www.educlash.com
Validating the Requirements
• Two basic approaches to validating
requirements
– Predictive development
• Requirements assumed stable and feasible
• Requirements specified and validated beforehand
– Adaptive development
• Requirements are assumed difficult to document
• Requirements subject to change
• System prototypes used in validation process
www.educlash.com
Validating the Requirements
(continued)
• Structured walkthrough
– Reviews findings
– Reviews models based on findings
– Objective: find errors and problems
– Purpose: ensure that model is correct
• Conducting structured walkthrough
– Preparation
– Execution
– Follow-up
www.educlash.com
Scheduling walkthroughs
• Walkthroughs should be conducted frequently
– Focuses on a specific and small piece of work
– Increases the likelihood of uncovering errors
– Before author has too great an ego investment
• Scheduled only when the author is ready
• About 4 or 5 people
• Advanced preparation (no more than 2 hours)
should be required of and performed by each
reviewer.
www.educlash.com
Conducting Walkthroughs
• Coordinator chairs the meeting
• Walkthrough structure
– Author's overview?
• Reviewers should be able to understand the product
without assistance
• Author's overview may "brainwash" reviewers into making
the same logical errors as did the author
– Author's detailed walkthrough
• Based on logical arguments of what the design or code
will do at various stages
– Requested specific test cases
• Coordinator resolves disagreements when the
team can not reach a consensus
www.educlash.com
Walkthroughs: Guidelines
• Set an agenda and keep to it
• Limit debate and rebuttal
• Identify problem areas, but don't attempt to solve
every problem
• Limit the number of participants
• Insist upon advance preparation
• Train reviewers
• Develop a checklist for each reviewable product
www.educlash.com
Types of Walkthroughs
• Specification walkthroughs
– System specification
– Project planning
– Requirements analysis
• Design walkthroughs
– Preliminary design
– Design
• Code walkthroughs
• Test walkthroughs
– Test plan
– Test procedure
• Maintenance reviews
www.educlash.com
Specification Walkthroughs
• Objective - Check the system specification for:
– Problems
– Inaccuracies
– Ambiguities
– Omissions
• Participants
– User
– Senior analyst
– Project analysts
• Objects
– DFDs, Data Dictionary, ERDs, ...
www.educlash.com
Design Walkthroughs
• Objective - Check the architecture of the
design for:
– Flaws
– Weaknesses
– Errors
– Omissions
• Participants
– User
– Analyst
– Senior designer
– Project designers
• Objects
– Structure charts, detailed design documents, ...
www.educlash.com
Feasibility Analysis
Feasibility – the measure of how beneficial or practical
an information system will be to an organization.
www.educlash.com
Six Tests For Feasibility
Operational feasibility – a measure of how well a solution meets the system
requirements.
Cultural (or political) feasibility - a measure of how well a solution will be
accepted in an organizational climate.
Technical feasibility – a measure of the practicality of a technical solution and
the availability of technical resources and expertise.
Schedule feasibility – a measure of how reasonable the project timetable is.
Economic feasibility - a measure of the cost-effectiveness of a project or
solution.
Legal feasibility - a measure of how well a solution can be implemented within
existing legal/contractual obligations.
www.educlash.com
Operational Feasibility:
The PIECES Framework
Performance -- Does current mode of operation provide
adequate throughput and response time?
Information -- Does current mode provide end users and
managers with timely, pertinent, accurate and usefully
formatted information?
Economy -- Does current mode of operation provide cost-
effective information services to the business? Could there be a
reduction in costs and/or an increase in benefits?
Control -- Does current mode of operation offer effective
controls to protect against fraud and to guarantee accuracy and
security of data and information?
Efficiency -- Does current mode of operation make maximum
use of available resources, including people, time, flow of
forms,...?
Services -- Does current mode of operation provide reliable
service? Is it flexible and expandable?
www.educlash.com
Con..
• How do end-users and managers feel about the problem
(solution)?
• It's not only important to evaluate whether a system can work
but
• also evaluate whether a system will work.
• A workable solution might fail because of end-user or
management resistance.
• Does management support the project?
• How do the end-users feel about their role in the new system?
• What end-users or managers may resist or not use the system?
• People tend to resist change. Can this problem be overcome? If
so, how?
• How will the working environment of the end-users change?
• Can or will end-users and management adapt to the change?
www.educlash.com
Cultural (or political) feasibility
• Does management support the system?
• How do end users feel about their role in the
system?
• What end users may resist or not use the
system? How can this be overcome?
• How will the working environment change?
Can users and management adapt to the
change?
www.educlash.com
Technical feasibility
• Is the proposed technology or solution practical?
• Project structure
– New vs. renovated system, resulting organizational changes, management
commitment, user perceptions
• Development group
– Familiarity with platform, software, development method, application area,
development of similar systems
• User group
– Familiarity with IS development process, application area, use of similar
systems
www.educlash.com
High technical familiarity mitigates risk due to project size and structure. Low familiarity
increases risk.
www.educlash.com
Cultural (or political) feasibility
• Does management support the system?
www.educlash.com
Legal feasibility
• Copyrights
• Union contracts
• Antitrust laws
www.educlash.com
Economic feasibility
• During Scope Definition
– Do the problems or opportunities warrant the cost of a detailed
study and analysis of the current system?
www.educlash.com
Economic Feasibility
• Cost-benefit analysis: identify all the
financial benefits and costs associated
with a project
www.educlash.com
Tangible Benefits
www.educlash.com
Benefits that cannot easily be measured in dollars or with certainty
www.educlash.com
Types of Costs
• Tangible Costs: can be measured in dollars and with
certainty
• Intangible Costs: cannot easily be measured in dollars
or with certainty
• One-time Costs: often associated with project start-up
and development or systems start-up
• Recurring: a cost associated with ongoing evolution
and use of a system
www.educlash.com
Possible Project Costs
• Procurement
– Consulting, equipment, site preparation, capital, management
time
• Start-up
– Operating systems, communications installation, personnel
hiring, organizational disruption
• Project-related
– Application software, software modification, personnel overhead,
training, data analysis, documentation
• Operating
– System maintenance, rental, asset depreciation, operation and
planning
www.educlash.com
One-time Costs
www.educlash.com
Recurring Costs
www.educlash.com
Three Popular Techniques to Assess
Economic Feasibility
• Payback Analysis
• Return On Investment
• Net Present Value
www.educlash.com
Payback Analysis
Payback analysis – a technique for determining
if and when an investment will pay for itself.
www.educlash.com
Present Value Formula
Present value – the current value of a dollar at
any time in the future.
The ROI for a solution or project is a percentage rate that measures the relationship
between the amount the business gets back from an investment and the amount invested.
Lifetime ROI =
(estimated lifetime benefits – estimated lifetime costs) / estimated lifetime costs
www.educlash.com
Software Reliability
www.educlash.com
Software Reliability
1. Trustworthiness or dependability.
5. Observer dependant
www.educlash.com
What is Reliability?
• Reliability is a broad concept.
– It is applied whenever we expect something to behave in a certain way.
• Reliability is one of the metrics that are used to measure quality.
• It is a user-oriented quality factor relating to system operation.
– Intuitively, if the users of a system rarely experience failure, the system is
considered to be more reliable than one that fails more often.
• A system without faults is considered to be highly reliable.
– Constructing a correct system is a difficult task.
– Even an incorrect system may be considered to be reliable if the frequency of
failure is “acceptable.”
• Key concepts in discussing reliability:
– Fault, Failure, Time
www.educlash.com
What is Reliability?
• Failure
– A failure is said to occur if the observable outcome of a program execution is
different from the expected outcome.
• Fault
– The cause of failure is called a fault.
– Example: A failure may be cause by a defective block of code.
• Time
– Time is a key concept in the formulation of reliability. If the time gap between two
successive failures is short, we say that the system is less reliable.
– Two forms of time are considered.
• Execution time ()
• Calendar time (t)
www.educlash.com
Factors Influencing Software
Reliability
• A user’s perception of the reliability of a software depends upon two categories of
information.
– The number of faults present in the software.
– The ways users operate the system.
• This is known as the operational profile.
www.educlash.com
Applications of Software
Reliability
• Comparison of software engineering technologies
– What is the cost of adopting a technology?
– What is the return from the technology -- in terms of cost and quality?
• Measuring the progress of system testing
– Key question: How of testing has been done?
– The failure intensity measure tells us about the present quality of the system: high
intensity means more tests are to be performed.
• Controlling the system in operation
– The amount of change to a software for maintenance affects its reliability. Thus the
amount of change to be effected in one go is determined by how much reliability
we are ready to potentially lose.
• Better insight into software development processes
– Quantification of quality gives us a better insight into the development processes.
www.educlash.com
Reliability metrics
• Probability of failure on demand (POFOD):
– This is a measure of the likelihood that the system will
fail when a service request is made
www.educlash.com
Con..
• Rate of fault occurrence (ROCOF)
– Frequency of occurrence of unexpected behaviour
www.educlash.com
Con..
• Mean time to failure
– Measure of the time between observed failures
www.educlash.com
Con..
• Availability
– Measure of how likely the system is available for use.
Takes repair/restart time into account
– Availability of 0.998 means software is available for 998
out of 1000 time units
– Relevant for continuously running systems e.g.
telephone switching systems
www.educlash.com
Con..
Mean Time Between Failures(MTBF):
• Can combine MTTF and MTTR.
• If MTBF indicates 300hours indicates that every
failure occurs after 300hrs.
Mean Time to Repair(MTTR):
• Once failure occurs, some time is required to fix the
error.
• MTTR measures the average time to track the errors
causing the failure and fix it.
www.educlash.com
Failure Classification
• Transient - only occurs with certain inputs
• Permanent - occurs on all inputs
• Recoverable - system can recover without operator help
• Unrecoverable - operator has to help
• Non-corrupting - failure does not corrupt system state or
data
• Corrupting - system state or data are altered
www.educlash.com
Reliability growth modelling
• Growth model is a mathematical model of the
system reliability change as it is tested and faults are
removed
• Used as a means of reliability prediction by
extrapolating from current data
• Depends on the use of statistical testing to measure
the reliability of a system version
www.educlash.com
Equal-step reliability growth
Reliability
(RO COF)
t1 t2 t3 t4 t5
Time
www.educlash.com
Observed reliability growth
• Simple equal-step model but does not reflect reality
• Reliability does not necessarily increase with change as the
change can introduce new faults
• The rate of reliability growth tends to slow down with time as
frequently occurring faults are discovered and removed from the
software
• A random-growth model may be more accurate
www.educlash.com
Random-step reliability growth
Note different
reliability
Reliability improvements Fault repair adds new fault
(RO COF) and decreases reliability
(increases ROCOF)
t1 t2 t3 t4 t5
Time
www.educlash.com
Growth models choice
• Many different reliability growth models have been
proposed
www.educlash.com
Software Maintenance
www.educlash.com
What is Reverse Engineering ?
• You have an unexpected case:
– You finished one course project using Java
– Your program runs OK
– But, by accident, you delete the java file
– How to hand in your project?
• Reverse Engineering
www.educlash.com
Reverse Engineering
www.educlash.com
What is Reverse Engineering ?
Requirements
Design
Source Code
Behavior
www.educlash.com
What is Reverse Engineering ?
Abstraction System
www.educlash.com
What is Reverse Engineering?
www.educlash.com
Why do we need RE ?
www.educlash.com
Why do we need RE ?
• Benefits
– maintenance cost savings
– quality improvements
– competitive advantages
– software reuse facilitation
www.educlash.com
Reverse Engineering Concepts
part 1
• Abstraction level
– ideally want to be able to derive design information at the
highest level possible
• Completeness
– level of detail provided at a given abstraction level
• Interactivity
– degree to which humans are integrated with automated
reverse engineering tools
www.educlash.com
Reverse Engineering Concepts
part 2
• Directionality
– one-way means the software engineer doing the
maintenance activity is given all information extracted from
source code
– two-way means the information is fed to a reengineering
tool that attempts to regenerate the old program
• Extract abstractions
– meaningful specification of processing performed is derived
from old source code
www.educlash.com
Reverse Engineering Process
Programstucture
Automated diagrams
analysis
System
Systemtobe Document Datastucture
information
re-engineered generation diagrams
store
Manual
annotation Traceability
matrices
www.educlash.com
Reverse Engineering Activities
part 1
• Understanding process
– source code is analyzed to at varying levels of detail
• system
• program
• component
• pattern
• statement
www.educlash.com
Reverse Engineering Activities
part 2
• Understanding data
– internal data structures
– database structure
• User interfaces
– what are the basic actions (e.g. key strokes or mouse
operations) processed by the interface?
– what is a compact description of the system's behavioral
response to these actions?
– what concept of equivalence of interfaces is relevant?
www.educlash.com
Difficulties of Reverse
Engineering
• Gap between problem
/solution domain
• Gap between concrete
and abstract
• Gap between coherency/disintegration
• Gap between hierarchical/associational
www.educlash.com
Scope and Task of Reverse
Engineering
• program understanding
Problem/Application
domain
Mapping
Program/Implemen.
domain
www.educlash.com
Scope and Task of Reverse
Engineering
• Redocumentation and/or document
generation
• Recovery of design approach and design
details at any level of abstraction
• Identifying reusable components and
components that need restructuring
• Recovering business rules
• Understanding high-level system description.
www.educlash.com
Maintenance Costs
• Usually greater than development costs (2* to
100* depending on the application)
• Affected by both technical and non-technical
factors.
• Increases as software is maintained.
Maintenance corrupts the software structure
so
makes further maintenance more difficult.
• Ageing software can have high support costs
(e.g. old languages, compilers etc.)
www.educlash.com
Maintenance Costs (cont’d)
• Time and money (software that costs £ 10 a line to develop
costs £ 400 a line to maintain)
• Organizations become maintenance bound and cannot produce
new software
• Customer dissatisfaction when seemingly legitimate requests
for repair or modification cannot be addressed in a timely
manner
• Reduction in overall software quality as changes introduce
latent errors in the maintained software
• Upheaval caused during development efforts when staff must
be “pulled” to work on a maintenance task
www.educlash.com
Maintenance Cost Factors
• Team stability
– Maintenance costs are reduced if the same staff are involved with
them for some time
• Contractual responsibility
– The developers of a system may have no contractual responsibility
for maintenance so there is no incentive to design for future change
• Staff skills
– Maintenance staff are often inexperienced and have limited domain
knowledge
• Program age and structure
– As programs age, their structure is degraded and they become
harder to understand and change
www.educlash.com
Estimation of Maintenance Cost
• Maintenance efforts – 60% of the total life
cycle cost.
• It varies widely from one application domain
to another.
• 2 to 4 times of the development cost.
• Boehm – MC estimation as a part of
COCOMO.
• He defines it as a Annual Change Traffic
(ACT).
www.educlash.com
Con..
• ACT= KLOC(added) +KLOC(deleted) /KLOC(total).
www.educlash.com
THANK YOU
www.educlash.com