Operating System

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 21

Software Engineering SE

https://www.ques10.com/p/10295/difference-between-prescriptive-and-evolutionary-1/

The software process:


A software process is the set of activities and associated results that produce a software product.
A process framework establishes the foundation for a complete software engineering process by
identifying a small number of framework activities that are applicable to all software projects,
regardless of their size or complexity.
In addition, the process framework encompasses a set of umbrella activities that are applicable
across the entire software process. In general, umbrella activities are applied throughout a
software project and help a software team manage and control progress, quality, change, and
risk.
The umbrella activities of a software process are:
 Software project tracking and control.
 Risk Management.
 Software Quality Assurance.
 Formal Technical Reviews.
 Software Configuration Management.
 Work product preparation and production.
 Reusability management, Measurement.
The goal of a software process model is to provide guidance for controlling and
coordinating the tasks to achieve the end product and objectives as effectively as
possible.

1. How process models differ from other process model?


There are many kinds of process models for meeting different
requirements. A process model is differing from other on the basis of the
following:

 The tasks to be performed


 The input and output of each task
 The pre and post conditions for each task
 The flow and sequence of each task

2. Drawbacks of spiral model? Advantages of evolutionary prototype?


3. Drawbacks in prototyping model?

Disadvantages of Prototype model:

 Leads to implementing and then repairing way of building systems.


 Practically, this methodology may increase the complexity of the system as scope of
the system may expand beyond original plans.

4. What is an inspection in SE?

Inspection in software engineering refers to in depth group review of any work product
by trained individuals who look for defects using a well-defined process. Inspections
improve reliability, availability, and maintainability of software product.

5. Black box vs. white box testing?

#              Black Box Testing                    White Box Testing

Black box testing is the Software


White box testing is the software
1 testing method which is used to test
testing method in which internal
the software without knowing the
structure is being known to tester
internal structure of code or
who is going to test the software.
program.

2 This type of testing is carried out by Generally, this type of testing is


testers. carried out by software developers.

3 Implementation Knowledge is not Implementation Knowledge is


required to carry out Black Box required to carry out White Box
Testing. Testing.

4 Programming Knowledge is not


Programming Knowledge is required
required to carry out Black Box
to carry out White Box Testing.
Testing.

6. What are the benefits of information hiding?

Information hiding plays a very crucial role today. It provided methods for encrypting the
information so that it becomes unreadable for any unintended user. This paper reviews
the techniques that exist for data hiding and how can these be combined to provide another
level of security. One advantage of information hiding is yielding flexibility, such as
allowing a programmer to more readily modify a program. This also may be
done by placing source code within modules for easy access in the future, as the
program develops and evolves.

7. Why black box testing is called the end user type perspective?
 A black box refers to a system whose behavior has to be observed entirely by inputs and outputs.

Black box testing is performed from the end-user's perspective, so testers don't need to have
any technical background in terms of programming know-how or how the software is
implemented.

8. Define risk management?

Answer: Risk management is the process of identifying, assessing and controlling


threats to an organization's capital and earnings. ... Risk management allows
organizations to attempt to prepare for the unexpected even by minimizing risks and extra
costs before they happen.

Risk management is the process of identification, analysis, and acceptance or mitigation of


uncertainty in investment decisions.

9. What is software reengineering?

Answer: Software Reengineering is the process of updating software. This process


includes developing additional features on the software and adding functionalities
for better and more efficient software. This process also entails that the software
product will have improved maintainability. 

Purpose:
Software reengineering process allows modernizing the used system and eliminating
technical problems, which reduces the cost of service and expands its capabilities in terms
of meeting business needs.

 Decide what to re-engineer. Is it whole software or a part of it?


 Perform Reverse Engineering, in order to obtain specifications of existing
software.
 Restructure Program if required. For example, changing function-oriented
programs into object-oriented programs.
 Re-structure data as required.
 Apply Forward engineering concepts in order to get re-engineered software.
There are few important terms used in Software re-engineering

10. What are the benefits of modular design?

Modularization is the process of dividing a software system into multiple


independent modules where each module works independently. There are
many advantages of Modularization in software engineering. Some of these
are given below:  

 Easy to understand the system.


 System maintenance is easy.
 A module can be used many times as their requirements. No need to
write it again and again.

11. What is software architecture design?

