Professional Documents
Culture Documents
Chapter 1
Chapter 1
Chapter 1
Software
It is the collection of computer programs, rules and associated documents and data.
Software is the general term for the various kinds of programs used to operate computers
and related devices.
Types of Software
The two main classification of software,
1. System software
2. Application software
System software:
Software designed to operate the computer hardware and to provide a platform for
running application software.
There are different types of system software that are available,
• Operating system
• Software utilities
• Software translator(compiler assembler and interpreter)
Application software
Application software designed to help the user to perform a specific task. There are
several categories of application software for example,
• General purpose application software
• Special purpose Application software
• Be spoke Application software
---------------------------------------------------------------------------------------
Software Engineering
(General definition)
“A systematic approach to development, operation and maintenance of
software product”.
Software Products
Software Products are software, those are delivered to a customer with
documentation which describes how to install and use the system.
There are two types of software products available they are,
1. Generic Products
2. Customized(Bespoke) Products
Generic Products
• These are stand alone systems which are produced to sell in open market to any
customer.
• Generic products are developed for anonymous customer. Generic products are design
by marketing point of view.
• The requirements and specification are controlled by the developer.
• Generic Software is also called Commercial Off The Shelf (COTS) Software.
• Ex: word processor, Drawing packages and project management tools etc.
Software Process
A set of activities and associated result which produce a s/w product. Set of work
phases that are applied to design and build a software product.
Software Model
It is an abstract description of the software process.
Feasibility Study:
– In this phase they assist whether or not a project should be undertaken.
– This stage involves defining the problem and fixing up the boundaries.
System design:
– In this phase a new system is designed according to the needs of a user.
– It is the phase which find solution for the given problem and specification of each and
every component of the project.
Development:
– In the phase, where the system is actually developed. The whole system design is built
and implementation.
Testing:
– This is the most important phase where the system is tested and check entire
functionality includes performance reliability and robustness.
Implementation:
– This is a process in which the developed system is handed over to the client and users
are trying to manage and maintain a new system
Software Maintenance:
– This is the phase where the development team maintains a system. It includes adding
the enhancement, improvements, and updates of the new version
---------------------------------------------------------------------------------------
• This type of model is basically used for the project which is small and there are no
uncertain requirements.
• At the end of each phase, a review takes place to determine if the project is on the
right path and whether or not to continue or discard the project.
• In this model the testing starts only after the development is complete.
• In waterfall model phases do not overlap.
Requirement definition:
All possible requirement of a system to be developed are capture in this phase and
also requirement specification document is created which serves as a guideline for the
next phases of the model.
Spiral Model
• The spiral model is similar to the incremental model with more emphasis placed on
risk analysis.
• The spiral modal was proposed by “Boehm”
• It combines the best features of water fall and prototype model.
• Each loop represents a phase of the s/w development process. The inter most loop is
concerned with the system a system feasibility and the next loop with requirement and
further loop with system design and so on.
• Each group is the spiral model is split into 4 phases.
o Planning,
o Risk Analysis,
Planning Phase:
In this Requirements are gathered during the planning phase. Requirements like
‘BRS’ that is ‘Business Requirement Specifications’ and ‘SRS’ that is ‘System Requirement
specifications are discussed and planned.
Risk Analysis:
In the risk analysis phase, a process is undertaken to identify risk and alternate
solutions. A prototype is produced at the end of the risk analysis phase. If any risk is found
during the risk analysis then alternate solutions are suggested and implemented.
Engineering Phase:
In this phase Simulations are done and software is developed, along with testing
at the end of the phase. Hence in this phase the development and testing is done.
Evaluation phase:
This phase allows the customer to evaluate the output of the project to date before
the project continues to the next spiral by giving suggestions or reviews.
Disadvantages
➢ Cost involvement is usually high.
➢ Doesn’t work for smaller project.
➢ It is Required to evaluate & review the project time to time
➢ Risk analysis should be done by highly specific experts.
➢ Scheduling requirement are very much tough.
Implement0 Implementn
Advantages:
➢ It combines the benefits of waterfall model.
➢ It allows for early adjustments to the products during development.
➢ The correct actions can be taken at the beginning of every phase in each iteration.
➢ It can result better testing because testing done to the entire system.
Disadvantages:
➢ The people working on this project can get stuck in a loop. That is finding problem
always and getting back again implement and design.
➢ The user community needs to actively participate throughout the project. Informal
request for the improvement after each phase may lead to confusion.
--------------------------------------------------------------------------------------------
Every iteration involves cross functional teams working simultaneously on various areas
like,
➢ Planning
➢ Requirements Analysis
➢ Design
➢ Coding
➢ Unit Testing and
➢ Acceptance Testing.
Risk Management
➢ “Risk is the Potential Future harm that may arise from present action”.
➢ Risk Management is the main job of project managers.
➢ It involves anticipation risks that affect the project schedule or the quality of the
software being developed and also minimize the risk before it effect the project.
➢ Two types of engineers can handle risk:
➢ Reactive Engineer: corrects the problem as it occurs
➢ Proactive Engineer: Starts thinking about possible risks that might occur in a
project before they occur.
There are several types of risk can occur during a software development.
• Generic risk: During requirement change, loss of team member and loss
of funding.
• Product Specific risk: High Level risk during product being developed.
• Project risk: Affect project schedule.
• Product risk: Affects quality and performance
• Business risk
------------------------------------------------------------------------------------------------------------------------------
Competence:
Engineers should not miss represent their level of competency. They should not
knowingly accept work which is out of their acceptance and capability.
Computer Misuse:
Software engineers should not use their technical skills to miss use other computers
and for other purpose.
Legacy challenge:
It is the challenge of maintaining and updating the software in such a way that
excessive costs are avoided and essential business service continue to be delivered
Heterogeneity challenge:
Many of the software products will always have heterogeneity, meaning varied
requirements such as different types of computers and specifications. “The challenge is to
develop software which can automatically to adjust(flexible) with heterogeneous
systems”.
Delivery challenge:
Software project development is time consuming as it has to be manufactured and
must maintain quality.”Delivering the software to the customer on-time is a real
challenge”.
Trust challenge:
Maintaining the trust is very important. Many times software is accessed through
web. The developer must develop the software such that they trust the product.”
The software engineers must develop trustworthy software”.
-----------------------------------------------------------------------------------------