0% found this document useful (0 votes)
2 views13 pages

Software Engineering Important Questions

Uploaded by

Abhishek Rai
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views13 pages

Software Engineering Important Questions

Uploaded by

Abhishek Rai
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

[Link] Software. Engineering.

Explain Unique Nature of Web Apps

❖ Software :It is a collection of integrated programs,means it carefully


organized instruction and code written by developers on any of various
programming language.

❖ Engineering:It is the application of scientific and practical knowledge to


invent ,build,maintain and improve framework or process.

❖ Software Engineering:It is an engineering branch related to the evaluation


of software product using well defined scientific principles,techniques and
procedures

The unique nature of web apps


• Today, WebApps have evolved into sophisticated computing tools that not
only provide stand-alone function to the end user, but also have been
integrated with corporate databases and business applications.

• The following attributes are encountered in the vast majority of WebApps

➢ Network intensiveness
➢ Concurrency.
➢ Unpredictable load
➢ Availability
➢ Data driven

❖ Network intensiveness. A WebApp resides on a network and must


serve the needs of a diverse community of clients.
❖ The network may enable world wide access and communication (i.e.,
the Internet) or more limited access and communication (e.g., a
corporate Intranet).

❖ Concurrency. A large number of users may access the WebApp at


one time. In many cases, the patterns of usage among end users will
vary greatly
Unpredictable load. The number of users of the WebApp may vary
by orders of magnitude from day to day Performance.
❖ If a WebApp user must wait too long (for access, for server side
processing, for client-side formatting and display), he or she may
decide to go elsewhere
❖ Availability. Although expectation of 100 percent availability is
unreason able, users of popular WebApps often demand access on a
24/7/365 basis.
❖ Data driven. The primary function of many WebApps is to use
hypermedia to present text, graphics, audio, and video content to the
end user.
❖ In addi tion, WebApps are commonly used to access information that
exists on data bases that are not an integral part of the Web-based
environment (e.g., e-commerce or financial applications).

2. With a neat diagram explain Prescriptive and


Incremental model

❖ The Incremental Process Model is also known as the Successive version


model.
❖ Incremental Model is a process of software development where
requirements divided into multiple standalone modules of the software
development cycle
❖ In this model, each module goes through the requirements, design,
implementation and testing phases.
❖ Every subsequent release of the module adds function to the previous
release. The process continues until the complete system achieved.

❖ Requirement analysis: In the first phase of the incremental model, the


product analysis expertise identifies the requirements.
❖ And the system functional requirements are understood by the requirement
analysis team. To develop the software under the incremental model, this
phase performs a crucial role
❖ Design & Development: In this phase of the Incremental model of SDLC,
the design of the system functionality and the development method are
finished with success.
❖ When software develops new practicality, the incremental model uses style
and development phase.
❖ Testing: In the incremental model, the testing phase checks the
performance of each existing function as well as additional functionality.
❖ In the testing phase, the various methods are used to test the behavior of
each task.
❖ 4. Implementation: Implementation phase enables the coding phase of the
development system. It involves the final coding that design in the
designing and development phase and tests the functionality in the testing
phase.
❖ After completion of this phase, the number of the product working is
enhanced and upgraded up to the final system product

When we use the Incremental Model?


• When the requirements are superior.
• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• You can develop prioritized requirements first.

• Advantage of Incremental Model


• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.

• Disadvantage of Incremental Model


• Need for good planning
• Total Cost is high.
• Well defined module interfaces are needed

3 Explain software Myths with examples

• Software myths-erroneous beliefs about software and the process that is


used to build it -can be traced to the earliest days of computing.
Myths have a number of attributes that make them insidious.
• for instance, they appera to be reasonable statements of fact they have an
intuitive feel, and they are often promulgated by expirenced practitioners
who “ know the score.”
• Today, most knowledgeable software engineering professionals recognize
myths for what they are -misleading attitudes that have caused serious
problems for managers and practitioners a like.