The software architecture of a system depicts the system’s organization or


structure, and provides an explanation of how it behaves. A system
represents the collection of components that accomplish a specific function
or set of functions.
Software architecture exposes the structure of a system while hiding the
implementation details. ... Software design delves deeper into the implementation details
of the system. Design concerns include the selection of data structures and algorithms, or
the implementation details of individual components.

12. What is cohesion in software engineering?

Cohesion is a measure of the degree to which the elements of the module


are functionally related. It is the degree to which all elements directed
towards performing a single task are contained in the component. Basically,
cohesion is the internal glue that keeps the module together. A good
software design will have high cohesion. 

13. A prescriptive model prescribes how a new software system should be developed.
Prescriptive models are used as guidelines or frameworks to organize and structure
how software development activities should be performed, and in what order.
Waterfall model is prescriptive. The RAD Model.  Incremental Process Model.

14. What are the properties of a good requirement?

Good requirements should have the following characteristics:

 Unambiguous.
 Testable (verifiable)
 Clear (concise, terse, simple, precise)
 Correct.
 Understandable.
 Feasible (realistic, possible)
 Independent.
 Atomic.
 Necessary
 Implementation-free (abstract)

15. What is the difference between structured analysis and object oriented analysis?

Analysis simple means to study or examine the structure of something,


elements, system requirements in detail, and methodical way. Structured
analysis and Object-oriented analysis both are important for software
development and are analysis techniques used in software engineering. But
both are different from each other. 

Structured Analysis Object-Oriented Analysis


The main focus is on process and The main focus in on data structure and
procedures of system. real-world objects that is important.
It uses System Development Life It uses Incremental or Iterative
Cycle (SDLC) methodology for methodology to refine and extend our
different purposes like planning, design.
analyzing, designing, implementing,
and supporting an information
system.
It is suitable for well-defined projects It is suitable for large projects with
with stable user requirements. changing user requirements.
Risk while using this analysis Risk while using this analysis technique
technique is high and reusability is is low and reusability is also high.
also low.
Structuring requirements include Requirement engineering includes Use
DFDs (Data Flow Diagram), case model (find Use cases, Flow of
Structured English, ER (Entity events, Activity Diagram), the Object
Relationship) diagram, CFD (Control model (find Classes and class relations,
Flow Diagram), Data Dictionary, Object interaction, Object to ER
Decision table/tree, State transition mapping), State chart Diagram, and
diagram. deployment diagram.
This technique is old and is not This technique is new and is mostly
preferred usually. preferred.

16. Name the strategic planning technique used to help a person or organization?

Answer: SWOT analysis (or SWOT matrix) is a strategic planning technique used to help
a person or organization identify strengths, weaknesses, opportunities, and threats related
to business competition or project planning.

17. Components of design model?


The design model consists of the data design, architectural design, interface design,
and component-level design.

18. Is it necessary for organization to do SWOT analysis?

Answer: SWOT stands for Strengths, Weaknesses, Opportunities, and


Threats, and so a SWOT Analysis is a technique for assessing these four
aspects of organization.
A SWOT (strengths, weaknesses, opportunities and threats) analysis looks at internal and
external factors that can affect your business. Internal factors are your strengths and
weaknesses.  External factors are the threats and opportunities.  It helps you to build on what
you do well, to address what you're lacking, to minimize risks, and to take the greatest
possible advantage of chances for success.

A SWOT analysis is a useful tool for brainstorming and strategic planning. For example, you
can use a SWOT analysis to help you decide if and how you should:

 take advantage of a new business opportunity


 respond to new trends
 implement new technology
 Deal with changes to your competitors' operations.
19. Name the levels of data and process modeling diagram?

In Software engineering DFD (data flow diagram) can be drawn to represent the system of
different levels of abstraction. There are mainly 3 levels in the data flow diagram, which
are: 0-level DFD, 1-level DFD, and 2-level DFD . 

20. Name the fact finding technique?

Fact finding is process of collection of data and information based on techniques which
contain sampling of existing documents, research, observation, questionnaires,
interviews, prototyping and joint requirements planning.

21. Define Preliminary Investigation?

The preliminary investigation is carried out to understand the problem, and to


determine the scope and objectives of the new system and to investigate whether
there is a feasible solution. 

 Economic feasibility to measure the costs and benefits of the new system.
 Technical feasibility to ensure that the organization has sufficient hardware,
