You are on page 1of 7

K. K. Wagh Polytechnic, Nashik.

Hirabai Haridas Vidyanagari, Panchavati,Nashik-422003 Amrutdham,


Department of Computer Technology

Date: 24/03/2022

Question Bank for MSBTE Class Test-1


Sub: Software Engineering (SEN) -22413

Chapter 1:

1) What is software? Explain.


Answer: - Software is defined as set of Instructions (computer programs) that when executed provide
desired function and performance. A software product can be judged by what it offers and how well it can be
used. A good software should be operational, transitional and maintained.

2) Explain changing nature of software.


Answer: -Whenever one starts with the software implementation, changes can occur any time.
• The software can be change due to any reason.
• But while implementing software, one should be ready for such changes as if changes occur there
shall not be drastic change in the system.
• The development team should manage to implement the implemented system so that the changes
can be reflected and the user requirements meet.

3) Explain Characteristics of software.


Answer: - 1. Software is developed or engineered
• It is not manufactured in the classical sense.
• Although some similarities exist between software development and hardware manufacture, the
two activities are fundamentally different.
• In both activities, high quality is achieved through good design, but the manufacturing phase for
hardware can introduce quality problems that are non-existent (or easily corrected) for software.
• Both activities are dependent on people, but the relationship between people applied and work
accomplished is entirely different.
• Software costs are concentrated in engineering.
• This means that software projects cannot be managed as if they were manufacturing projects

2. Software doesn’t “wear out.” Software Engineering


• The idealized curve as shown in above figure is a gross over simplification of actual failure models
for software.
• However, the implication is clear—software doesn't wear out. But it does deteriorate! This
contradiction can best be explained by considering the“actual curve” shown in Figure.
• During its life, software will undergo change (maintenance).
• As changes are made, it is likely that some new defects will be introduced, causing the failure rate
curve to spike as shown in Figure.
• Before the curve can return to the original steady-state failure rate, another change is requested,
causing the curve to spike again.

3. Although the industry is moving toward component-based construction, most software continues to be
custom built.
• The reusable components have been created so that the engineer can concentrate on the truly
innovative elements of a design, that is, the parts of the design that represent something new.
• In the software world, it is something that has only begun to be achieved on a broad scale.
• A software component should be designed and implemented so that it can be reused in many
different programs.
• Modern reusable components encapsulate both data and the processing that is applied to the
data, enabling the software engineer to create new applications from reusable parts.
• For example, today’s interactive user interfaces are built with reusable components that enable the
creation of graphics windows, pull-down menus, and a wide variety of interaction mechanisms.

4) Explain software engineering as a layered approach.


Answer: - Software engineering deals with process, methods, and their implementation tools and finally the
quality of the product. This is known as the layered approach of software engineering as shown in Figure.

• Quality Focus ⎯
• Software engineering is a layered technology. Referring to Figure, any engineering approach must rest
on an organizational commitment to quality. ⎯
• Total quality management, Six Sigma and similar principles help a continuous software process
improvement, and this ultimately leads to the development of increasingly more mature approaches to
software engineering.
• The bedrock that supports software engineering is a quality focus.
• Process Layer ⎯
• The foundation for software engineering is the process layer.
• Software engineering process is the glue that holds the technology layers together and enables
balanced and timely development of computer software.
• Process defines a framework for a set of key process areas that must be established for effective
delivery of software engineering technology.
• Process defines the context in which technical methods can be applied, work products are produced,
milestones are established, quality is ensured etc.
• Method Layer ⎯
• Software engineering methods provide the technical how-to's for building software.
• Methods encompass a broad array of tasks that include communication, requirements analysis, design,
program construction, testing, and support.
• Tools Layer ⎯
• Software engineering tools provide automated or semi-automated support for the process and the
methods.
• Tools are combines so that information created by one tool can be used by another, a system that is
developed for the support of software development, is called as computer-aided software engineering
(CASE). CASE combines software, hardware, and a software engineering database.

5) Enlist & Explain types of software.


