Vous êtes sur la page 1sur 20

Lecture 5

Specialized Process
Models

Muhammad Noman
1
Specialized Process Models
 take on many of the characteristics of
one or more of the traditional models.
 these models tend to be applied when a
specialized or narrowly defined software
engineering approach is chosen.
 Component-Based Development
 The Formal Methods Model

2
Component-Based Development
 The component-based development model
incorporates many of the characteristics of the
spiral model. It is evolutionary in nature
demanding an iterative approach to the
creation of software.
 However, the component-based development
model constructs applications from
prepackaged software components.
 Modeling and construction activities begin with
the identification of candidate components.

3
Component-Based Development
 the component-based development model incorporates
the following steps (implemented using an evolutionary
approach):
1. Available component-based products are researched
and evaluated for the application domain in question.
2. Component integration issues are considered.
3. A software architecture is designed to accommodate
the components.
4. Components are integrated into the architecture.
5. Comprehensive testing is conducted to ensure proper
functionality.

. 4
Component-Based Development
 The component-based development model leads
to software reuse, and reusability provides
software engineers with a number of measurable
benefits.
 Your software engineering team can achieve a
reduction in development cycle time as well as a
reduction in project cost if component reuse
becomes part of your culture.

5
The Formal Methods Model

 The formal methods model encompasses a set of


activities that leads to formal mathematical
specification of computer software.
 Formal methods enable you to specify, develop,
and verify a computer-based system by applying a
rigorous, mathematical notation. A variation on this
approach, called cleanroom software engineering
is currently applied by some software development
organizations.

. 6
The Formal Methods Model

 They provide a mechanism for eliminating many of


the problems that are difficult to overcome using
other software engineering paradigms. Ambiguity,
incompleteness, and inconsistency can be
discovered and corrected more easily.
 When formal methods are used during design,
they serve as a basis for program verification and
therefore enable you to discover and correct errors
that might otherwise go undetected.

7
If formal methods can demonstrate
software correctness, why is it they
are not widely used?

 The development of formal models is currently


quite time consuming and expensive.
 Because few software developers have the
necessary background to apply formal methods,
extensive training is required.
 It is difficult to use the models as a communication
mechanism for technically unsophisticated
customers and correct errors that might otherwise
go undetected.

8
Chapter 3
Agile Development

9
What is “Agility”?
 A software requires change when the user’s requirement
is changed. “Agility” is the term in software engineering
that is related to change, that is effective (rapid and
adaptive) response to change.
 In order to response to change effectively there must be
effective communication between all the stakeholders.
stakeholders means all those people who are involved in
the development of a software, e.g. analyst, designer,
programmer and etc. In agility drawing the customer onto
the team that is working on the software is very necessary
and for that a team should be organized that includes all
the skilled and professional people so that it is in control
of the work performed.
10
What is “Agility”?
 Effective (rapid and adaptive) response to
change
 Effective communication among all stakeholders
 Drawing the customer onto the team
 Organizing a team so that it is in control of the
work performed
Yielding …
 Rapid, incremental delivery of software

11
The agile methods
 Focus of the software engineer should be on the
code instead of design
 Agility should be based on the interactive
approach to software development.
 The method of agility is intended to work on the
software efficiently and quickly and deliver the
project as early as possible because delivery of
the software in time helps the team to meet the
changing requirements.

12
An Agile Process
 Is driven by customer descriptions of what is
required (scenarios)
 Recognizes that plans are short-lived
 Develops software iteratively with a heavy
emphasis on construction activities
 Delivers multiple ‘software increments’
 Adapts as changes occur

13
Agility Principles - I
1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development.
Agile processes harness change for the customer's
competitive advantage.
3. Deliver working software frequently, from a couple of weeks to
a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily
throughout the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the
job done.
6. The most efficient and effective method of conveying
information to and within a development team is face–to–face
conversation.
14
Agility Principles - II
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a
constant pace indefinitely.
9. Continuous attention to technical excellence and good design
enhances agility.
10. Simplicity – the art of maximizing the amount of work not
done – is essential.
11. The best architectures, requirements, and designs emerge
from self–organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.

15
Human Factors
 Agile development focuses on the talents and skills of
individuals, molding the process to specific people and
teams. “the process molds to the needs of the people and
team, not the other way around”
 key traits must exist among the people on an agile team
and the team itself:
 Competence.
 Common focus.
 Collaboration.
 Decision-making ability.
 Fuzzy problem-solving ability.
 Mutual trust and respect.
 Self-organization. 16
Human Factors
 Competence.
In an agile development (as well as software engineering)
context, “competence” includes talent, specific software-
related skills, and overall knowledge of the process that the
team has chosen to apply.
Skill and knowledge of process can and should be taught to
all people who serve as agile team members

17
Human Factors
 Common focus.
Although members of the agile team may perform different
tasks and bring different skills to the project, all should be
focused on one goal.
 Collaboration.
Software engineering (regardless of process) is about
assessing, analyzing, and using information that is
communicated to the software team; creating information
and building information.
To accomplish these tasks, team members must
collaborate—with one another and all other
stakeholders. 18
Human Factors
 Decision-making ability.
Any good software team (including agile teams)
must be allowed the freedom to control its own destiny.
This implies that the team is given autonomy—decision-
making authority for both technical and
project issues
 Fuzzy problem-solving ability.
Software managers must recognize that the agile team will
continually have to deal with ambiguity.
 Mutual trust and respect.

19
Thank You

20

Vous aimerez peut-être aussi