Arid Agriculture University Software Engineering-I CS-452 Assignment - 2 Spring 2021

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

Arid Agriculture University

Software Engineering-I CS-452


Assignment -2 Spring 2021
Instructor: Zainab Mahmood
Total Marks: 10 Submission date: April 18, 2021.
Assignment is based of chapter 3 review questions. Students are advised complete the
assignment individually; plagiarized contents will lead to zero marks. Submit your
assignment in google classroom and ensure after uploading assignment you will clicked on
turned in.

Read the following questions carefully and briefly answer each question.

NAME: NISMA ASLAM ROLLNO# 19-ARID-2860


1. Provide three examples of software projects that would be amenable to
the waterfall model. Be specific.
Software projects that would be amenable to the waterfall model:
 A well-understood modification to an existing program
 A straightforward implementation of a numerical calculation or business rule, even if it is
complex
 A constrained enhancement to an existing program.
FOR EXAMPLE:
 The Waterfall model was used to develop enterprise applications like Customer
Relationship Management (CRM) systems.
 The software development arm of Toyota has been traditionally working with waterfall
models.
 The waterfall model is also used in banking.
2. Provide three examples of software projects that would be amenable to
the prototyping model. Be specific.
Software projects amenable to the prototyping model:
 Ones which involve human-machine interaction and/or heavy computer graphics
 Ones where results can easily be examined without real-time interaction (e.g. command-
driven systems using mathematical algorithms) i.e. not embedded software!
FOR EXAMPLE:
 1. Systems that contain human-machine interaction, such as an automated teller machine.
 2. If the developer is unsure of the efficiency of an algorithm. For example,
experimenting with different sorting algorithms in the data structure to see which one is
most efficient for the software.
 3. Experimenting the adaptability of an operating system. For example, prototyping
Android operating system on various phones such as HTC, Samsung, Motorola, etc.
Arid Agriculture University
Software Engineering-I CS-452
Assignment -2 Spring 2021
Instructor: Zainab Mahmood
3. What process adaptations are required if the prototype will evolve into
a deliverable system or product?
Process adaptations required if the prototype will evolve into a deliverable system /
product:
 More rigorous design rules and SQA procedures must be applied from the beginning
 The prototype must be designed with extensibility in mind and be implemented using a
programming environment that is amenable to production system development
 The prototype is initially a mechanism for identifying requirements, and then becomes
the framework for extensions that will cause it to evolve into a production system
4. Provide three examples of software projects that would be amenable to
the incremental model. Be specific.
Software projects amenable to the incremental model:
 A project that has significant functionality that must be delivered in a very tight time
frame (Add on extras later)
FOR EXAMPLE:
 Developing a web application.
 If staffing is unavailable and the customer wants to see progress of the project in a timely
 The increment model can be planned to manage technical risks. For example, a major
system might require the availability of new hardware that is under development and
whose delivery date is uncertain. It might be possible to plan early increments in a way
that avoids the use of this hardware, thereby enabling partial functionality to be delivered
to end userS without inordinate delay

5. As you move outward along the spiral process flow, what can you say
about the software that is being developed or maintained?
 The product moves towards a more complete state
 The level of abstraction at which work is performed is reduced (i.e. implementation-
specific work accelerates as we move further from the origin)
6. Is it possible to combine process models? If so, provide an example.
Yes, the process models can be combined, the process flow for each process vary
slightly,but all perform the same set of generic framework activities: communication,
planning, modeling, construction, and delivery/feedback.
7. Reread “The Manifesto/principles for Agile Software Development” at
the beginning of this chapter. Can you think of a situation in which one
or more of the four “values” could get a software team into trouble?
1. Individual and interactions over Process and Tools.
Arid Agriculture University
Software Engineering-I CS-452
Assignment -2 Spring 2021
Instructor: Zainab Mahmood
- It is the first value proposition of the manifesto. This tool should be used for capturing
requirements, version control, project planning, editing, file transfer etc
2. Working software over comprehensive documentation.
- This tells about the importance of documentation, which is often lacking in projects and
can cause problems.
3. Responding to change over a plan:
One situation in which one or more of the four "values" could get a software team into
trouble would be Responding to change over following a plan, In many situations, we no
longer are able to define Requirements fully before the project begins. Software engineers must
be agile enough to respond to a fluid business environment or else they might land up in trouble.
4. Customer Collaboration over Contract Negotiation:
The purpose of contract negotiation is to ensure that responsibilities and deliverables are clear,as
well as providing a framework for resolving issues should they arise. Relationship with the client
are able to resolve things amicably,a contract is more like an insurance policy should things go
wrong.

