Software Engineering - Unit-1 PDF
Software Engineering - Unit-1 PDF
asia
SOFTWARE ENGINEERING
LECTURE NOTES
ON
SOFTWARE ENGINEERING
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
UNIT-I
INTRODUCTION TO SOFTWARE ENGINEERING
Software: Software is
(1) Instructions (computer programs) that provide desired features, function, and performance, when
executed
(2) Data structures that enable the programs to adequately manipulate information,
(3) Documents that describe the operation and use of the programs.
Characteristics of Software:
(1) Software is developed or engineered; it is not manufactured in the classical sense.
(2) Software does not “wear out”
(3) Although the industry is moving toward component-based construction, most software continues to
be custom built.
Software Engineering:
(1) The systematic, disciplined quantifiable approach to the development, operation and maintenance of
software; that is, the application of engineering to software.
(2) The study of approaches as in (1)
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
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
Later 1990s:
Yourdon reevaluated the prospects of the software professional and suggested “the rise and
resurrection” of the American programmer.
The impact of the Y2K “time bomb” was at the end of 20th century
2000s progressed:
Johnson discussed the power of “emergence” a phenomenon that explains what happens when
interconnections among relatively simple entities result in a system that “self-organizes to form
more intelligent, more adaptive behavior”.
Yourdon revisited the tragic events of 9/11 to discuss the continuing impact of global terrorism on
the IT community
Wolfram presented a treatise on a “new kind of science” that posits a unifying theory based
primarily on sophisticated software simulations
Daconta and his colleagues discussed the evolution of “the semantic web”.
Today a huge software industry has become a dominant factor in the economies of the industrialized world.
The 7 broad categories of computer software present continuing challenges for software engineers:
1) System software
2) Application software
3) Engineering/scientific software
4) Embedded software
5) Product-line software
6) Web-applications
7) Artificial intelligence software.
System software: System software is a collection of programs written to service other programs.
The systems software is characterized by
- heavy interaction with computer hardware
- heavy usage by multiple users
- concurrent operation that requires scheduling, resource sharing, and sophisticated process
management
- complex data structures
- multiple external interfaces
E.g. compilers, editors and file management utilities.
Application software:
- Application software consists of standalone programs that solve a specific business need.
- It facilitates business operations or management/technical decision making.
- It is used to control business functions in real-time
E.g. point-of-sale transaction processing, real-time manufacturing process control.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
Ubiquitous computing: The challenge for software engineers will be to develop systems and application
software that will allow small devices, personal computers and enterprise system to communicate across
vast networks.
Net sourcing: The challenge for software engineers is to architect simple and sophisticated applications
that provide benefit to targeted end-user market worldwide.
Open Source: The challenge for software engineers is to build source that is self descriptive but more
importantly to develop techniques that will enable both customers and developers to know what changes
have been made and how those changes manifest themselves within the software.
The “new economy”: The challenge for software engineers is to build applications that will facilitate mass
communication and mass product distribution.
SOFTWARE MYTHS
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.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
Customer myths: The customer believes myths about software because software managers and
practitioners do little to correct misinformation. Myths lead to false expectations and ultimately,
dissatisfaction with the developer.
Myth: A general statement of objectives is sufficient to begin with writing programs - we can fill in the
details later.
Reality: Although a comprehensive and stable statement of requirements is not always possible, an
ambiguous statement of objectives is recipe for disaster.
Myth: Project requirements continually change, but change can be easily accommodated because software
is flexible.
Reality: It is true that software requirements change, but the impact of change varies with the time at which
it is introduced and change can cause upheaval that requires additional resources and major design
modification.
Practitioner’s myths: Myths that are still believed by software practitioners: during the early days of
software, programming was viewed as an art from old ways and attitudes die hard.
Myth: Once we write the program and get it to work, our jobs are done.
Reality: Someone once said that the sooner you begin writing code, the longer it’ll take you to get done.
Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended
after it is delivered to the customer for the first time.
Myth: The only deliverable work product for a successful project is the working program.
Reality: A working program is only one part of a software configuration that includes many elements.
Documentation provides guidance for software support.
Myth: software engineering will make us create voluminous and unnecessary documentation and will
invariably slows down.
Reality: software engineering is not about creating documents. It is about creating quality. Better quality
leads to reduced rework. And reduced rework results in faster delivery times.
Tools
Methods
Process
A quality focus
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
Software engineering is a layered technology. Any engineering approach must rest on an organizational
commitment to quality. The bedrock that supports software engineering is a quality focus.
The foundation for software engineering is the process layer. Software engineering process is the glue that
holds the technology layers. Process defines a framework that must be established for effective
delivery of software engineering technology.
The software forms the basis for management control of software projects and establishes the context
in which
- technical methods are applied,
- work products are produced,
- milestones are established,
- quality is ensured,
- And change is properly managed.
Software engineering methods rely on a set of basic principles that govern area of the technology and
include modeling activities.
Software engineering tools provide automated or semi automated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by another, a
system for the support of software development, called computer-aided software engineering, is
established.
A 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 size or 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.
- Each s/w engineering action (e.g., design) has
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
work tasks
project milestones.
Software process
Process framework
Umbrella activities
Framework activity #1
Work tasks
Software engineering action Task sets
Work products
Quality assurance points
Project milestones
Framework activity #n
Work tasks
Work products
Software engineering action Quality assurance points
Project milestones
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
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.
These 5 generic framework activities can be used during the development of small programs, the creation
of large web applications, and for the engineering of large, complex computer-based systems.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
5) Measurement - define and collects process, project and product measures that assist the team in
delivering software that needs customer’s needs, can be used in conjunction with all other
framework and umbrella activities.
6) Software configuration management - manages the effects of change throughout the software
process.
7) Reusability management - defines criteria for work product reuse and establishes mechanisms to
achieve reusable components.
8) Work Product preparation and production - encompasses the activities required to create work
products such as models, document, logs, forms and lists.
Intelligent application of any software process model must recognize that adaption is essential for success
but process models do differ fundamentally in:
The overall flow of activities and tasks and the interdependencies among activities and tasks.
The degree through which work tasks are defined within each frame work activity.
The degree through which work products are identified and required.
The manner which quality assurance activities are applied.
The manner in which project tracking and control activities are applied.
The overall degree of the detailed and rigor with which the process is described.
The degree through which the customer and other stakeholders are involved with the project.
The level of autonomy given to the software project team.
The degree to which team organization and roles are prescribed.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
The CMMI defines each process area in terms of “specific goals” and the “specific practices” required to
achieve these goals. Specific practices refine a goal into a set of process-related activities.
The specific goals (SG) and the associated specific practices(SP) defined for project planning are
SG 1 Establish estimates
SP 1.1 Estimate the scope of the project
SP 1.2 Establish estimates of work product and task attributes
SP 1.3 Define project life cycle
SP 1.4 Determine estimates of effort and cost
SG 2 Develop a Project Plan
SP 2.1 Establish the budget and schedule
SP 2.2 Identify project risks
SP 2.3 Plan for data management
SP 2.4 Plan for needed knowledge and skills
SP 2.5 Plan stakeholder involvement
SP 2.6 Establish the project plan
SG 3 Obtain commitment to the plan
SP 3.1 Review plans that affect the project
SP 3.2 Reconcile work and resource levels
SP 3.3 Obtain plan commitment
In addition to specific goals and practices, the CMMI also defines a set of five generic goals and related
practices for each process area. Each of the five generic goals corresponds to one of the five capability
levels. Hence to achieve a particular capability level, the generic goal for that level and the generic
practices that correspond to that goal must be achieved. To illustrate, the generic goals (GG) and
practices (GP) for the project planning process area are
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
PROCESS PATTERNS
The software process can be defined as a collection patterns that define a set of activities, actions,
work tasks, work products and/or related behaviors required to develop computer software.
A process pattern provides us with a template- a consistent method for describing an important
characteristic of the software process. A pattern might be used to describe a complete process and a task
within a framework activity.
Pattern Name: The pattern is given a meaningful name that describes its function within the software
process.
Initial Context: The conditions under which the pattern applies are described prior to the initiation of the
pattern, we ask
(1) What organizational or team related activities have already occurred.
(2) What is the entry state for the process
(3) What software engineering information or project information already exists
Resulting Context: The conditions that will result once the pattern has been successfully implemented are
described. Upon completion of the pattern we ask
(1) What organizational or team-related activities must have occurred
(2) What is the exit state for the process
(3) What software engineering information or project information has been developed?
Known Uses: The specific instances in which the pattern is applicable are indicated
Process patterns provide and effective mechanism for describing any software process.
The patterns enable a software engineering organization to develop a hierarchical process description that
begins at a high-level of abstraction.
Once process pattern have been developed, they can be reused for the definition of process variants-that is,
a customized process model can be defined by a software team using the pattern as building blocks for the
process models.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
PROCESS ASSESSMENT
The existence of a software process is no guarantee that software will be delivered on time, that it
will meet the customer’s needs, or that it will exhibit the technical characteristics that will lead to long-term
quality characteristics. In addition, the process itself should be assessed to be essential to ensure that it
meets a set of basic process criteria that have been shown to be essential for a successful software
engineering.
Software
Software
Lead
Software Capability
Motivat
A Number of different approaches to software process assessment have been proposed over the past few
decades.
Standards CMMI Assessment Method for Process Improvement (SCAMPI) provides a five step
process assessment model that incorporates initiating, diagnosing, establishing, acting & learning. The
SCAMPI method uses the SEI CMMI as the basis for assessment.
CMM Based Appraisal for Internal Process Improvement (CBA IPI) provides a diagnostic technique
for assessing the relative maturity of a software organization, using the SEI CMM as the basis for the
assessment.
SPICE (ISO/IEC15504) standard defines a set of requirements for software process assessments. The
intent of the standard is to assist organizations in developing an objective evaluation of the efficacy of any
defined software process.
ISO 9001:2000 for Software is a generic standard that applies to any organization that wants to improve
the overall quality of the products, system, or services that it provides. Therefore, the standard is directly
applicable to software organizations &companies.
The best software process is one that is close to the people who will be doing the work.Each software
engineer would create a process that best fits his or her needs, and at the same time meets the broader needs
of the team and the organization. Alternatively, the team itself would create its own process, and at the
same time meet the narrower needs of individuals and the broader needs of the organization.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
The PSP process model defines five framework activities: planning, high-level design, high level design
review, development, and postmortem.
Planning: This activity isolates requirements and, base on these develops both size and resource estimates.
In addition, a defect estimate is made. All metrics are recorded on worksheets or templates. Finally,
development tasks are identified and a project schedule is created.
High level design: External specifications for each component to be constructed are developed and a
component design is created. Prototypes are built when uncertainty exists. All issues are recorded and
tracked.
High level design review: Formal verification methods are applied to uncover errors in the design. Metrics
are maintained for all important tasks and work results.
Development: The component level design is refined and reviewed. Code is generated, reviewed,
compiled, and tested. Metrics are maintained for all important task and work results.
Postmortem: Using the measures and metrics collected the effectiveness of the process is determined.
Measures and metrics should provide guidance for modifying the process to improve its effectiveness.
PSP stresses the need for each software engineer to identify errors early and, as important, to understand
the types of errors that he is likely to make.
Team software process (TSP): The goal of TSP is to build a “self-directed project team that organizes
itself to produce high-quality software. The following are the objectives for TSP:
Build self-directed teams that plan and track their work, establish goals, and own their processes
and plans. These can be pure software teams or integrated product teams(IPT) of 3 to about 20
engineers.
Show managers how to coach and motivate their teams and how to help them sustain peak
performance.
Accelerate software process improvement by making CMM level 5 behavior normal and expected.
Provide improvement guidance to high-maturity organizations.
Facilitate university teaching of industrial-grade team skills.
A self-directed team defines
- roles and responsibilities for each team member
- tracks quantitative project data
- identifies a team process that is appropriate for the project
- a strategy for implementing the process
- defines local standards that are applicable to the teams software engineering work;
- continually assesses risk and reacts to it
- Tracks, manages, and reports project status.
-
TSP defines the following framework activities: launch, high-level design, implementation, integration and
test, and postmortem.
TSP makes use of a wide variety of scripts, forms, and standards that serve to guide team members in their
work.
Scripts define specific process activities and other more detailed work functions that are part of the team
process.
Each project is “launched” using a sequence of tasks.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
PROCESS MODELS
Prescriptive 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.
Advantage:
It can serve as a useful process model in situations where requirements are fixed and work is to
proceed to complete in a linear manner.
The problems that are sometimes encountered when the waterfall model is applied are:
1. Real projects rarely follow the sequential flow that the model proposes. Although the linear model
can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the
project team proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall model
requires this and has difficulty accommodating the natural uncertainty that exist at the beginning
of many projects.
3. The customer must have patience. A working version of the programs will not be available until
late in the project time-span. If a major blunder is undetected then it can be disastrous until the
program is reviewed.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
increment # n
C o m m u n ic a t io n
P la n n i ng
M o d e lin g
a n a ly s i s Co n s t ru c t i o n
d e s ig n
code De p l o y m e n t
test d e li v e r y
fe e d b a c k
deliv ery of
nt h increment
increment # 2
Co m m u n ic a t i o n
Pl a n n in g
M o d e l in g
analysis C o n s t r c t io n
design code D e p l o y m e n t
test d e l iv e r y
f e e d b a ck
deliv ery of
increment # 1 2nd increment
Co m m u n ic a t i on
Pl a n n in g
M o d e li n g
analysi
C o n s t ru c t i o n
sdesign code D e p l o y m e n t
test d e l iv e r y deliv ery of
fe e d b a c k
1st increment
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.
Difference: The incremental process model, like prototyping and other evolutionary approaches,
is iterative in nature. But unlike prototyping, the incremental model focuses on delivery of an operational
product with each increment
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
Team # n
M o d e lin g
business m odeling
dat a m odeling
process m odeling
Co n st ru ct io n
com ponent reuse
Team # 2 autom at ic code
Communicat ion generation
test ing
Mo d eling
business m odeling
dat a m odeling
process m odeling
Planning
Co nst ruct io n De ployme nt
Team # 1 com ponent reuse
int egrat ion
aut om at ic code
generat ion t
deliv ery
Mode ling est ing feedback
business modeling
dat a modeling
process modeling
6 0 - 9 0 days
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.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
PROTOTYPING:
Prototyping is more commonly used as a technique that can be implemented within the context of anyone
of the process model.
The prototyping paradigm begins with communication. The software engineer and customer meet and
define the overall objectives for the software, identify whatever requirements are known, and outline areas
where further definition is mandatory.
Prototyping iteration is planned quickly and modeling occurs. The quick design leads to the construction of
a prototype. The prototype is deployed and then evaluated by the customer/user.
Iteration occurs as the prototype is tuned to satisfy the needs of the customer, while at the same time
enabling the developer to better understand what needs to be done.
Qu ick p lan
Mo d e lin g
Qu ick d e sig n
Deployment
De live r y
Const ruct ion
& Fe e dback
of
prot ot ype
Context:
If a customer defines a set of general objectives for software, but does not identify detailed input,
processing, or output requirements, in such situation prototyping paradigm is best approach.
If a developer may be unsure of the efficiency of an algorithm, the adaptability of an operating
system then he can go for this prototyping method.
Advantages:
The prototyping paradigm assists the software engineer and the customer to better understand what is
to be built when requirements are fuzzy.
The prototype serves as a mechanism for identifying software requirements. If a working prototype is
built, the developer attempts to make use of existing program fragments or applies tools.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
demonstrate capability. After a time, the developer may become comfortable with these choices
and forget all the reasons why they were inappropriate. The less-than-ideal choice has now
become an integral part of the system.
The spiral model, originally proposed by Boehm, is an evolutionary software process model that
couples the iterative nature of prototyping with the controlled and systematic aspects of the
waterfall model.
The spiral model can be adapted to apply throughout the entire life cycle of an application, from
concept development to maintenance.
Using the spiral model, software is developed in a series of evolutionary releases. During early
iterations, the release might be a paper model or prototype. During later iterations, increasingly
morecomplete versions of the engineered system are
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery
code
feedback test
produced.
Anchor point milestones- a combination of work products and conditions that are attained along
the path of the spiral- are noted for each evolutionary pass.
The first circuit around the spiral might result in the development of product specification;
subsequent passes around the spiral might be used to develop a prototype and then progressively
more sophisticated versions of the software.
Each pass through the planning region results in adjustments to the project plan. Cost and schedule
are adjusted based on feedback derived from the customer after delivery. In addition, the project
manager adjusts the planned number of iterations required to complete the software.
It maintains the systematic stepwise approach suggested by the classic life cycle but incorporates it
into an iterative framework that more realistically reflects the real world.
The first circuit around the spiral might represent a “concept development project” which starts
at the core of the spiral and continues for multiple iterations until concept development is
complete.
If the concept is to be developed into an actual product, the process proceeds outward on the spiral
and a “new product development project” commences.
Later, a circuit around the spiral might be used to represent a “product enhancement project.” In
essence, the spiral, when characterized in this way, remains operative until the software is retired.
Context: The spiral model can be adopted to apply throughout the entire life cycle of an application, from
concept development to maintenance.
Advantages:
It provides the potential for rapid development of increasingly more complete versions of the software.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
The spiral model is a realistic approach to the development of large-scale systems and software. The spiral
model uses prototyping as a risk reduction mechanism but, more importantly enables the developer to apply
the prototyping approach at any stage in the evolution of the product.
Draw Backs:
The spiral model is not a panacea. It may be difficult to convince customers that the evolutionary approach
is controllable. It demands considerable risk assessment expertise and relies on this expertise for success. If
a major risk is not uncovered and managed, problems will undoubtedly occur.
none
Await ing
changes
Under review
Under
revision
Baselined
Done
The activity modeling may be in anyone of the states noted at any given time. Similarly, other
activities or tasks can be represented in an analogous manner. All activities exist concurrently but reside in
different states.
Any of the activities of a project may be in a particular state at any one time:
- under development
- awaiting changes
- under revision
- under review
In a project the communication activity has completed its first iteration and exists in the awaiting
changes state. The modeling activity which existed in the none state while initial communication was
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
completed, now makes a transition into the under development state. If, however, the customer indicates
that changes in requirements must be made, the modeling activity moves from the under development
state into the awaiting changes state.
The concurrent process model defines a series of events that will trigger transitions from state to
state for each of the software engineering activities, actions, or tasks.
The event analysis model correction which will trigger the analysis action from the done state into
the awaiting changes state.
Context: The concurrent model is often more appropriate for system engineering projects where different
engineering teams are involved.
Advantages:
The concurrent process model is applicable to all types of software development and provides an
accurate picture of the current state of a project.
It defines a network of activities rather than each activity, action, or task on the network exists
simultaneously with other activities, action and tasks.
A FINAL COMMENT ON EVOLUTIONARY PROCESSES:
A BRIEF HISTORY:
During the 1980s and into early 1990s, object-oriented (OO) methods and programming languages
gained a widespread audience throughout the software engineering community. A wide variety of object-
oriented analysis (OOA) and design (OOD) methods were proposed during the same time period.
During the early 1990s James Rumbaugh, Grady Booch, and Ival Jacobsom began working on a
“Unified method” that would combine the best features of each of OOD & OOA. The result was UML- a
unified modeling language that contains a robust notation fot the modeling and development of OO
systems.
By 1997, UML became an industry standard for object-oriented software development. At the
same time, the Rational Corporation and other vendors developed automated tools to support UML
methods.
Over the next few years, Jacobson, Rumbugh, and Booch developed the Unified process, a
framework for object-oriented software engineering using UML. Today, the Unified process and UML are
widely used on OO projects of all kinds. The iterative, incremental model proposed by the UP can and
should be adapted to meet specific project needs.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
The inception phase of the UP encompasses both customer communication and planning
activities. By collaborating with the customer and end-users, business requirements for the software are
identified, a rough architecture for the system is proposed and a plan for the iterative, incremental nature of
the ensuing project is developed.
The elaboration phase encompasses the customer communication and modeling activities of the
generic process model. Elaboration refines and expands the preliminary use-cases that were developed as
part of the inception phase and expands the architectural representation to include five different views of
the software- the use-case model, the analysis model, the design model, the implementation model, and the
deployment model.
The construction phase of the UP is identical to the construction activity defined for the generic
software process. Using the architectural model as input, the construction phase develops or acquires the
software components that will make each use-case operational for end-users. To accomplish this, analysis
and design models that were started during the elaboration phase are completed to reflect the final version
of the software increment.
The transition phase of the UP encompasses the latter stages of the generic construction activity
and the first part of the generic deployment activity. Software given to end-users for beta testing, and user
feedback reports both defects and necessary changes.
The production phase of the UP coincides with the deployment activity of the generic process.
During this phase, the on-going use of the software is monitored, support for the operating environment is
provided, and defect reports and requests for changes are submitted and evaluated.
Elaborat ion
Incept ion
product ion
A software engineering workflow is distributed across all UP phases. In the context of UP, a workflow is
analogous to a task set. That is, a workflow identifies the tasks required to accomplish an important
software engineering action and the work products that are produced as a consequence of successfully
completing the tasks.
During the inception phase, the intent is to establish an overall “vision” for the project,
- identify a set of business requirements,
- make a business case for the software, and
- define project and business risks that may represent a threat to success.
jntuworldupdates.org Specworld.in
Smartzworld.com Smartworld.asia
SOFTWARE ENGINEERING
The most important work product produced during the inception is the use-case modell-a collection of
use-cases that describe how outside actors interact with the system and gain value from it. The use-case
model is a collection of software features and functions by describing a set of preconditions, a flow of
events and a set of post-conditions for the interaction that is depicted.
The use-case model is refined and elaborated as each UP phase is conducted and serves as an
important input for the creation of subsequent work products. During the inception phase only 10 to 20
percent of the use-case model is completed. After elaboration, between 80 to 90 percent of the model has
been created.
The elaboration phase produces a set of work products that elaborate requirements and produce
and architectural description and a preliminary design. The UP analysis model is the work product that
is developed as a consequence of this activity. The classes and analysis packages defined as part of the
analysis model are refined further into a design model which identifies design classes, subsystems, and
the interfaces between subsystems. Both the analysis and design models expand and refine an evolving
representation of software architecture. In addition the elaboration phase revisits risks and the project
plan to ensure that each remains valid.
The construction phase produces an implementation model that translates design classes into
software components into the physical computing environment. Finally, a test model describes tests
that are used to ensure that use cases are properly reflected in the software that has been constructed.
The transition phase delivers the software increment and assesses work products that are
produced as end-users work with the software. Feedback from beta testing and qualitative requests for
change is produced at this time.
Inception phase
Elaboration phase
Vision document
Init ial use-case model
Init ial project glossary Construct ion phase
Use-case model
Init ial business case Supplement ary requirement s
Init ial risk assessment . including non-funct ional Transition phase
Design model
Project plan, Analy sis model Soft ware component s
phases and it erat ions. Soft ware archit ect ure Int egrat ed soft ware Deliv ered soft ware increment
Business model, Descript ion. increment Bet a t est report s
if necessary . Execut able archit ect ural Test plan and procedure General user feedback
One or more prot ot ypes prot ot ype. Test cases
Preliminary design model Support document at ion
Revised risk list user manuals
Project plan including inst allat ion manuals
it erat ion plan descript ion of current
adapt ed workflows increment
milest ones
t echnical work product s
Preliminary user manual
jntuworldupdates.org Specworld.in