0% found this document useful (0 votes)
3 views

Ch1 SEN Notes Updated

The document provides an overview of software development processes, defining software and its various types, including system, real-time, embedded, business, and artificial intelligence software. It discusses the characteristics of software, such as its flexibility, maintainability, and the fact that it does not wear out like hardware. Additionally, it outlines the software engineering process, including phases like requirement gathering, design, implementation, testing, deployment, and maintenance, along with the importance of a structured framework and various models like the waterfall model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Ch1 SEN Notes Updated

The document provides an overview of software development processes, defining software and its various types, including system, real-time, embedded, business, and artificial intelligence software. It discusses the characteristics of software, such as its flexibility, maintainability, and the fact that it does not wear out like hardware. Additionally, it outlines the software engineering process, including phases like requirement gathering, design, implementation, testing, deployment, and maintenance, along with the importance of a structured framework and various models like the waterfall model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Ch. 1.

Software Development Process


12 Marks

1.1 Definitions of Software:

• Computer S/W or simply S/W is a generic term that refers to a collection of data or
computer instructions that tell the computer how to work, in contrast to physical
hardware from which the system is built , that actually performs the work. S/W is an
agent which produces the information in required form that could be audio, video,
textual, graphical or even encrypted format.

• Software is data structures that enable the programs to adequately manipulate


information.

• Computer programs, procedures, rules and possibly associated documentation and


data pertaining to the operation of a computer based system.

• Software is set of instructions that when executed provide desired features, functions
and performance

• Computer Software is the product that the software professionals build and then
support over the long term. Software is written to handle an Input – Process –
Output system to achieve predetermined goals. Software is logical rather than a
physical system element.

1.2 Types/Categories of Software( Changing nature of S/W)

• 1 System Software: Infrastructure s/w like compilers, operating systems, editors,


drivers etc. Basically it is a collection of programs to provide service to other
programs.

• 2 Real time Software: These are used to monitor, control and analyze real world events
as they occur. Ex- Weather forecasting. Where s/w will gather and process the status of
temperature, humidity and other environmental parameters to forecast the weather.
• 3. Embedded Software: It is placed in Read Only memory(ROM) of the product and
control various functions of products.(security systems, signaling system, washing
machine, microwave oven etc)
Software Engineering (22413) – Chapter 1 1
• 4 Business Software: This is the largest application area. The software designed to
process the business applications is called business s/w. eg- Payroll, file monitoring
system, employee management, account management, data warehousing tool,
management information system, enterprise resource planning (ERP).

• 5 Personal computer Software: S/W used in personal computers. Eg- word processors,
computer graphics, multimedia and animating tools, database management, computer
games etc.

• 6 Artificial intelligence Software: It uses non numerical algorithms. They are used for
complex and highly analytical problems. Applications of this category are robotics,
artificial neural n/w, business intelligence, image and video recognition etc.

• 7 Web based Software: S/W related to web applications.


Eg-CGI,Perl, HTML etc

• 8 Engineering and Scientific Software: Huge computing is required to process data.


Eg- CAD/CAM package, MATLAB etc.

Characteristics of a Software:

1 _Software does not wear out:

• There is a well-known “bath tub “curve for hardware products.

• There are three phases- Initial phase is burn-in phase where failure intensity is high.
It is expected to test the product before delivery. Due to testing and fixing faults,
failure intensity will come down.

• The second is useful life phase where failure intensity is approximately constant and is
called useful life of a product.

• After few years failure intensity will increase due to wearing of components. This
phase is called wear out phase.

• In case of software the main reason of failure is “change”.

Software Engineering (22413) – Chapter 1 2


• It does not wear out like hardware and even do not get affected because of
environmental maladies.

• Before s/w curve becomes steady because of change again a new change is requested
and this way curve spikes.

Failure intensity of Hardware

Failure intensity of Software

2_Software is developed or engineered; It is not manufactured :

• S/W is one time development effort and continuous maintenance effort in order to keep
it operational. However making 1000 copies is not an issue and it does not involve any

Software Engineering (22413) – Chapter 1 3


cost. In case of H/W product costs due to raw material and other processing
expenses.In both hardware and software development high quality is achieved through
a good design, but the manufacturing phase of hardware can introduce quality
problems that are nonexistent for s/w.

Example of manufacturing TV using components purchase from vendors.

• In S/W every project is a new project. We start from the scratch and design every unit
of the s/w product. Huge efforts are required to develop the s/w which further increases
the cost.

3_Software is Flexible: A program is developed to do almost anything. This is the best


characteristics to accommodate any changes.

4. Efficient: Any software is said to be efficient if it uses available resources in the most
efficient manner and produce result in timely manner.