Answer: -
1. System Software:
• System software is a collection of programs written to service other programs. ⎯ Ex. Compilers,
Editor, operating system, drivers etc
2. Real-time Software:
• Software that monitors or analyzes or controls real-world events as they occur is called real time.
• Elements of real-time software include a data gathering component that collects and formats
information from an external environment, an analysis component that transforms information as
required by the application.
• A control/output component that responds to the external environment and a monitoring
component that coordinates all other components so that real-time response can be maintained.
• Ex. Weather Forecasting
3. Application Software:
• Application software consists of standalone programs that solve a specific business need.
• Application software is used to control the business function in real-time.
• Application software processes business or technical data.
• Ex. Transaction Processing, Sales Processing, Manufacturing Software etc.
4. Engineering /Scientific software:
• Characterized by "number crunching" algorithms.
• Application software is set of programs designed for engineering and scientific purposes.
• Applications range from astronomy to volcano logy, from automotive stress analysis to space shuttle
orbital dynamics, and from molecular biology to automated manufacturing.
• Ex. Computer Aided Design (CAD), system stimulation etc.
5. Embedded Software:
• Intelligent products have become common place in nearly every consumer and industrial
market.
• Embedded Software resides within product and is used to control products and systems for
the consumer.
• Embedded software can perform limited and esoteric functions.
• Ex. Keypad control for a microwave oven, digital functions in an automobile such as fuel
control, dashboard displays, and braking systems.
6. Product line software: ⎯
• Designed to provide a specific capability for use by many different customers.
• Product line software can focus on a limited and esoteric marketplace.
• Ex. Word processing, spreadsheet, CG, multimedia, etc.
7. Web-based Software
• The Web pages retrieved by a browser are software that incorporates executable instructions and
data. ⎯ Web apps can be little more than a set of linked hypertext files.
• It evolves into sophisticated computing environments that not only provide standalone features,
functions but also integrated with corporate database and business applications.
8. Artificial Intelligence software
• AI software makes use of non-numerical algorithms to solve complex problems that are not
amenable to computation or straightforward analysis
• Ex. Robotics, expert system, game playing, pattern recognition, theorem providing etc.

6) Explain waterfall model with neat diagram and its advantages and disadvantages.
Answer: - ) Waterfall Mode: ⎯
• Waterfall model is also known as the “Classic Life Cycle” model.
• Waterfall model follows the “Systematic, Sequential “approach of software development that begins with
customer specification and follows planning, modeling, construction and deployment.
Situation Where Waterfall Model is Useful: ⎯
• When customer wants enhancement or adaptation in already existing software which is well developed then
we can use waterfall model. For e.g Changes in the Accounting software because of the changes in the rules by
government. ⎯
• Waterfall Model is also used to develop new software when requirements are completely understood and
stable (will not change in the future).
Phases of waterfall model:
Communication: ⎯ Communication with the customer to gather the requirements of the software.
• So that software team can define the features and functions of the software to be developed. Planning:
• Any software can be developed effectively with good plan.
• Plan acts as a “map” that is followed by the project development team while developing software.
• A software project plan defines – schedule of the project, role of each team member, estimation of cost,
deadlines or delivery dates of the working modules, what technical task to be performed, risk that can be
occurred.
Modeling: ⎯
• In Modeling phase software team creates a design model of software to be developed so that they can better
understand the requirements, features and functions of the software.
Construction: ⎯
• This phase is the combination of code generation and testing.
• The design model is converted into code by software developer.
• Testing is done to find out the bugs if any in the code generated.
Deployment: ⎯
• The software is delivered to the customer.
• Customer provides the feedback to the team after using software.
Waterfall Model Advantages: ⎯
• Systematic and Organized approach provides clear separation between different phases of software
development.
• This model is simple and easy to understand and use.
• It is easy to manage due to the rigidity of the model – each phase has specific deliverable and a review
process.
• In this model phases are processed and completed one at a time. Phases do not overlap.
Disadvantages: ⎯
• Real projects rarely follows the sequential flow that waterfall model suggests.
• All real projects follow iterative approach indirectly. As a result of this, it causes the confusion among team
members when the proceeds.
• It is difficult for the customer to state all the requirements at the beginning of the project.
• A working version of the product is available only late.
• So if there any bug in the software it becomes visible at late which is very dangerous.
• Waterfall Model has a problem of “Blocking States” means some team members has to wait for other team
members to complete their dependent work.

7) Differentiate between waterfall and incremental model.


Answer: -
Waterfall model Incremental model
1. The linear sequential model suggests a systematic, 1. The incremental model combines elements of the
sequential approach to software development that linear sequential model (applied repetitively) with
begins at the system level and progresses through the iterative philosophy of prototyping
analysis, design, coding, testing, and support.