• Management Myths
• Software practitioners follow the book of standards and procedures for
software development.
• If a delay occurs, programmers can be added at any point. Outsourcing
helps.
• Customer Myths
• General requirements and not a detailed one is needed for starting
programming. Software is easy to change.
• Developer’s Myths (Practitioner’s Myths) Software developing is all about
coding. Only a finished software can be tested.
• Software engineering has plentiful documentation and will slow down the
process.
• Management myths:-Managers with software responsibility, like mangers
in most disciplines, are often under pressure to maintain budgets, keep
schedules from slipping, and improve quality .

4. With a neat diagram explain Concurrent Process Model

5. Develop a use case For basic safe home Requirements

6. Explain the software requirement analysis and modelling

7. How to establish ground work in Requirement Engineering?

❖ Identifying the Stakeholders:


❖ Recognizing Multiple Viewpoints
❖ Working toward collaboration
❖ Asking the first questions
❖ Identifying the Stakeholders:Any person who benefits directly or
indirectly from the system being developed is a stakeholder.

❖ Examples:- Business operations managers, product managers, marketing


people, internal and external customers, end-users consultants, product
engineers, software engineers, developers, testers and support/ maintenance
engineers are the usual stakeholders.

❖ Each Stakeholders sees the system differently, gains different benefits when
the system is successfully developed.

❖ They also faces different risks if the development effort fails.

❖ Recognizing Multiple Viewpoints

❖ Because there are so many different stakeholders, the system’s requirements


will be examined from various perspectives.

❖ Each of these stakeholders will contribute data to the requirements


engineering process.

❖ As information is gathered from multiple viewpoints, emerging


requirements may be inconsistent or contradictory.

❖ You should categorise all stakeholder information so that decision-makers


can select an internally consistent set of system requirements for the
system.

❖ Working toward collaboration


❖ If there are five stakeholders involved in a software project, there may be five
different opinions on the set of requirements.
❖ Customers must work together as well as with software engineering
practitioners to create a successful system.
❖ A requirements engineer’s job is to identify areas of commonality as well as
areas of conflict or inconsistency.
❖ Collaboration does not always imply that requirements are set by a committee.
In many cases, stakeholders collaborate by providing their perspective on
requirements, but a strong “project champion” may ultimately decide on which
requirements are accepted.
❖ Asking the first questions
❖ Asking the first questions
❖ The first set of questions asked is context-free and focuses on the customer
and other stakeholders, as well as the overall project goals and benefits. You
could ask
❖ Who is the person or organisation behind the request for this work?
❖ Who will make use of the solution?
❖ What is the economic value of a successful solution?
❖ Is there a different source for the solution you require?
❖ These questions aid in identifying all stakeholders who will be interested in the
software being developed. Moreover, the questions identify the quantifiable
benefit of successful implementation as well as potential alternatives to custom
software development.

8. Explain Data Modeling Concepts with ER Diagram.

9. What are the nature of System software and explain its characteristics

The 7 broad categories of computer software present continuing challenges for


software engineers:
1) System software
2) Application software
3) Engineering/scientific software
4) Embedded software
5) Product-line software
6) Web-applications
7) Artificial intelligence software

[Link] Software:

• System Software is software designed to provide a paltform for other


software’s.
• It is a interaction btween hardware & application software.
Example :Operating Systems like MacOS, Linux, Android and Microsoft
Windows

[Link] Software:-

• Application Software is a computer program designed to carry out a


specific task as per user & business need.
• Examples:-Social media apps, Gaming apps, Word processing apps,
Multimedia apps, Banking apps, Shopping apps, Booking apps etc

[Link]/Scientific software:

• This Software is used facilitate the Engineering function and task take real
time.
• It has very high accuracy, complex formula, evolution & data analysis.

• Example:- Weather prediction apps, Stock Market apps, Stress Analysis,


Body Measurement apps

[Link] Software:

• Embedded software resides within the system or product and is used to


implement and control feature and function for the end-user and for the
system itself.
• Example:-Switches, Routers, Digital, camera, Washing machine
functionalities, Traffic control etc.

5 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 (e.g.,


inventory control products) or address mass consumer markets (e.g., word
processing, spreadsheets, computer graphics, multimedia, entertainment,
database management, and personal and business financial applications).

[Link]-applications

• It is a client- server computer program which the client runs on web