software and personnel resources to develop and support the proposed system.
 Operational feasibility, the willingness and ability of management, users and
Information Systems staff in the organization to build and use the proposed
system
22. When we select Specialized Process models?
Special process models take many features from one or more conventional models.
However these special models tend to be applied when a narrowly defined software
engineering approach is chosen.
Types in Specialized process models:
1. Component based development (Promotes reusable components)
2. The formal methods model (Mathematical formal methods are backbone here)
3. Aspect oriented software development (Uses crosscutting technology)

23. Why we prefer CBD (Component based development)? Justify

 Save time and money when building large and complex systems:
Developing complex software systems with the help of off-the-shelf
components helps reduce software development time substantially.
 Enhance the software quality: The component quality is the key factor
behind the enhancement of software quality.
 Detect defects within the systems: The CBD strategy supports fault
detection by testing the components; however, finding the source of
defects is challenging in CBD.
 

24. Define requirement engineering?

Answer: Requirements engineering is the process of defining, documenting stakeholder


needs/desires/requirements, and maintaining requirements in the engineering design process.
It is a common role in systems engineering and software engineering.

25. Enlist the components of business information system?

Answer: The computer age introduced a new element to businesses, universities, and other
organizations: a set of components called the information system, which deals with collecting
and organizing data and information.  

5 Components of Information Systems

 Computer hardware.
 Computer software.
 Telecommunications.
 Databases and data warehouses
 Human resources and procedures.

26. What are the characteristics of software?


 Functionality: ...
 Reliability: ...
 Efficiency: ...
 Usability: ...
 Maintainability: ...
 Portability:

27. Write down the name of different phases of rational unified process?

Answer: Rational Unified Process (RUP) is an agile software development method, in which
the life cycle of a project, or the development of software, is divided into four phases.
Various activities take place during these phases: modeling, analysis and design,
implementation, testing and application.

The Rational Unified Process (RUP) is iterative, meaning repeating; and agile. It is Iterative,
because all of the process’s core activities repeat throughout the project. The process is agile
because various components can be adjusted, and phases of the cycle can be repeated until
the software meets requirements and objectives.

28. What is risk analysis?

Risk analysis in software testing is an approach to software testing where software risk
is analyzed and measured. ... A software risk analysis looks at code violations that present
a threat to the stability, security, or performance of the code.

29. What is extreme programming in software engineering?


Extreme programming is a software development methodology (agile methodologies). XP is
built upon values, principles, and practices, and its goal is to allow small to mid-sized teams
to produce high-quality software and adapt to evolving and changing requirements.

30. Refactoring vs. refinement?

Refactoring is the activity of improving the internal structure or operation of a code or


component without changing its external behavior. Model refactoring is a transformation
used to improve the structure of a model while preserving its behavior. Model refinement is
a transformation that adds more detail to an existing model.

31. Why waterfall model is rigid model?

Answer: The Waterfall Model is a linear application development model that uses rigid
phases: When one phase ends, the next begins. Steps occur in sequence, and, if unmodified,
the model does not allow developers to go back to previous steps (hence “waterfall”: Once
water falls down, it cannot go back up).

32. Ad hoc Testing is an informal or unstructured software testing type


that aims to break the testing process in order to find possible defects or
errors at an early possible stage. Ad hoc testing is done randomly and it is
usually an unplanned activity which does not follow any documentation and
test design techniques to create test cases.
33. What are the drawbacks of spiral model?
In its diagrammatic representation, it looks like a spiral with many loops,
that’s the reason it’s called as Spiral. Each loop of the spiral is called a
Phase of the software development process. This model has capability to
handle risks.

These are following advantages and disadvantages of using Spiral Model


