0% found this document useful (0 votes)
12 views20 pages

SAQ What Is The Evolving Nature of Software?: Verification Validation

The document discusses the evolving nature of software, highlighting advancements in hardware and software types. It covers key concepts such as the Unified Process, feasibility studies, verification vs. validation, design patterns, legacy software, and requirements validation. Additionally, it outlines software process frameworks, evolutionary models, and the tasks involved in requirements engineering.
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)
12 views20 pages

SAQ What Is The Evolving Nature of Software?: Verification Validation

The document discusses the evolving nature of software, highlighting advancements in hardware and software types. It covers key concepts such as the Unified Process, feasibility studies, verification vs. validation, design patterns, legacy software, and requirements validation. Additionally, it outlines software process frameworks, evolutionary models, and the tasks involved in requirements engineering.
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/ 20

SAQ

What is the Evolving Nature of Software?

The role of computer software has undergone significant change over a span of little
more than 50 years

● Dramatic Improvements in hardware performance


● Vast increases in memory and storage capacity
● A wide variety of exotic input and output options

What are the advantages of unified process?

The Unified process recognizes the importance of customer communication and


streamlined methods for describing the customer‘s view of a system. It emphasizes the
important role of software architecture and helps the architect focus on the right goals,
such as understandability, reliance to future changes, and reuse

What is a feasibility study?

The purpose of a feasibility study is not to solve the problem, but to determine whether
the problem is worth solving.A feasibility study decides whether or not the proposed
system is worthwhile.

Differentiate between verification & validation.

Verification Validation
It includes checking
It includes testing and validating
documents, design, codes and
the actual product.
programs.

Verification is the static


Validation is the dynamic testing.
testing.

It does not include the It includes the execution of the

execution of the code. code.

It can find the bugs in the It can only find the bugs that

early stage of the could not be found by the

development. verification process.


The goal of verification is
The goal of validation is an
application and software
actual product.
architecture and specification.

What are Design Patterns?

Design patterns are typical solutions to commonly occurring problems in software


design. They are like templates for how to solve a problem that can be used in many
different situations. Design patterns help programmers solve problems in a way that
has been proven to work, thereby improving the robustness and maintainability of their
code. They also provide a shared language for developers to discuss and write about
software design.

What is the changing nature of Software?

· System software

· Application software

· Engineering/scientific software

· Embedded software

· Product-line software

· Web-applications

· Artificial intelligence software.


What is Legacy Software?

Legacy software refers to software systems that are outdated or obsolete, yet continue
to be used because they still perform critical functions within an organization. These
systems often pose a challenge to maintain, upgrade, or integrate with newer
technologies. The term "legacy" does not inherently mean that the software is
problematic—simply that it is old and based on outdated technologies or architectures.

What is the intent of requirements validation?

1. Correctness

2. Completeness

3. Consistency.

4. Feasibility

5. Testability

6. Relevance

7. Traceability

What are Design Principles?

In software and web design, these principles translate into creating user interfaces and
experiences that are not only visually appealing but also intuitive and user-friendly. For
instance:

● Usability
● User Experience
● Aesthetic Appeal
What do you mean by Design Evaluation?

Once you create an operational user interface prototype, it must be evaluated to


determine whether it meets the needs of the user.

LAQ

What is software? Explain about software myths in detail.

Software:

Software is a set of instructions, data or programs used to operate computers and


execute specific tasks. It is the opposite of hardware, which describes the physical
aspects of a computer.

Software is a generic term used to refer to applications, scripts and programs that run

