0% found this document useful (0 votes)
25 views48 pages

Unit 2

Uploaded by

Jyothish Abraham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views48 pages

Unit 2

Uploaded by

Jyothish Abraham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 48

Unit 2

Introduction to Software Enginering


• In software development the art of programming is no longer sufficient to
construct large programs.
• Series problems in the cost, timeliness, maintenance, and quality of s/w
• S/w engineering has the objective of solving this problems by producing good
quality, maintainable s/w, on time with in budget.

Definition of s/w engineering.


A discipline whose aim is the production of quality s/w, s/w that is delivered on
time , within budget and that’s satisfies its requirements.
• Program Vs Software
• Documentation manual
• What is a software process
• Software Characteristics:
• The following are the characteristics of software:
• Brief introduction about product and process
• In software engineering, any software developed as per the requirements of
the client is referred to as a product. In other words, a product is the outcome
of a planned and controlled software project.
• A software product consists of several entities such as requirement
specifications, design and test documents, source code and user manuals.
• What is a Process?
• In software development, process is defined as a set of steps to be followed to
develop a software product. It acts as a template that is used to direct the
project.
• Software Metrics
• A software metric is a measure of software characteristics which are
measurable or countable. Software metrics are valuable for many reasons,
including measuring software performance, planning work items, measuring
productivity, and many other uses.Within the software development process,
many metrics are that are all connected.
• Classification of Software Metrics
• Software metrics can be classified into two types as follows:
• 1. Product Metrics: These are the measures of various characteristics of the
software product. The two important software characteristics are:
1.Size and complexity of software.
2.Quality and reliability of software.
• 2. Process Metrics: These are the measures of various characteristics of the
software development process. For example, the efficiency of fault detection.
They are used to measure the characteristics of methods, techniques, and
tools that are used for developing software.
• Examples
• of product metrics are size, reliability, complexity, functionality etc.
Software Life Cycle Models
• SDLC is a process that defines the various stages involved in the
development of software for delivering a high-quality product. SDLC
stages cover the complete life cycle of a software.
• Software Development Life Cycle Models
• A software life cycle model is a descriptive representation of the
software development cycle. SDLC models might have a different
approach but the basic phases and activity remain the same for all the
models.
• Build and fix model or ad hoc model
• In the build and fix model (also referred to as an ad hoc model), the
software is developed without any specification or design. An initial
product is built, which is then repeatedly modified until it (software)
satisfies the user. That is, the software is developed and delivered to the
user. The user checks whether the desired functions ‘are present. If not,
then the software is changed according to the needs by adding,
modifying or deleting functions.
• This model includes the following two phases.
• Build: In this phase, the software code is developed and passed on to
the next phase.
• Fix: In this phase, the code developed in the build phase is made error
free. Also, in addition to the corrections to the code, the code is modified
according to the user’s requirements
• Waterfall Model
• Waterfall model is the simplest model of software development paradigm. It
says the all the phases of SDLC will function one after another in linear
manner. That is, when the first phase is finished then only the second phase
will start and so on.
• 1. Requirements analysis and specification phase: The aim of this phase is to
understand the exact requirements of the customer and to document them
properly. Both the customer and the software developer work together so as
to document all the functions, performance, and interfacing requirement of
the software. It describes the "what" of the system to be produced and not
"how."In this phase, a large document called Software Requirement
Specification (SRS) document is created which contained a detailed description
of what the system will do in the common language.
• During testing, the code is thoroughly examined and modified. Small modules
are tested in isolation initially. After that these modules are tested by writing
some overhead code to check the interaction between these modules and the
flow of intermediate output.
• 4. Integration and System Testing: This phase is highly crucial as the quality of
the end product is determined by the effectiveness of the testing carried out.
The better output will lead to satisfied customers, lower maintenance costs,
and accurate results. Unit testing determines the efficiency of individual
modules. However, in this phase, the modules are tested for their interactions
with each other and with the system.
• 5. Operation and maintenance phase: Maintenance is the task performed by
every user once the software has been delivered to the customer, installed,
and operational.
• Advantages of the Waterfall Model:
• Waterfall model is the simple model which can be easily understood and is the
one in which all the phases are done step by step.
• Deliverables of each phase are well defined, and this leads to no complexity
and makes the project easily manageable.
• Disadvantages of Waterfall model:
• Waterfall model is time-consuming & cannot be used in the short duration
projects as in this model a new phase cannot be started until the ongoing
phase is completed.
• Waterfall model cannot be used for the projects which have uncertain
requirement or wherein the requirement keeps on changing as this model
expects the requirement to be clear in the requirement gathering and analysis
phase itself and any change in the later stages would lead to cost higher as the
changes would be required in all the phases.
• Increment Process Models
Increment process models are effective in the situations where requirements
are defined precisely and there is no confusion about the functionality of the
final product.
After every cycle, a usable product is given to the customer.
For example, the university automation software, library automation module
May be delivered in the first phase and examination automation module in the
second phase and so on. Every new cycle will have an additional functionality.
Increment process models are popular particularly when we have to quickly
deliver a limited functionality system.
Two types:
1) Iterative Enhancement Models
2)RAD model
• Iterative Enhancement Models
• This model has the same phases as the waterfall model, but with fewer
restrictions. Generally the phases occur in the same order as in the
waterfall model, but they may be conducted in several cycles.
• A Usable product is released at the end of each cycle, with each release
providing additional functionality. Customers and developers specify as
many requirements as possible and prepare a SRS document.
• Developers and customers then prioritize these requirements Developers
implement the specified requirements in one or more cycles of design,
implementation and test based on the defined priorities.
• Advantages:
• Results are obtained early and periodically.
• Parallel development can be planned.
• Progress can be measured.
• Less costly to change the scope/requirements.
• Disadvantages:
• Not suitable for smaller projects.
• Management complexity is more.
• End of project may not be known which is a risk.
• More resources may be required.
• Rapid application development model (RAD)
• The Rapid Application Development Model was first proposed by IBM in the
1980s. The critical feature of this model is the use of powerful development
tools and techniques.
• A software project can be implemented using this model if the project can be
broken down into small modules wherein each module can be assigned
independently to separate teams.
• These modules can finally be combined to form the final product. Development
of each module involves the various basic steps as in the waterfall model i.e
analyzing, designing, coding, and then testing, etc.