Advantages of Spiral Model:
1. Software is produced early in the software life cycle.
2. Risk handling is one of important advantages of the Spiral model, it is best
development model to follow due to the risk analysis and risk handling at
every phase.
3. Flexibility in requirements. In this model, we can easily change requirements
at later phases and can be incorporated accurately. Also, additional
Functionality can be added at a later date.
4. It is good for large and complex projects.
5. It is good for customer satisfaction. We can involve customers in the
development of products at early phase of the software development. Also,
software is produced early in the software life cycle.
6. Strong approval and documentation control.
7. It is suitable for high risk projects, where business needs may be unstable. A
highly customized product can be developed using this.
Disadvantages of Spiral Model:
1. It is not suitable for small projects as it is expensive.
2. It is much more complex than other SDLC models. Process is complex.
3. Too much dependable on Risk Analysis and requires highly specific
expertise.
4. Difficulty in time management. As the number of phases is unknown at the
start of the project, so time estimation is very difficult.
5. Spiral may go on indefinitely.
6. End of the project may not be known early.
7. It is not suitable for low risk projects.
8. May be hard to define objective, verifiable milestones. Large numbers of
intermediate stages require excessive documentation.

34. What are the advantages of revolutionary prototyping?


Advantages of Prototype model:

 Users are actively involved in the development


 Since in this methodology a working model of the system is provided, the users get a
better understanding of the system being developed.
 Errors can be detected much earlier.
 Quicker user feedback is available leading to better solutions.
 Missing functionality can be identified easily

35. How do we find the size of a software product?


The size is estimated by comparing it with the existing systems of same kind. The experts
use it to predict the required size of various components of software and then add them to
get the total size.

36. How the architecture design can be represented?


An architectural pattern is a stylized description of a good design practice, which has been tried and
tested in different environments. Patterns should include information about when they are and when
the are not useful. Patterns may be represented using tabular and graphical descriptions.

37. Why formal methods are not widely used?


Formal methods are not widely used because these methods are considered costly
and unfeasible.
38. What is software configuration management?
In Software Engineering, Software Configuration Management (SCM) is a
process to systematically manage, organize, and control the changes in the
documents, codes, and other entities during the Software Development Life
Cycle. The primary goal is to increase productivity with minimal mistakes.

39. Regression Testing


Whenever a software product is updated with new code, feature or functionality, it is
tested thoroughly to detect if there is any negative impact of the added code. This is
known as regression testing.

SRS ‘System Requirements Specification’ document. - Functional Requirements


document
Cohesion - grouping of all functionally related elements.
Coupling - communication between different modules. Degree of interdependence

Software Development Life Cycle


Software Development Life Cycle, SDLC for short, is a well-defined, structured
sequence of stages in software engineering to develop the intended software product.

SDLC Activities
SDLC provides a series of steps to be followed to design and develop a software
product efficiently. SDLC framework includes the following steps:
Software Requirements
We should try to understand what sort of requirements may arise in the requirement
elicitation phase and what kinds of requirements are expected from the software
system.
Broadly software requirements should be categorized in two categories:

Functional Requirements
Requirements, which are related to functional aspect of software fall into this category.
They define functions and functionality within and from the software system.
Examples -

 Search option given to user to search from various invoices.


 User should be able to mail any report to management.
 Users can be divided into groups and groups can be given separate rights.
 Should comply business rules and administrative functions.
 Software is developed keeping downward compatibility intact.
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into this
category. They are implicit or expected characteristics of software, which users make
assumption of.
Non-functional requirements include -

 Security
 Logging
 Storage
 Configuration
 Performance
 Cost
 Interoperability
 Flexibility
 Disaster recovery
 Accessibility
Requirements are categorized logically as

 Must Have : Software cannot be said operational without them.


 Should have : Enhancing the functionality of software.
 Could have : Software can still properly function with these requirements.
 Wish list : These requirements do not map to any objectives of software.

Software Testing Overview


Software Testing is evaluation of the software against requirements gathered from
users and system specifications. Testing is conducted at the phase level in software
development life cycle or at module level in program code. Software testing comprises
of Validation and Verification.

Software Validation
Validation is process of examining whether or not the software satisfies the user
requirements. It is carried out at the end of the SDLC. If the software matches
requirements for which it was made, it is validated.

 Validation ensures the product under development is as per the user requirements.
 Validation answers the question – "Are we developing the product which attempts all that
user needs from this software ?".
 Validation emphasizes on user requirements.
Software Verification
Verification is the process of confirming if the software is meeting the business
requirements, and is developed adhering to the proper specifications and
methodologies.

 Verification ensures the product being developed is according to design specifications.


 Verification answers the question– "Are we developing this product by firmly following all
design specifications ?"
 Verifications concentrate on the design and system specifications.
Target of the test are -
 Errors - These are actual coding mistakes made by developers. In addition,
