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

SE TT1 QB

The document discusses key concepts in software engineering including: 1. Defining software engineering and its goals of applying engineering principles to software development. 2. Distinguishing between functional and non-functional requirements with examples, noting that functional requirements define specific system functions while non-functional requirements concern quality factors. 3. Describing the software development life cycle (SDLC) and discussing models like waterfall, spiral, and evolutionary development.

Uploaded by

Shado H
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)
73 views13 pages

SE TT1 QB

The document discusses key concepts in software engineering including: 1. Defining software engineering and its goals of applying engineering principles to software development. 2. Distinguishing between functional and non-functional requirements with examples, noting that functional requirements define specific system functions while non-functional requirements concern quality factors. 3. Describing the software development life cycle (SDLC) and discussing models like waterfall, spiral, and evolutionary development.

Uploaded by

Shado H
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
You are on page 1/ 13

1.

Define Software Engineering

Software engineering is a discipline in which theories, methods and tools are applied to develop
professional software.

The application of a systematic, disciplined, quantifiable approach to the development operation


and maintenance of software, that is, application of engineering to software. The study of
approaches as mentioned above.

Software consists of data, programs and the related documents. All the elements build a
configuration that is created as a part of the software engineering process. The main motive
behind software engineering is to give a framework for building software with better quality.

2. Discuss functional and non functional requirements with example in software development
process.

Functional Requirements: These are the requirements that the end user specifically demands
as basic facilities that the system should offer. All these functionalities need to be necessarily
incorporated into the system as a part of the contract. These are represented or stated in the
form of input to be given to the system, the operation performed and the output expected. They
are basically the requirements stated by the user which one can see directly in the final product,
unlike the non-functional requirements.

Eg:

Interface requirements:

● Field1 should have numeric input


● Screen1 can print on-screen data to a printer

Business requirements:

● Data must be entered before a request is approved


● Clicking the approve button moves the request to the approval workflow

Or

1. Authentication of a user when he/she tries to log into the system.


2. System shutdown in the case of a cyber attack.
3. Verification email is sent to user whenever he/she registers for the first time
on some software system

Non-functional requirements: These are basically the quality constraints that the system must
satisfy according to the project contract. The priority or extent to which these factors are
implemented varies from one project to another. They are also called non-behavioral
requirements. The process of specifying non-functional constraints needs the knowledge of the
functionality of the system, and also the knowledge of the context within which the system will
operate. They basically deal with issues like:

● Portability
● Security
● Maintainability
● Reliability
● Scalability
● Performance
● Reusability
● Flexibility

Eg:

Performance constraints: response time, security, storage space,etc.

Lifecycle constraints: maintainability, portability, etc.

3. Describe the SDLC model for software development.

https://www.geeksforgeeks.org/what-is-sdlc-model-and-its-phases/

Techmax pdf pg 27 to pg pg 37

4. Discuss the working principles of any one of SDLC model taught in the class.

Techmax pdf pg 27 to pg pg 37

5. Discuss advantages and disadvantages of any one of the SDLC models.

Techmax pdf pg 27 to pg pg 37

6. Explain why the waterfall model of the software process is not an accurate reflection of the
software development activities.

● Problems in this model remain uncovered until software testing


● Develops ‘blocking states’. It means one team member has to wait for the other to
complete dependent tasks. Time is wasted in waiting than doing productive work
● Customers must state all requirements at the beginning of the development stage which
is difficult.
● Model uses a systematic, sequential approach hence the customer gets the working
version of software too late.
● Does not incorporate risk assessment.
● Useful in smaller projects where requirements are understood in the beginning only.

7. Explain in detail 'Spiral Model' with advantages and disadvantages what is the difference
between the 'Spiral Model' and Object Oriented Model'? Discuss in detail.

Combination of waterfall and iterative model. It yields rapid development of more complete
versions of software. It provides support for risk handling. In its diagrammatic representation, it
looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can
vary from project to project. Each loop of the spiral is called a Phase of the software
development process. The exact number of phases needed to develop the product can be
varied by the project manager depending upon the project risks. As the project manager
dynamically determines the number of phases, so the project manager has an important role to
develop a product using the spiral model. The Radius of the spiral at any point represents the
expenses(cost) of the project so far, and the angular dimension represents the progress made
so far in the current phase.

Customer Communication: Initial stage where customer and developers interact to gather all
the requirements.

Planning: Includes complete estimation (cost) and scheduling (complete timeline chart for
project development) and tracking. Assign roles to all the team members.

Risk Analysis: Identifying the types of risks. Once identified, calculate the probability of risk that
will take place (how likely the risk will be true). If risk is true assess the impact - negligible,
marginal, catastrophic and accordingly take actions. Prevent risk using Risk Mitigation
Monitoring Management (RMMM)

