Sie sind auf Seite 1von 5

Solved Questions SE Unit 1

1. Define the term software engineering.


Software engineering is the process of analyzing user needs and designing,
constructing, and testing end user applications that will satisfy these needs
through the use of software programming languages. It is the application of
engineering principles to software development. In contrast to simple
programming, software engineering is used for larger and more complex software
systems, which are used as critical systems for businesses and organizations
2. What are the essential characteristics of software engineering?
Six of the most important quality characteristics are maintainability, correctness,
reusability, reliability, portability, and efficiency.
Maintainability is "the ease with which changes can be made to satisfy new
requirements or to correct deficiencies". Well-designed software should be flexible
enough to accommodate future changes that will be needed as new requirements
come to light.
Correctness is "the degree with which software adheres to its specified
requirements". At the start of the software life cycle, the requirements for the
software are determined and formalized in the requirements specification
document. Well-designed software should meet all the stated requirements.
Reusability is "the ease with which software can be reused in developing other
software". By reusing existing software, developers can create more complex
software in a shorter amount of time.
Reliability is "the frequency and criticality of software failure, where failure is an
unacceptable effect or behavior occurring under permissible operating conditions".
The frequency of software failure is measured by the average time between
failures. The criticality of software failure is measured by the average time
required for repair.
Portability is "the ease with which software can be used on computer
configurations other than its current one". Porting software to other computer
configurations is important for several reasons.
Efficiency is "the degree with which software fulfills its purpose without waste of
resources". Efficiency is really a multifaceted quality characteristic and must be
assessed with respect to a particular resource such as execution time or storage
space.
3. What are the major phases in a software development project?
There are following six phases in every Software development life cycle model:
• Requirement gathering and analysis
• Design
• Implementation or coding
• Testing
• Deployment
• Maintenance

Page 1 of 5
4. What is the difference between verification and validation?
Verification Validation
1. Verification is a static practice of 1. Validation is a dynamic mechanism
verifying documents, design, code and of validating and testing the actual
program. product.
2. It does not involve executing the 2. It always involves executing the
code. code.
3. It is human based checking of 3. It is computer based execution of
documents and files. program.
4. Verification uses methods like 4. Validation uses methods like black
inspections, reviews, walkthroughs, box (functional) testing, gray box
and Desk-checking etc. testing, and white box (structural)
testing etc.
5. Verification is to check whether 5. Validation is to check whether
the software conforms to software meets the customer
specifications. expectations and requirements.
6. Verification is done by QA team to 6. Validation is carried out with the
ensure that the software is as per the involvement of testing team.
specifications in the SRS document.
7. It generally comes first-done before 7. It generally follows
validation. after verification.

5. Define four kinds of maintenance activity.


Four general types of maintenance philosophies can be identified, namely
corrective, preventive, risk-based and condition-based maintenance.
Corrective Maintenance is carried out following detection of an anomaly and aimed
at restoring normal operating conditions. This approach is based on the firm belief
that the costs sustained for downtime and repair in case of fault are lower than
the investment required for a maintenance program. This strategy may be cost-
effective until catastrophic faults occur.
Preventive Maintenance carried out at predetermined intervals or according
to prescribed criteria, aimed at reducing the failure risk or performance
degradation of the equipment. The maintenance cycles are planned according to
the need to take the device out of service. The incidence of operating faults is
reduced.
Risk based Maintenance carried out by integrating analysis, measurement and
periodic test activities to standard preventive maintenance. The gathered
information is viewed in the context of the environmental, operation and process
condition of the equipment in the system. The aim is to perform the asset
condition and risk assessment and define the appropriate maintenance program.

All equipment displaying abnormal values is refurbished or replaced. In this way


it is possible to extend the useful life and guarantee over time high levels of
reliability, safety and efficiency of the plant.

Page 2 of 5
Condition based Maintenance based on the equipment performance
monitoring and the control of the corrective actions taken as a result.
The real actual equipment condition is continuously assessed by the on-line
detection of significant working device parameters and their automatic comparison
with average values and performance. Maintenance is carried out when certain
indicators give the signaling that the equipment is deteriorating and the failure
probability is increasing. This strategy, in the long term, allows reducing drastically
the costs associated with maintenance, thereby minimizing the occurrence of
serious faults and optimizing the available economic resources management.
6. Why is the documentation of a software project important?
The presence of documentation helps keep track of all aspects of an application
and it improves on the quality of a software product. Its main focuses
are development, maintenance and knowledge transfer to other
developers. Successful documentation will make information easily accessible,
provide a limited number of user entry points, help new users learn quickly,
simplify the product and help cut support costs.
7. Explain the 40--20--40 rule of thumb in software engineering.
During developing a software/website, most of the software/website
developers/engineers use 60-80% of total time for coding and they use rest of his
time for project analysis, database design and testing whereas the traditional
software development life cycle follows 40-20-40 rule during development of
software or website which mean developer should spend 40% of total time for
project analysis and design, 20% for programming and rest of 40% for testing.
8. What is the difference between software development and software
maintenance?
Development is, hypothetically, simply work done by developers. However, more
likely it is being used as shorthand for 'new development', which is the creation of
new features/functionality in the product.
Maintenance is the process of providing upkeep on an existing product. The most
common case of this is fixing bugs, though things such as software refactoring,
changing to use a new framework, or even updating documentation could be
considered maintenance.
9. In what sense is the phrase ‘software development project’ a
misnomer?
We don't just develop software, we develop systems. A system transforms inputs
to outputs, software is an important ingredient of the system being developed but
is by no means the only ingredient. The technical and user documentation, the
hardware, the procedures that govern the use of the system, and even people
using the software, maybe considered as part of the system.
10. What are the major constituents of a project plan?
The primary components of a project management plan are:
• Scope Statement.
• Critical Success Factors.
• Deliverables.
• Work Breakdown Structure.
• Schedule.