there is a difference in output of software and desired output, is considered as
an error.
 Fault - When error exists fault occurs. A fault, also known as a bug, is a result of
an error which can cause system to fail.
 Failure - failure is said to be the inability of the system to perform the desired
task. Failure occurs when fault exists in the system.

The software design process can be divided into the following three levels of phases of
design: Interface Design. Architectural Design. Detailed Design.

Abstraction, Encapsulation, Modularization, and Hierarchy as fundamental software design


principles. The acronym PHAME (Principles of Hierarchy, Abstraction, Modularization, and
Encapsulation) is sometimes used to refer to these four fundamental principles

6 Types of Information Systems


 Transaction Processing Systems. ...
 Office Automation Systems. ...
 Knowledge Management Systems. ...
 Management Information Systems. ...
 Decision Support Systems. ...
 Executive Support System.

Software Maintenance Overview


Software maintenance is widely accepted part of SDLC now a days. It stands for all the
modifications and updating done after the delivery of software product. There are
number of reasons, why modifications are required, some of them are briefly
mentioned below:
 Market Conditions - Policies, which changes over the time, such as taxation
and newly introduced constraints like, how to maintain bookkeeping, may trigger
need for modification.
 Client Requirements - Over the time, customer may ask for new features or
functions in the software.
 Host Modifications - If any of the hardware and/or platform (such as operating
system) of the target host changes, software changes are needed to keep
adaptability.
 Organization Changes - If there is any business level change at client end,
such as reduction of organization strength, acquiring another company,
organization venturing into new business, need to modify in the original software
may arise.

40. There are four types of software maintenance:


 Corrective Software Maintenance
 Adaptive Software Maintenance
 Perfective Software Maintenance
 Preventive Software Maintenance

Alpha testing is the final stage of testing performed by your QA team to check that your
application is ready for release outside your company. The testing is coordinated in-
house, structured and is usually done by your own test team. However, sometimes it
involves real users (especially if the software is being created for a 3rd party). Alpha
testing is predominantly about ensuring bug-free functionality.

Beta testing involves releasing the software to a limited number of real users. They are
free to use it as they want. In other words, this testing is unstructured.
Requirement Engineering
The process to gather the software requirements from client, analyze and document
them is known as requirement engineering.
The goal of requirement engineering is to develop and maintain sophisticated and
descriptive ‘System Requirements Specification’ document.

Software Requirements
The software requirements are description of features and functionalities of the target
system. Requirements convey the expectations of users from the software product.
The requirements can be obvious or hidden, known or unknown, expected or
unexpected from client’s point of view.

Project Risk Management


Risk management involves all activities pertaining to identification, analyzing and
making provision for predictable and non-predictable risks in the project. Risk may
include the following:

 Experienced staff leaving the project and new staff coming in.
 Change in organizational management.
 Requirement change or misinterpreting requirement.
 Under-estimation of required time and resources.
 Technological changes, environmental changes, business competition.
Capability Maturity Model (CMM) is a methodology used to develop,
refine maturity of an organizations software development process. It is
developed by SIE in mid-1980. It is a process improvement approach.

The five Software Capability Maturity levels have been


defined as:
1. Level One: Initial – Work is performed informally.
A software development organization at this level is characterized by AD HOC
activities (organization is not planned in advance.).

2. Level Two: Repeatable – Work is planned and tracked.


This level of software development organization has a basic and consistent
project management processes to TRACK COST, SCHEDULE, and
FUNCTIONALITY. The process is in place to repeat the earlier successes on
projects with similar applications.
3. Level Three: Defined – Work is well defined.
At this level the software process for both management and engineering
activities are DEFINED AND DOCUMENTED.

4. Level Four: Managed – Work is quantitatively controlled.


 Software Quality management – Management can effectively control the
software development effort using precise measurements. At this level,
organization set a quantitative quality goal for both software process and
software maintenance.
 Quantitative Process Management – At this maturity level, the
performance of processes is controlled using statistical and other
quantitative techniques, and is quantitatively predictable.

5. Level Five: Optimizing – Work is Based upon Continuous Improvement.
The key characteristic of this level is focusing on CONTINUOUSLY
IMPROVING PROCESS performance.
Key features are:
 Process change management
 Technology change management
 Defect prevention

You might also like