Requirements User description construction Cut over


planning
• This model consists of 4 basic phases:
1.Requirements Planning – It involves the use of various techniques used in requirements
elicitation like brainstorming, task analysis, form analysis, user scenarios, FAST (Facilitated
Application Development Technique), etc. It also consists of the entire structured plan describing
the critical data, methods to obtain it, and then processing it to form a final refined model.
2.User Description – This phase consists of taking user feedback and building the prototype using
developer tools. In other words, it includes re-examination and validation of the data collected in
the first phase. The dataset attributes are also identified and elucidated in this phase.
3.Construction – In this phase, refinement of the prototype and delivery takes place. It includes
the actual use of powerful automated tools to transform process and data models into the final
working product. All the required modifications and enhancements are too done in this phase.
4.Cutover – All the interfaces between the independent modules developed by separate teams
have to be tested properly. The use of powerfully automated tools and subparts makes testing
easier. This is followed by acceptance testing by the user.
• The process involves building a rapid prototype, delivering it to the customer, and taking
feedback. After validation by the customer, the SRS document is developed and the design is
finalized.
• Advantages:
• The use of reusable components helps to reduce the cycle time of the project.
• Feedback from the customer is available at the initial stages.
• Reduced costs as fewer developers are required.
• The use of powerful development tools results in better quality products in comparatively
shorter time spans.
• The progress and development of the project can be measured through the various stages.
• It is easier to accommodate changing requirements due to the short iteration time spans.
• Disadvantages:
• The use of powerful and efficient tools requires highly skilled professionals.
• The absence of reusable components can lead to the failure of the project.
• The team leader must work closely with the developers and customers to close the project in
time.
• The systems which cannot be modularized suitably cannot use this model.
• Customer involvement is required throughout the life cycle.
• It is not meant for small-scale projects as in such cases, the cost of using automated tools and
techniques may exceed the entire budget of the project.
• Applications:
1.This model should be used for a system with known requirements and
requiring a short development time.
2.It is also suitable for projects where requirements can be modularized and
reusable components are also available for development.
3.The model can also be used when already existing system components can be
used in developing a new system with minimum changes.
• Evolutionary process model
• Evolutionary process model in software engineering is also referred as the
incremental model of software development.
• This model is mainly used in Agile approach of software development. The
whole product is developed in iterative and incremental manner.
• In evolutionary process model software requirements are broken in several sub
modules like M1, M2, M3……Mn. These sub modules are designed and
developed in form of release. In first iteration module M1 is developed and
delivered.
• In second iteration module M2 is developed and integrated with module M1.
• Now this increment M1+M2 is delivered to customer after second iteration. In
the same way whole software is developed and in the end final software
product is delivered to customer.
• Advantage
• Evolutionary process model is very helpful in building the large software
product.
• This model also provides a chance to user to experiment with a partially
developed software much before the complete version of the system is
delivered. It becomes easy for the developer to remove the bugs and
defects in early stages of software development.
• Evolutionary process model helps to accurately elicit user requirements
during the delivery of different versions of the software.
• In evolutionary model, this is easy to modify and add new functionality
during the development of the software.
• Evolutionary Model approach is Agile Approach for Software
Development.
• Disadvantages of Evolutionary Model
• This is Difficult sometime to divide the problem into several modules in
such a way that these would be acceptable by the customer and which
can be implemented in incremental and iterative manner.