5. Maintainability: - If the customer changes, programmers need to modify the software to


fulfill those requirements. S/W provides the ability to maintain the software through
modifying the s/w rather than changing the whole product like hardware.

6. Dependability It is the ability that provide services which are trusted by users

1.3 Software Engineering

• Definitions:
• “The establishment and use of sound engineering principles in order to obtain
economically developed software that is reliable and works efficiently on real
machines”
• “A discipline whose aim is the production of quality software, software that is
delivered on time, within budget and that satisfies its requirement”

Software Engineering (22413) – Chapter 1 4


• Software Engineering is a method of applying Scientific and Technological
knowledge, procedures and rules to design, develop, and maintain the software
product.

• Software engineering is the technological and managerial discipline concerned with


systematic production and maintenance of software products that the developed and
modified on time and within cost estimates.
• The primary goal of software engineering is to improve the quality of software
products and to increase the productivity and job satisfaction of software engineers.

1.4 Software Engineering- A Layered Technology approach:

• Software engg is a layered technology.

• Any engineering approach must rest on an organizational commitment to quality. The


bedrock that supports software engg is a quality focus.

• The foundation for s/w engg is the process layer.

• S/W engg process is the glue that holds the technology layers together and enables
timely development of computer software.

Software Engineering (22413) – Chapter 1 5


• Process defines a framework that must be established for effective delivery of s/w engg
technology.

• Software engg methods provide the technical “how to” for building software.

• Methods encompass a broad array of tasks that include communication, requirement


analysis, design modeling, program construction, testing and support.

• Software engg Tools provide automated or semi automated support for the process and
the methods.

• When tools are integrated ,information created by one tool can be used by another.

1.5 S/W Development Framework / LifeCyle:

Software Engineering (22413) – Chapter 1 6


1. Requirement gathering: -In this phase stakeholders communicate with customers
and system users to gather the requirements like who will use system? What should be
the system i/p and o/p.?How the user will interact with System? SRS is prepared
(asking objectives, requirements,)

2. Design- Based on SRS design is prepared. O/P of this is phase will be specifying the
hardware and software requirements of the system. DFD, Flowcharts are prepared here.
(sketch, blueprint, ,model)

3. Implementation- It combines code generation and testing that is required to uncover


errors in the code. This is the longest phase. Works in smaller parts called as modules. O/P
of this phase is actual code and programming language(actual work)

4. Testing – Testing of the actual code to make ensure that system will satisfy all needs
of customer. Various testing strategies are used. O/P of testing phase is corrected and
modified code.

5. Deployment- In this system is deployed at user’s site for their use. Customer uses the
s/w and gives feedback to development team for any changes or modifications in system if
any.

6. Maintenance- Once software is deployed actual problems from from users perspective
will comes up. It is the responsibility of development team to solve the user’s problem.
This is maintenance of system.(Add Functionality may need to add in application as per
users req)

Software Engineering (22413) – Chapter 1 7


1.6 Process Framework:

• It establishes the foundation for a complete s/w process by identifying a small number
of framework activities that are applicable to all s/w projects, regardless of their size or
complexity.

• It encompasses a set of umbrella activities that are applicable across the entire s/w
process.

• It is a collection of activities, actions and tasks that are needed to perform in order to
create work product, s/w product, a product.

• Each framework activity is populated by a set of s/w engg actions-a collection of


related tasks that produces a major s/w engg work product.

• Each action is populated with the individual work tasks that accomplish some part of
the work implied by the action.

• Work Task – starting mark of project


• Work Product – O/P of work task * Milestones – Goal / small milestones
• SQA points – Quality Check
Software Engineering (22413) – Chapter 1 8
1.7 Software Generic Framework Activities

The following generic process framework is applicable to the vast majority of s/w
projects.

• Communication-

• This framework activity involves heavy communication and collaboration with


the customer and involves requirement gathering and other related activities.

• It helps to understand the objective of project

• Planning-

• It establishes a plan for s/w engg work that follows. It describes the technical
tasks to be conducted, the risks that are likely, resources required, work products
to be produced and work schedule.

• It requires as many people (software teams) working on the same projects but
different functions at same time.

• Modeling-

• It involves creation of models that allows the developer and the customer to
better understand s/w requirements and the design that will achieve those
requirements.

• It involves business modeling, data modeling and process modeling.

• Construction-

• It combines code generation and testing that is required to uncover errors in the
code.

• Deployment-

• The s/w is delivered to the customer who evaluates the delivered product and
provides feedback based on the evaluation.

Software Engineering (22413) – Chapter 1 9


1.7.1 Activity, Actions, Task, Task set(for your knowledge not included in S/W Process
Framework question )