browser.
• Web apps can be little more than a set of linked hypertext files that present
information using text and limited graphics.
• Examples:-Online forms, shopping carts, gamil, yahoo, photo editing , file
conversion etc.

[Link] Intelligence Software:

• It makes use of a nonnumerical algorithm to solve a complex problem.


Application within this area includes robotics, expert system, pattern
recognition, neural network, theorem proving and game palying.
Examples:Google cloud, Azure studio, Tensor Flow, Salesforce etc.

10. With a neat diagram explain Prescriptive and Waterfall model

❖ Winston Royce Introduced the Waterfall Model in 1970.


❖ Also called as Linear Sequential Development Model.
❖ Waterfall approach was first SDLC Model, used widely in software
Engineering to ensure success of project.
❖ Each Phase must be completed before the next phase can begin. Output of
one phase will be input of next phase.
❖ This model is named “waterfall Model”, because its diagrammatic
representation of cascading waterfalls

When to use Waterfall Model?

• When the requirements are constant and not changed regularly.


• Application is not complicated and big
• A Project is short &simple
• Where the tools and technology used is consistent and is not changing.
When resources are well prepared and are available to use.

Requirement Analysis:-

• The aim of this phase is to understand the exact requirements of the


customer and to document them properly.
• They discuss functions, performance and interfacing requirement of the
software.
• In this phase, software Requirement specification(SRS) document is
created.
• It contained a detailed description of what the system will do in the
common language.
• SRS document serves as a contract between the development team
customers.
Design Phase:-
• All gathered requirements are converted into suitable design.
• It defines the overall software architecture together with high level and
detailed design.
• High level design include Algorithm flow charts, decision tree, database
design etc.
• Also finalized programming languages, database or other hardware
&software requirements.
• All this work is documented as a software design document(SDD)

Development Phase:-
• In this phase software design is translated into source code using any
suitable programming language.
• The developer first developed in small programs called units after that
integrated it.
• Unit testing is done in this phase to check whether each module is working
properly or not.

Deployment & Maintence phase:


• The product is deployed in the customer environment or released into the
market.
• In maintenance phase, there are some issues which come up in the client
environment.
• To fix those issues, patches are released.
• Also to enhance the product some better versions are released.
• Maintenance is done to deliver these changes in the customer
environment.

Advantages of waterfall model


➢ Simple and easy to understand and use
➢ Before the next phase of development, each phase must be completed
➢ Works well for smaller projects
➢ Requirements are very well understood &fixed
➢ Any changes in software is made during the process of the development
➢ Process and result are well documented

Disadvantages of waterfall model

➢ High amounts of risk and uncertainty


➢ Error can be fixed only during the phase
➢ Not suitable for the projects where requirements are changing
➢ It becomes very difficult to move back to the phase.
➢ Not good model for complex and object-oriented projects.
11. With a neat diagram explain Incremental process model and
Evolutionary process models

• The evolutionary model is a combination of the Iterative and Incremental


models of the software development life cycle.
• Delivering your system in a big bang release, delivering it in incremental
process over time is the action done in this model.
• The Evolutionary development model divides the development cycle into
smaller, incremental waterfall models in which users can get access to the
product at the end of each cycle.

1. Feedback is provided by the users on the product for the planning stage of
the next cycle and the development team responds, often by changing the
product, plan, or process.
2. Therefore, the software product evolves with time.
3. All the models have the disadvantage that the duration of time from the start
of the project to the delivery time of a solution is very high.
4. The evolutionary model solves this problem with a different approach.
5. The evolutionary model suggests breaking down work into smaller chunks,
prioritizing them, and then delivering those chunks to the customer one by
one.
6. The number of chunks is huge and is the number of deliveries made to the
customer.
7. The main advantage is that the customer’s confidence increases as he
constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements.
8. The model allows for changing requirements as well as all work is broken
down into maintainable work chunks.
Advantages Evolutionary Model
1. Adaptability to Changing Requirements: Evolutionary models work
effectively in projects when the requirements are ambiguous or change
often. They support adjustments and flexibility along the course of
development.
2. Early and Gradual Distribution: Functional components or prototypes
can be delivered early thanks to incremental development. Faster user
satisfaction and feedback may result from this.
3. User Commentary and Involvement: Evolutionary models place a strong
emphasis on ongoing user input and participation. This guarantees that the
software offered closely matches the needs and expectations of the user.
4. Improved Handling of Difficult Projects: Big, complex tasks can be
effectively managed with the help of evolutionary models. The
development process is made simpler by segmenting the project into
smaller, easier-to-manage portions.