• Following are the evolutionary process models.

1. The prototyping model


2. The spiral model
• Prototype Model
• The prototype model requires that before carrying out the development of
actual software, a working prototype of the system should be built. A
prototype is a toy implementation of the system.
• A prototype usually turns out to be a very crude version of the actual system,
possible exhibiting limited functional capabilities, low reliability, and inefficient
performance as compared to actual software.
• In many instances, the client only has a general view of what is expected from
the software product. In such a scenario where there is an absence of detailed
information regarding the input to the system, the processing needs, and the
output requirement, the prototyping model may be employed.
• Steps of Prototype Model
1.Requirement Gathering and Analyst
2.Quick Decision
3.Build a Prototype
4.Assessment or User Evaluation
5.Prototype Refinement
6.Engineer Product
•.
• Prototyping Model has following six SDLC phases as follow:
• Step 1: Requirements gathering and analysis
• A prototyping model starts with requirement analysis. In this phase, the
requirements of the system are defined in detail. During the process, the users
of the system are interviewed to know what is their expectation from the
system.
• Step 2: Quick design
• The second phase is a preliminary design or a quick design. In this stage, a
simple design of the system is created. However, it is not a complete design. It
gives a brief idea of the system to the user. The quick design helps in
developing the prototype.
• Step 3: Build a Prototype
• In this phase, an actual prototype is designed based on the information
gathered from quick design. It is a small working model of the required system.
• Step 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.
• Step 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.
• Step 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.
• Advantage of Prototype Model
1.Reduce the risk of incorrect user requirement
2.Good where requirement are changing/uncommitted
3.Regular visible process aids management
4.Support early product marketing
5.Reduce Maintenance cost.
6.Errors can be detected much earlier as the system is made side by side
• Disadvantage of Prototype Model
1.An unstable/badly implemented prototype often becomes the final product.
2.Require extensive customer collaboration
1. Costs customer money
2. Needs committed customer
3. Difficult to finish if customer withdraw
4. May be too customer specific, no broad market
3.Difficult to know how long the project will last.
4.Easy to fall back into the code and fix without proper requirement analysis, design,
customer evaluation, and feedback.
5.Prototyping tools are expensive.
6.Special tools & techniques are required to build a prototype.
7.It is a time-consuming process.
Spiral Model
• What is Spiral Model?
• Spiral Model is a risk-driven software development process model. It is a
combination of waterfall model and iterative model.
• Spiral Model helps to adopt software development elements of multiple
process models for the software project based on unique risk patterns
ensuring efficient development process.
• Each phase of spiral model in software engineering begins with a design goal
and ends with the client reviewing the progress. The spiral model in software
engineering was first mentioned by Barry Boehm in his 1986 paper.
• The development process in Spiral model in SDLC, starts with a small set of
requirement and goes through each development phase for those set of
requirements.
• The software engineering team adds functionality for the additional
requirement in every-increasing spirals until the application is ready for the
production phase.
Spiral Model Phases

Spiral Model Phases Activities performed during phase

•It includes estimating the cost, schedule and


resources for the iteration. It also involves
Planning 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 of software by the customer. Also, includes


Evaluation identifying and monitoring risks such as schedule
slippage and cost overrun
• When to use Spiral Model?
• A Spiral model in software engineering is used when project is large
• When releases are required to be frequent, spiral methodology is used
• When creation of a prototype is applicable
• When risk and costs evaluation is important
• Spiral methodology is useful for medium to high-risk projects
• When requirements are unclear and complex, Spiral model in SDLC is
useful
• When changes may require at any time
• When long term project commitment is not feasible due to changes in
economic priorities
• Selection of life cycle model
• Selection Process parameters plays an important role in software development
as it helps to choose the best suitable software life cycle model. Following are
the parameters which should be used to select a SDLC.
• 1. Requirements characteristics :
• Reliability of Requirements
• How often the requirements can change
• Types of requirements
• Number of requirements
• Can the requirements be defined at an early stage
• Requirements indicate the complexity of the system
• 2. Development team :
• Team size
• Experience of developers on similar type of projects
• Level of understanding of user requirements by the developers
• Environment
• Domain knowledge of developers
• Experience on technologies to be used
• Availability of training
• 3. User involvement in the project :
• Expertise of user in project
• Involvement of user in all phases of the project
• Experience of user in similar project in the past
• 4. Project type and associated risk :
• Stability of funds
• Tightness of project schedule
• Availability of resources
• Type of project
• Size of the project
• Expected duration for the completion of project
• Complexity of the project
• Level and the type of associated risk

You might also like