Beliefs about software and the process used to build it- can be traced to the earliest
days of computing myths have a number of attributes that have made them insidious.
Management myths: Manages with software responsibility, like managers in most
disciplines,
are often under pressure to maintain budgets, keep schedules from slipping, and
improve quality.
Myth: We already have a book that‘s full of standards and procedures for building
software -Wont that provide my people with everything they need to know?
Reality: The book of standards may very well exist but, is it used? Are software
practitioners
aware of its existence? Does it reflect modern software engineering practice?
Myth: If we get behind schedule, we can add more programmers and catch up.
Reality: Software development is not a mechanistic process like manufacturing. As new
people are added, people who were working must spend time educating the new
comers, thereby reducing the amount of time spend on productive development effort.
People can be added but only in a planned and well coordinated manner.
Myth: If I decide to outsource the software project to a third party, I can just relax and let
that firm built it.
Reality: If an organization does not understand how to manage and control software
projects internally, it will invariably struggle when it outsources software projects.

Discuss about evolutionary process models.

Evolutionary model is a combination of Iterative model and Incremental model of


software
development life cycle. Evolutionary process models produce with each iteration
produce an increasingly more complete
version of the software with every iteration. Evolutionary models are iterative. They are
characterized in a manner that enables software
engineers to develop increasingly more complete versions of the software.
● Iterative Development: The development process is divided into smaller,
manageable iterations where requirements can be refined, and new functionality
can be added in a systematic way.
● Incremental Delivery: Each iteration results in an increment, a potentially
shippable or deployable piece of the software, which adds value by either
enhancing previous functionality or introducing new features.
● Flexibility: There is flexibility in accommodating changing requirements and
priorities, which is particularly useful in dynamic environments where business
goals or technologies are rapidly evolving.
● Continuous Testing and Integration: Regular testing and integration of
components ensure that issues are identified and addressed early, reducing risks
and potential integration failures.

Explain the Software Process Framework.

PROCESS FRAMEWORK:

Software process must be established for effective delivery of software engineering

technology.

A process framework establishes the foundation for a complete software process by

identifying a small number of framework activities that are applicable to all software

projects, regardless of their sizeor complexity.

The process framework encompasses a set of umbrella activities that are applicable

across the entire software process.

Each framework activity is populated by a set of software engineering actions

Each software engineering action is represented by a number of different task sets-

each a collection of software engineering work tasks, related work products, quality

assurance points, and project milestones.


In brief

"A process defines who is doing what, when, and how to reach a certain goal."A Process
Framework

● establishes the foundation for a complete software process


● identifies a small number of framework activities
● applies to all s/w projects, regardless of size/complexity.
● also, set of umbrella activities
● applicable across entire s/w process.
● Each framework activity has set of s/w engineering actions.

Generic Process Framework: It is applicable to the vast majority of software projects

1. Communication: This framework activity involves heavy communication and


collaboration

with the customer and encompasses requirements gathering and other related
activities.

2. Planning: This activity establishes a plan for the software engineering work that
follows. It describes the technical tasks to be conducted, the risks that are likely, the
resources that will be required, the work products to be produced, and a work schedule.

3. Modeling: This activity encompasses the creation of models that allow the developer
and customer to better understand software requirements and the design that will
achieve those requirements. The modeling activity is composed of 2 software
engineering actions- analysis and design. Analysis encompasses a set of work tasks.

Design encompasses work tasks that create a design model.

4. Construction: This activity combines core generation and the testing that is required
to uncover the errors in the code.
5. Deployment: The software is delivered to the customer who evaluates the delivered
product and provides feedback based on the evolution.

Illustrate the various steps in requirements engineering process

• Requirement engineering helps software engineers to better understand


the problem solve.

• It is carried out by software engineers (analysts) and other project


stakeholders

• It is important to understand what the customer wants before one begins


to designandbuild a computer based system

• Work products include user scenarios, functions and feature lists, analysis
models

Requirements engineering (RE) is a systems and software engineering


process which covers all of the activities involved in discovering,
documenting and maintaining a set of requirements for a computer-based
system The processes used for RE vary widely depending the application
domain, the people involved and the organization developing the
requirements.

Activities within the RE process may include:

● Requirements elicitation - discovering requirements from system