• S/W activity, actions, tasks are all have different meaning.

• Activity – strives broad objective (ex – communication with stakeholder)

• Actions – It encompasses a set of tasks that produces a major work product.

• Tasks – It focuses on small/narrow but well defined objective that produces a tangible
o/p (unit testing on i/p or o/p)

• Task set - A task set defines the actual work to be done to accomplish the objectives of
a software engg action.

Eg- Requirements gathering is an important s/w engg action that occurs during
the communication activity.

For small and relatively simple project task set for requirements gathering might
look like this: Make a list of stakeholders for the project

• Invite all stakeholders to an informal meeting

• Ask each stakeholder to make a list of features and functions required.

• Discuss requirements and build a final list

• Prioritize requirements

• Note areas of uncertainty.

For large and complex project different task set would be required. It might involve
following tasks:

• Make a list of stakeholders for the project.

• Interview each stakeholder separately to determine overall wants and needs

• Build a preliminary list of functions and features based on stakeholder input.

• Schedule a series of facilitated requirements gathering meetings.

• Conduct meetings

• Produce informal user scenario as part of each meeting


Software Engineering (22413) – Chapter 1 10
• Refine user scenario based on stakeholders feedback

• Build a revised list of stakeholder requirements.

• Use quality function deployment techniques to prioritize requirements.

• Package requirements so that they can be delivered incrementally.

• Note constraints and restriction that will be placed on the system.

• Discuss methods for validating the system. )

1.7.2 Umbrella Activities:

• The framework described in the generic view of s/w engg is complemented by a


number of umbrella activities.

Typical activities in this category include:

• Software project tracking and control – Allows the s/w team to assess the progress
against the project plan and take necessary action to maintain schedule.

• Risk management – Asses risks that may affect the outcome of the project or the
quality of the product.

• Software quality assurance- Defines and conducts the activities required to ensure
s/w quality

• Formal technical reviews- assess s/w engg work products in an effort to uncover and
remove errors before they are propagated to the next action or activity.

• Measurement- Defines and collects process, project and product measures that assist
the team in delivering s/w that meets customer’s needs, can be used in conjunction
with all framework and umbrella activities.

• Software configuration management- Manages the effects of change throughout the


s/w process.

• Reusability management- Defines criteria for work product reuse and establishes
mechanism to achieve reusable components.

• Work product preparation and production- Involves the activities required to create
work products such as models, documents, forms and lists.

Software Engineering (22413) – Chapter 1 11


1.8 Prescriptive Process Models:

 The name Prescriptive is given because the model prescribes a set of activities, actions,
tasks, quality assurance and changes the mechanism for every project.
 Everything will be in sequential or linear manner.
 It has predefined framework
 Regardless of process model that is selected, s/w engg have traditionally chosen a
generic process framework that has the following framework activities:
Communication, Planning, Modeling, Construction, and Deployment.

1.8.1 Waterfall Model:

Software Engineering (22413) – Chapter 1 12


• The most familiar model is the waterfall model.

• It is also called as classical life cycle model or linear sequential model

• This model has five phases as shown in figure.

• In Waterfall model any phase of development process begins only if previous phase is
completed.

• It can be implemented for all size projects.

• O/p of one phase is i/p of to the next phase.

• The phases always occur in this order and do not overlap.

• It leads to concrete and clear approach to S/W development.

• The developer must complete each phase before the next phase begins.

• This model is named “waterfall model” because its diagrammatic representation


resembles a cascade of waterfalls.

1. Requirement analysis and specification phase:

• The goal of this phase is to understand the exact requirements of the customer and to
document them properly. This activity is executed together with the customer, as the
goal is to document all functions, performance and interfacing requirements for the
s/w.

• This phase produces a large document, written in a natural language, contains a


description of what the system will do without describing how it will be done. The
resultant document is known as Software requirement specification(SRS) document.

• SRS document is a contract between the developer and customer. If the developer fails
to implement full set of requirements, it may amount to failure to implement the
contracted system.

2. Design phase:

• The SRS document is produced in the previous phase, which contains the exact
requirements of the customer.

Software Engineering (22413) – Chapter 1 13


• The goal of this phase is to transform the requirements specification into a structure
that is suitable for implementation in some programming language.

• Overall s/w architecture is defined and the high level and detailed design work is
performed. This work is documented and known as s/w design description (SDD)
document.

• The information contained in SDD is sufficient to begin the coding phase.

3. Implementation/Coding:

• During this phase, design is implemented.

• If the SDD is complete, the implementation or coding phase proceeds smoothly,


because all the information needed by the s/w developer is contained in SDD.

• Small modules are tested in isolation from the rest of the s/w product.