Engineering: Design phase. Flowchart to show the pictorial flow of the program and the
algorithm to show the step-by-step solution of the problem.

Construction and Release: In the coding phase, the design details are implemented using
appropriate programming language and the product is released for the customer to use once
the software has been completely developed.

Customer Evaluation: Customer checks if all requirements listed during the first phase have
been incorporated and if he/she is satisfied with the product. User/Customer gives review and
then a new cycle is generated to work on the feedback given by the customer

Advantages:

● Project monitoring is east and more effective compared to other models.


● Reduces the number of risk in software development before they become serious
problems.
● Suitable for high risk projects
● Risk management in built-in feature
● Changes can be accommodated in later stages of development

Disadvantages:

● If a major risk is not discovered in early iteration, it may become a major risk in later
stages.
● Iterative process hence more time, effort and cost required.
● Not suitable for low risk projects
8. Which of the development process models would you recommend for the following projects
(given in the question). Justify your answer.

You might want to use Agile Methodology:

1) If your project has not well defined requirements or if there are chances that the requirements
might be updated/changed.

2) if you think that your project requires flexibility or if your team/you isn't familiar with what they are
going to do.

3) If you think that your project can be divided into modular tasks

You might want to use Waterfall:

1) For better planning and timing

2) If you have a team of experts

3) If requirements are very specific and won't change

You might want to use Spiral Methodology:

1) If you think you might need to break the project into small segments.

2) If you think it's crucial to manage risk

3) If you have a large project

4) Better timing and planning.


9. Discuss the significance of SRS in software development.

Techmax pdf page 64-65

10. Discuss the important characteristics for a perfect SRS.

Techmax pdf page 65

11. Compare waterfall model with Spiral model.

Waterfall Spiral

Follows sequential process Follows iterative approach

Errors and risks identified after software is Errors and risks are identified earlier and
developed rectified

Small scale projects Large scale projects

Not felxible Flexible

Comparatively inexpensive Comparatively expensive

12. Explain the Evolutionary and Incremental Model. What are the Advantages and
Disadvantages?

13. What is requirement engineering.

Techmax pdf page 56-57

14. What is meant by feasibility study.

Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed project or


system. Feasibility study is one of the important four stages of the Software Project
Management Process. As the name suggests, feasibility study is the feasibility analysis or it is a
measure of the software product in terms of how beneficial product development will be for the
organisation from a practical point of view. Feasibility study is carried out based on many
purposes to analyse whether a software product will be right in terms of development,
implantation, contribution of project to the organisation etc.

https://www.geeksforgeeks.org/types-of-feasibility-study-in-software-project-development/

15. What is meant by requirement validation?

Demonstrate that the requirements define the system that the customer really wants. Once the
requirements have been gathered and verified
● Are all req stated clearly?
● Are req misinterpreted?
● Do req violate system domain constraints?
● Is system req traceable to the system model that is created?

16. What is meant by Requirement management?

Process of managing changing req during requirement engineering process and system
development. Identify, control and track changes in requirements at any time.

Why is it needed?

Requirements are inevitably incomplete and inconsistent. New req emerge during the process
as business needs change and better understanding of the system is developed. Priority of
requirements from different viewpoints changes during the development process.

17. Explain the process model that combines the element of waterfall and iterative fashion.

Incremental Model

18. Explain the feasibility studies. What are the outcomes? Does it have either implicit or
explicit effects on software requirement collection?

https://www.geeksforgeeks.org/types-of-feasibility-study-in-software-project-development/

Outcomes:

● Concludes whether to go ahead with the proposed project as it is practically feasible or


to stop the proposed project here as it is not right/feasible to develop or to think/analyse
about the proposed project again.
● Identifying risk factors involved in developing and deploying the system and planning for
risk analysis also narrows the business alternatives and enhances success rate
analysing different parameters associated with project development.

FS affects software requirements collection both implicitly ( expected characteristics) and


explicitly (unexpected characteristics).

Implicit: Assesses the feasibility of the client requirements, will it be beneficial and whether it can
be implemented or not.

Explicit: FS brings out comments and further recommendations apart from the ones listed by the
client. These additional requirements that arise again go through the feasibility study process.

19. Why the customer interaction is a difficult process? Explain one formal procedure used for
customer interaction.

Techmax 59

20. Discuss Agile software development.

Agile process refers to a software development approach based on iterative development.


● Agile methods break tasks into smaller iterations or parts do not directly involve long term
planning.

● Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks.

● The division of the entire project into smaller parts helps to minimize the project risk and to
reduce the overall project delivery time requirements

An agile process reduces the cost of change because software is released in increments and
change can be better controlled within an increment

Agile Process Model phases

1. Requirements gathering: In this phase, you must define the requirements, explain business
opportunities, plan the time and effort needed to build the project.