stakeholders
● Requirements Analysis and negotiation - checking requirements and
resolving stakeholder conflicts
● Requirements specification (Software Requirements Specification)-
documenting the requirements in a requirements document
● System modeling - deriving models of the system, often using a
notation such as theUnifiedModeling Language
● Requirements validation - checking that the documented
requirements and models are consistent and meet stakeholder needs
● Requirements management - managing changes to the requirements
as the system is developed and put into use
What is system modeling? Draw a context level model for Mental Health
Care Patient Management System

System modeling is the process of developing abstract models of a system, with each
model presenting a different view or perspective of that system. It is about representing
a system using some kind of graphical notation, which is now almost always based on
notations in the Unified Modeling Language (UML). Models help the analyst to
understand the functionality of the system; they are used to communicate with
customers.
Explain the golden rules of user interface design.

Theo Mandel coins three golden rules:


1. Place the user in control.
2. Reduce the user’s memory load.
3. Make the interface consistent.
These golden rules actually form the basis for a set of user interface design principles
that guide this important aspect of software design
1. Place the User in Control
Mandel defines a number of design principles that allow the user to maintain control:
Define interaction modes in a way that does not force a user into unnecessary or
undesired actions. An interaction mode is the current state of the interface.
Provide for flexible interaction. Because different users have different interaction
preferences, choices should be provided. For example, software might allow a user to
interact via keyboard commands, mouse movement, a digitizer pen, a multi touch
screen, or voice recognition commands
2. Reduce the User’s Memory Load
The more a user has to remember, the more error-prone the interaction with the system
will be. It is for this reason that a well-designed user interface does not tax the user’s
memory. Whenever possible, the system should “remember” pertinent information and
assist the user with an interaction scenario that assists recall. Mandel defines design
principles that enable an interface to reduce the user’s memory load Reduce demand on
short-term memory.
3. Make the Interface Consistent
The interface should present and acquire information in a consistent fashion. This
implies that
(1) all visual information is organized according to design rules that are maintained
throughout all screen displays, (2) input mechanisms are constrained to a limited set
that is used consistently throughout the application, and (3) mechanisms for navigating
from task to task are consistently defined and implemented.
Set -2
1) Explain the perspective process models with example?

Ans) Perscriptive process models define a set of activities, actions, tasks, milestones,
and work products that are required to engineer high-quality software. These process
models are not perfect, but they do provide a useful roadmap for software engineering
work. A prescriptive process model populates a process framework with explicit task
sets for software engineering actions.

Let's explore a few common software process models from different perspectives:

1. Waterfall Model: The waterfall model is a linear and sequential approach to


software development. It consists of distinct phases such as requirements
analysis, design, implementation, testing, deployment, and maintenance. Each
phase must be completed before moving to the next. This model is
straightforward and easy to understand, making it suitable for projects with
well-defined requirements upfront. An example could be developing software for
a simple calculator.
2. Iterative Model: The iterative model involves repeating cycles of development,
where each cycle enhances the software based on feedback from the previous
iteration. Each iteration typically includes phases like planning, requirements
analysis, design, implementation, testing, and evaluation. This model allows for
flexibility and refinement over time. An example could be developing a mobile
app where new features are added in successive iterations based on user
feedback.
3. Incremental Model: The incremental model breaks the software development
process into small, incremental builds. Each build delivers a portion of the
functionality, allowing for early delivery of working software. Subsequent builds
add features to the previous ones until the product is complete. This model
reduces the time to deliver a usable product and allows for early feedback. An
example could be developing an e-commerce website where basic functionality
like user registration and product browsing is delivered first, followed by features
like shopping cart and payment processing in subsequent increments.
4. Spiral Model: The spiral model combines elements of both iterative and
incremental development with risk management. It involves cyclic iterations
where each cycle includes stages for determining objectives, identifying risks,
developing and testing, and evaluating alternatives. This model is particularly
suitable for large, complex projects with evolving requirements and significant
risks. An example could be developing software for a new medical device where
safety and regulatory compliance are critical, and requirements may change
based on early testing results.