4. Verification/Testing:

• This is a very important phase. Effective testing will contribute to the delivery of
higher quality s/w products, more satisfied users, lower maintenance costs and more
accurate and reliable results.

• Here coding or job done by developer is verified against requirements of user in order
to ensure that software will satisfy all business requirements of user.

• After the successful verification s/w deployed at users site for their use.

• Testing phase ensures that the s/w is developed as per user’s req.

• It is very expensive activity and consumes one third or one half of the cost of a typical
development project.

• Purpose of unit testing is to determine that each module is correctly implemented. This
gives the chance to determine that the interface between modules is also correct for
which integration testing is performed.

Software Engineering (22413) – Chapter 1 14


5. Maintenance:

• S/W maintenance is a task that every development group has to face, when the s/w is
delivered to the customer’s site, installed and is operational.

• The time spent and effort required keeping the s/w operational after release is very
significant.

• Despite the fact that it is a very important and challenging task, it is routinely poorly
managed headache that nobody wants to face.

• The purpose of this phase is to preserve the value of the s/w over time. This phase may
span for 5 to 50 years whereas development may be 1 to 3 years.

Advantages of Waterfall model:

1. The amount of resources required is minimal.

2. Each phase of development proceeds sequentially.

3. Progress of system is measurable.

4. Suitable for small projects.

5. Easy to Understand / simple.

6. Results are well documented

Disadvantages of Waterfall model:

1. It is difficult to define all requirements at the beginning of a project.

2. This model is not suitable for accommodating any change.

3. A working version of the system is not seen until late in the project’s life.

4. It does not scale up well to large projects.

5. Real projects are rarely sequential.

Software Engineering (22413) – Chapter 1 15


1.8.2 Incremental Model or Iterative Enhancement Model:

• Incremental 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 useable product is given to the customer.

• This model has same phases like waterfall model but these may be conducted in
several cycles.

• A useable product is released at the end of the each cycle, with each release providing
additional functionality.

• During the first requirements analysis phase, customers and developers specify as
many requirements as possible and prepare a SRS document.

• Developers then prioritize these requirements. They implement the specified


requirements in one or more cycles of design, implementation and test based on the
defined priorities.

Software Engineering (22413) – Chapter 1 16


 The Incremental model applies the waterfall model incrementally.

 The series of releases is referred to as increments with each increment providing more
functionality to the customers.

 After the first increment a core product is delivered which can be already used by
customer.

 Based on customer feedback a plan is developed for the next increments and
modifications are made accordingly.

 This process continues with increments being delivered until the complete product is
delivered.

 With this model, first increment may be available within few weeks or months,
whereas the customer generally waits months or years to receive a product using the
waterfall model.

 During the first requirements analysis phase, customers and developers specify as
many requirements as possible and prepare a SRS document.

 Developers then prioritize these requirements. They implement the specified


requirements in one or more cycles of design, implementation and test based on the
defined priorities.

Advantages of Incremental model:

1. Increments are developed one after the other, after feedback has been received from
the user.

2. Increments can be planned to manage technical risks.

3. The system can be designed in such a manner that it can be delivered into pieces.

4. Number of people required is less.

5. Deadlines can be managed in an effective manner.

Disadvantages of Incremental model:

1. Integration testing is difficult to do.

2. Each quality developed requires testing.

Software Engineering (22413) – Chapter 1 17


3. It can be applied to only those projects which have independent modules.

4. Requires planning at management and technical level.

5. Cost is increased than actual cost.

6. System is broken into small framework.

1.8.3Difference between waterfall and Incremental Process Model

Parameter Waterfall Model Incremental Model

Simplicity Simple Intermediate

Risk Involvement High Easily Manageable

Flexibility to change Difficult Easy

User Involvement Only at beginning Intermediate

Flexibility Rigid(not flexibile) Less Flexible

Maintenance Least Promotes


Maintainability

Duration Long Very Long

1.9 Specialized Process Model:=

 Special Process models takes many of the characteristics of one or more of the
conventional models (that is used from long time or has been used for long time).

Software Engineering (22413) – Chapter 1 18


 However specialized models tend to be applied when a narrowly (specific, limitedly)
defined software engineering approach is chosen.

 Component – Based development Model

 The Formal Methods Model

1.9.1 Component – Based development Model

 Commercial off the shelf (cost) software components, developed by vendors who offer
them as products can be used when software is to be built.

 These components provide targeted functionality with well-defined interfaces that


enable the component to be integrated into the software.

 The Template and Description is available and using the same we can use the same and
create s/w (e.x – user credentials page is similar to all pages)

 It is iterative in nature.

 The model composes applications from prepackaged software components. Modeling