8. Describe agility (for software projects) in your own words.


Agility, for software projects, is the ability to rapidly adapt to the changes required during
any phase throughout the software development. For example, if a change is required
during a software project, instead of going through the traditional framework activities focusing
a large amount of time on the documentation/contract requirements during the planning/modeling
phase.An agile approach would respond swiftly to the changes provided by customer feedback
and deliver the working software as soon as possible.
9. . Why does an iterative process make it easier to manage change? Is
every agile process discussed in this chapter iterative? Is it possible to
complete a project in just one iteration and still be agile? Explain your
answers.
Every agile process discussed in this chapter is iterative. An iterative process makes it
easier to manage change because software increments (executable prototypes or portions
of an operational system) are delivered in short time periods, the customer evaluates the
software increment regularly, feedback is given to the software team, and adaptions are
made to accommodate the feedback. Since the increments are not complete there is more
flexibility to make changes in the "mini-project", as opposed to making changes to a
complete project. If all the requirements are well known at the beginning of the project,
there is a compatible design layout, and the principles of agility have been utilized, then it
is possible to complete the project in just one iteration.
Arid Agriculture University
Software Engineering-I CS-452
Assignment -2 Spring 2021
Instructor: Zainab Mahmood
10.Could each of the agile processes be described using the generic
framework activities noted in Chapter 2? Build a table that maps the
generic activities into the activities defined for each agile process.
The generic process framework can be applied to each agile process described in this
chapter. The table should list all agile process models across the first row and all generic
framework activities
• Communication
• Planning
• Modeling
• Construction
• Deployment.
11.Most agile process models recommend face-to-face communication. Yet
today, members of a software team and their customers may be
geographically separated from one another. Do you think this implies
that geographical separation is something to avoid? Can you think of
ways to overcome this problem?
Most agile process models recommend face-‐to-face communication. Yet today,members
of a software team and their customers may be geographically separated from one
another in that case Communication is the key, the consumer and developer should
constantly be communicating even if they are geographically separated, they can webtalk
or talk over the phone every now and then or write emails, use chatting as the, means or a
medium of conference call communication where 2 and more people can talk to each
other at the same time.
12.Describe the XP concepts of refactoring and pair programming in your
own words.
Pair Programming: It is an agile software development technique in which two
programmers work together at one workstation. One, the driver, writes code while the
other, the observer or navigator, reviews each line of code as it is typed in. The two
programmers switch roles frequently. While Reviewing, the observer also considers the
"strategic" direction of the work, coming up with ideas for improvements and likely future
problems to address. This is intended to free the driver to focus all of their attention on the
"tactical" aspects of completing the current task, using the observer as a safety net and guide.
Refactoring is a disciplined technique for restructuring an existing body of code, altering
its internal structure without changing its external behavior.
Its heart is a series of small behavior preserving transformations. Each transformation
(called a "refactoring") does little, but a sequence of these transformations can produce a
significant restructuring. Since each refactoring is small, it's less likely to go wrong. The
Arid Agriculture University
Software Engineering-I CS-452
Assignment -2 Spring 2021
Instructor: Zainab Mahmood
system is kept fully working after each refactoring, reducing the chances that a system
can get seriously broken during the restructuring.

You might also like