2) Describe incremental process models. How to incorporate improvements to it?

ans) INCREMENTAL MODEL: Context: Incremental development is particularly useful


when staffing is unavailable for a complete implementation by the business deadline
that has been established for the project. Early increments can be implemented with
fewer people. If the core product is well received, additional staff can be added to
implement the next increment. In addition, increments can be planned to manage
technical risks.

The incremental model combines elements of the waterfall model applied in an iterative
fashion. The incremental model delivers a series of releases called increments that
provide progressively more functionality for the customer as each increment is
delivered. When an incremental model is used, the first increment is often a core
product. That is, basic requirements are addressed. The core product is used by the
customer. As a result, a plan is developed for the next increment. The plan addresses
the modification of the core product to better meet the needs of the customer and the
delivery of additional features and functionality. This process is repeated following the
delivery of each increment, until the complete product is produced. For example,
word-processing software developed using the incremental paradigm might deliver
basic file management editing, and document production functions in the first
increment; more sophisticated editing, and document production capabilities in the
second increment; spelling and grammar checking in the third increment; and advanced
page layout capability in the fourth increment.
3) What are the various tasks of requirement engineering? List and
explain?

ans) Requirement engineering encompasses a set of tasks aimed at eliciting,


analyzing, documenting, validating, and managing requirements for a software system.
Here are the various tasks involved in requirement engineering:
1. Elicitation: This task involves gathering requirements from stakeholders,
including users, customers, and other relevant parties. Techniques such as
interviews, surveys, workshops, and observations are used to elicit requirements.
The goal is to understand the needs, expectations, and constraints of the
stakeholders.
2. Analysis: In the analysis phase, collected requirements are analyzed to ensure
they are clear, complete, consistent, and feasible. Conflicting requirements are
identified and resolved, and any missing or ambiguous requirements are clarified.
The aim is to establish a shared understanding of the system's requirements
among stakeholders.
3. Documentation: Once requirements are elicited and analyzed, they need to be
documented in a systematic and organized manner. This documentation serves
as a reference for all project stakeholders throughout the software development
lifecycle. Common documents include requirements specifications, use cases,
user stories, and requirement traceability matrices.
4. Validation: Validation ensures that the documented requirements accurately
reflect the needs and expectations of the stakeholders and that they can serve as
a basis for developing the intended software system. Techniques such as
reviews, prototyping, simulations, and validation workshops are used to validate
requirements. The goal is to identify and correct any deficiencies or
misunderstandings in the requirements early in the process.
5. Verification: Verification ensures that the documented requirements meet
predefined quality criteria, such as correctness, completeness, consistency, and
verifiability. Techniques such as inspections, walkthroughs, and formal
verification methods are used to verify requirements. The goal is to prevent errors
and defects from propagating to subsequent stages of the software
development lifecycle.
6. Management: Requirement management involves managing changes to
requirements throughout the software development lifecycle. This includes
documenting changes, assessing their impact on other requirements and project
constraints, obtaining approval from stakeholders, and maintaining version
control of requirement documents. Requirement management ensures that the
software system remains aligned with stakeholder needs and project goals
despite changing requirements.
7. Communication: Effective communication is essential throughout the
requirement engineering process to ensure that all stakeholders have a common
understanding of the requirements and their implications. Techniques such as
stakeholder meetings, status reports, and requirement reviews facilitate
communication among project team members and stakeholders.

4) Explain design concepts with examples?

ans) 1. Abstraction:
● Abstraction hides implementation details, allowing programmers to focus on
high-level concepts.
● Data abstraction describes data objects (e.g., "door"), while procedural
abstraction defines sequences of instructions (e.g., "open").
● Example: Data abstraction for a "door" includes attributes like type and swing
direction, while procedural abstraction for "open" involves a sequence of steps to
open a door.
2. Architecture:

● Architecture refers to the structure, interaction, and data organization of program


components.
● Structural, framework, dynamic, procedural, and function models represent
architectural design.
● Example: A structural model organizes program components, while a dynamic
model addresses behavioral changes.

