Chpt1_IntroductionToSE&ProcessModels
Chpt1_IntroductionToSE&ProcessModels
Characteristics of software
An undiscovered defect will cause high failure rates in the life of the
program. Software does not wear out during its life; software will
undergo maintenance.
As changes are made, it is likely that some new defects will be
recognized, causing the failure rate curve to spike.
3. The software continues to be custom-built, rather than being
assembled from existing components:
3. Cloud Computing
● Cloud computing provides us means of accessing the applications
as utilities over the internet. It allows us to create, configure and
customize the applications online.
● Cloud computing encompasses an infrastructure that enables any
user anywhere, to use a computing device to share the computing
resources on a broad scale.
● Cloud refers to a network or the internet.It is a technology that uses
remote servers on the internet to store, manage and access data
online rather than local drives. The data can be anything such as
files, images, documents, audio, video and more.
● Cloud computing refers to manipulating, configuring and accessing
the hardware and software resources remotely. It offers online data
storage, infrastructure and applications.
Computing devices reside outside the cloud and have access to a variety
of resources within the cloud.
There are the following operations that we can do using cloud
computing:
Functionality:
Reliability:
Refers to the recoverability, fault tolerance, maturity of software, which
is basically a capability of the software that provides required
functionality under the given situations.
Efficiency:
It is the ability of the software to use resources of the system in the most
effective and efficient manner. Software must make effective use of
system storage and execute commands as per required timing.
Usability:
It is the extent to which the software can be utilized with ease and the
amount of effort or time required to learn how to use the software.
Maintainability:
Portability:
It is the ease with which software developers can relaunch software from
one platform to another, without (or with minimum) changes. In simple
terms, software must be made in a way that it should be platform
independent.
4. Construction:
● Construction consists of code generation and the testing part.
● Coding part implements the design details using an appropriate
programming language.
● Testing is to check whether the flow of coding is correct or not.
● Testing also checks that the program provides desired output.
5. Deployment:
● Deployment step consists of delivering the product to the
customer and taking feedback from them.
● If the customer wants some corrections or demands for the
additional capabilities, then the change is required for
improvement in the quality of the software.
Umbrella activities
● In this activity, the developing team accesses the project plan and
compares it with the predefined schedule.
● If these project plans do not match with the predefined schedule,
then the required actions are taken to maintain the schedule.
2. Risk management
5. Measurement
1. Waterfall model
● The waterfall model is also called 'Linear sequential model' or
'Classic life cycle model'.
● In this model, each phase is fully completed before the beginning
of the next phase.
● This model is used for small projects.
● In this model, feedback is taken after each phase to ensure that the
project is on the right path.
● Testing part starts only after the development is complete.
1. Communication: The major task performed is requirement
gathering which helps in finding out the exact need of the
customer.
2. Planning: Describes how technical tasks are going to take place
and what resources are needed and how to use them.
3. Modeling; This is one of the important phase as the architecture of
the system is designed in this phase. Analysis is carried out and
depending on the analysis a software model is designed. Different
models for developing software are created depending on the
requirements gathered in the first phase and the planning done in
the second phase.
4. Construction: The actual coding is done in this phase. This coding
is done on the basis of the model designed in the modeling phase.
So in this phase software is actually developed and tested.
5. Deployment: In this last phase the product is actually delivered at
customer’s end and support is given if required. Feedback is taken
from the customer to ensure the quality of the product.
2. Incremental Model
3. RAD Model
1. Communication
In this phase, developer and customer meet and discuss the overall
objectives of the software.
2. Quick design
4. Construction of prototype
● If the user is not satisfied with the current prototype then it refines
according to the requirements of the user.
● The process of refining the prototype is repeated until all the
requirements of users are met.
● When the users are satisfied with the developed prototype then the
system is developed on the basis of the final prototype.
Spiral Model
Concurrent Models
● The concurrent development model is called a concurrent model.
● The communication activity has completed in the first iteration
and exits in the awaiting changes state.
● The modeling activity completed its initial communication and
then went to the underdevelopment state.
● If the customer specifies the change in the requirement, then the
modeling activity moves from the under development state into
the awaiting change state.
● The concurrent process model activities moving from one state to
another state.
Advantages of the concurrent development model
1. Inception Phase:
● The inception phase of the UP encompasses both customer
communication and planning activities.
● By collaborating with stakeholders, business requirements for the
software are identified; a rough architecture for the system is
proposed; and a plan for the iterative, incremental nature of the
ensuing project is developed.
2. The elaboration phase
● The elaboration phase encompasses the communication and
modeling activities of the generic process model.
● Elaboration refines and expands the preliminary use cases that
were developed as part of the inception phase and expands the
architectural representation to include five different views of the
software the use case model, the requirements model, the design
model, the implementation model, and the deployment model.
● Elaboration creates an “executable architectural baseline” that
represents a “first cut” executable system.
3. Construction phase
● The construction phase of the UP is identical to the construction
activity defined for the generic software process. Using the
architectural model as input, the construction phase develops or
acquires the software components that will make each use case
operational for end users.
● To accomplish this, requirements and design models that were
started during the elaboration phase are completed to reflect the
final version of the software increment.
● All necessary and required features and functions for the software
increment (the release) are then implemented in source code.
4. Transition phase
5. Production phase