2. Software
Software is
A information transformer – Producing, managing,
acquiring, Modifying, displaying or transmitting
information that is simple/ complex which is
satisfies the users needs & makes the user world
better.
A software is either a collection of programs
which will transfer the data from one place to
another
BCA Department Modern group of Colleges
3. Engineering
It is systematic and technical approach which tells
you the methods to carry out the work.
It can de defined as Applying something technical
method or algorithm in a systematic way.
BCA Department Modern group of Colleges
4. Software Engineering
Software engineering is the establishment and use of
sound engineering principles (applying some software
methods) in order to obtain economically software that is
reliable(not working properly) and works efficiently on real
machines.
Software engineering is a discipline that integrates
process methods and tools for the development of
computer system.
BCA Department Modern group of Colleges
5. Software Engineering Layers
Process layer : It is glue that holds the technology layers
together and enables timely. In other way we can say the
technology we are using produce accurate result.
Methods : Provides the technical (which platform) how-
to’s for building software. It is a set of basic principles
that govern each area of technology.
Tools: Provides automated and semi automated support
for process and method e.g MS excel tool is used to
applying some formula’s.
BCA Department Modern group of Colleges
6. Software characters
Software is developed or engineered, it is not
manufactured in the classical sense.
Software does not wear out. (design and develop is
available every where it is product) car example
Although industry is moving towards component based
assembling most software continues to be custom built.
BCA Department Modern group of Colleges
7. Software Application
System software
Real time software
Business software
Engineering and scientific software e.g CAD, CAM
Embedded software
Personal computer software
Web based software
Artificial intelligence software
BCA Department Modern group of Colleges
8. Software process model
what is software process model ?
A process model describes the sequence of phases for the entire
lifetime of a product . Therefore it is sometimes also called product
life cycle. This covers everything from the initial commercial ideas
until the final DE installation or disassembling of the product after its
use
Each process model follows a particular life cycle in order to ensure
success in process of software development.
Three main phases
concept phase
implementation phase
maintenance phase
BCA Department Modern group of Colleges
9. Developing model
Linear sequential model
Waterfall model
Prototyping
Prototyping model
Rapid application development RAD model
Evolutionary software process
Spiral model
BCA Department Modern group of Colleges
10. SDLC--Water fall model
Water fall model was the first SDLC approach to be used
widely in SE to ensure the success of the project. The
water fall approaches the whole process of software
development is divided into separate phases.
It is also referred to as a linear sequential life cycle
model.
It is very simple to understand and use.
Each phase is must be completed before the next phase
can begin and there is no overlapping in the phases.
BCA Department Modern group of Colleges
11. Software devolvement life cycle
SDLC is step by process involved in the development of a
software product. The whole process is generally
classified into a set of steps and a specified into a set of
steps and specific operation will be carried out in each of
the steps.
There is no reverse action in this model
BCA Department Modern group of Colleges
12. Phases of Waterfall model SDLC
Planning
Requirement Analysis
Design
Development/coding
Testing
Maintenance
BCA Department Modern group of Colleges
13. Planning
To plan the total project and estimate the merits and demerits of the project
to the developed.
It involves estimation your attempt to determine how much money, how much
effort how many resource and how much time it will take to build a specific
software based system or project.
BCA Department Modern group of Colleges
14. analysis
To perform statistics and requirement gathering.
To know the behavior of the system to be developed.
To understand the specific requirement that must be achieved to build high
quality software.
BCA Department Modern group of Colleges
15. Design
Design begins with the requirement of the customer as a model.
It is a meaning engineering representation of something that is to be built.
Something like you would not attempt to build a house without blueprints.
BCA Department Modern group of Colleges
16. Development
The blue prints is transformed into actual coding by developing or writing
programs in some platform.
That is translating into a machine readable form.
Development includes– structure data, implementation , logic, processing and
produce desired output.
BCA Department Modern group of Colleges
17. testing
The testing process focuses on bugs. Software testing is critical element in
development to uncover errors in it.
It is referred as verification and validation.
verification – are we building the product right?
validation – are we building the right product?
BCA Department Modern group of Colleges
18. Maintenance
Software is expected to undergo change in new environment.
Support given after delivering the product to the customer in the original
environment.
Maintenance is accommodating the changes in the software in the external
environment.
BCA Department Modern group of Colleges
19. PROTOTYPING MODEL
The prototyping model begins with requirements
gathered.
Developer and customer meet and define the overall
objectives for the software identity what ever
requirements are know, and a quick design occurs.
(when a customer is not clear or the costumer will know the area of problem but not in the position of
view how he wanted the output or how the result should be like or customer cannot explain the new
product he wants . So customer did not well wise. Customer did not know anything how product should
look like or how to get result in this type the costumer and developer need to be sit and discuss the
requirement gathering and they will discuss the problems now whats developers do he will create a
small program to show ) o
BCA Department Modern group of Colleges
20. Continues……
The construction of this design is called a prototyping.
The prototyping is evaluated by the customer & used to redefined
requirement for the software to be designed.
Iteration occurs as the prototyping is tuned to satisfy the needs of the
customer.
BCA Department Modern group of Colleges
21. Rad Rapid application development
model
It is incremental software development process model emphasis an extremely
short development cycle.
The rad model is a high speed adaptation of the linear sequential model in
which rapid development is achieved by using component based
constructions.
IF requirement are well understood and scope is defined the RAD model
develops the fully functional system in very short period.
BCA Department Modern group of Colleges
23. Spiral Model
Spiral model is an evolutionary version of incremental prototyping.
Each iteration of the prototype representation as controlled and systematic
aspect in the cycle of spiral.
The spiral software development model is risk oriented
Spiral model software development model may be applicable to projects
where:
The projects requirement are very difficult.
Where new technologies are used.
BCA Department Modern group of Colleges
24. Evolutionary prototyping
The objectives of evolution prototyping is to deliver a working system to end
users. The development starts with those requirements which are best
understood.
An approach to system development where initial prototype is produced and
refined through a number of stages to the final system
BCA Department Modern group of Colleges
27. Fourth Generation Techniques
4GT encompasses a broad array of software tools that have one thing in
common: each enables the software engineer to specify some characteristic
of software at a high level, then the tool automatically generates source code
based on the developer's specification.
4GT paradigm focuses on the ability to specify software using specialized
language forms or a graphic notation that describes the problem to be solved
in terms that the customer can understand.
BCA Department Modern group of Colleges
28. Fourth Generation Techniques
A software development environment that supports the 4GT paradigm
includes some or all of the following tools:
nonprocedural languages for database query,
report generation,
data manipulation,
screen interaction and definition,
code generation;
4GT tools have high-level graphics capability; spreadsheet capability, and
automated generation of HTML and similar languages used for Web-site
creation using advanced software tools.
BCA Department Modern group of Colleges
29. Fourth Generation Techniques
4GT begins with a requirements gathering step.
For small applications, it may be possible to move directly from the
requirements gathering step to implementation using a nonprocedural fourth
generation language (4GL) or a model composed of a network of graphical
icons.
For larger efforts, it is necessary to develop a design strategy for the system,
even if a 4GL is to be used. The use of 4GT without design (for large projects)
will cause the difficulties (poor quality, poor maintainability, poor customer
acceptance)
BCA Department Modern group of Colleges
30. Fourth Generation Techniques
To transform a 4GT implementation into a product, the developer must
conduct thorough testing,
develop meaningful documentation, and perform all
other solution integration activities
The 4GT developed software must be built in a manner that enables
maintenance to be performed expeditiously.
BCA Department Modern group of Colleges
31. Concept of Software Project
Management
Software Project
A Software Project is the complete procedure of software development from
requirement gathering to testing and maintenance, carried out according to
the execution methodologies, in a specified period of time to achieve
intended software product.
BCA Department Modern group of Colleges
32. Need of software project management
BCA Department Modern group of Colleges
33. Software Management Activities
Software project management comprises of a number of
activities, which contains planning of project, deciding scope
of software product, estimation of cost in various terms,
scheduling of tasks and events, and resource management.
Project management activities may include:
•Project Planning
•Scope Management
•Project Estimation
BCA Department Modern group of Colleges
34. Project planning
Software project planning is task, which is performed
before the production of software actually starts. It is
there for the software production but involves no
concrete activity that has any direction connection with
software production; rather it is a set of multiple
processes, which facilitates software production.
BCA Department Modern group of Colleges
35. Project Scope management
It defines the scope of project; this includes all the activities, process need to
be done in order to make a deliverable software product. Scope management is
essential because it creates boundaries of the project by clearly defining what
would be done in the project and what would not be done. This makes project
to contain limited and quantifiable tasks, which can easily be documented and in
turn avoids cost and time overrun. During project scope management, it is
necessary to
Define the scope
Decide its verification and control
Divide the project into various smaller parts for ease of management.
Verify the scope
Control the scope by incorporating changes to the scope
BCA Department Modern group of Colleges
36. Project Estimation
For an effective management accurate estimation of various measures is
a must. With correct estimation managers can manage and control the
project more efficiently and effectively.
Project estimation may involve the following:
• Software size estimation Software size may be estimated either in
terms of KLOC (Kilo Line of Code) or by calculating number of
function points in the software. Lines of code depend upon coding
practices and Function points vary according to the user or software
requirement.
BCA Department Modern group of Colleges
37. Effort estimation
The managers estimate efforts in terms of personnel requirement
and man-hour required to produce the software. For effort estimation
software size should be known. This can either be derived by
managers’ experience, organization’s historical data or software size
can be converted into efforts by using some standard formulae.
BCA Department Modern group of Colleges
38. Time estimation
Once size and efforts are estimated, the time required to produce
the software can be estimated. Efforts required is segregated into
sub categories as per the requirement specifications and
interdependency of various components of software. Software tasks
are divided into smaller tasks, activities or events by Work
Breakthrough Structure (WBS). The tasks are scheduled on day-to-
day basis or in calendar months.
• The sum of time required to complete all tasks in hours or days is the
total time invested to complete the project.
BCA Department Modern group of Colleges
39. Cost estimation
This might be considered as the most
difficult of all because it depends on more elements than any of
the previous ones. For estimating project cost, it is required to consider
-
• Size of software
• Software quality
• Hardware
• Additional software or tools, licenses etc.
• Skilled personnel with task-specific skills
• Travel involved
• Communication
• Training and support
BCA Department Modern group of Colleges
40. Project Estimation Techniques
We discussed various parameters involving project estimation such as size,
effort, time and cost.
Decomposition Technique
This technique assumes the software as a product of various compositions.
There are two main models -
Line of Code Estimation is done on behalf of number of line of codes in the
software product.
Function Points Estimation is done on behalf of number of function points in
the software product.
BCA Department Modern group of Colleges
41. Empirical Estimation Technique
This technique uses empirically derived formulae to make estimation.
These formulae are based on LOC or FPs.
COCOMOCOCOMO stands for COnstructive COst MOdel, developed by Barry W.
Boehm. It divides the software product into three categories of software:
organic, semi-detached and embedded.
BCA Department Modern group of Colleges
42. Project Risk Management
Risk management involves all activities pertaining to identification, analyzing
and making provision for predictable and non-predictable risks in the project.
Risk may include the following:
Experienced staff leaving the project and new staff coming in.
Change in organizational management.
Requirement change or misinterpreting requirement.
Under-estimation of required time and resources.
Technological changes, environmental changes, business competition.
BCA Department Modern group of Colleges
43. Risk Management Process
There are following activities involved in risk management process:
Identification - Make note of all possible risks, which may occur in the
project.
Categorize - Categorize known risks into high, medium and low risk intensity
as per their possible impact on the project.
Manage - Analyze the probability of occurrence of risks at various phases.
Make plan to avoid or face risks. Attempt to minimize their side-effects.
Monitor - Closely monitor the potential risks and their early symptoms. Also
monitor the effects of steps taken to mitigate or avoid them.
BCA Department Modern group of Colleges