and construction activities begin with identification of candidate components(design
begins using available components)

 Regardless the technology that is used to create the components the CBD models
follows following steps,

 Available component based products are researched and evaluated for


application domain in question.

 Components integration (addition) issues are considered.

 S/W architecture is designed to accommodate the components.

 Components are integrated into the architecture.

 Comprehensive testing is conducted to ensure proper functionality.

 CBD leads to S/W reuse, and reusability provides software engineers with a
measurable benefits.

 Advantages:-

 Reusability can cause reduction in development cycle time.


Software Engineering (22413) – Chapter 1 19
 Reduction in project cost.

 Increase in productivity

1.9.2 Formal Methods Model


 The Formal Methods model encompasses a set of activities that leads to formal
mathematical specification of computer software.
 Formal methods enable software to specify develop and verify a computer based
system by applying rigorous, mathematical notations.
Ex – 1. When this model is used in Development, they provide a mechanism
for eliminating many of the problems that are difficult to overcome using other SE
paradigms. Ambiguity ( something that can be understand in more than one way),
incompleteness and inconsistency can be discovered and corrected more easily not
through ad hoc review but through the application of mathematical analysis.
2. When this model is used in Design, they serve as a basis for program
verification and therefore enable the S/w engineers to discover and correct errors that
might otherwise go undetected.
Disadvantages:-
1. Development of this models is time consuming and expensive.
2. Extensive training is required because S/W engineers do not have necessary
background.

1.10 Iterative Model (Just FYI)

 An interactive model is based on a cyclic process of prototyping, testing, analyzing,


and refining a product or process.

Software Engineering (22413) – Chapter 1 20


 Based on the results of testing the most recent iteration of a design, changes and
refinements are made.

 This process is intended to ultimately improve the quality and functionality of a design.

 In iterative design, interaction with the designed system is used as a form of research for
informing and evolving a project.

1.10 Difference between Incremental and Iterative Model

• In iterative model it basically iterates on the concept and improves it in further


iterations, In incremental model it basically develops the solution in parts.

Software Engineering (22413) – Chapter 1 21


• In iterative model it iterates over version i.e., the latest version is always a better one
from the previous containing improved features and functionality as compared to the
last version, In incremental model it increments over version i.e., the latest version is
always a better one from the previous containing new functionality add to the last
version.

• In iterative model it follows continuous improvements method for developing a


solution; In incremental model it makes growth in developing the solution in small
chunks.

• In iterative model after every iteration there is a review and feedback based on which
one decides that what is needed or what is not needed in the next version, In
incremental model as we develop solution in parts so there is nothing to be reviewed or
given feedback on.

• In iterative model at every iteration, one has something to be delivered, In incremental


model one must wait for the last stage to deliver the finished product.

1.11 Agile Software Development/ Agile Process/Agile Model

• The term Agile means “the ability to respond to changes” and here changes refer to
changes in terms of requirement, technology and people

• Agile model is a combination of iterative and incremental process models

• It is basically a methodology that promotes continuous development and testing of the


software throughout the SDLC of the project

• It focuses on process flexibility and customer satisfaction by the fast delivery of


working software product

• In this, the product is broken into small builds(chunks) and these builds are provided in
iterations

Software Engineering (22413) – Chapter 1 22


 Iteration typically lasts from about two to three weeks

 Each iteration comprise of cross-functional(development team – UI team, Database


team, front end team) teams working simultaneously on various areas

 Each build is incremental in terms of features and the final build holds all the features
required by the customer

 A working product is provided to the customer and important stakeholders at the end
of each iteration

 Best suitable when

 When frequent changes are required

 When a highly qualified and experienced team is available.

 When a customer is ready to have a meeting with a software team all the time

 When project size is small.

Software Engineering (22413) – Chapter 1 23


 Advantages

 Fast Delivery

 Face to Face Communication with clients.

 Efficient design and fulfills the business requirement.

 Anytime changes are acceptable.

 Fast Feedback.

 Improves quality.

 Disadvantages

 Depends heavily on customer interaction, so if the customer is not clear, the


team can be driven in the wrong direction

 Less documentation

 Requires good collaborations between team members

 Agile software development generally, promote a discipline project management


process that encourages frequent inspection and adaptation, a leadership philosophy
that encourages team work, self-organizations and accountability, a set of engineering
best practices that allow for rapid delivery of high quality software and business
approach that aligns development with customer needs and company goal.

 Agile software development describes an approach to software development under


which requirements and solutions evolve through collaborative effort of self-
organizing and cross functional teams and their customers(end users)

 It advocates adaptive planning, evolutionary development, early delivery, and