3. Patterns:

● Design patterns solve specific design problems within a context.


● Designers use patterns to determine applicability, reusability, and guide
development.
● Example: A design pattern for authentication solves the problem of user
authentication in web applications.

4. Separation of Concerns:

● Separation of concerns subdivides complex problems into manageable pieces.


● Each concern is a feature specified in the software requirements model.
● Example: Separating user interface concerns from business logic in a web
application.

5. Modularity:

● Modularity divides software into separate modules integrated to meet


requirements.
● Modular design facilitates planning, development, testing, and maintenance.
● Example: Dividing an e-commerce website into modules for product
management, checkout, and user authentication.

6. Information Hiding:

● Information hiding ensures that module information is inaccessible to others.


● It enforces access constraints and improves modularity.
● Example: Hiding implementation details of a login module while providing only
necessary interfaces.
7. Functional Independence:

● Functional independence develops modules with single-minded functions.


● Cohesion and coupling are criteria used to assess independence.
● Example: A module for processing payments should perform only
payment-related tasks.

8. Refinement:

● Refinement elaborates on requirements or design, revealing low-level details.


● It helps designers refine the design as the process progresses.
● Example: Elaborating on initial user stories to include acceptance criteria and
edge cases.

9. Refactoring:

● Refactoring improves internal structure without altering external behavior.


● It eliminates redundancies and improves design quality.
● Example: Simplifying complex algorithms or restructuring data models for better
performance.

10. Object-Oriented Design Concepts:

● Object-oriented concepts like classes, inheritance, and polymorphism are widely


used.
● They help in organizing and modeling software systems effectively.
● Example: Using classes and inheritance to model real-world entities in an
e-commerce application.

11. Design Classes:

● Design classes refine analysis classes and provide design details for
implementation.
● They support the development of software infrastructure.
● Example: Defining classes for user authentication, product management, and
order processing in an e-commerce system.
5)Explain about the Interface Analysis, Design steps and Evolution.

ans) Interface analysis and design models encompass various aspects of


understanding user needs, designing interfaces, and evaluating their effectiveness. Let's
break down the key points discussed in the provided text:

1. User Model:
● A human engineer establishes a user model to understand the profile of
end users, including factors like age, gender, skills, and goals.
● Users are categorized into novices, knowledgeable intermittent users, and
knowledgeable frequent users based on their familiarity with the system
and usage patterns.
● The user's mental model refers to the image of the system that end users
carry in their heads, influencing their interaction with the interface.
2. Implementation Model:
● The implementation model combines the outward manifestation of the
computer-based system with supporting information like manuals and
help files.
● When the implementation model aligns with the user's mental model,
users generally feel comfortable and use the software effectively.
3. Interface Analysis and Design Process:
● The process begins with interface analysis and modeling, focusing on
user profiles, requirements elicitation, and task analysis.
● Interface design involves defining interface objects and actions to enable
users to perform tasks effectively while meeting usability goals.
● Interface construction starts with creating prototypes for evaluation and
may involve using interface toolkits for implementation.
● Interface validation assesses the interface's ability to implement tasks
correctly, its ease of use and learnability, and user acceptance.
4. Design Issues:
● Design issues arise in various areas such as interaction modes,
accessibility, internationalization, and localization.
● Examples include providing self-explanatory menu labels, accommodating
physically challenged users, and designing globalized software.
5. Design Evaluation:
● Evaluation of the interface can range from informal user feedback to
formal studies using statistical methods.
● The evaluation cycle involves creating prototypes, collecting user
feedback, making design modifications, and iterating until the interface
meets user needs.
● Evaluation criteria include factors like the complexity of requirements, the
number of user tasks, interface style, help facilities, and error handling.

Overall, interface analysis, design, and evaluation are iterative processes aimed at
creating user-friendly interfaces that meet the needs of diverse user groups and achieve
usability goals.

You might also like