Page 3 of 5
• Budget.
• Quality.
• Human Resources Plan.
11. List five dimensions along which a software development project has
to be controlled.
Time, information, organization, quality (central theme), and money.
12. How would a project plan for an agile project differ from that of a
planning-driven project?
Agile follows an iterative process where projects are divided into sprints of the
shorter span. Unlike the traditional approach, less time is spent on upfront
planning and prioritization as agile is more flexible in terms of changes and
developments in the specification.
13. Discuss the main differences between prototyping and incremental
development.
A prototype model is iterative - it seeks to progressively improve the design of a
given solution based on customer feedback and input.
An incremental model breaks up an overall solution into increments of functionality
and develops each increment individually.
These are not necessarily separate models. An incremental development process
could also be iterative - at the end of each incremental development effort, there
might be iterative attempt to improve the results of that incremental development
effort.
14. How does the spiral model subsume prototyping, incremental
development, and the waterfall model?
The Spiral model subsumes all the other SDLC models. For example, a single loop
spiral actually represents the Iterative Waterfall Model.
The spiral model incorporates the stepwise approach of the Classical Waterfall
Model.
The spiral model uses the approach of Prototyping Model by building a prototype
at the start of each phase as a risk handling technique. Also, the spiral model can
be considered as supporting the evolutionary model – the iterations along the
spiral can be considered as evolutionary levels through which the complete system
is built.
15. Explain the XP practices ‘pair programming’ and ‘refactoring’.
Pair programming is an Agile technique originating from Extreme programming
(XP) in which two developers team together and work on one computer. The two
people work together to design, code and test user stories. Ideally, the two people
would be equally skilled and would each have equal time at the keyboard.
Pair programming uses the four eyes principal, ensuring that two sets of eyes
review the code that is being produced even when there is a division of labor.
While one person writes test cases using test-driven development techniques, for
example, the other person may write code to get the tests to pass. Typically, the
two developers will turn coding or reviewing, checking each other's work as they
go.

Page 4 of 5
Refactoring is the technique of improving code without changing functionality.
Refactoring is an ongoing process of simplification that applies to code, design,
testing, and XP itself. Rather than just saying "you should keep trying to make
your code better," you will need a repeatable process to guide refactoring.
16. What is a software product line?
A software product line is a set of software-reliant systems that share a common,
managed set of features satisfying a particular market or mission area, and are
built from a common set of core assets in a prescribed way.
17. What is process enactment?
Process enactment is about translating the vision of how our teams should operate
– the practices those teams engage in that make the team successful – into actual
behavior by individuals. At its simplest, we need to describe a task that should be
performed, and then make sure it actually is performed by someone.
18. Discuss the key values of the agile movement.
Individuals and interactions are more important than processes and tools. Working
software is more important than comprehensive documentation. Customer
collaboration is more important than contract negotiation. And, responding to
change is more important than following a plan.
19. Suppose you are involved in a large project concerning the
development of a patient planning system for a hospital. You may opt for
one of two strategies. The first strategy is to start with a thorough
analysis of user requirements, after which the system is built according
to these requirements. The second strategy starts with a less complete
requirements analysis phase, after which a pilot version is developed.
This pilot version is installed in a few small departments. Further
development of the system is guided by the experience gained in working
with the pilot version. Discuss the pros and cons of both strategies. Which
strategy do you favor?
First strategy Pros: Clear requirements help to foresee problems in the future of
the system, this can be implemented using the waterfall method.
Second Strategy Pros: This is a more agile approach; early development of a
prototype and rapid integration adds the ability for early testing and development
of the system. Agile method.
First strategy Cons: If change arise later in the development it will be hard to
adapt.
Second Strategy Cons: If we are unclear on the requirements specification we
maybe building the wrong system.
20. One of the reasons for using planning-driven approaches in software
development projects is that the plan provides some structure to measure
project progress. Do you think this measure is adequate? Can you think
of better ways to measure progress?
Using Planning driven approaches in software development projects is that the
plan provides some structure to measure project progress. But this measure is not
adequate. With proper planning one can measure the progress of project but if we
consider flexibility of project implementation, we need to consider design also. So
we can say to measure the progress of the project, we need to focus on all the
phases of software development life cycles.

Page 5 of 5

Das könnte Ihnen auch gefallen