2. All phases are clearly defined. 2. Few of the steps are defined
3. One of the most systematic methods fo 3. It is iterative in nature.
r software development.
4. This is oldest method for development 4. This is new model for development
5. Real projects rarely follow sequential model. 5. Real projects are developed using iterative
model..
6. This model is used when requirements are fixed 6. This model is used when requirements are
and stable flexible and varrying.
7. The working model is available only in the latter 7. The working model is available after each
part of the development. increment
8. Draw diagram of Waterfall 8. Draw diagram of Waterfall

8) Explain RAD model with its advantages and disadvantages.


Answer: - Description: ⎯
• Rapid application development (RAD) is an incremental software development process model that
emphasizes an extremely short development cycle.
• The RAD model is a ―high-speed adaptation of the linear sequential model in which rapid
development is achieved by using component-based construction.
• If requirements are well understood and project scope is constrained, the RAD process enables a
development team to create a ―fully functional system within very short time periods (e.g., 60 to
90 days).
• Used primarily for information systems applications, the RAD approach encompasses the
following phases.
Phases of RAD model:
1. Communication: Communication phase is used to understand the requirements of the project.
2. Planning: Planning is very essential because multiple project teams are working parallel in RAD model.
3. Modeling: Modeling phase consists of following three phases:
a) Business modeling: The information flow among business functions is represented in this model.
b) Data modeling: The information flow defined as part of the business modeling phase is refined into a set of
data objects that are needed to support the business. The characteristics (called attributes) of each object are
identified and the relationships between these objects defined.
c) Process modeling: The data objects defined in the data modeling phase are transformed to achieve the
information flow necessary to implement a business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.

4. Construction: ⎯
• RAD process model reuses the existing program components (when possible) or create reusable
components (when necessary).
• In all cases, automated tools are used to generate the code. After generation of code testing is
performed to check quality of the software.
5. Deployment: ⎯
• Modules developed by different RAD teams are integrated to develop final complete product.
• Then software is deployed to the customer and feedback is taken from customer for further
improvement in the software.
Advantages: ⎯
• Faster implementation of Project
• Parallel implementation
• Increases re usability of components
• Encourages customer feedback
• Projects divided into small teams results into better implementation
Disadvantage
• Limited Time for system implementation results into inadequate analysis of project.
• Less time for testing.
• If user is unclear with the system project may fail. RAD needs enough human resources to create the
required number of RAD teams.
• If developers and customers are not committed to the rapid model, the RAD project fails.
• Rapid-fire activities need to be completed in very short or small time frame.
• Time is the major constraint in RAD.
• RAD has to be modularized in a proper way otherwise creates a lots of confusions and problems.
• In case of high performance requirement, RAD cannot be ideal model.
9) List and explain five framework activities defined in PSP.
Answer: -
1. Planning: This activity isolates requirements and specifications to be decided prior to the development
and estimates the size and the cost of the project. Defect estimation is also made. Development tasks are
identified and scheduled is created.
2. High-Level Design: External specifications and requirements for each component to be constructed and
developed. Component design is also created. Prototypes are developed if requirements are complex.
3. High Level Design Review: Formal verification methods are applied to uncover errors in the design.
4. Development: The component level design is reviewed and refined. The code is generated, reviewed,
compiled and tested.
5. Postmortem: Using Metrics and measures the effectiveness of the process is determined. It provides
guidance for modification of process and its improvement.

10) Differentiate between Prescriptive process model and agile process model.
Answer: -
Prescriptive process model Agile process mode
Prescriptive process modelsstress detailed Agile process modelsemphasize project “agility” and
definition,identification, and applicationof process follow a set of principlesthat lead to a more
activates and tasks. informalapproach to software process.
A prescriptive model alsodescribes how each of Agile methods note that notonly do the software
theseelements are related to oneanother. requirements change, but so doteam members, the
technologybeing used.
It is Process oriented. It is people oriented.
It follows Life cycle model(waterfall, spiral) It follows Iterative andIncremental development
developmentmodel. model.
Documentation required is tobe comprehensive and Documentation required is tobe minimal and
constant. evolving.Predictive planning is required Adaptive
planning is required.
Customer’s role is important. Customer’s role is critical.
Formal communication isrequired. Informal communication isrequired.
To maintain quality heavyplanning and strict control To maintain quality continuouscontrol of requirements
withlate heavy testing is required. and development with continuoustesting is required.

You might also like