0% found this document useful (0 votes)
19 views

Chapter2 Sheet

Uploaded by

Eslam Esam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Chapter2 Sheet

Uploaded by

Eslam Esam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

CHAPTER TWO

1- What is the software process? What is software process


model?
Software process > a set of activities required to develop software.
Software process model > abstract representation for a process.
“Describes process from particular perspective.”
2- Mention some perspectives for the software process model.
• Specifying a data model.
• Designing a user interface.
• Products.
• Roles.
• Pre and post conditions.
3- What are the categories of software process?
1. Plan-driven: are processes where all of the process activities are
planned in advance and progress is measured against this plan.
2. Agile : planning is incremental and it is easier to change the
process to reflect changing customer requirements.
3. Hybrid : most processes include mixture of both types
4- Do you think that Agile is the most widely used process type?
Yes, I guess because in Agile planning is incremental and it is easier to
change the process to reflect changing customer requirements.
5- Mention some of software process models
• Waterfall : Plan-driven model. Separate and distinct phases of
specification and development.
• Incremental : Specification, development and validation are
interleaved. May be plan-driven or agile.
• Integration and configuration: The system is assembled from
existing configurable components. May be plan-driven or agile
6- Based on your understanding, what are the possible phased
of waterfall process model?
1. Requirements definition.
2. System and software design.
3. Implementation and unit testing.
4. Integration and system testing.
5. Operation and maintenance.

7- Do you think that waterfall model are no longer used? Why?


No, it uses when > the requirements are well understood, changes are
limited, and for large and critical systems.
8- What is incremental development 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.
9- Incremental software development could be very effectively
used for customers who do not have a clear idea about the
systems needed for their operations. Discuss!
Because it gives the customer the ability to change or modify his
requirement.
10- What are the possible activities of any software process
model?
1. Specification : The process of establishing what services are
required and the constraints on the system’s operation and
development.
2. Development : The process of converting the system specification
into an executable system.
- design : Design a software structure that realizes the specification
- Implementation : Translate this structure into an executable program
3. Validation: involves checking and review processes and system
testing.
4. Evolution : Software is inherently flexible and can change.
11- Based on your understanding, what is requirements
elicitation and analysis? Why it's so important in the
requirement engineering process?
It's a process of interacting with customers and end-users to find out
the requirements, what services the system should provide, and the
other constrains.
Requirement elicitation determines the success or failure of a project
and proper requirement elicitation is prerequisite for project success
and therefore, without complete, clear and consistent requirement
project is doomed to failure.

12- What are the possible documents produced from the


requirement engineering process?
The software requirements document “the official statement of what
is required of the system developers.” It contains both the user and
system requirements. It is NOT a design document. It should set of
WHAT the system should do rather than HOW it should do it.
13- Why it is important to make a distinction between
developing the user requirements and developing system
requirements in the requirements engineering process?
Because the user requirements written for the customers and it is
statements in natural language describe what the system does without
details, but the system requirements: structured document setting out
detailed descriptions of the system’s functions, services and
operational constraints.
14- What are the common design activities in software design
and implementation activity?
1. Architectural design : where you identify :
• the overall structure of the system,
• the principal components (subsystems or modules),
• their relationships and how they are distributed.
2. Database design: data representation in DB
3. Interface design : where you define the interfaces between
system components.
4. Component selection :
- search for reusable components. - design reusable components
15- Based on your understanding, mention the difference
between software verification and validation?
Verification > system meets its specs. “Are we building the
product right?”
Validation > meets the requirements of the customer. “Are we
building the right product?”
16- Explain why software testing should always be an
incremental, staged activity?
Because if it's done only at the end of development, there will be
so many errors.
And those stages are:
1. Component testing > individual components are tested
independently.
2. System testing > testing the whole system.
3. Customer testing > testing with customer data to check that
system meets the customer’s needs.
17- Are programmers the best people to test the programs
that they have developed? Discuss!
No, because it is very difficult to find errors and mistakes in their own
developed program. Thus, testing should be conducted by testers and
end users, so that, all possible errors can be found on easy bases.
18- What is the difference between component testing,
system testing and UAT (User Acceptance Testing)?
1. Component testing > individual components are tested
independently.
2. System testing > testing the whole system.
3. UAT > testing with customer data to check that system meets the
customer’s needs.
19- Based on your understating about software evolution and
requirement changes, how do you anticipate/tolerate with
changes? Discuss!
Change anticipation: where the software process includes activities
that can anticipate possible changes before significant rework is
required, It can be anticipated by :
• experience.
• Community trends.
• Similar products.
• Flexible architecture.
• System prototype for next project phase.
Change tolerance:
• Adopt process that welcomes changes at low costs.
• Incremental delivery.
20- Based on your understanding, what is software prototype?
Why is it used? What are the possible uses for it?
Prototype > is an initial version of a system used to demonstrate
concepts and try out design options.
Usage:
1. In requirements engineering process to help with requirements
elicitation and validation.
2. In design processes to explore options and develop a UI design.
3. In the testing process to run back-to-back tests.
21- Based on your understanding, what are the possible
steps/process you would follow to develop a prototype?
1. Establish prototype objectives.
2. Define prototype functionality.
3. Develop prototype.
4. Evaluate prototype.
22- [You have developed a prototype of a software system and
your manager is very impressed by it. He proposes that it
should be put into use as a production system! with new
features added as required. This avoids the expense of
system development and makes the system immediately
useful. Discuss with your manager explaining why prototype
systems should not normally be used as production systems.
] In other words: talk about throw-away prototypes.
1) Based on rapid prototyping languages or tools.
2) May involve leaving out functionality.
3) Focus on functional rather than non-functional requirements such
as reliability and security.
4) not a good basis for a production system
5) It may be impossible to tune the system to meet non-functional
requirements;
6) Prototypes are normally undocumented;
7) The prototype structure is usually degraded through rapid change;
8) The prototype probably will not meet normal organizational
quality standards.
23- Based on your understanding, what is incremental delivery
and development? What is the pros of using it?
Incremental delivery means that: Development and delivery are
broken down into increments, each increment delivering part of the
required functionality.
Pros:
1) Customer value can be delivered with each increment so system
functionality is available earlier.
2) Early increments act as a prototype to help elicit requirements
for later increments.
3) Get feedback early, adapt to changes afterwards  Lower risk of
overall project failure.
4) The highest priority system services tend to receive the most
testing.
24- Based on your understanding, why we need continuous
software process improvement? What is the role of SPI
engineer?
Why:
1. Enhancing software quality.
2. Cost reduction.
3. Development acceleration.
SPI role: understanding existing processes and changing these
processes to meet the items above.
25- What are the possible approaches for software process
improvements?
• CMM.
• Agile.
26- What are the major difference between CMM and Agile
approach for software process improvement?
CMM focuses on improving process and project management and
introducing good software engineering practice.
Agile focuses on iterative development and the reduction of overheads
in the software process.

You might also like