SPM Unit 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

UNIT – I FUNDAMENTALS

2 MARKS QUESTIONS & ANSWERS

1. What is software project management?


Software project management is the art and science of planning and leading software projects. It is sub
discipline of project management in which software are planned, monitored, and controlled.

2. What is a project?
A project is defined as:
 A specific plan or design.
 A planned undertaking.
 A large undertaking.

3. List some of the key characteristics of project?


 Planning is required.
 Work is carried out in several phases.
 Non-routine tasks are involved.
 Specific objectives are to be met or a specific product is to be created.

4. List the characteristics of the products of software projects?


 Invisibility
 Complexity
 Flexibility

5. What are the three activity of SPM?


The feasibility study,
Planning,
Project execution.

6. What is feasibility study?


Feasibility study in short is termed as “Learned Lessons”. With the help of collected information,
investigation to decide whether a prospective project is worth starting is the feasibility study.

7. What is planning?
It is an act of formulating a program for a definite course of action. Planning is to decide “what is to be
done”.

8. List different stages of project life cycle?


i. Requirement Analysis.
ii. Specification
iii. Design
iv. Coding
v. Verification and Validation
vi. Implementation
vii. Maintenance and Support.

9. What is strategic planning?


Strategic Planning is an organization’s process of defining its strategy or duration and making decisions
on allocating its resources to pressure this strategy, including its capital and people. It is the process of
identifying an organizations long term goals and objectives and then determining the best approach for achieving
those goals and objectives.
10. What is requirement Analysis?
Requirement analysis is defined as finding out in detail what the users require of the system that the
project is to implement.

11. What is Design?


Design is the diagrammatic representation of project which we going to do. Design is the planning that
lays the basis for the making of every object or system.

12. What is management?


Management is one which performs the following set of activities such as planning, organizing, staffing,
directing, monitoring, controlling, innovating and representing.

13. How software projects different from other projects?


Software projects are similar to other projects, but have some attributes that present particular difficulties,
for example, the relative invisibility of many of their products.

14. What are the elements of planning approach?


The establishment of project objectives.
The analysis of the characteristics of the project.
The allocation of resources to activities.
The establishment of quality controls.

16 MARKS QUESTIONS

1.Explain about conventional software management.


WATERFALLL MODEL
1. It is the baseline process for most conventional software projects have used.
2. We can examine this model in two ways:
i. IN THEORY
ii. IN PRACTICE
IN THEORY:-
In 1970, Winston Royce presented a paper called “Managing the Development of Large Scale
Software Systems” at IEEE WESCON.
Where he made three primary points:
1.There are two essential steps common to the development of computer programs:
- analysis
- coding

2. In order to mange and control all of the intellectual freedom associated with software development one
should follow the following steps:

- System requirements definition


- Software requirements definition
- Program design and testing

These steps addition to the analysis and coding steps

3. Since the testing phase is at the end of the development cycle in the waterfall model, it may be risky and invites
failure.
So we need to do either the requirements must be modified or a substantial design changes is warranted by
breaking the software in to different pieces.
-There are five improvements to the basic waterfall model that would eliminate most of the development
risks are as follows:
a) Complete program design before analysis and coding begin (program design comes first):-
- By this technique, the program designer give surety that the software will not fail because of storage, timing, and
data fluctuations.
- Begin the design process with program designer, not the analyst or programmers.
- Write an overview document that is understandable, informative, and current so that every worker on the project
can gain an elemental understanding of the system.
b) Maintain current and complete documentation (Document the design):-
-It is necessary to provide a lot of documentation on most software programs.
- Due to this, helps to support later modifications by a separate test team, a separate maintenance
team, and operations personnel who are not software literate.
c) Do the job twice, if possible (Do it twice):-
- If a computer program is developed for the first time, arrange matters so that the version finally
delivered to the customer for operational deployment is actually the second version insofar as critical
design/operations are concerned.
- “Do it N times” approach is the principle of modern-day iterative development.
d) Plan, control, and monitor testing:-
- The biggest user of project resources is the test phase. This is the phase of greatest risk in terms of cost
and schedule.
- In order to carryout proper testing the following things to be done:
i) Employ a team of test specialists who were not responsible for the original design.
ii) Employ visual inspections to spot the obvious errors like dropped minus signs, missing
factors of
two, jumps to wrong addresses.
iii) Test every logic phase.
iv) Employ the final checkout on the target computer.
e) Involve the customer:-
- It is important to involve the customer in a formal way so that he has committed himself at earlier points
before final delivery by conducting some reviews such as,
i) Preliminary software review during preliminary program design step.
ii) Critical software review during program design.
iii) Final software acceptance review following testing.

2.Explain about the evolution of software economics. (16)

Improving Software Economics


- It is not that much easy to improve the software economics but also difficult to measure and validate.
- There are many aspects are there in order to improve the software economics they are, Size, Process,
Personnel, Environment and quality.
- These parameters (aspects) are not independent they are dependent. For example, tools enable size reduction
and process improvements, size-reduction approaches lead to process changes, and process improvements drive
tool requirements.
- GUI technology is a good example of tools enabling a new and different process. GUI builder tools permitted
engineering teams to construct an executable user interface faster and less cost.
- Two decades ago, teams developing a user interface would spend extensive time analyzing factors, screen
layout, and screen dynamics. All this would done on paper. Where as by using GUI, the paper descriptions are
not necessary.
- Along with these five basic parameters another important factor that has influenced software technology
improvements across the board is the ever-increasing advances in hardware
REDUCING SOFTWARE PRODUCT SIZE:

1. By choosing the type of the language

2. By using Object-Oriented methods and visual modeling

3. By reusing the existing components and building reusable


components &

4. By using commercial components,we can reduce the


product size of a software.

3.Explain about the Improving software economics. (16)


There are three distinct process perspectives:

- Meta process:

It is an Organization’s policies, procedures, and practices for pursuing a software-intensive line


of business.
The focus of this process is of organizational economics, long-term strategies, and a software
ROI.
- Macro process:

A project’s policies, and practices for producing a complete software product within
certain cost, schedule, and quality constraints.
The focus of the macroprocess is on creating an sufficient instance of the
metaprocess for a specific set of constraints.
- Micro process:

A projects team’s policies, procedures, and practices for achieving an artifact of a software
process.
The focus of the microprocess is on achieving an intermediate product baseline with
sufficient functionality as economically and rapidly as practical.
The objective of process improvement is to maximize the allocation of resources to productive
activities and minimize the impact of overhead activities on resources such as personnel, computers, and
schedule.
4.Differentiate conventional versus modern software project management. (16)

THE OLD WAY AND THE NEW

- Over the past two decades software development is a re-engineering process. Now it is replaced by
advanced software engineering technologies.

- This transition is was motivated by the unsatisfactory demand for the software and reduced cost.
THE PRINCIPLES OF CONVENTIONAL SOFTWARE ENGINEERING

Based on many years of software development experience, the software industry proposed so many
principles (nearly 201 by – Davis’s). Of which Davis’s top 30 principles are:
1) Make quality #1: Quality must be quantified and mechanisms put into place to motivate its
achievement.
2) High-quality software is possible: In order to improve the quality of the product we need to involving
the customer, select the prototyping, simplifying design, conducting inspections, and hiring the best people.
3) Give products to customers early: No matter how hard you try to learn user’s needs during the
requirements phase, the most effective way to determine real needs is to give users a product and let them
play with it.
4) Determine the problem before writing the requirements: Whenever a problem is raised most
engineers provide a solution. Before we try to solve a problem, be sure to explore all the alternatives and
don’t be blinded by the understandable solution.
5) Evaluate design alternatives: After the requirements are greed upon, we must examine a variety of
architectures and algorithms and choose the one which is not used earlier.
6) Use an appropriate process model: For every project, there are so many prototypes (process models).
So select the best one that is exactly suitable to our project.
7) Use different languages for different phases: Our industry’s main aim is to provide simple solutions to
complex problems. In order to accomplish this goal choose different languages for different modules/phases
if required.
8) Minimize intellectual distance: We have to design the structure of a software is as close as possible to
the real-world structure.
9) Put techniques before tools: An un disciplined software engineer with a tool becomes a dangerous,
undisciplined software engineer.
10) Get it right before you make it faster: It is very easy to make a working program run faster than it is
to make a fast program work. Don’t worry about optimization during initial coding.
11) Inspect the code: Examine the detailed design and code is a much better way to find the errors than
testing.
12) Good management is more important than good technology

13) People are the key to success: Highly skilled people with appropriate experience, talent, and training
are key. The right people with insufficient tools, languages, and process will succeed.
14) Follow with care: Everybody is doing something but does not make it right for you. It may be right,
but you must carefully assess its applicability to your environment.
15) Take responsibility: When a bridge collapses we ask “what did the engineer do wrong?”. Similarly if
the software fails, we ask the same. So the fact is in every engineering discipline, the best methods can be
used to produce poor results and the most out of date methods to produce stylish design.
16) Understand the customer’s priorities. It is possible the customer would tolerate 90% of the
functionality delivered late if they could have 10% of it on time.

17) The more they see, the more they need. The more functionality (or performance) you provide a
user, the more functionality (or performance) the user wants.

18) Plan to throw one away .One of the most important critical success factors is whether or not a product
is entirely new. Such brand-new applications, architectures, interfaces, or algorithms rarely work the first
time.
19) Design for change. The architectures, components, and specification techniques you use must
accommodate change.
20) Design without documentation is not design. I have often heard software engineers say, “I have
finished the design. All that is left is the documentation.”
21. Use tools, but be realistic. Software tools make their users more efficient.
22. Avoid tricks. Many programmers love to create programs with tricks-constructs that perform a function
correctly, but in an obscure way. Show the world how smart you are by avoiding tricky code.
23. Encapsulate. Information-hiding is a simple, proven concept that results in software that is easier to test
and much easier to maintain.
24. Use coupling and cohesion. Coupling and cohesion are the best ways to measure software’s inherent
maintainability and adaptability.
25. Use the McCabe complexity measure. Although there are many metrics available to report the inherent
complexity of software, none is as intuitive and easy to use as Tom McCabe’s.
26. Don’t test your own software. Software developers should never be the primary testers of their own
software.
27. Analyze causes for errors. It is far more cost-effective to reduce the effect of an error by preventing it
than it is to find and fix it. One way to do this is to analyze the causes of errors as they are detected.
28. Realize that software’s entropy increases. Any software system that undergoes continuous change will
grow in complexity and become more and more disorganized.

29. People and time are not interchangeable. Measuring a project solely by person-months makes little
sense.
30) Expert excellence. Your employees will do much better if you have high expectations for them.

You might also like