Vous êtes sur la page 1sur 3

TSE2231Software Engineering Fundamentals

Tutorial 2

Topic: Process Model and Agile Development (Lecture 2 & 3)

1. How important is a process pattern?


A process pattern is a group of proven steps, that complete a specific task or tasks,
and provide a consistently favorable result for a common problem. In other words,
they are a template for achieving your specific goal consistently.

2. Which of the software engineering paradigms presented in Lecture 2&3 do you think
would be the most effective?
Prototyping model, because the resulting software is usually more usable, user needs
are better accommodated and the resulting software is easier to maintain.

3. Is it possible to combine process models?


Yes, it is possible to combine process models. It is the spiral process model. This
model of development combines the features of the iterative model and one of the
SDLC model.

4. Identify the problems of waterfall model.


 Not suitable for accommodating changing during development
 Little opportunity for customer to preview the system during development
 All requirements of the system must be identified before development

5. Describe the phases of the prototyping model for software development.


 Starting with approximate requirements
 Carry out a quick design
 Prototype is built using several shortcuts using inefficient, inaccurate or dummy
functions
 After customer is satisfied with the prototype, the development continues till the
complete software is produced and implemented, and continue maintenance for
the software

6. Why are evolutionary models considered by many to be the best approach to software
development in a modern context?
 Users get a chance to experiment with a partially developed system
 Helps finding exact user requirements
 Core modules get tested thoroughly
 Training can start on an earlier release

Trimester 2, 2019/2020 Page 1


7. Discuss
a. V model
 The major drawback in waterfall model – move to next stage only
when previous one is finished
 It is a variant of the Waterfall Model
 Emphasizes verification and validation
 V&V are spread over the entire life cycle - at each stage in reverse
manner
 In every phase of development
o Testing activities are planned in parallel with development

b. Incremental Model
 Builds system incrementally
 Consists of a planned number of iterations
 Each iteration produces a working program

c. Evolutionary Model
 First develop the core modules of the software
 The initial software is refined into increasing levels of capability
(Iterations)
 By adding new functionalities in successive versions

d. Spiral Model
Spiral Model is a combination of both, iterative model and one of the
SDLC model
The team must decide – how to structure the project into phases
Each loop in the spiral is split into four sectors quadrants)
This model considers risk, which often goes un-noticed by most other
models

8. Is it possible for a good product to be produced by a bad software process, or vice


versa?
Bad software process may affect the planning process and requirements determination
of the software; Therefore, it is unlikely for a good product to be produced by a bad
software process.

9. List the key issues stressed by an agile philosophy of software engineering.


 It can be difficult to keep the interest of customers who are involved in the
process.
 Team members may be unsuited– need people with high skills
 Prioritising changes can be difficult where there are multiple stakeholders.
 Maintaining simplicity requires extra work.
 Contracts may be a problem as with other approaches to iterative development.

Trimester 2, 2019/2020 Page 2


10. Describe the role of customers and end-users on an agile process team?
Customers and end-users participate as full collaborators on agile process teams.
They are the source of information used to create use cases and provided needed
information on the business value of proposed software feature and functionality.

11. Why do requirements change so much? After all, don’t people know what they want?
Customer may not know what they want until they see the prototype of the software and
they will start to give their opinions on how to improve the software. Therefore,
prototyping and modeling and other things are encouraged so customer could see things
while developers are writing the requirements instead of making them wait until the
product is developed. Unforeseen problems such as budget cuts, changes in delivery
dates, problems during testing phases. Or maybe developers ignored certain requirements
at the early stages

12. Do a bit more reading and describe the concepts of refactoring and pair programming
in your own words.

Refactoring is the process of modifying a previously created software system without


changing its external behaviour. However, it does improve the internal structure. It
improves the design of the code after it has been written by removing redundancies,
unused design elements, unnecessary algorithms, inappropriate data structures and
minimizing the chances of introducing bugs.

Pair programming is an XP concept which recommends that two people work together at
the same workstation/ machine. One programmer acts as the driver who codes while the
other will serve as the observer who will check the code being written, proofread and
spell check it, while also figuring out where to go next. These roles can be switched at
any time: the driver will then become the observer and vice versa. This provides a
mechanism for real time problem solving as two people work together will be better than
a single person.

Trimester 2, 2019/2020 Page 3

Vous aimerez peut-être aussi