2. Design the requirements: In this, You can use the user flow diagram or the high-level UML
diagram to show the new features and show how it will apply to your existing system.

3. Construction: When the team defines the requirements, the work begins. Designers and
developers start working on their project, which aims to deploy a working product.

4. Testing: In this, the Quality Assurance team examines the product's performance and looks
for the bug.

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

21. Discuss any one Agile software development techniques/methodology.

Extreme Programming (XP)

●It is the most widely used approach to agile software development.

● XP is a lightweight, efficient, low-risk, flexible, predictable,scientific, and fun way to develop a


software.

● This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.

XP contains a set of rules and practices that occur within the context of four framework
activities: Planning, Design, Coding, Testing

1. Planning: In this, the customer meets the development team and presents the requirements
in the form of user stories to describe the desired result. The team then estimates the
stories and creates a release plan broken down into iterations. If one or more of the stories
can’t be estimated, so-called spikes can be introduced which means that further research
is needed.

2. Design: XP encourages the use of CRC cards which identify and organize the object oriented
classes that are relevant to the current software increment. If a difficult design problem is
encountered as part of the design of a story, XP recommends the immediate creation of an
operational prototype of that portion of the design. Called a spike solution, the design
prototype is implemented and evaluated

3. Coding: A key concept during the coding activity is pair programming. XP recommends that
two people work together at one computer workstation to create code for a story. This
provides a mechanism for real-time problem solving and realtime quality assurance.

4. Testing: The unit tests that are created should be implemented using a framework that
enables them to be automated. XP acceptance tests, also called customer tests, are
specified by the customer and focus on overall system features and functionality that are
visible and reviewable by the customer

Scrum

● SCRUM is an agile development process focused primarily on ways to manage tasks in


team-based development conditions.

● Scrum is broken into small consistent time intervals called Sprint.

● Sprint can be as short as a few days and generally no longer than 3 – 4 weeks

Scrum

There are three roles in it, and their responsibilities are:


• Scrum Master: The scrum can set up the master team, arrange the meeting and remove
obstacles for the process

• Product owner: The product owner makes the product backlog, prioritizes the delay and is
responsible for the distribution of functionality on each repetition.

• Scrum Team: The team manages its work and organizes the work to complete the sprint or
cycle.

Scrum meeting

● Scrum meetings are short (typically 15-minute) meetings held daily by the Scrum team.

● Scrum meeting helps the team to uncover potential problems as early as possible.

● Three key questions are asked and answered by all team members:

• What did you do since the last team meeting?

• What obstacles are you encountering?

• What do you plan to accomplish by the next team meeting

22. Discuss the purpose of Data Flow Diagram (DFD).

● DFD provides necessary information that how data objects are transformed by
processing the functions
● Graphical technique used to represent the information flow and transformers which are
applied when data moves from input to output.
● Represents system requirements clearly and identify transformers that become
programs in design
● Series of bubbles joined by lines. Birds eye view of data objects.
● Enables software engineers to develop models of the information and functional domain
at the same time.
● Can be further partitioned into different levels to show detailed information flow.

23. Discuss the notations/building blocks used in drawing DFD.

● Circle represents the process


● Rectangle represents the external entity like customer, whole-seller, etc
● Labeled arrows indicate incoming and outgoing data flow
● Open rectangle shows the database or file

24. Explain the process of drawing a DFD with the help of an example.

1. Define the main processes


2. Create a list of all external entities (all people and systems)
3. Create a list of data stores
4. Create a list of data flows
5. Draw the diagram

For example refer techmax

https://www.lucidchart.com/pages/data-flow-diagram

25. Define the objectives of software testing.

Identification of Bugs, and Errors:

Once the developer finishes coding, the tester starts testing. During testing, QA validates each
module under various conditions. Afterward, they collect all the errors & bugs and forward
them to the developer to fix.

Quality Product:

The main aim of testing is to maintain the quality of the product. Also, testing has its own cycle
and in each phase, all focus revolves around quality only.

Justification with Requirement:

During testing, the QA team validates whether the application is following the SRS (System
Requirement Specification) document or not.

Offers Confidence:

Testing team constantly checks the features of the software. It must fulfill the business demand
and drives confidence.

Enhances Growth:

A quality delivery increases the potential of a business. And we all know quality comes through
testing only.

26. Define the essential characteristics of software testing process.

High probability of detecting errors: To detect maximum errors, the tester should understand the
software thoroughly and try to find the possible ways in which the software can fail. For
example, in a program to divide two numbers, the possible way in which the program can fail is
when 2 and 0 are given as inputs and 2 is to be divided by 0. In this case, a set of tests should
be developed that can demonstrate an error in the division operator.

No redundancy: Resources and testing time are limited in the software development process.
Thus, it is not beneficial to develop several tests, which have the same intended purpose. Every
test should have a distinct purpose.