continual improvement, and it encourages rapid and flexible response to change.

 Agile Methodologies:

 Extreme Programming(XP)
 Scrum
 Dynamic systems Development Method(DSDM)

Software Engineering (22413) – Chapter 1 24


 Adaptive software development(ASD)
1.11 .1 Difference between Prescriptive and Agile methodology

Prescriptive Model Agile Process Model

Prescriptive process models stress Agile process models emphasize


detailed definition identification, and agility and follows a set of
application of process activates and principals that lead to informal
tasks approach to s/w process

A prescriptive model also describes Agile methods note that not only do
how each of these elements are the s/w requirements change, but so
related to one another do team members, the technology
being used.

It is Process oriented It is People Oriented

It follows life cycle(waterfall, spiral) It follows Iterative and Incremental


development model development model

Customers role is important Customers role is critical

Formal communication is required Informal communication is required

Documentation required is to be Documentation required is to be


comprehensive and constant minimal and evolving

1.12 Extreme Programming (XP)

Software Engineering (22413) – Chapter 1 25


 Extreme Programming (XP) is a software development methodology which is intended
to improve software quality and responsiveness to changing customer requirements.

 It is follows agile software development, what sets XP apart from the other agile
methodologies is that XP emphasizes the technical aspects of software development.

 XP is lightweight, efficient, low risk, flexible, predictable, scientific, and fun way to
develop software.

 Five values of XP are Communication, Simplicity, Feedback, Courage and Respect

 It follows Object Oriented approach (docs cost and software cost)

 It encompasses set of rules and practices that occur within set of 4 framework activities
– Planning, design, coding and testing

 Planning:-
Software Engineering (22413) – Chapter 1 26
 Creates user stories(will tell features, requirements , priorities are given on
index card, preferences are generated) , Values , acceptance test
criteria(unit test, user acceptance, user has to satisfy before going to
planning), iteration plan(figure shows it is iterative in nature each iteration
release 1 iteration).

 Design :-

* Simple design –Keep it simple and stupid, coding and designing for uncertain
requirements implies the risk on something that is not needed.

* CRC cards- Class responsibility collaborator

* Spike Solutions prototypes – it is a simple program to explore potential


solutions. Difficult design should be modeled using prototype.

 Coding –

Pair programming – in the team of two (Driver & Navigator) peoples.4


eyes and 2 brains are better, gives feedback to each other’s.

Refactoring – Improves the Internal Structure of the code but external


behavior is not affected

 Testing:-

 Unit test – example – pen

 Testing with example –

 During the process of manufacturing a ball point pen, the cap, the body,
the tail and the clip, the ink cartridge and the ball point (all are small
units) are produced separately and unit tested separately.

 When two or more units are ready, they are assembled and Integration
testing is performed.

 When the complete pen is Integrated, System testing is performed.

 Once system testing is complete, acceptance testing is performed so as to


confirm that the ball point pen is ready to make available for the end-
users.

Software Engineering (22413) – Chapter 1 27


Advantages of XP –

 Fewer Documentation required

 Collaboration with customers

 Flexibility to developers

 Easy to manage

Disadvantages of XP

 Depends heavily on customer interaction.

 Transfer of technology to new team members may be quite


challenging due to lack of documentation

1.13 Adaptive S/W Development

Software Engineering (22413) – Chapter 1 28


 The main Focus of ASD is on human/team collaboration and team self-organization.

 This practices provide ability to accommodate change and are adaptable in


environment where little planning and learning is required

 ASD consists of three important phases’ speculation, collaboration and learning.

 It focuses on rapid creation of applications and software system.

 It also focuses on results, not tasks and the results are identified as application features.

 Speculation –

 During this phase project is initiated and planning is conducted.

 Adaptive cycle planning uses project initiation information like Project


requirements (Fun and Non Fun req), Customer mission statements(user
needs, goal, objective), Project constraints(Delivery date, budget)etc. to
define set of release cycle that project wants.

 Collaborations-

Software Engineering (22413) – Chapter 1 29


 It is the difficult part of ASD as it needs the workers to be motivated in
such a way that their talent will be multiplied and enhances the creative
output beyond their enhanced numbers.

 It mostly depends upon communication and team work, but it also focuses
on individualism, since individual creativity is considered as import aspect
of collaboration.

 Above all these things, important are matter of trust. Individual working
together must have trust between them for the purpose of.

 Criticize without hatred.

 Assists each other without anger

 Works as hard as possible

 Possess skill set to contribute to the work

 Discuss problems or concerns in a manner that lead effective action


 Learning–
 The workers may have an overestimate of their own understanding of the
technology which may not lead to the desired result.
 Learning helps the workers to increase their level of understanding over the
project.
 Learning process is on 3 ways.
