Professional Documents
Culture Documents
Se Unit
Se Unit
SYLLABUS
UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT
Introduction to Software Engineering, Software Process, Perspective and Specialized Process
Models-Introduction to Agility – Agile process – Extreme programming – XP Process.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models-Introduction
to Agility – Agile process – Extreme programming – XP Process.
Software has characteristics that are considerably different than those of hardware:
Software is developed or engineered; it is not manufactured in the classical sense.
o Software is developed. But hardware is engineered. They both are fundamentally different.
o In both hardware and software,high quality is achieved through good design.
o Both activities are dependent on people, but the relationship between people applied and work
accomplished is entirely different.
o Both activities require the construction of a ―product,‖ but the approaches are different.
o Changes can be made easily in software compared to hardware.
Software doesn’t “wear out.”
o Hardware exhibits relatively high failure rates early in its life. (these failures are often attributable
to design or manufacturing defects);
o Though defects can be corrected and rectified,. as time passes the failure rate rises again as
hardware components suffer from the cumulative effects of dust, vibration, abuse, temperature
extremes, and many other environmental maladies. Stated simply, the hardware begins to wear out.
3
o But software does not wear out. But ,deteriorate!. The performance of the software will become
less efficient as time passes.
Although the industry is moving toward component-based construction, most software continues to be
custom built.
o In the hardware world, component reuse is a natural part of the engineering process. But, not in
case of software.
o A software component should be designed and implemented so that it can be reused in many
different programs.
Software Products:
They are two types
1. Generic products
2. Customized products
Generic Product Customized Product
They are developed by an organization and sold They are developed by an organization for specific
to a open market(public). customer.
Ex: Whatsapp, Windows movie maker. Ex: Library management system for specific college
Software Application Domains:
System software:
A software collection of programs written to service other programs. E.g., compilers, editors, and file
management.
Application software:
Stand-alone programs that solve a specific business need.
E.g., point-of-sale transaction processing, real-time manufacturing process control.
Scientific software :
Software—has been characterized by ―number crunching‖ algorithms. Applications range from
astronomy to volcanology, from automotive stress analysis to space shuttle orbital dynamics, and from
molecular biology to automated manufacturing.
Engineering software: E.g, Computer-aided design, system simulation,etc..
Embedded software:
Resides within a product or system. Embedded software can perform limited functions.
E.g., digital functions in an automobile such as fuel control, dashboard displays, braking systems, toys,
security alarm, televisions etc.
Product-line software:
Designed to provide a specific capability for use by many different customers.
(E.g., word processing, spreadsheets, computer graphics, multimedia, entertainment, database
management, and personal and business financial applications).
Web applications:
Called ―WebApps,‖ this network-centric software category spans a wide variety of applications. It is
also are integrated with corporate databases and business applications. E.g, asp.net,
php.net,cloud9,firebase etc..
Artificial intelligence software:
Makes use of non numerical algorithms to solve complex problems. Applications within this area
include robotics, expert systems, pattern recognition (image and voice), artificial neural networks,
theorem proving, and game playing.
4
Software Engineering:
The term is made of two words, software and engineering.
Software is more than just a program code. Software is considered to be collection of executable
programming code, associated libraries and documentations. Software, when made for a specific
requirement is called software product.
Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.
Software engineering is a branch that is associated with collection of methods (practice),
procedures, concepts, techniques and tools that allow professionals to build high quality computer
software.
IEEE States, Software engineering is the application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software.
Simply, Software engineering is a science and art of building a significant software system that are
On time & On budget
With acceptable performance
With correct operation.
Software engineering is a layered technology.
A Quality Focus:
Any engineering approach (including software engineering) must rest on an organizational commitment that
focus on quality of the product.
Process:
The foundation for software engineering is the process layer.(Technology layer).
A process is a collection of activities, actions or task that performed when some work product is to be
created.
Methods:
Methods includes a broad set of tasks such as communication, requirements analysis, design modelling,
program construction, testing, and support.
Tools:
Software engineering tools provide automated or semi automated support for the process and the methods.
2. SOFTWARE PROCESS:
Process:
A process is a collection of activities, actions or task that are performed when some work product is to be
created.
Software process is characterized by i) Process Framework Activities
ii) Task sets
iii)Umbrella Activities
5
(ii) Taskset: It defines the actual work done in order to achieve the software objectives.
(iii) Umbrella Activities:
Software engineering process framework activities are complemented by a number of umbrella
activities.
In general, umbrella activities are applied throughout a software project and help a software team
manage and control progress, quality, change, and risk.
Implementation
In this phase , all coding takes place.
Once coding is complete, the path of execution continues up the right side of the V where the test plans
developed earlier are now put to use.
Coding:
This is at the bottom of the V-Shape model.
Module design is converted into code by developers.
Advantages of V-model:
Simple and easy to use.
Testing activities like planning, test designing happens well before coding. This saves a lot of time.
Hence higher chance of success over the waterfall model.
Proactive defect tracking – that is defects are found at early stage.
Avoids the downward flow of the defects.
Works well for small projects where requirements are easily understood.
Disadvantages of V-model:
Very rigid and least flexible.
Software is developed during the implementation phase, so no early prototypes of the software are
produced.
If any changes happen in midway, then the test documents along with requirement documents
has to be updated.
Diagram of V-model:
For example:
Planning Phase:
Requirements are gathered during the planning phase.
Requirements like ‛BRS‘ that is ‛Business Requirement Specifications’ and SRS‘ that is
‗System Requirement specifications’.
Risk Analysis:
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.
A prototype is produced at the end of the risk analysis phase.
If any risk is found during the risk analysis then alternate solutions are suggested and
implemented.
Engineering Phase:
In this phase software is developed, along with testing at the end of the phase.
Hence in this phase the development and testing is done.
Evaluation phase:
This phase allows the customer to evaluate the output of the project to date before the project
continues to the next spiral.
Advantages of Spiral model:
High amount of risk analysis hence, Hence Risk vcan be identified and rectified before they get
problematic.
Requirement changes can be made easily at every stage.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.
Disadvantages of Spiral model:
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project‘s success is highly dependent on the risk analysis phase.
Doesn‘t work well for smaller projects.
When to use Spiral model:
When costs and risk evaluation is important
When project is not expected within a specific limited time span
For medium to high-risk projects
Users are unsure of their needs
Requirements are complex.
Significant changes are expected (research and exploration)
Working Principle:
For example, early in a project the communication activity (not shown in the figure) has completed its
first iteration and exists in the awaiting changes state.
The modeling activity (which existed in the inactive state while initial communication was completed,
now makes a transition into the under development state.
If, however, the customer indicates that changes in requirements must be made, the modeling activity
moves from the under development state into the awaiting changes state.
Concurrent modeling defines a series of events that will trigger transitions from state to state for each
of the software engineering activities, actions, or tasks.
Disadvantages:
The development of formal models is currently quite time consuming and expensive.
Extensive training and deep mathematical knowledge is required.
It is difficult to communicate with technically unsophisticated customers.
It is difficult to convert all specifications into mathematical notations.
4.3 Aspect-Oriented Software Development (AOSD):
The builders of complex software invariably implement a set of localized features, functions, and
information content.
These localized software characteristics are modeled as components and then constructed within the
context of system architecture.
Terminilogies used in AOSD:
Concern
Anything any stakeholder wants the system to do.
Anything, any stakeholder
Cross-cutting Concern
Far-reaching concern
Applies to many subsections of the system
The reason for Aspect Oriented to exist
Separation of Concerns
Removal of sections in a module that deals with other concerns
AOSD allows multiple concerns to be expressed separately and automatically unified into
working systems.
As modern computer-based systems become more sophisticated (and complex), certain concerns,
customer required properties or areas of technical interest span the entire architecture.
When concerns cut across multiple system functions, features, and information, they are often referred
to as crosscutting concerns.
Viewpoints - represent the requirements of related groups of stakeholders.
Cross-cutting concerns - are concerns that are identified by all viewpoints.
Vi e wpoi n ts C once rn s
Equip ment
Users
M anagers T HE SYST EM
Organis ation
Society
An AOSD Process:
Human factors:
Traits that need to exist in members of agile development teams:
o Competence
o Common focus
o Collaboration
o Decision- making ability
o Fuzzy-problem solving ability
o Mutual trust and respect
o Self-organization
Note:
We need not choose between agility and software engineering. Rather, define a software engineering approach
that is agile.
20
• At this level, changes to the process are to improve the process performance and at the same time
maintaining statistical probability to achieve the established quantitative process- improvement
objectives.
Advantage:
Cost saving in terms of lesser effort due to less defects and less rework
This also results in increased Productivity
On-Time Deliveries
Increased Customer Satisfaction
Overall increased Return on Investment
Decreased Costs
Improved Productivity
Disadvantage:
It may not be suitable for every organization.
It may add overhead in terms of documentation.
May require a considerable amount of time and effort for implementation.
Require a major shift in organizational culture and attitude.
Agile :
The word ‗agile‘ means −
Able to move your body quickly and easily.
Able to think quickly and clearly.
Characteristics of Agility:
Agility in Agile Software Development focuses on the culture of the whole team with multi-discipline, cross-
functional teams that are empowered and self organizing.
It fosters shared responsibility and accountability.
Facilitates effective communication and continuous collaboration.
The whole-team approach avoids delays and waits times.
Frequent and continuous deliveries ensure quick feedback that in in turn enable the team align to the
requirements.
Collaboration facilitates combining different perspectives timely in implementation, defect fixes and
accommodating changes.
Progress is constant, sustainable, and predictable emphasizing transparency.
Extreme Programming:
Definition:
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality
software, and higher quality of life for the development team. XP is the most specific of the agile frameworks
regarding appropriate engineering practices for software development.
Advantages:
Misunderstanding the business and/or domain − Making the customer a part of the team ensures constant
communication and clarifications.
Business changes − Changes are considered to be inevitable and are accommodated at any point of time.
Staff turnover − Intensive team collaboration ensures enthusiasm and good will. Cohesion of multi-
disciplines fosters the team spirit.
Communication
Simplicity
Feedback
Courage
Respect
Communication
Communication plays a major role in the success of a project. Problems with projects often arise due to lack of
communication. Many circumstances may lead to the breakdown in communication. Some of the common problems
are −
A developer may not tell someone else about a critical change in the design.
A developer may not ask the customer the right questions, and so a critical domain decision is blown.
A manager may not ask a developer the right question, and project progress is misreported.
A developer may ignore something important conveyed by the customer.
Extreme Programming emphasizes continuous and constant communication among the team members, managers
and the customer. The Extreme Programming practices, such as unit testing, pair programming, simple designs,
common metaphors, collective ownership and customer feedback focus on the value of communication.
XP employs a coach whose job is to notice when the people are not communicating and reintroduce them. Face-to-
Face communication is preferred and is achieved with pair programming and a customer representative is always
onsite.
Simplicity
Extreme Programming believes in ‗it is better to do a simple thing today and pay a little more tomorrow to change
it‘ than ‗to do a more complicated thing today that may never be used anyway‘.
Feedback
Every iteration commitment is taken seriously by delivering working software. The software is delivered early to the
customer and a feedback is taken so that necessary changes can be made if needed. Concrete feedback about the
current state of the system is priceless. The value of the feedback is a continuously running system that delivers
information about itself in a reliable way.
Customers tell the developers what features they are interested in so that the developers can focus only on
those features.
Unit tests tell the developers the status of the system.
The system and the code provides feedback on the state of development to the managers, stakeholders and
the customers.
Frequent releases enable the customer to perform acceptance tests and provide feedback and developers to
work based on that feedback.
When the customers write new features/user stories, the developers estimate the time required to deliver the
changes, to set the expectations with the customer and managers.
Courage
This is possible as no one is working alone and the coach guides the team continuously.
Respect
Respect is a deep value, one that lies below the surface of the other four values. In Extreme Programming,
Combined with communication, simplicity, and concrete feedback, courage becomes extremely valuable.
Communication supports courage because it opens the possibility for more high-risk, high- reward
experiments.
Simplicity supports courage because you can afford to be much more courageous with a simple system. You
are much less likely to break it unknowingly.
Courage supports simplicity because as soon as you see the possibility of simplifying the system you try it.
24
Rapid feedback
Assume simplicity
Incremental change
Embracing change
Quality work
Rapid Feedback
Rapid feedback is to get the feedback, understand it, and put the learning back into the system as quickly as possible.
The developers design, implement and test the system, and use that feedback in seconds or minutes instead
of days, weeks, or months.
The customers review the system to check how best it can contribute, and give feedback in days or weeks
instead of months or years.
Assume Simplicity
To assume simplicity is to treat every problem as if it can be solved with simplicity.Traditionally, you are told to
plan for the future, to design for reuse. The result of this approach may turn into ‗what is required today by the
customer is not met and what is ultimately delivered may be obsolete and difficult to change.‘
‗Assume Simplicity‘ means ‗do a good job of solving today's job today and trust your ability to add complexity in
the future where you need it.‘ In Extreme Programming, you are told to do a good job (tests, refactoring, and
communication) focusing on what is important today.
With good unit tests, you can easily refactor your code to do additional tests.
Follow YAGNI (You Ain‘t Gonna Need It).
Follow the DRY(Don‘t Repeat Yourself) principle. For example,
o Do not have multiple copies of identical (or very similar) code.
o Do not have redundant copies of information.
o No wastage of time and resources on what may not be necessary.
Incremental Change
In any situation, big changes made all at once just do not work. Any problem is solved with a series of the smallest
change that makes a difference.
Embracing Change
The best strategy is the one that preserves the most options while actually solving your most pressing problem.
25
Quality Work
Everyone likes doing a good job. They try to produce the quality that they are proud of. The team
Works well
Enjoys the work
Feels good in producing a product of value
Coding
Testing
Listening
Designing
Kent Beck, the author of ‗Extreme Programming Explained‘ defined 12 Extreme Programming practices as follows
Extreme Programming Practices The following diagram shows how Extreme Programming is
woven around the Extreme Programming practices −
26
Short Releases
You should put a simple system into production quickly, and then release new versions in very short cycles. Every
release should be as small as possible, so that it is −
Achievable in a short cycle
Contains the most valuable and immediate business requirements
A working system
The duration of the short cycle may vary with the software that needs to be built. However, it needs to be ensured
that the minimum possible duration is chosen.
Advantages
The advantages of Short Releases are −
Frequent feedback
Tracking
Reduce chance of overall project slippage
Disadvantages
You cannot possibly go into production after a few months. You certainly cannot make new releases of the system
on cycles ranging from daily to every couple of months. This is because you take time to absorb new requirements,
changes into the current code.
Metaphor
According to Cambridge online dictionary- A Metaphor is an expression, often found in literature that describes a
person or object by referring to something that is considered to have similar characteristics to that person or object.
For example, ‗The mind is an ocean‘ and ‗the city is a jungle‘ are both Metaphors.
Advantages
Encourages a common set of terms for the system
Reduction of buzz words and jargon
A quick and easy way to explain the system
27
Simple Design
The system should be designed as simply as possible at any given moment. Extra complexity is removed as soon as
it is discovered. The right design for the software at any given time is the one that −
Runs all the tests
Has no duplicated logic like parallel class hierarchies
States every intention important to the developers
Has the fewest possible classes and methods
Advantages
Time is not wasted adding superfluous functionality
Easier to understand what is going on
Refactoring and collective ownership is made possible
Helps keep the programmers on track
Disadvantages
You cannot possibly have just enough design for today's code and your design may not continue to evolve the
system.
Testing
The developers continually write unit tests, which need to pass for the development to continue. The customers write
tests to verify that the features are implemented. The tests are automated so that they become a part of the system
and can be continuously run to ensure the working of the system. The result is a system that is capable of accepting
change.
Advantages
Unit testing promotes testing completeness
Test-first gives developers a goal
Automation gives a suite of regression tests
Disadvantages
You cannot possibly write all those tests.
It can take too much time to write the tests.
Developers will not write the tests.
Refactoring
When implementing a feature, the developers always ask if there is a way of changing the existing code to make
adding the feature simple. After they have added a feature, the developers ask if they now can see how to make the
code simpler, while still running all of the tests. They restructure the system without changing its behavior to remove
duplication, improve communication, simplify, or add flexibility. This is called Refactoring.
28
Advantages
Prompts the developers to proactively improve the product as a whole
Increases the developer knowledge of the system
Disadvantages
You cannot possibly refactor the design of the system all the time. It would −
Take too long.
Be too hard to control, and
Most likely break the system.
Pair Programming
In Pair programing, the entire code is written with two developers at one machine, with one keyboard and one
mouse.
There are two roles in each pair −
The first developer (the one with the keyboard and the mouse) thinks about the best way to implement this
method right here.
The other developer is thinks more strategically
o Is this whole approach going to work?
o What are some other test cases that might not work yet?
o Is there some way to simplify the whole system so the current problem just disappears?
The pairing is dynamic. It means that the two Roles A and B may exchange their places, or they may pair up with
other team members. More often, anyone on the team will do as a partner. For example, if you have a responsibility
for a task in an area that is unfamiliar to you, you might ask someone with recent experience to pair with you.
Advantages
The advantages of Pair Programming are −
Two heads are better than one
Focus
Two people are more likely to answer the following questions −
o Is this whole approach going to work?
o What are some test cases that may not work yet?
o Is there a way to simplify this?
Disadvantages:
You cannot possibly write all the code in pairs. It will be too slow. It makes the situation difficult if two
people do not get along well.
29
Collective Ownership
In Extreme Programming, the entire team takes responsibility for the whole of the system. Not everyone knows
every part equally well, although everyone knows something about every part.
If a pair is working and they see an opportunity to improve the code, they go ahead and improve it.
Advantages
Helps mitigate the loss of a team member who is leaving.
Promotes the developers to take responsibility for the system as a whole rather than parts of the system.
Continuous Integration
Code is integrated and tested many times a day, one set of changes at a time. A simple way to do this is to have a
machine dedicated to integration. A pair with code ready to integrate −
Sits when the machine is free.
Loads the current release.
Loads their changes (checking for and resolving any collisions).
Runs the tests until they pass (100% correct).
Advantages
The advantages of Continuous Integration are −
Reduces the duration, which is otherwise lengthy.
Enables the short releases practice as the time required before release is minimal.
Disadvantages
You cannot possibly integrate after only a few hours of work, as integration takes long and there are too many
conflicts and chances to accidentally break something.
40-Hour Week
Extreme Programming emphasizes on the limited number of hours of work per week for every team members, based
on their sustainability, to a maximum of 45 hours a week. If someone works for more time than that, it is considered
as overtime. Overtime is allowed for at most one week. This practice is to ensure that every team member be fresh,
creative, careful and confident.
Advantages
The advantages of 40-hour week are −
Most developers lose effectiveness past 40 hours.
Value is placed on the developers‘ well-being.
Management is forced to find real solutions.
Disadvantages
You cannot possibly work 40-hour weeks. You cannot create enough business value in 40 hours.
30
On-Site Customer
Include a real, live user on the team, available full-time to answer the questions, resolve disputes and set small-scale
priorities. This user may not have to spend 40 hours on this role only and can focus on other work too.
Advantages
The advantages of having an onsite customer are −
Can give quick and knowledgeable answers to the real development questions.
Makes sure that what is developed is what is needed.
Functionality is prioritized correctly.
Disadvantages
You cannot possibly have a real customer full- time on the team, not producing any value. They can produce far
more value for the business elsewhere.
Coding Standards
Developers write all code in accordance with the rules emphasizing-
Communication through the code.
The least amount of work possible.
Consistent with the ―once and only once‖ rule (no duplicate code).
Voluntary adoption by the whole team.
Advantages
The advantages of Coding Standards are −
Reduces the amount of time developers spend reformatting other peoples‘ code.
Reduces the need for internal commenting.
Calls for clear, unambiguous code.
Disadvantages
You cannot possibly ask the team to code to a common standard as developers are usually individualistic.
Each of the activity levels provides the minimal inputs required for the next level. They are −
Product life cycle activities provide inputs for release cycles.
Release planning sessions provide inputs for iteration cycles.
Iteration planning sessions provide inputs for task cycles.
Task development provides inputs for development episodes.
Development produces the product.
Feedback is a continuous activity throughout the project and across all the above activity levels.
Product Life Cycles
This is also referred to as the Exploration phase. It involves feature set definition and planning. The customer arrives
at high value requirements and the requirements are given as user stories.Stories are the primary deliverable of this
level activity.
Releases
This is also referred to as the Commitment phase. In this activity −
The whole team gathers so that −
o Progress is reviewed.
o New requirements can be added and/or existing requirements can be changed or removed.
o Customer presents stories.
o Stories are discussed.
The developers determine the technical approach and risk. They provide first-level estimates and options.
The customer prioritizes the stories and chooses target release time box.
The customer and developers commit themselves to the functionality that are to be included and the date of
the next release.
The developers −
o Arrange stories into probable iterations.
o Include defect fixes from acceptance testing of the previous release.
o Begin the iterations.
Release plan is the primary deliverable of this level activity.
Iterations
This is also referred to as the Steering phase. The whole team gathers so that the progress is reviewed and the plan
can be adjusted. The customer presents stories for the iteration and the stories are discussed in greater detail.
The iteration Plan is the primary deliverable of this activity.
The developers −
Determine detailed technical approach.
Create task list for each story.
Begin the development.
Deploy the system
32
Tasks
The developers Sign- up for the tasks and begin development episodes to implement the stories. They ensure the
tasks for the iteration are complete. The developers also ensure that the stories for the iteration are complete with
acceptance tests.
Development
The developers form pairs, which can be a continuous and dynamic activity.
Each Pair −
Verifies their understanding of the story.
Determines detailed implementation approach, ensuring simple design.
Begins test-driven development, i.e., write unit test, implement code to pass the unit test, refactor to make the code
simple.
Integrates their code to the system code base at appropriate intervals.
Reviews the progress frequently.
Feedback
Pairs constantly communicate within themselves and outward to the team as well. On-line customer is also involved
in the communication on a continuous basis. Certain teams resort to daily stand-up meetings to discuss the overall
team status quickly and the possible re-synchronization and micro-planning if necessary.
The iteration and release reviews provide overall status and points for process adjustment and improvement.
Development episodes may cause rethinking of tasks.
Task development may cause rethinking of stories.
Story re-estimation may cause iteration changes or recovery.
Iteration results may cause changes to release plan.
The Extreme Programming process cycle is illustrated below.
33
XP – Activities
In Extreme Programming, the four basic activities are −
Coding
Testing
Listening
Designing
Coding
In pair programming, coding is considered the heart of development. You code because if you do not code, at the
end of the day you have not done anything.
Testing
In pair programming, testing needs to be done to ensure that the coding is done. If you do not test, you do not know
when you have finished coding.
Listening
In pair programming, you listen to know what to code or what to test. If you do not listen, you do not know what to
code or what to test.
Designing
In pair programming, you design so that you can keep coding and testing and listening indefinitely, as good design
allows extension of the system, with changes in only one place.
These activities are performed during −
Release Planning
Iteration Planning
Implementation
PART A
1. What is Software Engineering?[NOV / DEC 2013]
Software engineering is an engineering discipline that is concerned with all aspects of software production.
System software
Application software
Engineering/Scientific software
Embedded software
Web Applications
Artificial Intelligence software
23. List two deficiencies in waterfall model. Which process model do you suggest to overcome each
deficiency? [APR / MAY 2017]
1. The major drawback of waterfall model is we move to the next stage only when the previous one is finis hed
and there was no chance to go back if something is Software Engineering Tutorial13found wrong in later
stages. V -Model provides means of testing of software at each stage in reverse manner.
2. High amounts of risk and uncertainty in waterfall model. Spiral model produced High amount of risk
analysis hence, avoidance of Risk is enhanced.
24. If you have to develop a word processing software product, what process model will you choose? Justify
[APR / MAY 2018]
Incremental model is used to develop word processing software because we get software release in series of
increments.
PART B
1. Explain iterative waterfall and spiral model for software life cycle and various activities in each
phase.[APR/MAY 2012] .[APR/MAY 2015] [U]
2. Explain in detail about incremental and Rapid application development Model (RAD) and mention its
advantages and disadvantages. [APR/MAY 2012] [U]
3. Explain about the incremental model. [NOV/DEC 2014] [R]
4. Explain in detail about the software process. [NOV/DEC 2014] [R]
5. Explain in detail about the life cycle process. [APR/MAY 2012] [R]
6. Explain in detail about project scheduling & EVA? [APR/MAY 2015] [R]
7. Compare the following life cycle models based on their distinguishing factors, Strengths and weaknesses,
– Waterfall Model, R Model, Spiral Model and Formal Methods Model. (Present in the form of table
only – use diagrams wherever necessary) [NOV / DEC 2013] [An]
8. What is the process model? Describe the process model that you would choose to manufacture a car. Explain
giving suitable reasons. [APR / MAY 2017] [U]
9. How function point analysis methodology is applied in estimation of software size? Explain. Why FPA
methodology is better than LOC methodology? [APR / MAY 2017] [U]
10. Explain how work break down structure is used in software engineering. Discuss how software project
scheduling helps in timely release of a product.[APR / MAY 2018] [U]
11. Which software process model is good for risk management? Explain the model. Describe how the model is
used to layout the objectives, risks and plans for quality improvement. .[APR / MAY 2018] [U]