Choose the most appropriate test: There can be different tests that have the same intent but
due to certain limitations such as time and resource constraint, only few of them are used. In
such a case, the tests, which are likely to find more errors, should be considered.
Moderate: A test is considered good if it is neither too simple, nor too complex. Many tests can
be combined to form one test case. However this can increase the complexity and leave many
errors undetected. Hence, all tests should be performed separately.

27. Discuss White Box Testing technique in detail.

Techmax Pdf page 225-226

28. Discuss Black Box Testing technique in detail.

Techmax Pdf page 233-235

29. Differentiate between WBT and BBT.

Techmax Pdf page 236

30. White box testing is complementary to black box testing, not alternative, why?

WBT focuses on procedural details i.e., the internal logic of the program. BBT on the other
hand focuses on functional requirements of the software, i.e., it enables the software engineer
to derive sets of input conditions that will fully exercise all functional requirements for a
program. BBT is complementary to WBT and cannot be replaced as it detects a different class
of errors.

In WBT the tester needs to know how the software works whereas in BBT the tester should
know only what the program is supposed to do. Early white box testing assures code
functionality and makes later, higher level testing less time intensive. Thorough black box
testing enhances end user experience.

Give an example to prove this statement?

WBT involves testing the internal structure, design and coding software, whereas BBT involves
testing input and output of software applications and it is entirely based on software
requirements and specifications.

31. Discuss software testing strategies.

Techmax Pdf page 209-210

32. Discuss Verification and Validation.

Techmax Pdf page 207-208

33. Discuss different types of integration testing approaches.

Techmax Pdf page 214-217

34. Discuss the role of stubs and drivers in testing.

Techmax Pdf page 213

35. What is the purpose of measuring cyclomatic complexity in software testing?


Provides quantitative measure of the logical complexity of the program. A software metrics that
provides upper bounds for test cases and guarantees all statements are executed at least
once.

36. How cyclomatic complexity is measured?

Techmax Pdf page 228

37. Calculate cyclomatic complexity for a program to find greatest of three numbers.

Techmax Pdf page 228-229

https://www.ques10.com/p/42633/draw-the-control-flow-graph-and-find-the-cyclomati/

38. What are the various types of system testing?

Techmax Pdf page 221-223

39. Justify the importance of testing process.

Same as objectives

OR

Prevent defects: If mistakes are avoided and caught early, cost and labour is reduced. Defect
prevention entails conducting root cause analysis of previously discovered flaws and then
taking specific steps to prevent faults in the future.

Evaluate Work Products: Identifying ambiguity or contradictory requirements to save


development and testing time.

Verify Requirements: Check if the product meets the needs of the client or not. Examine and
ensure all stipulated standards have been incorporated. Develop all test cases, independent
testing technique, ensure functionality confirmation for every test case executed.

Validate Test Objects: Ensures requirements are implemented as expected by users. Testing is
known as validation

Build Confidence: Improve software quality. Less no. of flaws, higher is the quality of the
product.

Reduce Risks: Lower likelihood of risk occurring. Control uncertainties as they impose hazards
during development and product lifecycle.

Find failures and Defects: Uncover flaws and simultaneously check whether or not application
meets user requirements.

40. What is CMMM? discuss its significance in software development.

● It is not a software process model. It is a framework that is used to analyze the approach
and techniques followed by any organization to develop software products.
● It also provides guidelines to further enhance the maturity of the process used to
develop those software products.
● It is based on profound feedback and development practices adopted by the most
successful organisations worldwide.
● This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels.
● Each level of maturity shows a process capability level. All the levels except level-1 are
further described by Key Process Areas (KPA’s).s CMM? discuss its significance in
software development.

https://www.geeksforgeeks.org/software-engineering-capability-maturity-model-cmm/

41. A Software does not wear out in the traditional sense of the term, but the software does
tend to deteriorate as it evolves, why ?

Multiple change requests introduce errors in component interactions.

"Wear out" means when something is no longer of any use then it reaches into a wear out
state. In other words, it cannot effectively perform what it is built for. Software cannot wear
out because according to user demands, software needs to be updated & demands may
increase one after another. Hence, any alternative software can replace previous software
due to having the implementation of the user's recent demands. So, not having a recent
feature is not a defect but if considered as a failure then no. of failures increases with time
& software gets deteriorated. But still, the software can perform its operation what it was
performing in the beginning so that's why software cannot wear out. Hence, Software can
deteriorate due to multiple change requests that may introduce errors in component
interactions.

42. When is the role of software testing start in software lifecycle.

An early start to testing reduces the cost and time to rework and produce error-free software
that is delivered to the client. However in Software Development Life Cycle (SDLC), testing can
be started from the Requirements Gathering phase and continued till the deployment of the
software.

You might also like