Focus Group – The customers and end users provide feedback on
software increments which provides a direct indication of whether
the product is satisfying the business needs or not.
Formal Technical review – ASD team members review the
software components that are developed improving the quality and
learning as they proceed.
Project Post-mortems – The ASD team becomes introspective
addressing its own performance and process. Team analyze its own
performance and makes appropriate improvements

1.14 Dynamic System Development Method

Software Engineering (22413) – Chapter 1 30


• It defines agile process model called as DSDM life cycle.

• Provides a framework for building and maintaining systems which meet tight time
constraints with the help of incremental prototyping in a controlled project
environment.

• It is derived from modified version of Pareto principle – “It is possible to deliver 80


percent of application in 20 percent of time it would take to deliver 100 percent
application”

• It is similar to prototype model.

• DSDM is an iterative process, each iteration follows 80% rule.

• Enough work is required for each increment to facilitate next increment.

Software Engineering (22413) – Chapter 1 31


• The remaining details or 20% can be completed later when more business req are
known or changes have been requested and accommodated

• Phases of DSDM Life cycle.

• Feasibility study

• Analyzes the business requirements and constraints the viability (ability to work
successfully) of the application is determined.

• Business Study

• Sets the functional as well as information needs which will supply business
value

• Functional (ex Button -button name, work of button, image clean, rotate)

• Non Functional (Performance)

• Functional Model Iteration

• Produces a set of incremental prototypes that demonstrate functionality for the


customer.

• Intent is to gather additional requirements by drawing feedbacks from users as


they use prototype.

• Design and Build Iteration

• Revisits prototypes built during FMI to make sure that all the prototypes have
been engineered in way to give operational business value for end users

• Implementation

• Places the latest software increment (an operational prototype) into the
operational environment

1.15 SCRUM

Software Engineering (22413) – Chapter 1 32


 One of the most popular agile methodology

 Scrum model is used in IT, sales, research, marketing, and pharms companies as well.

 It is lightweight , iterative and incremental model simple to understand but difficult to


master

 Scrum is a agile framework for managing knowledge work with an emphasis on


software development.

 It is designed for teams of 3 to 9 members, who break their work into actions that can
be completed within time box iterations called as SPRINTS.

 Sprints are no longer than 1 month and most commonly two weeks.

 Then track the progress re-plan in 15 minute meetings called Daily Scrum

 Product Owner – Owner of the project,

Software Engineering (22413) – Chapter 1 33


 Product Backlog – 1. Prioritize list of requirements, project needs, or features which
offer business value for customer.

2. It is possible to add items to the backlog at any time

 Sprint –

 1. Increments of valuable work are delivered in short cycles of one


month or less, which are called Sprints.

 Short cycles of one month or less, during which the work is done

 Work units which are necessary to gain a requirements defined in the


backlog which should be incorporated in predefine time.

 Modifications are not involved during the sprint. Therefore team


members are allowed by sprint to work in short term but stable
environment.

 Sprint Planning –

Scrum Team, Product Owner, stakeholders clients communicate on product lists


(Product backlog), and prioritize the products that can be delivered within 2 weeks

 Sprint Backlog–

Will select some prioritize requirements from Product backlog and implement in
the current sprint.

 Daily Scrum - Then track the progress re-plan in 15 minute meetings called Daily
Scrum.

 Scrum meetings –1.Are short in nature(15 min)von daily basis by scrum team

2. Three most important questions are asked and answered by team


members –

a. What did you do since the last team meeting?

b. What obstacles are you encountering?

c. What do you plan to accomplish by the next team meeting?


Software Engineering (22413) – Chapter 1 34
 Scrum Master- Team Leader, handles the meeting and evaluates the
Responses from each person.

 Potentially shippable product increment (Review) – Sprint review is done after each
increment from Scrum team, scrum master to user, stakeholders and client. Event held
at the end of the Sprint where the Scrum Team and key stakeholders review what was
accomplished in the Sprint and what has changed in their environment; next, attendees
collaborate on what to do next

 Sprint Retrospective - Scrum master gives feedback to scrum team.(positives from


sprint , what is done right, wrong, need attention, identifying weakness, strengths , how
can deliver best in next sprint)

1.16 Prototype Model

 The Prototyping model is a software development method in which a prototype (an


early approximation of the final system or product )is built, tested and then reworked
Software Engineering (22413) – Chapter 1 35
as necessary until an acceptable prototype is finally achieved from which the complete
system or product can now be developed.

 The main reason to develop a prototype is that it is impossible to get the perfect
product in the first attempt.

 This model can be used when the technical solutions are unclear to the development
team.

 Following are situations where Prototype model is used.

 User requirements are not complete.

 Technical issues are not clear.