Disadvantages Evolutionary Model


1. Communication Difficulties: Evolutionary models require constant
cooperation and communication. The strategy may be less effective if there
are gaps in communication or if team members are spread out
geographically.
2. Dependence on an Expert Group: A knowledgeable and experienced
group that can quickly adjust to changes is needed for evolutionary models.
Teams lacking experience may find it difficult to handle these
model’s dynamic nature.
3. Increasing Management Complexity: Complexity can be introduced by
organizing and managing several increments or iterations, particularly in
large projects. In order to guarantee integration and synchronization, good
project management is needed.
4. Greater Initial Expenditure: As evolutionary models necessitate continual
testing, user feedback and prototyping, they may come with a greater
starting cost. This may be a problem for projects that have limited funding

12. Define Requirement Engineering? Explain steps Requirement


Engineering with Real world Example

• In software engineering, requirements engineering is the set of


activities concerned with discovering, analysing, and communicating:
• the stakeholder needs for a software system,
• the contexts in which the software system will be used, and
• the software requirements, which are the desired, externally visible
behaviours and qualities of the software needed to satisfy the stakeholder
needs in a given context.

Examples

An Airplane Ground Braking System


• The ground braking system of an airplane is composed of three elements:
the ground spoilers, the reverse thrust, and the wheels brakes.
• The ground spoilers are panels on the plane wings that deploy after landing
to increase drag and slow down the plane.
• Reverse thrust consists in reversing the engines’ thrust to slow the plane
down as quickly as possible after landing.
• Activating the ground spoilers and reverse thrust during flight would be
dangerous as it could cause the plane to crash.
• To prevent such accident, airplanes are equipped with a ground braking
software controller whose purpose is to ensure that the ground spoilers and
reverse thrust are never activated during flight.

Stakeholder Needs
This software controller has two main stakeholder needs:
1. The ground spoilers and reverse thrust should not be activated during flight.
2. Pilots must be able to activate the ground spoilers and reverse thrust
immediately after the plane has landed.
The first need is about ensuring the plane safety during flight; the second is about
safety during landing. If the pilot is not able to activate the ground spoilers and
reverse thrust quickly after landing, the plane may crash at the end of the runway.

Context
In order to implement a software controller that satisfies these two needs, we must
understand the context in which the software will be used. The context in this
example is composed of the plane, the pilots, the motors used to control the
ground spoilers and engine thrust, and sensors on the landing gears that measure
the wheels speed and the compression on the shock absorbers. Information from
these sensors can help us determine whether the plane has landed or not: if the
wheels are turning and the shock absorbers are compressed, then the plane has
landed.
Software Requirements
The software requirements are the desired behaviour and qualities that the ground
braking software controller must possess in order to satisfy the stakeholder needs.
An example of functional requirement is:
[FR1] The ground braking system must be enabled when, and only when, at least
one of the following conditions is met:
• the wheel speed is above 72 knots at both main landing gears,
• the shock absorbers are compressed at both main landing gears.
An example of quality requirements is:
[QR1] The likelihood that the ground braking system is not enabled within 1
second after one of the conditions defined in FR1 is true must be less than 1 per
109.
The reasoning behind these requirements is that if at least one of the two
conditions in FR1 is true, then the plane has landed, and it is therefore safe to
activate the ground spoilers and reverse thrust. However, if both conditions in FR1
are false, then the plane is not moving on the runway, and therefore the ground
spoilers and reverse thrust should not be enabled. Note how this reasoning use
knowledge about the context — for example: if the two conditions in FR1 are
false, then the plane is not moving on the runway— to establish that if the
software satisfies the requirements, then the stakeholder needs will be met.

[Link] Scenario based Modeling using use Case with an example.

You might also like