chapter 6 Software Process Model
chapter 6 Software Process Model
1
Proper documentation support for future upgrade and maintenance.
It provides flexibility for adding features even after the software is developed.
System
Study
System
Maintenance
Analysis
System System
Implementation Design
System System
Testing Development
System Study
It is the process of defining the current problem, determining why a new system is needed and
identifying the objectives of the proposed system.
After collecting the different information of an organization, the system development team
proposes the new system with its benefits.
System Analysis
In this phase, a detailed problem analysis is undertaken to understand the nature, scope,
requirements and feasibility of the new system.
The following are the major issues of system analysis:
• Data collection
• Flow Chart preparation
• Analyzing the findings.
System Design
In this phase, the system design involves designing of a new system or computer application
that will meet the requirements identified during system analysis.
The types of system design are:
• Logical Design
• Physical Design
2
System Development
After the design stage is complete, the final program specification and the file design is handed
over to the programmer.
Then the programmers begin to develop the program by using a suitable High level language.
System Testing
The process of performing a variety of tests on a system to explore functionality or to finding an
error.
There are two types of testing methods:
• White Box Testing
• Black Box Testing
System Implementation
When the software is finally ready and after testing that software will be delivered to the user
for the use.
Implementation includes coding, testing and installation.
Maintenance and reviews
Once when the users starts using the developed system then the actual problems comes up and
needs to be solved from time to time.
Types of maintenance:
• Corrective maintenance
• Adaptive maintenance
• Perfective maintenance
• Preventive maintenance
The last phase of the system development or implementation process is the system review. This
is usually carried out by a grouping consisting of representative from the client departments,
internal audit, system analyst and data processing. Its basic purpose is to see if the system has
met the objectives set for it or not. It is the final phase of SDLC.
3
Feasibility study
In case the system proposal is acceptable to the management, the next phase is to examine the
feasibility of the system.
Feasibility is the determination of whether or not a system or project is worth doing.
The feasibility study is basically the test of the proposed system in the light of its workability, meeting
user’s requirements, effective use of resources and the cost effectiveness.
Need of Feasibility Study:
1. It determines whether the system meets the goal of the client or not.
2. It focuses on the boundary of the system’s outline.
3. It provides quality information for decision-making.
4. It helps to increase investment in the system.
5. It provides documentation of the investigated system.
Different levels of feasibility study are as follows:
1. Technical feasibility
• Technical feasibility concerns with the availability of the hardware, software and the support
equipment for the complete development of the system.
• If all the technical requirements for the new system can be fulfilled, then the development of
new system will be feasible.
2. Economical feasibility
• Economic feasibility relates to the budget for a project and how money will be spent.
• The main objective of economic feasibility is to calculate different cost like equipment cost,
operating cost, manpower cost and development cost of the new system.
3. Operational feasibility
• Operational feasibility is mainly related with human skill. The current staffs can work in the new
system after training or not.
• If the whole staffs need very long time and more cost to be trained in the new system, then the
new system will not be feasible.
4. Behavioral feasibility
• Behavioral feasibility is concerned with the behavior of the user, person, or the society for the
new system.
• Generally, most of the traditional employees are not easily ready to upgrade them with the
new system.
5. Legal feasibility
• Legal feasibility is mainly focus to analyze any violation of government laws or not.
• It is concerned with the legal issues such as tax, copyright, registration and trade mark of the
system.
6. Schedule feasibility
Schedule feasibility relates to the amount of time allocated to the development of the new system is
feasible for organization or not.
7. Social Feasibility
Social Feasibility is a determination of whether a proposed system will be acceptable to the people or
not.
8. Management Feasibility
Management Feasibility is a determination of whether a proposed will be acceptable to management
or not.
4
System
A system is a powerful collection of interrelated components that work together to achieve specific objectives.
Storage
Fig: System
5
Information System:
- Information system is the system that arranges data, processes, information technology and
manpower of an organization so as to collect, process, store and provide the information that helps to sustain
and support organizational progress in the competitive world.
- It converts the raw data within the organization into the valuable information needed for
organizational goal.
Types of Information System
1. Office automation System (OAS)
• The information system that supports general work for handling and managing documents and
facilitating communication is known as office automation systems.
• Example: Microsoft office.
2. Transactional Processing System (TPS)
• A transaction processing system collects, stores, modifies and retrieves the transactions of an
organization.
• It is generally used by the low level staffs who interacts with the customers directly.
• Example: Billing system, Banking system, computerized attendance system etc.
3. Management Information System (MIS)
• MIS is an information system that aids the management of an organization to successfully coordinate
with other members to develop broad long term vision of an organization.
• Example: Observation of the sales and demands using statistical analysis and control production on
that basis to meet the user demand.
System Analyst
A system Analyst is a person who is involved in analyzing, designing, implementing and evaluating
computer-based information systems to support the decision making activities and operations of an
organization.
System analyst analyzes the problems, plans solutions, recommends software and systems and
coordinates development.
The system analyst should have:
1. The knowledge about modern information technology
2. The knowledge about the business application.
Management
Computer System and
Technology Analyst Organization
6
A good system analyst is:
(a) Business knowledge
a system analyst must clearly understand the environment for which the system is being developed.
7
4. Solving problems
• System analyst is basically a problem solver. S/he must study the problem in depth and suggest
the most appropriate solution to it.
5. Drawing up functional specification
• The main duty of the analyst is to obtain the functional specification of the system to be
designed and specification must be non-technical so that users and managers can understand.
6. Designing system
• One of the major duties of the analyst is to design the system and it must be understandable to
the system implementer.
7. Evaluating system
• When the information system has been implemented in the organization, the system analyst
must critically evaluate it in order to find out its drawbacks especially for a reasonable period of
time.
Characteristics of system analyst
1. Knowledge of people
2. Knowledge of business function
3. Knowledge of data processing principles
4. Ability to communicate
5. Flexibility
6. An analytical mind
7. Well educated with sharp mind
8
Software Engineers
Software Engineers are computer science professionals who use knowledge of engineering principles and programming
languages to build software products, develop computer games, and run network control systems.
9
Requirements Collection Methods
Collection of requirements is one of the core functions of system analysis. System analysis must collect
information about the current system and how users would like to improve their performance with the new
information system. Understanding the user’s requirement better will help the system developing team
deliver a proper system to the end users in a limited time and budget. During system analysis, data are
collected from the various available sources by using different methods, some of them are:
1. Interview:
Interviews of stakeholders and users are critical to developing great software. Without understanding
the goals and expectations of the users and stakeholders, we are very unlikely to satisfy them.
2. Survey/Questionnaire:
Questionnaires, or surveys, allow an analyst to collect information from many people in relatively short
amount of time. This is especially helpful when stakeholders are spread out geographically, or there
are dozen to hundreds of respondents whose input will be needed to help establish system
requirements.
3. On-site Observation:
By observing users, an analyst can identify a process flow, steps, pain points and opportunities for
improvement. Observations can be passive or active (asking questions while observing). Passive
observation is better for getting feedback on a prototype (to refine requirements), where active
observation is more effective at getting an understanding of an existing business process. Either
approach can be used.
4. Brainstorming:
Brainstorming is used in requirement gathering to get as many ideas as possible from group of people.
Generally used to identify possible solutions to problems, and clarify details of opportunities.
5. Document Analysis:
Reviewing the documentation of an existing system can help when creating requirement document, as
well as driving gap analysis for scoping of migration projects.
6. Focus Group:
A focus group is a gathering of people who are representative of the users or customers of a product to
get feedback. The feedback can be gathered about needs/opportunities/ problems to identify
requirements, or can be gathered to validate and refine already elicited requirements.
7. Prototyping:
Prototyping is iterative process that heavily involves the users to complete. The user provides the
requirements, in which the analyst can plug in directly and show the user the outcome. Prototyping is
dependent on user interaction and cannot be utilized as its own method of gathering requirements.
8. Requirement Workshops:
Workshops can be very effective for gathering requirements. More structured than a brainstorming
session, involved parties collaborate to document requirements.
10
Software and Quality:
Software quality is defined as a field of study and practice that describes the desirable attributes of software
products. Software quality is a software which is reasonably bug or defect free, delivered in time and within
the specified budget, meets the requirements or expectations and maintainable. In the software engineering
context, software quality reflects both functional quality as well as structural quality.
Key Aspects that conclude software quality include:
Good design – It’s always important to have a good and aesthetic design to please users
Reliability – Be it any software it should be able to perform the functionality impeccably without
issues
Durability- Durability is a confusing term, In this context, durability means the ability of the software
to work without any issue for a long period of time.
Consistency – Software should be able to perform consistently over platform and devices
Maintainability – Bugs associated with any software should be able to capture and fix quickly and
news tasks and enhancement must be added without any trouble
Value for money – customer and companies who make this app should feel that the money spent on
this app has not fine to waste.
System Design
The system design involves designing of a new system or computer application that will meet the
requirements identified during system analysis.
It involves designing of various things such as output design, input design, files design processing and
general program design etc.
The types of system design are:
• Logical Design
Theoretically designing of the system is called logical design.
The system could be designed on the basis of the requirements.
The main idea of this part is just the creation of the logic part of the program.
• Physical Design
The conversion of logical design into physical specification used designing tools and
techniques is called physical design.
It is more detail and complex jobs describing the solution of the problem.
It uses algorithms, flowcharts, pseudo codes, decision table, decision tree, E-R diagram,
data flow diagram etc.
11
System Design Tools
The system design tool is used by system analysts for representing and facilitating comprehension of
complex processes and procedures.
Some of these tools are an algorithm, flowchart, pseudo code, context diagram, Data Flow Diagram
(DFD), decision table, decision tree, E-R (Entity-Relationship) diagram, prototyping and CASE tool etc.
1. Algorithm:
A step by step procedure to solve a problem is known as algorithm.
• The instruction should be accurate and number of instruction should be finite.
• An algorithm is expressed in Pseudo code.
Some properties of algorithm are as follows:
1. Finiteness: an algorithm must terminate after a finite number of steps.
2. Definiteness: Each step of algorithm must be clearly defined and unambiguously specified for
each case.
3. Input: an algorithm has zero or more inputs.
4. Output: an algorithm has one or more output.
• The steps of an algorithm are given below:
step 1: start
Step 2: declaring
Step 3 : input
Step 4 : process or check condition
Step 5: display
Step 6: end
Example:
1. Write an algorithm to multiply two numbers and shows their product.
2. Write an algorithm to input a number and decide whether it is even or odd.
3. Write an algorithm to calculate the sum of natural numbers up to 100.
4. Write an algorithm to find area of circle?
5. Writ an algorithm to find area of rectangle?
2. Flowchart:
• A flowchart is a graphical representation of an algorithm.
• Flowchart are defined below:
12
Example:
1. Draw a flowchart to multiply two numbers and shows their product.
2. Draw a flowchart to input a number and decide whether it is even or odd.
3. Draw a flowchart to calculate the sum of natural numbers up to 100.
4. Draw a flowchart to find area of circle?
5. Draw a flowchart to find area of rectangle?
Symbols Purpose
Process
Data store
Source/Sink
Data flow
13
DFD can be categorized in the following forms:
Context Diagram/0 level DFD
• The diagram that shows the scope of the system, indicating which elements are inside
and which are outside the system is known as context diagram.
• A single process represents the whole system in context diagram.
• It is also called zero level DFD.
1 level DFD
• Level 1 DFD breaks down the main process into sub-processes that can then be seen on
a more deep level.
• Level 1 DFD contains data stores that are used by the main process.
14
4. E-R Diagram
• Entity relationship diagram displays the relationships of entity set stored in a database.
• ER diagrams help you to explain the logical structure of databases.
• The main components of ERD are:
• Rectangles: It represents the entity. It contains objects used in relational databases.
• Oval or Ellipse: It represents attributes of entities.
• Diamonds: This symbol represents relationship types
• Lines: It links attributes to entity types and entity types with other relationship types
• Primary key: attributes are underlined
• Double Ellipses: Represent multi-valued attributes
5. USE Case
• A use case is a methodology used in system analysis to identify, clarify and organize system
requirements.
• Components:
Actor ( role play)
Use case( Function/operation)
Communication link
Generalization
Boundary of system
15
6. Decision Table
• Decision table is a technique to represent logic in program development in computer.
• When several different conditions are involved for specifying complex policies and decision
making rules, then decision table becomes very handy.
• There are 3 parts in the decision table.
1. Condition stub:
This part of table contains the various that apply in the situation the table is modeling.
2. Action stub
This part of table lists the actions that result for a given set of conditions.
3. Rules
This part of table specifies which actions are to be followed for a given set of conditions.
7. Decision Tree
• A decision tree is a graphic device of a decision making process.
• It is a graphical presentation of the various alternatives.
• It is also known as tree-diagram.
• This decision tree does not work for complex system analysis but simple decision tree can be
easily understood by non technical users.
• Example:
A decision tree for the discount policy is shown below:
Discount Policy
Member(M) Non-Member(NM)
16
System Development model
A system development model in software engineering is a framework that is used to structure, plan
and control the process of developing an information system.
The different types of system development model are as follows:
1. Waterfall model
• This model is the simplest and the most popular model of SDLC.
• This model has different phases or stages that are organized in a linear order.
• Waterfall model is a systematic and sequential model to develop software that begins with
requirements analysis to operation and maintenance.
• The fundamental processes of waterfall model are as follows:
17
Implementation
• Once program is designed it should be tested. In this phase of waterfall model each unit of the
system is tested to ensure that each unit meets its specification or not.
Testing
• Each unit of the system is tested to make a full-fledge system and tested to that complete
system to confirmed that the system satisfies all the system requirement specification or not.
Deployment
• Once the functional and non-functional testing is done; the product is deployed in the customer
environment or released into the market.
• Maintenance
• When the system is delivered some errors may occur due to change in operating system or
peripheral devices. So some kind of support should be provided.
• Maintenance is the process or correcting errors or providing support to the customers after
delivering the system.
Advantages:
• It is simple and easy to understand and use.
• It is suitable for small size project.
• It is less expensive.
Disadvantages:
• It has no back track mechanism.
• It is not suitable for large size project.
• Waterfall model can be used when
• Requirements are not changing frequently
• Application is not complicated and big.
• Requirement is clear
• Environment is stable
• Resources are available and trained.
18
2. Spiral model
• It is a software development process combining the elements of both waterfall and prototyping
model.
• Each phase in spiral model begins with a design goal and ends with the client reviewing the
progress
• It is intended for large, expensive and complicated projects.
• The diagram of spiral model is:
Planning
• It includes estimating the cost, schedule and resources for the iteration. It also involves
understanding the system requirements for continuous communication between the system
analyst and the customer.
• Risk Analysis
• Identification of potential risk is done while risk mitigation strategy is planned and finalized.
Engineering
• It includes testing, coding and deploying software at the customer site.
• Evaluation
• Evaluation of software by the customer. Also, includes identifying and monitoring risks such as
schedule slippage and cost overrun
19
Advantages:
• High amount of risk analysis hence, avoidance of Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Additional Functionality can be added at a later date.
• Software is produced early in the software life cycle.
Disadvantages:
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects.
Spiral model can be used when
• When the costs and risk evaluation is important.
• For medium to high risk.
• When users are unsure of their needs
20
3. Prototype model
• The prototyping model is a system development method in which a prototype is built, tested
and then reworked as necessary until an acceptable prototype is finally achieved from which
the complete system or product can now be developed.
21
4: Initial user evaluation
In this stage, the proposed system is presented to the client for an initial evaluation. It helps to find out
the strength and weakness of the working model. Comment and suggestion are collected from the customer
and provided to the developer.
5: Refining prototype
If the user is not happy with the current prototype, you need to refine the prototype according to the
user's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met. Once the user is satisfied with
the developed prototype, a final system is developed based on the approved final prototype.
6: Implement Product and Maintain
Once the final system is developed based on the final prototype, it is thoroughly tested and deployed
to production. The system undergoes routine maintenance for minimizing downtime and prevent large-scale
failures.
Advantages:
• Users are actively involved in the development.
• The users get a better understanding of the system being developed.
• Errors can be detected much earlier in prototype model.
• Quicker user feedback is an available leading to better solutions of the system.
• Missing functionality can be identified easily.
Disadvantages:
• This model leads to implementing and then repairing way of building systems.
• This model may increase the complexity of the system as scope of the system may expand
beyond original plans.
Prototype model can be used when
• Prototype model should be used when the desired system needs to have a lot of interaction
with the end user.
22
Agile Development Approach
Agile is the ability to create and respond to change. The agile software development model was mainly
intended for helping developers build a project which can adapt to transforming requests quickly. So, the most
important endeavor for developing the agile method is to make easy and rapid project achievements. It can be
achieved by correcting the progress of the project by eliminating activities, which may not be crucial for that
specific project.
Agile software development emphasizes four core values:
23
There are five stages in the agile development approach:
Planning
Requirement analysis
Designing
Building
Testing
24