1.17 Spiral Model

 Spiral model is used in complex software projects.

 Spiral model follows risk driven approach for SD.

Software Engineering (22413) – Chapter 1 36


 It is a combination of Waterfall and Iterative model.

 In this S/w or project undergoes through four phases iteratively in a “spiral” until it is
completed thus allowing multiple rounds of refinement.

 User feedback can be incorporated from early in the project

Phases -

 Planning: The first phase of the Spiral Model is the planning phase, where the scope
of the project is determined and a plan is created for the next iteration of the spiral.

 Risk Analysis: In the risk analysis phase, the risks associated with the project are
identified and evaluated. Then the risks associated with that solution are identified and
the risks are resolved using the best possible strategy. At the end of this quadrant, the
Prototype is built for the best possible solution.

 Engineering: During the third quadrant, the identified features are developed and
verified through testing. At the end of the third quadrant, the next version of the
software is available. In the engineering phase, the software is developed based on the
requirements gathered in the previous iteration.

 Evaluation: In the fourth quadrant, the Customers evaluate the so far developed
version of the software. In the end, planning for the next phase is started. In the
evaluation phase, the software is evaluated to determine if it meets the customer’s
requirements and if it is of high quality.

 Planning: The next iteration of the spiral begins with a new planning phase, based on
the results of the evaluation.

1.18 Selection criteria for Software process model

Software Engineering (22413) – Chapter 1 37


 The software process model framework is specific to the project. Thus, it is essential to
select the software process model according to the software which is to be developed.

 The software project is considered efficient if the process model is selected according
to the requirements. It is also essential to consider time and cost while choosing a
process model as cost and/ or time constraints play an important role in software
development.

 The basic characteristics required to select the process model are project type and
associated risks, requirements of the project, and the users.

 One of the key features of selecting a process model is to understand the project in
terms of size, complexity, funds available, and so on.

 In addition, the risks which are associated with the project should also be considered.

 Note that only a few process models emphasize risk assessment. Various other issues
related to the project and the risks are listed in Table are process model

 Example :

Requirements of Waterfall
the Project Prototype
Stable funds Yes Yes

Reuse components No Yes

Tight project schedule No Yes

Requirements are defined Yes No


early in SDLC
Requirements are changed No Yes
frequently
Requirements indicate a No Yes
complex System

Software Engineering (22413) – Chapter 1 38


Requirements are easily Yes No
defined and
understandable
Requires Limited User Yes No
Involvement

Memorizing Models
 Waterfall Model – Waterfall  Traditional  No change

 Incremental – Increments  10 %, 20 %, 50%,  Changes allowed

 Component based Model – Used Components  reusability

 Formal Method Model – Use Mathematical Expressions

 Iterative Model – Use Iterations  refining the product after each Iteration

 Prototype Model – Creating a prototype before actual product.

 Spiral Model – Spiral wave  Iterations

 Agile - Iterations and Increments  Changes are allowed

 XP – Technical aspects are important  XP Values are followed

 ASD – Team effort  Team collaborations

 DSDM – Cost and Time is important

 Scrum – worked in Sprints  feedback is taken after each sprint.

Important Points in Chapter


Question Bank
Software Engineering (22413) – Chapter 1 39
Subject: Software Engineering (22413)

Chapter 1.

1. Explain evolving role /types of or changing nature of software. (4)


2. Explain the categories of Software. (4)
3. Write definition of Software Engineering.(2)
4. Explain S/W development life cycle(4)
5. Explain SDLC with appropriate diagram(4)
6. Write description of Generic process framework activities applicable to s/w project.(4)
7. Write the description of umbrella activities which complements the framework
activities. (4)
8. List and explain the characteristics of Software. (4)
9. Explain software engg as a layered technology approach. (4)
10.What do you mean by Process framework? Explain with suitable diagram.(4)
11.Explain waterfall model. (4)
12.Write four drawbacks of waterfall model. (4)
13.What is Waterfall Model? State the practical situations in which it can be used. (4)
14.Explain waterfall model with the help of diagram. (4)
15.Describe incremental model. (4).
16.Explain incremental model with the help of diagram. (4)
17.Describe incremental model and state the advantages and disadvantages of the same?
(4)
18.Difference between Waterfall Model and incremental model.(4)

19. List any four selection criteria for Software Process Model.

20.Distinguish between perspective process model and agile process model.

21.Distinguish between waterfall model and spiral model.

Software Engineering (22413) – Chapter 1 40


22. Explain Dynamic Systems Development Method (DSDM).

23.Explain agile process model with diagram?


24.Explain ASD with Diagram

Software Engineering (22413) – Chapter 1 41

You might also like