OOSE Unit1
OOSE Unit1
PART A
1. What is software engineering? (Nov /Dec 2013) (Or) Write the IEEE definition of
software engineering. ( Nov /Dec 2017) Define: Software Engineering. (April/May 2019)
The application of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the application of engineering to software.
Evolution
8. What are the umbrella activities of a software process? (Nov/Dec 2018)
Software project tracking and control.
Risk management.
Software Quality Assurance.
Formal Technical Reviews.
Software Configuration Management.
Work product preparation and production.
Reusability management.
Measurement.
19. Write down the generic framework that is applicable to any software project. (Or) List out
the five activities of a generic process framework for software engineering. (Nov/Dec 2021)
Communication
Planning
Modeling
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Construction
Development
22. Is it always possible to realize the win-win spiral model for Software? Justify.
No, In reality customer and developers undergo through the process of negotiation.
Successful negotiation occurs when both the sides WIN.
Customer’s WIN means- Obtaining the system that satisfies most of the needs.
Developer’s WIN means- Getting the work done with realistic and achievable
budgets and deadlines.
In WIN-WIN spiral model negotiation activities are carried out at the beginning of each pass
of the spiral.
23. What is the potential advantage of adhering to life cycle models of software?
The primary goal of life cycle model is to develop software in a systematic and
disciplined manner.
Simplicity
Easier to line up the resources with the appropriate skill sets
36. What led to the transition from product oriented development to process oriented
development? May/June 2016
During the last decade process oriented software quality management was considered the
successful paradigm of developing quality software.
But the constant pace of change in the IT world brought up new challenges demanding
for a different model of software development.
Product orientation is described as an alternative to process orientation, which is
specifically adapted to some of those new challenges.
Both development models are adapted to different environments or development tasks.
And they are based on different concepts of product quality and quality management.
38. If you have to develop a word processing software product, what process models will
you chooses? (Nov/Dec 2016, Apr/May 2018)
RAD (Rapid Application Development) model is used to develop a word processing
software product because it is needed to modify the previous version of word-processing
software.
As Rapid Application Development is linear sequential software development process
model that emphasizes an extremely short development cycle.
39. Depict the relationship between Work product, task, activity and System. (Nov/Dec
2016, Apr/May 2017)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
40. Write the Process framework and Umbrella activities. (April/May 2015)
A process framework establishes the foundation for a complete software engineering
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 are:
Software project tracking and control
Risk management
Software quality assurance
A technical review—assesses software
Measurement
Software configuration management
Reusability management
Work product preparation and production
In addition, the process framework encompasses a set of umbrella activities that are
applicable across the entire software process. The umbrella activities are:
Communication
Planning
Modeling
Construction
Deployment
41. What are the pros and cons of Iterative software development models? (Nov/Dec 2015)
Pros of Iterative Software development model:
Potential defects are spotted and dealt with early
Functional prototypes are developed early in the project life cycle
Less time is spent on documenting and more on designing
Progress is easily measured
Changes to project scope are less costly and easier to implement
Cons of Iterative Software development model:
More resources may be required
Each successive phase is rigid with no overlaps
The need for more intensive project management may be required
It may be difficult to pin down an end date for the project conclusion
Highly skilled talent is required for risk analysis
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
42. List two deficiencies in waterfall model. Which process model do you suggest to
overcome each deficiency?
Real projects rarely follow a sequential flow. To overcome this, spiral model can be used.
The customer has to state all requirements explicitly. To overcome this prototyping
model can be used.
Working version of the program appears late in the project. To overcome this deficiency
RAD model can be used.
Throughout the project business people and developers work together on daily basis.
Projects are created around motivated people if they are given the proper environment
and support.
Face to face interaction is the most efficient method of moving information in the
development team.
Primary measure of progress is working software.
Agile process helps in sustainable development.
Continuous attention to technical excellence and good design increases agility.
From self organizing teams the best architecture, design and requirements are emerged.
Simplicity is necessary in development.
Depends heavily on customer interaction, so if customer is not clear, team can be driven
in the wrong direction.
Software engineering methods provide the technical how-to’s for building software.
56. State the difference between agile and waterfall (Traditional SDLC) methodology.
58. What are the advantages/merits and disadvantages/demerits of using formal methods
for developing a software? (Nov/Dec 2018)
Advantages/Merits:
1. Discovers ambiguity, incompleteness, and inconsistency in the software.
2. Offers defect-free software.
3. Incrementally grows in effective solution after each iteration.
4. This model does not involve high complexity rate.
5. Formal specification language semantics verify self-consistency.
Disadvantages/Demerits:
1. Time consuming and expensive.
2. Difficult to use this model as a communication mechanism for non technical personnel.
3. Extensive training is required since only few developers have the essential knowledge to
implement this model.
Feature-driven development
Scrum
Extreme programming (XP)
Lean development
Unified process
61. Draw the flow diagram of Iterative process flow and parallel flow. (Nov/Dec 2021)
PART B
System software.
Business software.
Real-time software.
Engineering and scientific software.
Embedded software.
Personal computer software.
Web-based software.
Artificial intelligence software.
Legacy Software
Legacy software systems were developed decades ago and have been continually modified
to meet changes in business requirements and computing platforms. The increase of such systems
is causing headaches for large organizations who find them costly to maintain and risky to evolve.
Software Engineering
The IEEE has developed a more comprehensive definition when it states: Software
Engineering:
(1) The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software; that is, the application of engineering to
software.
Software engineering is the establishment and use of sound engineering principles in order to
obtain economically software that is reliable and works efficiently on real machines.
Software engineering is a layered technology. Referring to Figure 1.1, any engineering approach
(including software engineering) must rest on an organizational commitment to quality.
In general, umbrella activities are applied throughout a software project and help a software
team manage and control progress, quality, change, and risk. Typical umbrella activities
include:
Software project tracking and control—allows the software team to assess progress
against the project plan and take any necessary action to maintain the schedule.
Risk management—assesses risks that may affect the outcome of the project or the quality
of the product.
Measurement—defines and collects process, project, and product measures that assist the
team in delivering software that meets stakeholders’ needs; can be used in conjunction
with all other framework and umbrella activities.
A number of different approaches to software process assessment and improvement have been
proposed over the past few decades:
Example:
Discuss about their necessity in maintaining the quality in both software process and
product that is being developed for railway reservation system.
A separate organization was considered better suited to take up all computer activities on IR
(Indian railways) mainly for the following reasons:
To avoid duplication of efforts by individual Railways.
To insulate the organization from day to day working of the Railways so that its objectives
are not lost sight of.
Need for a combined effort of Railways and Computer Specialists, considered best suited
for the development of the computer applications on Railways.
Need for development of expertise in highly specialized fields like Operation Research,
Simulation, Expert System, CAD/CAM, Process Control etc.
Need for greater flexibility to keep pace with the fast changing technology.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
2. Explain the Iterative waterfall and Incremental model of Software life cycle models
and discuss various activities in each phase.(Nov/Dec ’12) (Or) Describe the type of
situations where iterative enhancement model might lead to difficulties (Or)
Elucidate the key features of the software process models with suitable examples.
What is the role of user participation in the selection of a life cycle model? (or) List
out the various perspective process model available in software development, with
appropriate diagram, discuss any two prescriptive process model in detail (Nov/Dec
2021)
The waterfall model, sometimes called the classic life cycle, suggests a systematic,
sequential approach to software development that begins with customer specification of
requirements and progresses through planning, modeling, construction, and deployment,
culminating in ongoing support of the completed software (Refer Figure 1.3).
Once code has been generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate each of the models
created as the team moved down the left side.
The problems that are encountered when the waterfall model is applied are:
Real projects rarely follow the sequential flow that the model proposes.
The linear model can accommodate iteration, it does so indirectly. As a result, changes
can cause confusion as the project team proceeds.
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 exists at
the beginning of many projects.
The customer must have patience. A working version of the program(s) will not be
available until late in the project time span. A major blunder, if undetected until the
working program is reviewed, can be disastrous.
Today, software work is fast-paced and subject to a never-ending stream of changes (to
features, functions, and information content). The waterfall model is often inappropriate
for such work. However, it can serve as a useful process model in situations where
requirements are fixed and work is to proceed to completion in a linear manner.
Advantages:
Simple and easy to use.
Easy to manage due to the rigidity of the model – each phase has specific deliverables
and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Disadvantages:
Adjusting scope during the life cycle can kill a project
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Poor model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Poor model where requirements are at a moderate to high risk of changing.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The incremental model combines elements of linear and parallel process flows. Referring
to Figure 1.5, the incremental model applies linear sequences in a staggered fashion as
calendar time progresses.
Each linear sequence produces deliverable “increments” of the software in a manner that is
similar to the increments produced by an evolutionary process flow.
When an incremental model is used, the first increment is often a core product. That is, basic
requirements are addressed but many supplementary features (some known, others unknown)
remain undelivered. The core product is used by the customer (or undergoes detailed
evaluation).
As a result of use and/or evaluation, 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.
The incremental process model focuses on the delivery of an operational product with each
increment. Early increments are stripped-down versions of the final product, but they do
provide capability that serves the user and also provide a platform for evaluation by the user.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
3. Write short notes on Evolutionary Software process models. (Or) Discuss the
prototyping model. What is the effect of designing a prototype on the overall cost of
the software project? (May/June 2016)
Prototyping model
Spiral model
Prototyping model
The prototyping paradigm (Figure 1.6) begins with communication.
Meeting with other stakeholders to 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 (in the form of a “quick design”)
occurs.
A quick design focuses on a representation of those aspects of the software that will be
visible to end users (e.g., human interface layout or output display formats).
The quick design leads to the construction of a prototype. The prototype is deployed and
evaluated by stakeholders, who provide feedback that is used to further refine
requirements.
Iteration occurs as the prototype is tuned to satisfy the needs of various stakeholders, while
at the same time enabling you to better understand what needs to be done.
Ideally, the prototype serves as a mechanism for identifying software requirements. If a
working prototype is to be built, you can make use of existing program fragments or apply
tools (e.g., report generators and window managers) that enable working programs to be
generated quickly.
The prototype can serve as “the first system”.
Some prototypes are built as “throwaways,” others are evolutionary in the sense that the
prototype slowly evolves into the actual system.
o Unaware that in the rush to get it working you haven’t considered overall
software quality or long-term maintainability.
Prototyping can be an effective paradigm for software engineering. All stakeholders should
agree that the prototype is built to serve as a mechanism for defining requirements. It is
then discarded (at least in part), and the actual software is engineered with an eye toward
quality.
It provides the potential for rapid development of increasingly more complete versions of
the software. Using the spiral model, software is developed in a series of evolutionary
releases.
During early iterations, the release might be a model or prototype. During later iterations,
increasingly more complete versions of the engineered system are produced.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The first circuit around the spiral might represent a “concept development project” that
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. The new product will
evolve through a number of iterations around the spiral.
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.
The spiral model is a realistic approach to the development of large-scale systems and
software.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The spiral model uses prototyping as a risk reduction mechanism but, more important,
enables you to apply the prototyping approach at any stage in the evolution of the product.
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 spiral model demands a direct consideration of technical risks at all stages of the
project and, if properly applied, should reduce risks before they become problematic.
Advantages:
High amount of risk analysis
Good for large and mission-critical projects.
Software is produced early in the software life cycle.
Disadvantages:
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk analysis phase.
Concurrent Models
The concurrent development model, sometimes called concurrent engineering, allows a
software team to represent iterative and concurrent elements of any of the process models.
For example, the modeling activity defined for the spiral model is accomplished by
invoking one or more of the following software engineering actions: prototyping, analysis,
and design.
Figure 1.8 provides a schematic representation of one software engineering activity within
the modeling activity using a concurrent modeling approach.
The activity—modeling—may be in any one of the states noted at any given time.
For example, early in a project the communication activity (not shown in the figure) has
completed its first iteration and exists in the awaiting changes state.
The modeling activity which existed in the inactive state while initial communication was
completed, now makes a transition into the under development state.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
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.
Concurrent modeling defines a series of events that will trigger transitions from state to
state for each of the software engineering activities, actions, or tasks.
For example, during early stages of design, an inconsistency in the requirements model is
uncovered. This generates the event analysis model correction, which will trigger the
requirements analysis action from the done state into the awaiting changes state.
Rather than confining software engineering activities, actions, and tasks to a sequence of
events, it defines a process network.
The People
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The “people factor” is so important that the Software Engineering Institute has developed
a People Capability Maturity Model (People-CMM).
The people capability maturity model defines the following key practice areas for software
people: staffing, communication and coordination, work environment, performance management,
training, compensation, competency analysis and development, career development, workgroup
development, team/culture development, and others.
The Product
Before a project can be planned, product objectives and scope should be established,
alternative solutions should be considered, and technical and management constraints should be
identified.
Without this information, it is impossible to define reasonable (and accurate) estimates of
the cost, an effective assessment of risk, a realistic breakdown of project tasks, or a manageable
project schedule that provides a meaningful indication of progress.
Once the product objectives and scope are understood, alternative solutions are considered.
Although very little detail is discussed, the alternatives enable managers and practitioners
to select a “best” approach, given the constraints imposed by delivery deadlines, budgetary
restrictions, personnel availability, technical interfaces, and myriad other factors.
The Process
A software process provides the framework from which a comprehensive plan for software
development can be established. A small number of framework activities are applicable to all
software projects, regardless of their size or complexity.
A number of different task sets—tasks, milestones, work products, and quality assurance
points—enable the framework activities to be adapted to the characteristics of the software project
and the requirements of the project team.
Finally, umbrella activities—such as software quality assurance, software configuration
management, and measurement—overlay the process model. Umbrella activities are independent
of any one framework activity and occur throughout the process.
The Project
We conduct planned and controlled software projects for one primary reason—it is the only
known way to manage complexity. And yet, software teams still struggle. In a study of 250 large
software projects between 1998 and 2004, Capers Jones [Jon04] found that “about 25 were deemed
successful in that they achieved their schedule, cost, and quality objectives.
About 50 had delays or overruns below 35 percent, while about 175 experienced major
delays and overruns, or were terminated without completion.” Although the success rate for
present-day software projects may have improved somewhat, our project failure rate remains much
higher than it should be.
To avoid project failure, a software project manager and the software engineers who build
the product must avoid a set of common warning signs, understand the critical success factors that
lead to good project management, and develop a commonsense approach for planning, monitoring,
and controlling the project.
People
The Stakeholders
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The software process (and every software project) is populated by stakeholders who
can be categorized into one of five constituencies:
Senior managers who define the business issues that often have a significant influence
on the project.
Project (technical) managers who must plan, motivate, organize, and control the
practitioners who do software work.
Practitioners who deliver the technical skills that are necessary to engineer a product or
application.
Customers who specify the requirements for the software to be engineered and other
stakeholders who have a peripheral interest in the outcome.
End users who interact with the software once it is released for production use.
Team Leaders
In an excellent book of technical leadership, Jerry Weinberg [Wei86] suggests an MOI
model of leadership:
Motivation. The ability to encourage (by “push or pull”) technical people to produce to
their best ability.
Organization. The ability to mold existing processes (or invent new ones) that will enable
the initial concept to be translated into a final product.
Ideas or innovation. The ability to encourage people to create and feel creative even when
they must work within bounds established for a particular software product or application.
Agile Teams
The small, highly motivated project team, also called an agile team, adopts many of the
characteristics of successful software project teams discussed in the preceding section and avoids
many of the toxins that create problems. However, the agile philosophy stresses individual (team
member) competency coupled with group collaboration as critical success factors for the team.
Why is the system being developed? All stakeholders should assess the validity of business
reasons for the software work. Does the business purpose justify the expenditure of people,
time, and money?
What will be done? The task set required for the project is defined.
When will it be done? The team establishes a project schedule by identifying when project
tasks are to be conducted and when milestones are to be reached.
Who is responsible for a function? The role and responsibility of each member of the
software team is defined.
Where are they located organizationally? Not all roles and responsibilities reside within
software practitioners. The customer, users, and other stakeholders also have
responsibilities.
How will the job be done technically and managerially? Once product scope is
established, a management and technical strategy for the project must be defined.
How much of each resource is needed? The answer to this question is derived by
developing estimates based on answers to earlier questions.
6. Neatly explain the following process models and write their advantages and
disadvantages. (Apr/ May 2015)
(i) Spiral model
(ii) Rapid Application Development model.
The developments are time boxed, delivered and then assembled into a working
prototype.
This can quickly give the customer something to see and use and to provide feedback
regarding the delivery and their requirements.
Business modeling: The information flow is identified between various business functions.
Data modeling: Information gathered from business modeling is used to define data objects that
are needed for the business.
Process modeling: Data objects defined in data modeling are converted to achieve the business
information flow to achieve some specific business objective. Description are identified and
created for CRUD of data objects.
Application generation: Automated tools are used to convert process models into code and the
actual system.
Testing and turnover: Test new components and all the interfaces.
Diagram of RAD-Model:
RAD should be used when there is a need to create a system that can be modularized in
2-3 months of time.
It should be used if there’s high availability of designers for modeling and the budget
is high enough to afford their cost along with the cost of automated code generating tools.
RAD SDLC model should be chosen only if resources with high business knowledge are
available and there is a need to produce the system in a short span of time (2-3 months).
7. Explain the CMMI model to assess the organization level. (Nov/Dec 2018)
What is CMMI?
CMMI is a Process Model Framework for process-improvement developed by Software
Engineering Institute (SEI).
CMMI, standing for Capability Maturity Model Integration, is a structured and systematic
collection of best practices for process-improvement.
The CMMI process model framework is currently available in three constellations. They
are CMMI for Development, CMMI for Services, and CMMI for Acquisition.
These three constellations cover entire spectrum of industries including Software
Engineering, Manufacturing, Financial, Aerospace, Computer hardware, Defence, and
Telecommunications, etc.
The CMMI Assessment Results are delivered in form of Maturity Level Rating when
CMMI Framework is implemented as per Staged Representation.
CMMI Assessments are also known as CMMI Appraisals. The CMMI Institute has
published following guidelines for conducting appraisals:
SCAMPI Assessments
CMMI Institute has devised the three classes for Assessment i.e. A, B and C depending
on the formalism required in the Assessment.
Among these, SCAMPI A Assessment is the most formal and rigorous and results in a
Maturity Level Rating for the assessment conducted for an organization.
SCAMPI B Assessment is the less formal, less rigorous method and does not result in a
Maturity Level Rating for the assessment.
8. What are the pros and cons of using mathematical approach for software
development?
The Pros:
1. Abstractness. If done well, one can verify a variety of problems into formal methods.
2. Robustness. It can mathematically prove certain properties of a model. This is significantly
better than standard unit-testing and other methods to understand executions of a model.
The cons:
1. Practical applicability.
It is really tough to apply (traditional) formal methods in real-world giant applications.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The major difficulty is the state explosion problem, which means that the verification
problem typically gets exponentially intractable in size of the model.
2. Characterizing the model.
Formal Methods has been applied in various fields, including software engineering,
computation biology, security, mechanical designing and a lot others.
However, given a problem from an arbitrary field, it is a tough challenge to find a
modeling technique and a property specification to express the problem.
Agile Project Management is built around a flexible approach. Team member’s work in
short bursts on small-scale but functioning releases of a product.
They then test each release against customers' needs, instead of aiming for a single final
result that is only released at the end of the project.
The end product of an agile project may be very different from the one that was envisaged
at the outset.
However, because of the checking process, team members can be sure that the product is
one that customers want.
This makes Agile Project Management particularly appropriate for new or fast-moving
businesses, for those in a fast-changing environment, or for highly complex situations,
where managers are "feeling their way forward" to find the optimum business model.
It's also helpful with urgent projects that can't wait for a full, traditional project to be set
up.
The framework involves three key roles:
1. The product owner is an expert on the product being developed. He or she represents key
stakeholders, customers, and end users, and is responsible for prioritizing the project and getting
funding.
The product owner describes how people will use the final product, communicates
customer needs, and helps the team develop the right product. His or her expertise also helps
combat scope creep.
2. The scrum master is responsible for managing the process. This person solves problems, so
that the product owner can drive development, and maximize return on investment. The scrum
master ensures that each sprint is self-contained, and that it doesn't take on additional objectives.
The scrum master oversees communication, so that stakeholders and team members can
easily understand what progress has been made.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
3. The team is the group of professionals responsible for turning requirements into functionality.
The team will work on each project via "sprints" – short phases of work which deliver
completed, tested, documented, and functioning products at their conclusion.
Pros of Agile:
You, and your customer, are able to see work as it’s being done so you can comment and
make decisions. More engagement on your part has a number of advantages to the overall
application – there is less chance that developers will need to redo polished work, and the
resulting application will be better tailored to your needs.
You can usually get to market faster, because you are creating smaller, functional
elements that are designed, tested, and refined as you go.
Agile has a more predictable timeframe. By working in discrete and relatively short
“sprints,” you’re never more than a few weeks away from your next usable release. And
by tracking your performance metrics for past sprints, you can better predict where the
coming sprints will get you.
Lastly, Agile is, well, agile. The requirements can change as you think about the project.
If you gain more or better information about what your users want, you can more easily
incorporate these new insights into the project.
Cons of Agile:
Increased customer participation is a double-edged sword. A customer – or a customer
avatar, such as an internal Product Manager – must commit to deep involvement with the
Agile process for this method to show its value. If you cannot devote someone to this
project full time, chances are you won’t get the best results possible.
Agile also requires high commitment from members of the development team, because it
relies on short, intense sprints. It’s not so easy to multi-task this way, so they will likely
not be able to devote time to other projects during Agile development.
Agile prioritizes speed and customer requirements over high technical precision. It may
not be the best choice when creating software that must be highly integrated with other
systems.
10. What is a process model? Describe the process model that you would choose to
manufacture a car. Explain giving suitable reasons. (Apr/May 2017)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The incremental build model is a method of software development where the product
is designed, implemented and tested incrementally (a little more is added each time) until
the product is finished. It involves both development and maintenance.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The product is defined as finished when it satisfies all of its requirements. This model
combines the elements of the waterfall model with the iterative philosophy of
prototyping.
The series of releases is referred to as “increments”, with each increment providing more
functionality to the customers.
After the first increment, a core product is delivered, which can already be used by the
customer.
Based on customer feedback, a plan is developed for the next increments, and
modifications are made accordingly.
This process continues, with increments being delivered until the complete product is
delivered. The incremental philosophy is also used in the agile process model.
In DevOps it centers around the idea of minimizing risk and cost of a DevOps adoption
whilst building the necessary in-house skillset and momentum.
Advantages
Disadvantages
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
In simple words software reuse can be defined as the process of creating software
systems from existing software assets rather than building them from scratch.
Software assets, or components, include all software products, from requirements and
proposals, to specifications and designs, to user manuals and test suites.
In general anything that is produced from a software development effort can potentially
be reused.
ii) Explain the component based software development model with a neat sketch.
Component
A software component is an independently deployable implementation of some
functionality, to be reused as it is in a broad spectrum of applications.
For a software component what it provides and requires should be clearly stated so that it
can be used without any ambiguity.
Categories of Components
Commercial of-the-shelf components- readily available in the market.
• The process model for component-based software engineering emphasizes parallel tracks
in which domain engineering occurs concurrently with component-based development.
Component Qualification
⚫ Component qualification ensures that a candidate component
⚫ will perform the function required,
⚫ will properly fit into the architectural style specified for the system, and
⚫ will exhibit the quality characteristics (e.g., performance, reliability, usability)
required for the application.
Component Adaption
⚫ Most of the times even after the component has been qualified for use in the architecture
it exhibits some conflicts.
This is not widely used because the COTS products are not provided with the source
code.
12. i) Write a note on the unique characters of a software. (Nov/Dec 2017) ii) What is
the significance of the spiral model when compared with other models.
Software is engineered, not manufactured.
Software does not wear out.
Most software is custom built rather than being assembled from components.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
ii) What is the significance of the spiral model when compared with other models.
13. Explain in detail about Agile software development. (or) What is agility?
Elaborate the agile principles. (Nov/Dec 2019) (or) Define Agility. List any Five
principles of agility. (April/May 2019)
Agile software development
Agility
Agility is dynamic, content specific, aggressively change embracing, and growth
oriented.”
Agile team.
14. Explain in detail about agile Extreme programming (XP) and its process. (or)
Explain the phases in Extreme Programming process. (April/May 2019)
Extreme Programming (XP), the most widely used approach to agile software
development.
A variant of XP, called Industrial XP (IXP) has been proposed.
IXP refines XP and targets the agile process specifically for use within large
organizations.
XP Values
Beck defines a set of five values that establish a foundation for all work performed as part
of XP
Communication
Simplicity
Feedback
Courage and
Respect.
Each of these values is used as a driver for specific XP activities, actions, and tasks.
Communication:
In order to achieve effective communication between software engineers and other
stakeholders (e.g., to establish required features and functions for the software), XP emphasizes
close, yet informal (verbal) collaboration between customers and developers, the establishment
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
of effective metaphors for communicating important concepts, continuous feedback, and the
avoidance of large documentation as a communication medium.
Simplicity:
To achieve simplicity, XP restricts developers to design only for immediate needs, rather
than consider future needs.
The intent is to create a simple design that can be easily implemented in code. If the
design must be improved, it can be refactored at a later time.
Feedback:
Feedback is derived from three sources:
the implemented software itself,
the customer, and
Other software team members.
By designing and implementing an effective testing strategy the software (via test results)
provides the agile team with feedback.
XP makes use of the unit test as its primary testing tactic.
As an increment is delivered to a customer, the user stories or use cases that are
implemented by the increment are used as a basis for acceptance tests.
The degree to which the software implements the output, function, and behavior of the
use case is a form of feedback.
Courage (Discipline)
Finally, as new requirements are derived as part of iterative planning, the team provides
the customer with rapid feedback regarding cost and schedule impact.
For example, there is often significant pressure to design for future requirements.
Respect
By following each of these values, the agile team inculcates respect among it members, between
other stakeholders and team members, and indirectly, for the software itself.
Planning:
The planning activity (also called the planning game) begins with listening—a
requirements gathering activity that enables the technical members of the XP team.
Listening leads to the creation of a set of “stories” (also called user stories) that describe
required output, features, and functionality for software to be built.
The customer assigns a value (i.e., a priority) to the story based on the overall business
value of the feature or function.
Members of the XP team then assess each story and assign a cost—measured in
development weeks—to it.
After the first project release (also called a software increment) has been delivered, the XP team
computes project velocity. Stated simply, project velocity is the number of customer stories
implemented during the first release.
(1) help estimate delivery dates and schedule for subsequent releases and
(2) determine whether an over commitment has been made for all stories across the entire
development project.
Design:
XP design rigorously follows the KIS (keep it simple) principle.
Coding:
After stories are developed and preliminary design work is done, the team does not move
to code, but rather develops a series of unit tests that will exercise each of the stories that
is to be included in the current release (software increment).
Once the unit test has been created, the developer is better able to focus on what must be
implemented to pass the test.
Once the code is complete, it can be unit-tested immediately, thereby providing
instantaneous feedback to the developers.
A key concept during the coding activity is pair programming.
XP recommends that two people work together at one computer workstation to create code
for a story.
This provides a mechanism for realtime problem solving and real-time quality assurance.
Testing:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
The creation of unit tests before coding commences is a key element of the XP approach.
The unit tests that are created should be implemented using a framework that enables them
to be automated. This encourages a regression testing strategy whenever code is modified.
As the individual unit tests are organized into a “universal testing suite”, integration and
validation testing of the system can occur on a daily basis.
XP acceptance tests, also called customer tests, are specified by the customer and focus on
overall system features and functionality that are visible and reviewable by the customer.
Acceptance tests are derived from user stories that have been implemented as part of a
software release.
Industrial XP
“IXP is an organic evolution of XP. It is imbued with XP’s minimalist, customer-centric,
test-driven spirit.
IXP differs most from the original XP in its greater inclusion of management, its
expanded role for customers, and its upgraded technical practices.”
IXP incorporates six new practices that are designed to help ensure that an XP project
works successfully for significant projects within a large organization.
Readiness assessment. Prior to the initiation of an IXP project, the organization should conduct
a readiness assessment. The assessment ascertains whether
(1) an appropriate development environment exists to support IXP,
(2) the team will be populated by the proper set of stakeholders,
(3) the organization has a distinct quality program and supports continuous improvement,
(4) the organizational culture will support the new values of an agile team, and
(5) the broader project community will be populated appropriately.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Project community. When XP is to be applied for a significant project in a large organization, the
concept of the “team” should morph into that of a community. A community may have a
technologist and customers who are central to the success of a project as well as many other
stakeholders
Project chartering. The IXP team assesses the project itself to determine whether an appropriate
business justification for the project exists and whether the project will further the overall goals
and objectives of the organization. Chartering also examines the context of the project to determine
how it complements, extends, or replaces existing systems or processes.
Retrospectives. An IXP team conducts a specialized technical review called a retrospective, the
review examines “issues, events, and lessons-learned” across a software increment and/or the
entire software release. The intent is to improve the IXP process.
The XP Debate
Among the issues that continue to trouble some critics of XP are:
• Requirements volatility
• Conflicting customer needs.
• Requirements are expressed informally.
• Lack of formal design.
15. Compare the waterfall, Prototyping and spiral model. List the features of each
model, advantages and disadvantage and a type of application where the model will
be acceptable. (April/May 2019) (April/May 2021)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Release planning: The team and stakeholders/customers collaboratively decide what are
the requirements and features that can be delivered into production and when. This is
done based on priorities, capacity, estimations and risks factor of the team to deliver.
Iteration planning: The team will pick up the most valuable items from the list and break
them down into tasks then estimates and a committment to delivering at the end of the
iteration.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
2. Small releases
Small releases also help to breakdown complex modules in a small chunk of code. This
helps the developer team as well as the on-site customer to demonstrate the product and focus
only on the least amount of work that has the highest priority.
3. Simple Design:
XP uses the simplest possible design that gets the job done. The requirements will change
tomorrow, so only do what's needed to meet today's requirements.
4. Metaphor :
Extreme Programming teams develop a common vision of how the program works, which
we call the "metaphor". At its best, the metaphor is a simple evocative description of how the
program works.
XP teams use a common system of names to be sure that everyone understands how the
system works and where to look to find the functionality you're looking for, or to find the right
place to put the functionality you're about to add.
5. Continuous Testing:
XP teams focus on validation of the software at all times. Programmers develop software
by writing tests first, and then code that fulfills the requirements reflected in the tests.
Customers provide acceptance tests that enable them to be certain that the features they
need are provided.
6. Refactoring:
XP Team Refactor out any duplicate code generated in a coding session. Refactoring is
simplified due to extensive use of automated test cases.
7. Pair Programming:
All production code is written by two programmers sitting at one machine. This practice
ensures that all code is reviewed as it is written and results in better Design, testing and better
code.
9. Continuous Integration:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
All changes are integrated into the code base at least daily. The unit tests have to run 100%
both before and after integration.
Development team has continuous access to the customer who will actually be using the
system.
For initiatives with lots of customers, a customer representative (i.e Product Manager) will
be designated for Development team access.
Everyone codes to the same standards. The specifics of the standard are not important:
what is important is that all the he code looks familiar, in support of collective ownership.
Case Study:
Question #1
You have been appointed a project manager within an information systems organization.
Your job is to build an application that is quite similar to others your team has built, although
this one is larger and more complex. Requirements have been thoroughly documented by
the customer. What software process model(s) would you choose and why? Explain in detail.
Answer:
As the information system already exists in which some development is to be made and released.
Now Developer just need to make some addition in the previous application because Customer
requirements are documented, which mean requirements are well understood and have no need to
modified requirement.
Process Selected:.
Prototype model will be used in development of this application. In prototype model application
or project is made in series of increment throughout project. In prototype model we first make a
prototype and give to the customer and make changes in it accordingly as required by the
customer. Further increment made after previous ones. Large systems are particularly suitable for
prototype model.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
System need modification and integration .System is large and use in public sector .University of
Gujarat all department use this system according to their needs, which mean departments have
some same function and some different function. Risks analysis is also important factor which
should be resolve in given time frame. As system use in public sector, so verification and validation
factors must be administered accordingly.
Selected Process Model:
Selected process model is “Component Model” use to develop this system.
In the majority of software projects, there is some software reuse. This often happens informally
when people working on the project know of designs or code that are similar to what is required.
They look for these, modify them as needed, and incorporate them into their system. A general
process model for reuse-based development. Although the initial requirements specification stage
and the validation stage are comparable with other software processes, the intermediate stages in
a reuse oriented process are different. These stages are:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
1. Component analysis given the requirements specification, a search is made for components to
implement that specification. Usually, there is no exact match and the components that may be
used only provide some of the functionality required.
2. Requirements modification during this stage, the requirements are analyzed using information
about the components that have been discovered. They are then modified to reflect the available
components. Where modifications are impossible, the component analysis activity may be re-
entered to search for alternative solutions.
3. System design with reuse during this phase, the framework of the system is designed or an
existing framework is reused. The designers take into account the components that are reused and
organize the framework to cater for this. Some new software may have to be designed if reusable
components are not available.
4. Development and integration Software that cannot be externally procured is developed, and the
components and COTS systems are integrated to create the new system. System integration, in this
model, may be part of the development process rather than a separate activity.
Component software engineering has the obvious advantage of reducing the amount of software
to be developed and so reducing cost and risks. It usually also leads to faster delivery of the
software.System boundaries should be defined and clearly specified in a component-based
approach requirement analysis also implies that it is necessary to analyze whether requirements
can be fulfilled with available components. System is use in public sector. All departments have
some same function and some different function .We use component base approach to reuse the
same component in this way we reduce our code and save time. This becomes important as we
complete project in this year. The risk is analysis in every component by doing this risk is reducing
and project become more accurate and efficient. This project approach is as useful when we need
to modifier the some component we do not need to modify all project we just modify that
component. Another reason for using this approach is to save time and complete this project in
given time frame, risk is also reduce by this approach. Validation and verification also made on
each component.
Question #3
You have been appointed a project manager for a major software products company. Your
job is to manage the development of the next generation version of its widely used word-
processing software. Because competition is intense, tight deadlines have been established
and announced. What software process model(s) would you choose and why?
Assumptions
We have to use that process model which meets the requirements to make the version in the given
time limit because the deadline has been defined already.
Selected Process Model
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
We will use the RAD (Rapid Application Development) model because tight deadline has been
announced for project completion. We need to modify the previous version of word-processing
software. As Rapid Application Development is a linear sequential software development process
model that emphasizes an extremely short development cycle.
A component-based construction approach is used. There can be several teams working on
different components during this time limit announced.
Question# 4
You have been asked to develop a small application that analyzes each course offered by a
university and reports the average grade obtained in the course (for a given term). What
software model(s) would you choose and why?
As the requirements are simply known and understood that we have to just develop a small
application that analyzes each course offered by a university and reports the average grade obtained
in the course
Selected Process Model:
The sequential/Waterfall Model is better for this application. Because water fall model is used
when the requirements are well understood for the start and no changes are needed in that so as
the requirements of the application is well understood for the start so waterfall model is suitable
for this.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Apr/May 2015
PART-A
1. Write the Process framework and Umbrella activities. (April/May 2015) Q.NO. 61
2. State the advantages and disadvantages in LOC based Cost Estimation. (April/May 2015)
Q.NO. 62
PART-B
1.(a) Write short notes on COCOMO model. Discuss about the COCOMO models(Basic,
Intermediate and Detailed) for cost estimation. (16) Q.NO. 7
(b) Neatly explain the following process models and write their advantages and disadvantages.
Apr/ May 2015 Q.NO. 13
PART-B
1.a)Assume that you are the technical manager of a software development organization. A client
approached you for a software solution. The problems stated by the client have uncertainties which
lead to loss if it not planned and solved. Which software development model you will suggest for
this project — justify. Explain that model with its pros and cons and neat sketch. (16) Q.NO. 16
b) (i) Explain the various levels of capability maturity model intergation. (10) Q.NO. 14
(ii) What are the pros and cons of using mathematical approach for software development?. (6)
Q.NO. 15
May/June 2016
PART-A
1. What led to the transition from product oriented development to process oriented
development? (Q.No. 57)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Nov/Dec 2016
PART-A
1. If you have to develop a word processing software product, what process model will you
choose? (Q.No. 59)
2. Depict the relationship between Work product, task, activity and System. (Q.No. 60)
PART-B
1. (a) Which process model is best suited for risk management? Discuss in detail with an
example. Give the advantages and disadvantages of the model. (16) (Q.No. 10)
2. (i) List the principles of agile software development.(8) (Q.No. 11)
Apr/May 2017
PART-A
1. Depict the relationship between work product, task, activity and system. (Q.No. 60)
2. List two deficiencies in waterfall model. Which process model do you suggest to overcome
each deficiency? (Q.No. 65)
PART-B
1. (a) What is a process model? Describe the process model that you would choose to
manufacture a car. Explain giving suitable reasons. (13) (Q.No. 17)
(b) (i)How function point analysis methodology is applied in estimation of software size?
Explain. Why FPA methodology is better than LOC methodology? (8) (Q.No. 6)
(ii) An application has the following: 10 Low External Inputs, 12 High External
Outputs, 20 Low Internal Logical Files, 15 High External Int erface Files, 12 Average
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
Ext ernal Inquir ies, and a value adjustment factor of 1.10. What is the unadjusted
and adjusted function point count? (5) (Q.No. 18)
Nov/Dec 2017
PART-A
1. Write the IEEE definit ion of software engineer ing. (Q.No. 1)
2. Why LOC is not a better metric to estimate a software ? (Q.No. 66)
PART-B
1. a) i) What is the impact of reusability in software development process ?(4) (Q.No. 19)
ii) Explain the component based software development model with a neat sketch.(9)
(Q.No.19)
2. i) Write a note on the unique characters of a software.(3) (Q.No. 20)
(ii) What is the significance of the spiral model when compared with other models. (3)
(iii)Explain the CMMI model to assess the organization level. (7)(Q.No. 14)
PART-C
1. List out the various umbrella activities which support software development process.
Discuss about their necessity in maintaining the quality in both software process and
product that is being developed for railway reservation system.(15) Nov/Dec 2017 (Q.No.
1)
Apr/May 2018
PART A
2. If you have to develop a word processing software product, what process model will you
choose? Justify your answer. (Q.No.59)
PART B
1. Which software process model is good for risk management? Explain the model. Describe
how the model is used to layout the objectives, risks and plans for quality improvement. (Q.No.3)
Nov/Dec 2018
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
PART A
PART B
1. (a) Assume that you are the technical manager of a software development organization. A client
approached you for a software solution. The problems stated by the client have uncertainties which
lead to loss if it is not planned and solved. What software development model you will suggest
for this project? Justify. Explain that model with a neat sketch along with its pros and cons.
(Q.No.16)
(b) (i) Draw the layered architecture of software engineering (3) (Part –A Q.No.79
(ii) What are the merits and demerits of using formal methods for developing software? (3)
(Part-A Q.No.80)
(iii) Explain the CMMI model to assess the organization level. (7) (Q.No.14)
April/May 2019
PART A
1. Define: Software Engineering.
2. List any two agile process models.
PART B
11) a) Compare the waterfall, Prototyping and spiral model. List the features of each model,
advantages and disadvantage and a type of application where the model will be acceptable.
b) i) Define Agility. List any Five principles of agility.
ii) Explain the phases in Extreme Programming process.
NOV/DEC 2019
PART A
What is a software process?
Define an evolutionary prototype.
PART B
11 a) Outline the spiral life cycle model with a diagram.
b) What is agility? Elaborate the agile principles.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 1
April/May 2021
PART A
PART B
11. a) Compare and contrast waterfall model, spiral model and iterative model. (Q.No.23)
NOV/DEC 2021
PART A
1. List out the five activities of a generic process framework for software engineering. (Q.No.19)
2. Draw the flow diagram of Iterative process flow and parallel flow. (Q.No.61)
PART B
11 a) List out the various prescriptive process model available in software development, with
appropriate diagram, discuss any two prescriptive process model in detail. (Q.No.2)
b) Explain the 12 practices of extreme programming. Explain how agility is achieved in extreme
programming. (Q.No.24)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Requirement analysis and specification – Requirements gathering and analysis – Software Requirement
Specification – Formal system specification – Finite State Machines – Petri nets – Object modeling using
UML – Use case Model – Class diagrams – Interaction diagrams – Activity diagrams – State chart
diagrams – Functional modeling – Data Flow Diagram- CASE TOOLS.
PART A
1. What are functional requirements?
Functional requirements are statements of the services that must provide descriptions of how
computations must be carried out. Domain requirements are functional requirements that are derived
from characteristics of the application domain.
2. What are non-functional requirements?
Non-functional requirements are product requirements that constrain the system being developed,
process requirements which apply to the development process and external requirements. They
often relate to the emergent properties of the system and so apply to the system as a whole.
3. Classify the different types of non-functional requirements.
The different types of non-functional requirements can be classified as:
Product requirements
Organizational requirements
External requirements
4. List the metrics for specifying non – functional requirements.
The possible metrics that specify the non-functional requirements are:
Speed
Size
Ease of Use
Reliability
Robustness
Portability
5. Draw the DFD notations for the following.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
i. External entity -
6. What is the need for user requirements? Mention the problems that arise when requirements
are written in natural language.
User requirements are useful for people involved in using and procuring the system. The
problems that arise when requirements are written in natural language are:
Back of clarity
Requirement§ confusion
Requirements amalgamation
7. What does requirement process involve?
requirements elicitation
requirements analysis and negotiation
requirements specification
system modeling
requirements validation
requirements management
8. What guidelines do you think will minimize misunderstandings when writing user
requirements?
To minimize misunderstandings when writing user requirements, the following guidelines can
be used:
Invent a standard format and ensure that all requirement definitions adhere to that format.
Use language consistency.
Use text highlighting
Avoid, as far as- possible, the use of computer Jargon.
9. Write short notes on system requirements.
System requirements are intended to communicate, in a precise way, the functions which the
system must provide. To reduce ambiguity, they may be written in a structured language of some
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
kind. This can be a structured form of a natural language, a language based on a high-level
programming language or a special language for-requirements specification.
10. List the notations used for requirements specification.
The notations used for requirements specification are:
Structured natural language.
Design description languages.
Graphical notations.
Mathematical specifications.
11. What information must be included while specifying functional requirements?
The information to be included while specifying functional requirements are given below:
A description of the function or entity being specified.
A description of its inputs and where these come from.
A description of its outputs and where these to.
An indication of why other entities are used.
If a functional approach is used, a pre-condition setting out what must be true before the
function is called and a post-condition specifying what is true after the function is called.
A description of the side-effects of the operation. (if any).
12. What is a software requirements document (SRD)?
A software requirements document (also called as software requirements specification or SRS) is
the official statement of what is required of the system Developers. It should include both the user
requirements for a system and a detailed specification of the system requirements.
13. What is meant by Requirements Engineering?
Requirements Engineering is a process that involves all the activities required to create and
maintain a system requirements document.
The process activities include
a feasibility study,
elicitation and analysis of requirements,
The specification of requirements and their documentation and
The validation of these requirements.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
14. Why is it so difficult to gain a clear understanding of what the customer wants?
It is difficult to gain a clear understanding of what the customer wants, due to the following
reasons:
Problems of scope: The boundary of the system is well-defined.
Problems of understanding: Customers/users have a poor understanding of the capabilities
and limitations of their computing environment.
Problems of volatility: The requirements change over time.
15. What is the use of requirements validation?
Requirements validation examines the specification to ensure that all system requirements have
been stated unambiguously; that inconsistencies, omissions and errors have been detected and
corrected, and that the work products conform to the standards established for the process, the project
and the product.
16. List the type of checks that needs to be carried out on the requirements in the requirements
document during the validation process.
The checks that should be carried out during the validation process-are:
Validity checks
Consistency checks
Completeness checks
Realism checks
Verifiability
17. List four requirements validation techniques.
The four requirements validation techniques are:
Requirement reviews
Prototyping
Test-case generation
Automated consistency analysis
18. Why do new requirements emerge?
New requirements emerge for the following reasons:
Large systems usually have a diverse user community. Different users have different
requirements and priorities. These may be conflicting or contradictory.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
The process starts with an identified requirements problem, sometimes with a specific change
proposal. The effect of the proposed change is assessed using traceability information and general
knowledge of system requirements. Once analysis is completed, a decision is made whether or not to
proceed with the requirements-change. The requirements document and, where necessary, the system
design and implementation are modified.
24. What is a prototype? List any four benefits of using prototyping in software process.
A prototype is an initial version of a software system, which is used to demonstrate concepts,
tryout design options and generally, to find out more about the problem and its possible solutions.
The benefits of using prototyping in the software process are:
Improved system usability.
A closer match of the system to the User needs.
Improved maintainability.
Reduced development effort.
Prototype serves as a basis for deriving system specification.
Design quality can be improved.
System can be maintained easily.
Development efforts may get reduced.
25. What are the prototyping approaches in software process?
Evolutionary prototyping
The objective is, to deliver a working system to end users.
They should have a robust structure so that they are maintainable for many years
They should be reliable and efficient and they should conform to relevant organizational
standards.
In this approach of system development, the initial prototype is prepared and it is then refined
through number of stages to final stage.
Throw-away prototyping
The objective is to validate or derive the system requirements.
They have a short lifetime.
Poor performance and reliability may be acceptable.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Using this approach a rough practical implementation of the system is produced. The requirement
problems can be identified from this implementation. It is then discarded. System is then
developed using some different engineering paradigm
37. Write a note on Feasibility studies. What is the need for feasibility analysis?
The requirements engineering process should start with a feasibility study. The input to the feasibility
study is a set of preliminary business requirements, an outline description of the system and how the
system is intended to support business processes.
The results of the feasibility study should be a report that recommends whether or not it is worth
carrying on with the requirements engineering and system development process.
A feasibility study is a short, focused study that aims to answer a number of questions:
Abstraction is the process by which data and programs are defined with a representation similar
in form to its meaning (semantics), while hiding away the implementation details. Abstraction tries
to reduce and factor out details so that the programmer can focus on a few concepts at a time.
39. What are the types of prototypes?
Types of prototyping
1. Throwaway prototyping
2. Evolutionary prototyping
3. Incremental prototyping
4. Extreme prototyping
40. What are the linkages between data flow and E-R diagram?
An ER diagram is the Entity Relationship Diagram, showing the relationship between different
entities in a process.
A Data Flow diagram is a symbolic structure showing how the flow of data is used in different
process stages.
41. Classify the following as functional/ non-functional requirements for a banking system.
(a) Verifying bank balance
(b) Withdrawing money from bank
(c) Completion of transactions in less than one second
(d) Extending the system by providing more tellers for customers.
42. Draw a use case diagram for an online shopping which should provide provisions for
registering, authenticating the customers and also for online payment through any payment
gateway like paypal.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Advantages:
Mechanism for name management.
Serves as a store of organizational information.
Software might be integrated with other tools
Design the software and test cases.
45. Requirements engineering builds a bridge to design and construction, but where does the
bridge originate? Nov/Dev 2021
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Begins at the feet of the project stakeholders, where business need is defined, user scenarios are
described, functions and features are delineated and project constraints are identified.
Functional
Reliability
Performance
Supportability
51. What are Actors?
An actor is something with behavior, such as a person (identified by role), computer system,
or organization; for example, a cashier.
52. What is a scenario?
A scenario is a specific sequence of actions and interactions between actors and the system;
it is also called a use case instance. It is one particular story of using a system, or one path through
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
the use case; for example, the scenario of successfully purchasing items with cash, or the scenario
of failing to purchase items because of a credit payment denial.
53. Define Use case.
A use case is a collection of related success and failure scenarios that describe an actor using
a system to support a goal. Use cases are text documents, not diagrams, and use-case modeling is
primarily an act of writing text, not drawing diagrams.
54. What Tests Can Help Find Useful Use Cases?
The Boss Test
The EBP Test
The Size Test
55. What are Use Case Diagrams?
A use case diagram is an excellent picture of the system context; it makes a good context
diagram that is, showing the boundary of a system, what lies outside of it, and how it gets used. It
serves as a communication tool that summarizes the behavior of a system and its actors.
56. What are Activity Diagrams?
A diagram which is useful to visualize workflows and business processes. These can be a
useful alternative or adjunct to writing the use case text, especially for business use cases that describe
complex workflows involving many parties and concurrent actions.
57. What are the three ways to apply UML?
1) UML as sketch Informal and incomplete diagrams created to explore difficult parts of the
problem or solution space, exploiting the power of visual languages.
3) The UP is flexible, and can be applied in a lightweight and agile approach that includes
practices from other agile methods (such as XP or Scrum).
Benefits include:
less project failure, better productivity, and lower defect rates; shown by research into
iterative and evolutionary methods
early rather than late mitigation of high risks (technical, requirements, objectives,
usability, and so forth) early visible progress
early feedback, user engagement, and adaptation, leading to a refined system that
more closely meets the real needs of the stakeholders
managed complexity; the team is not overwhelmed by "analysis paralysis" or very
long and complex steps
the learning within an iteration can be methodically used to improve the development
process itself, iteration by iteration
64. What are the other Critical UP practices?
The idea for UP practice is short time boxed iterative, evolutionary, and adaptive
development. Some additional best practices and key ideas in UP are
In the UP, an artifact is the general term for any work product: Code, Web Graphics, Schema,
Test documents, diagrams, model and so on.
Use-Case Model is the set of all written use cases; it is a model of the system's
functionality and environment. Use cases are text documents, not diagrams, and use-case
modeling is primarily an act of writing text, not drawing diagrams. The Use-Case Model may
optionally include a UML use case diagram to show the names of use cases and actors, and their
relationships. This gives a nice context diagram of a system and its environment. It also provides
a quick way to list the use cases by name.
Preconditions state what must always be true before a scenario is begun in the use case.
Preconditions are not tested within the use case; rather, they are conditions that are assumed to be
true. Typically, a precondition implies a scenario of another use case, such as logging in, that has
successfully completed.
Example:
In the UP, requirements are categorized according to the FURPS+ model [Grady92], a
useful mnemonic with the following meaning:
Actors are roles played not only by people, but by organizations, software, and machines.
1) Primary actor has user goals fulfilled through using services of the SuD. For example,
the cashier.
Why identify? To find user goals, which drive the use cases.
2) Supporting actor provides a service (for example, information) to the SuD. The
automated payment authorization service is an example. Often a computer system, but
could be an organization or person.
Why identify? To clarify external interfaces and protocols.
3) Offstage actor has an interest in the behavior of the use case, but is not primary or
supporting; for example, a government tax agency.
Why identify? To ensure that all necessary interests are identified and satisfied.
Success guarantees (or postconditions) state what must be true on successful completion
of the use case either the main success scenario or some alternate path. The guarantee should
meet the needs of all stakeholders.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Extend puts additional behavior in a use case that does not know about it.
It is shown as a dotted line with an arrow point and labeled <<extend>>
In this case, a customer can request a catalog when placing an order
74. List the relationships used in use cases.
(Or) List any two common ways to relate use cases and give suitable examples.
include Relationship
extend Relationship
generalize Relationship
75. List out the steps for finding use cases.
Choose the system boundary.
Identify the primary actors those that have goals fulfilled through using services of
the system.
Identify the goals for each primary actor.
Define use cases that satisfy user goals; name them according to their goal.
76. What is the need for modeling?
Modeling is a main technique heavily used by both OOA and OOD activities in modern software
engineering.
Modeling typically divides into two aspects of work: the modeling of dynamic behaviors like
business processes and use cases, and the modeling of static structures like classes and components.
Computer Aided Software Engineering (CASE) tools are set of software application programs,
which are used to automate SDLC activities.
CASE tools are used by software project managers, analysts and engineers to develop software
system.
Use of CASE tools accelerates the development of project to produce desired result and helps to
uncover flaws before moving ahead with next stage in software development.
PART - B
1. Explain in detail about different types of software requirements.
Software Requirements: Software requirement system states ―what the system should do and define
constraints on its operation and implementation. Two Types of requirements are:
1. User requirements
2. System requirements
User Requirements:
User requirements are statements, in a natural language plus diagrams, of what services the
system is expected to provide to system users and the constraints under which it must operate.
System Requirements:
System requirements are more detailed descriptions of the software system’s functions, services,
and operational constraints. The system requirements document (sometimes called a functional
specification) should define exactly what is to be implemented.
Example:
Figure 2.1 illustrates different types of requirements specification.
Example from a mental health care patient management system (MHC-PMS) shows how a user
requirement may be expanded into several system requirements.
Fig. 2.1 - Types of readers for the user and system requirements.
Functional Requirements:
The functional requirements for a system describe “what the system should do?”
For example, here are examples of functional requirements for the MHC-PMS system, used to
maintain information about patients receiving treatment for mental health problems:
1. A user shall be able to search the appointments lists for all clinics.
2. The system shall generate each day, for each clinic, a list of patients who are expected to
attend appointments that day.
3. Each staff member using the system shall be uniquely identified by his or her eight-digit
employee number.
These functional user requirements define specific facilities to be provided by the system.
Imprecision in the requirements specification is the cause of many software engineering
problems.
It is natural for a system developer to interpret an ambiguous requirement in a way that
simplifies its implementation. Often, however, this is not what the customer wants.
New requirements have to be established and changes made to the system. Of course, this
delays system delivery and increases costs.
In principle, the functional requirements specification of a system should be both complete and
consistent.
Completeness means that all services required by the user should be defined.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Examples include performance requirements on how fast the system must execute and how
much memory it requires, reliability requirements that set out the acceptable failure rate,
security requirements, and usability requirements.
2. Organizational requirements:
These requirements are broad system requirements derived from policies and procedures in
the customer’s and developer’s organization.
Examples include operational process requirements that define how the system will be used,
development process requirements that specify the programming language, the development
environment or process standards to be used, and environmental requirements that specify the
operating environment of the system.
3. External requirements:
This broad heading covers all requirements that are derived from factors external to the system
and its development process.
These may include regulatory requirements that set out what must be done for the system to be
approved for use by a regulator, such as a central bank;
Legislative requirements that must be followed to ensure that the system operates within the
law;
Ethical requirements that ensure that the system will be acceptable to its users and the general
public.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
2. Explain in detail about Requirements Analysis and Specification. (or) Elaborate in detail about each
phases/steps in Requirements gathering and analysis.
All plan-driven life cycle models prescribe that before starting to develop software, the exact
requirements of the customer must be understood and documented.
Starting development work without properly understanding and documenting the requirements
increases the number of iterative changes in the later life cycle phases, and thereby alarmingly pushes
up the development costs.
A good requirements document not only helps to form a clear understanding of various features
required from the software, but also serves as the basis for various activities carried out during later
life cycle phases.
Overview of requirements analysis and specification:
The requirements analysis and specification phase starts after the feasibility study stage is complete
and the project has been found to be financially viable and technically feasible.
The requirements analysis and specification phase ends when the requirements specification document
has been developed and reviewed.
The requirements specification document is usually called the software requirements specification
(SRS) document.
The goal of the requirements analysis and specification phase is to clearly understand the customer
requirements and to systematically organize the requirements into a document called the Software
Requirements Specification (SRS) document.
Who performs requirements analysis?
Requirements analysis and specification activity is usually carried out by a few experienced members
of the development team.
It normally requires them to spend some time at the customer site.
The engineers who gather and analyze customer requirements and then write the requirements
specification document are known as system analysts. Requirements analysis and specification phase
mainly involves carrying out the following two important activities:
o Requirements gathering and analysis.
o Requirements specification.
Requirements gathering and analysis:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
The complete set of requirements is almost never available in the form of a single document from
the customer.
Complete requirements are rarely obtainable from any single customer representative.
We can conceptually divide the requirements gathering and analysis activity into two separate tasks:
Requirements gathering and Requirements Analysis
Requirements gathering:
The primary objective of the requirements gathering task is to collect the requirements from the
stakeholders.
A stakeholder is a source of the requirements and is usually a person, or a group of persons who
either directly or indirectly are concerned with the software.
It is very difficult to gather all the necessary information from a large number of stakeholders and
from information scattered across several pieces of documents.
Gathering requirements turns out to be especially challenging if there is no working model of the
software being developed.
The analyst usually studies all the available documents regarding the system to be developed before
visiting the customer site.
Interview:
Each category of users typically requires a different set of features from the software.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Therefore, it is important for the analyst to first identify the different categories of users and then
determine the requirements of each.
Task analysis:
The users usually have a black-box view of software and consider the software as something that
provides a set of services (functionalities).
The analyst tries to identify and understand the different tasks to be performed by the software.
For each identified task, the analyst tries to formulate the different steps necessary to realize the
required functionality in consultation with the users.
Scenario analysis:
The different scenarios of a task may take place when the task is invoked under different situations.
For different types of scenarios of a task, the behavior of the software can be different.
Form analysis:
Form analysis is an important and effective requirements gathering activity that is undertaken by the
analyst, when the project involves automating an existing manual system.
In form analysis the existing forms and the formats of the notifications produced are analyzed to
determine the data input to the system and the data that are output from the system.
Requirements analysis:
After requirements gathering is complete, the analyst analyses the gathered requirements to form a
clear understanding of the exact customer requirements and to weed out any problems in the gathered
requirements.
During requirements analysis, the analyst needs to identify and resolve three main types of problems
in the requirements:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Anomaly:
Example: While gathering the requirements for a process control application, the following requirement was
expressed by a certain stakeholder: “When the temperature becomes high, the heater should be switchedoff”.
Please note that words such as “high”, “low”, “good”, “bad” etc. are indications of ambiguous requirements
as these lack quantification and can be subjectively interpreted.
Incompleteness:
An incomplete set of requirements is one in which some requirements have been overlooked. The
lack of these features would be felt by the customer much later, possibly while using the software.
Example: In chemical plant automation software, suppose one of the requirements is that if the
internal temperature of the reactor exceeds 200℃ then an alarm bell must be sounded. However,
on an examination of all requirements, it was found that there is no provision for resetting the
alarm bell after the temperature has been brought down in any of the requirements. This is clearly
an incomplete requirement.
Requirements documents are essential when an outside contractor is developing the software
system.
However, agile development methods argue that requirements change so rapidly that a
requirements document is out of date as soon as it is written, so the effort is largely wasted.
Rather than a formal document, approaches such as Extreme Programming collect user
requirements incrementally and write these on cards as user stories.
The user then prioritizes requirements for implementation in the next increment of the system.
The requirements document has a diverse set of users, ranging from the senior management of
the organization that is paying for the system to the engineers responsible for developing the
software.
Checking that the requirements actually define the system that the customer
wants (validation).
In practice, requirements engineering is an iterative process in which the activities are
interleaved.
Figure 2.4 shows the activities are organized as an iterative process around a spiral, with the
output being a system requirements document.
The amount of time and effort devoted to each activity in each iteration depends on the stage
of the overall process and the type of system being developed.
Early in the process, most effort will be spent on understanding high-level business and
non-functional requirements, and the user requirements for the system.
Later in the process, in the outer rings of the spiral, more effort will be devoted to eliciting
and understanding the detailed system requirements.
This spiral model accommodates approaches to development where the requirements are
developed to different levels of detail.
The number of iterations around the spiral can vary so the spiral can be exited after some or
all of the user requirements have been elicited.
Agile development can be used instead of prototyping so that the requirements and the
system implementation are developed together.
The aims of a feasibility study are to find out whether the system is worth implementing and if
it can be implemented, given the existing budget and schedule.
The input to the feasibility study is a set of preliminary business requirements, an outline
description of the system and how the system is intended to support business processes.
The results of the feasibility study should be a report that recommends whether or not it is worth
carrying on with the requirements engineering and system development process.
If a system does not support the business objectives, it has no real value to the business.
Carrying out a feasibility study involves information assessment, information collection and
report writing.
5. Write notes on Requirements Elicitation and Analysis of Requirement Engineering Process. (or)
What is requirements elicitation? Briefly describe the various activities performed in requirement
elicitation phase with an example of watch system that facilitates to set time and alarm. Nov/Dec
2018
After an initial feasibility study, the next stage of the requirements engineering process is
requirements elicitation and analysis.
In this activity, software engineers work with customers and system end-users to find out about
the application domain, what services the system should provide, the required performance of
the system, hardware constraints, and so on.
Requirements elicitation and analysis may involve a variety of different kinds of people
in an organization.
A system stakeholder is anyone who should have some direct or indirect influence on
the system requirements.
Stakeholders include end users who will interact with the system and anyone else in an
organization who will be affected by it.
Other system stakeholders might be engineers who are developing or maintaining other
related systems, business managers, domain experts, and trade union representatives.
A process model of the elicitation and analysis process is shown in Figure 2.5.
The process activities are:
1. Requirements discovery
This is the process of interacting with stakeholders of the system to discover their
requirements. Domain requirements from stakeholders and documentation are also
discovered during this activity. There are several complementary techniques that can be
used for requirements discovery.
2. Requirements classification and organization
This activity takes the unstructured collection of requirements, groups related
requirements, and organizes them into coherent clusters. The most common way of
grouping requirements is to use a model of the system architecture to identify sub- systems
and to associate requirements with each sub-system.
3. Requirements prioritization and negotiation
Inevitably, when multiple stakeholders are involved, requirements will conflict. This
activity is concerned with prioritizing requirements and finding and resolving
requirements conflicts through negotiation. Usually, stakeholders have to meet toresolve
differences and agree on compromise requirements.
4. Requirements specification
The requirements are documented and input into the next round of the spiral. Formal
or informal requirements documents may be produced.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
The process cycle starts with requirements discovery and ends with the requirements
documentation. The analyst’s understanding of the requirements improves with each
round of the cycle. The cycle ends when the requirements document is complete.
Eliciting and understanding requirements from system stakeholders is a difficult process
for several reasons:
Stakeholders often don’t know what they want from a computer system except in the most
general terms; they may find it difficult to articulate what they want the system to do; they
may make unrealistic demands because they don’t know what is and isn’t feasible.
Stakeholders in a system naturally express requirements in their own terms and with
implicit knowledge of their own work. Requirements engineers, without experience in the
customer’s domain, may not understand these requirements.
Different stakeholders have different requirements and they may express these in different
ways. Requirements engineers have to discover all potential sources of requirements and
discover commonalities and conflict.
Political factors may influence the requirements of a system. Managers may demand
specific system requirements because these will allow them to increase their influence in
the organization.
The economic and business environment in which the analysis takes place is dynamic. It
inevitably changes during the analysis process. The importance of particular
requirements may change. New requirements may emerge from new stakeholders who
were not originally consulted.
Requirements Discovery
Requirements discovery (sometime called requirements elicitation) is the process of gathering
information about the required system and existing systems, and distilling the user and system
requirements from this information. Sources of information during the requirements discovery phase
include documentation, system stakeholders, and specifications of similar systems.
For example, system stakeholders for the mental healthcare patient information system include:
Patients whose information is recorded in the system.
Doctors who are responsible for assessing and treating patients.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Nurses who coordinate the consultations with doctors and administer some treatments.
Medical receptionists who manage patients’ appointments.
IT staff who are responsible for installing and maintaining the system.
A medical ethics manager who must ensure that the system meets current ethical guidelines
for patient care.
Healthcare managers who obtain management information from the system.
Medical records staff who are responsible for ensuring that system information can be
maintained and preserved, and that record keeping procedures have been properly implemented.
Interviewing
Formal or informal interviews with system stakeholders are part of most requirements
engineering processes. In these interviews, the requirements engineering team puts questions to
stakeholders about the system that they currently use and the system to be developed. Requirements
are derived from the answers to these questions.
Interviews may be of two types:
1. Closed interviews, where the stakeholder answers a pre-defined set of questions.
2. Open interviews, in which there is no pre-defined agenda. The requirements engineering
team explores a range of issues with system stakeholders and hence develops a better
understanding of their needs.
Effective interviewers have two characteristics:
1. They are open-minded, avoid pre-conceived ideas about the requirements, and are willing to listen
to stakeholders. If the stakeholder comes up with surprising requirements, then they are willing to change
their mind about the system.
2. They prompt the interviewee to get discussions going using a springboard question, a requirements
proposal, or by working together on a prototype system. Saying to people ‘tell me what you want’ is
unlikely to result in useful information. They find it much easier to talk in a defined context rather than
in general terms.
Scenarios
People usually find it easier to relate to real-life examples rather than abstract descriptions.
They can understand and criticize a scenario of how they might interact with a software
system.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Requirements engineers can use the information gained from this discussion to
formulate the actual system requirements.
Scenarios can be particularly useful for adding detail to an outline requirements
description. They are descriptions of example interaction sessions.
Each scenario usually covers one or a small number of possible interactions.
Different forms of scenarios are developed and they provide different types of
information at different levels of detail about the system.
Use cases are a requirements discovery technique that were first introduced in the
Objectory method.
They have now become a fundamental feature of the unified modeling language.
Ethnography
Ethnography is an observational technique that can be used to understand operational
processes and help derive support requirements for these processes.
An analyst immerses himself or herself in the working environment where the system
will be used.
The day-to-day work is observed and notes made of the actual tasks in which
participants are involved.
The value of ethnography is that it helps discover implicit system requirements that reflect
the actual ways that people work, rather than the formal processes defined by the organization.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
o A user may think that a system is needed to perform certain functions. However, further
thought and analysis may identify additional or different functions that are required.
o Systems have diverse stakeholders with different needs and any set of requirements is
inevitably a compromise across the stakeholder community.
2. Consistency checks
Requirements in the document should not conflict. That is, there should not be
contradictory constraints or different descriptions of the same system function.
3. Completeness checks
The requirements document should include requirements that define all functions and
the constraints intended by the system user.
4. Realism checks
Using knowledge of existing technology, the requirements should be checked to
ensure that they can actually be implemented. These checks should also take account
of the budget and schedule for the system development.
5. Verifiability
To reduce the potential for dispute between customer and contractor, system
requirements should always be written so that they are verifiable.
This means that you should be able to write a set of tests that can demonstrate that the delivered system
meets each specified requirement.
There are a number of requirements validation techniques that can be used individually or in
conjunction with one another:
1. Requirements reviews
The requirements are analyzed systematically by a team of reviewers who check for errors
and inconsistencies.
2. Prototyping
In this approach to validation, an executable model of the system in question is demonstrated
to end-users and customers. They can experiment with this model to see if it meets their real
needs.
3. Test-case generation
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Requirements should be testable. If the tests for the requirements are devised as part of the
validation process, this often reveals requirements problems. If a test is difficult or
impossible to design, this usually means that the requirements will be difficult to implement
and should be reconsidered.
Requirements management needs automated support and the software tools for this should be
chosen during the planning phase. You need tool support for:
1. Requirements storage The requirements should be maintained in a secure, managed data store
that is accessible to everyone involved in the requirements engineering process.
2. Change management The process of change management is simplified if active tool support
is available.
3. Traceability management Tool support for traceability allows related requirements to be
discovered. Some tools are available which use natural language processing techniques to help
discover possible relationships between requirements.
Requirements change management (Refer figure 2.8)
There are three principal stages to a change management process:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
1. Problem analysis and change specification The process starts with an identified
requirements problem or, sometimes, with a specific change proposal. During this stage, the
problem or the change proposal is analyzed to check that it is valid
2. Change analysis and costing The effect of the proposed change is assessed using traceability
information and general knowledge of the system requirements. The cost of making the change
is estimated both in terms of modifications to the requirements document and, if appropriate, to
the system design and implementation.
3. Change implementation The requirements document, the system design and implementation,
are modified. Organize the requirements document so that one can make changes to it without
extensive rewriting or reorganization.
8. Discuss in detail about various (Classical analysis) structured system Analysis. (Or) What is the
purpose of data flow diagrams? What are the notations used for the same? Explain by constructing
a Context flow diagram level-0 DFD and level-1 DFD for a library management system.
One view of requirements modeling, called structured analysis, considers data and the processes
that transform the data as separate entities.
Data objects are modeled in a way that defines their attributes and relationships.
A second approach to analysis modeled, called object-oriented analysis, focuses on the definition
of classes and the manner in which they collaborate with one another to effect customer
requirements.
Flow-Oriented Modeling:
Although data flow-oriented modeling is perceived as an outdated technique by some software
engineers, it continues to be one of the most widely used requirements analysis notations in use
today
Although the data flow diagram (DFD) and related diagrams and information are not a formal
part of UML, they can be used to complement UML diagrams
The DFD takes an input-process-output view of a system.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Data objects flow into the software, are transformed by processing elements, and resultant data
objects flow out of the software.
Data objects are represented by labeled arrows, and transformations are represented by circles
(also called bubbles).
The DFD is presented in a hierarchical fashion.
The first data flow model (sometimes called a level 0 DFD or context diagram) represents the
system as a whole.
Subsequent data flow diagrams refine the context diagram, providing increasing detail with
each subsequent level.
Figure 2.9 – Context level DFD for the safe home security function
For example, the process monitor sensors can be refined into a level 2 DFD as shown in Figure
2.11.
Note once again that information flow continuity has been maintained between levels.
The refinement of DFDs continues until each bubble performs a simple function.
That is, until the process represented by the bubble performs a function that would be easily
implemented as a program component.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Figure 2.11 – Level 2 DFD that refines the monitor sensors process
• Describe the behavior of a system by identifying its states, identify how each state is reached,
and define the transitions between states.
• Focus on possible omissions—a very common error in specifying control.
The Control Specification (CSPEC):
A control specification (CSPEC) represents the behavior of the system (at the level from which
it has been referenced) in two different ways.
The CSPEC contains a state diagram that is a sequential specification of behavior. It can also
contain a program activation table—a combinatorial specification of behavior.
The Process Specification (PSPEC):
The process specification (PSPEC) is used to describe all flow model processes that appear at
the final level of refinement.
Creating a Behavioral Model:
The behavioral model indicates how software will respond to external events or stimuli. To
create the model, you should perform the following steps:
1. Evaluate all use cases to fully understand the sequence of interaction within the system.
2. Identify events that drive the interaction sequence and understand how these events relate to
specific objects.
3. Create a sequence for each use case.
4. Build a state diagram for the system.
5. Review the behavioral model to verify accuracy and consistency.
State Representations:
In the context of behavioral modeling, two different characterizations of states must be
considered:
(1) The state of each class as the system performs its function
(2) The state of the system as observed from the outside as the system performs its function.
The state of a class takes on both passive and active characteristics .
A passive state is simply the current status of all of an object’s attributes.
State diagrams for analysis classes.
One component of a behavioral model is a UML state diagram that represents active states for
each class and the events (triggers) that cause changes between these active states.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Figure 2.12 illustrates a state diagram for the Control Panel object in the SafeHome security
function.
Each arrow shown in Figure 2.12 represents a transition from one active state of an object to
another.
The labels shown for each arrow represent the event that triggers the transition.
Figure 2.13 – Sequence diagram (partial) for the Safe Home security function
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
9. Write a brief notes on Petri Nets and discuss its properties. Draw a Petri Net that depicts the
operation of an “Automated Teller Machine“. State the functional requirements you are
considering. Nov/Dec 2019
A Petri net is a particular kind of bipartite directed graphs populated by three types of
objects.
These objects are places, transitions, and directed arcs.
Directed arcs connect places to transitions or transitions to places.
In its simplest form, a Petri net can be represented by a transition together with an input
place and an output place.
This elementary net may be used to represent various aspects of the modeled systems.
T
M0 = (2 0 0 0) .
Liveness
The concept of liveness is closely related to the deadlock situation, which has been situated
extensively in the context of computer operating systems.
A Petri net modeling a deadlock-free system must be live. This implies that for any reachable
marking M, it is ultimately possible to fire any transition in the net by progressing through some firing
sequence. This requirement, however, might be too strict to represent some real systems or scenarios that
exhibit deadlock-free behavior
High-Level Petri Nets
In a standard Petri net, tokens are indistinguishable. Because of this, Petri nets have the distinct
disadvantage of producing very large and unstructured specifications for the systems being modeled. To
tackle this issue, high-level Petri nets were developed to allow compact system representation.
Colored Petri nets
Introduced by Kurt Jensen in (Jensen 1981), a Colored Petri Net (CPN) has its each token attached
with a color, indicating the identity of the token. Moreover, each place and each transition has attached a
set of colors.
t10 (t11, t12): M2 ends processing a raw part of type 1 (type 2, type 3)
are available, p2 means parts available, p3 means processing in progress, t1 means processing starts, and
t12 means processing ends. There are three color sets: SM, SP and SM × SP, where SM = {M1, M2}, SP
C(p3) = SM × SP,
However, it can be constructed and analyzed totally automatically, and there exist
techniques which makes it possible to work with condensed occurrence graphs without
losing analytic power.
Petri nets have been proven to be a powerful modeling tool for various types of dynamic
event-driven systems.
of a system and its environment. It also provides a quick way to list the use cases by
name.
Fully dressed: All steps and variations are written in detail, and there are supporting
sections, such as preconditions and success guarantees.
Fully dressed
Fully dressed use cases show more detail and are structured
Fully dressed template:
1. Scope- The scope bounds the system (or systems) under design. Typically, a use case describes
use of one software (or hardware plus software) system; in this case it is known as a system use
case.
2. Level- Use cases are classified as at the user-goal level or the subfunction level, among others.
3. Primary Actor- The principal actor that calls upon system services to fulfill a goal.
4. Stakeholders and Interests- This list is more important and practical than may appear at first
glance. It suggests and bounds what the system must do.
5. Preconditions and Success Guarantees (Postconditions)
Preconditions state what must always be true before a scenario is begun in the use case.
Success guarantees (or postconditions) state what must be true on successful completion of
the use case either the main success scenario or some alternate path. The guarantee should
meet the needs of all stakeholders.
6. Main Success Scenario and Steps (or Basic Flow)- This has also been called the "happy path"
scenario, or the more prosaic "Basic Flow" or "Typical Flow."
7. Extensions (or Alternate Flows)- Extensions are important and normally comprise the
majority of the text. They indicate all the other scenarios or branches, both success and
failure.
8. Special Requirements- If a non-functional requirement, quality attribute, or constraintrelates
specifically to a use case, record it with the use case.
9. Technology and Data Variations List-Often there are technical variations in how something
must be done, but not what, and it is noteworthy to record this in the use case.
Guideline for Use cases
Write in an Essential UI-Free Style
Write Terse Use Cases
Write Black-Box Use Cases
Take an Actor and Actor-Goal Perspective
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
2. Identify the primary actors those that have goals fulfilled through using services of the system.
3. Identify the goals for each primary actor.
4. Define use cases that satisfy user goals; name them according to their goal. Usually, user- goal
level use cases will be one-to-one with user goals, but there is at least one exception, as will
be examined.
Example:
Process Sale: A customer arrives at a checkout with items to purchase. The cashier uses the
POS system to record each purchased item. The system presents a running total and line-item details.
The customer enters payment information, which the system validates and records. The system
updates inventory. The customer receives a receipt from the system and then leaves with the
items.
are recorded.
Special Requirements:
- Touch screen UI on a large flat panel monitor. Text must be visible from 1 meter.
- Credit authorization response within 30 seconds 90% of the time.
Technology and Data Variations List:
*a. Manager override entered by swiping an override card through a card reader, or entering an
authorization code via the keyboard.
Frequency of Occurrence: Could be nearly continuous.
Open Issues:
- What are the tax law variations?
- Explore the remote service recovery issue.
12. What is meant by UML diagrams? List various UML diagrams and explain the purpose of
each diagram. [April/May 2014] (Nov-Dec-2021)
UML Diagrams:
“The UML diagrams (Refer figure 2.15) are a standard diagramming notation for specifying,
visualizing, constructing and documenting the artifacts of software systems”
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
1. Use-case diagram
2. Class diagram
3. Behavior diagram
3.1 Interaction diagram
3.1.1. Sequence diagram
3.1.2. Collaboration diagram
3.2 State chart diagram
3.3 Activity diagram
4. Implementation diagram
4.1 Component diagram
4.2 Deployment diagram
For example, the activity diagram describes the business and operational step-by-step activities of the
components in a system.
3.1 Interaction diagram
It is the combination of sequence and collaboration diagram. It is used to depict the flow of
events in the system over a timeline. The interaction diagram is a dynamic model which shows how the
system behaves during dynamic execution is shown in figure 2.18.
Activity diagram
It shows organization and their dependence among the set of components. These diagrams are
shown in figure 2.20, particularly useful in connection with workflow and in describing behavior that
has a lot of parallel processing. An activity is a state of doing something: either a real-world process,
or the execution of a software routine.
13. Consider a distributed information system for accident management. It includes many
actors such as FieldOfficer, who represent the police, fire officers who respond to accidents,
and Dispatcher, the police officer responsible for answering 911 calls and dispatching
resources to an accident. FRIEND supports both actors by keeping track of incidents,
resources, and task plans. The FieldOfficer and the Dispatcher interact through different
interface – FieldOfficer interacts FRIEND through a mobile personal assistant, and
Dispatcher access FRIEND through a workstation. Identify suitable process model for the
above project and justify your answer. (Refer figure 2.23) (NOV/DEC 2021)
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Definition: Classifier
A UML classifier is "a model element that describes behavioral and structure features".
Classifiers can also be specialized. They are a generalization of many of the elements of the UML,
including classes, interfaces, use cases, and actors. In class diagrams, the two most common
classifiers are regular classes and interfaces.
Figure 2.25: Attribute text versus association line notation for a UML attribute.
The full format of the attribute text notation is shown in figure 2.25:
Visibility name: type multiplicity = default {property-string}
Visibility marks include + (public), - (private), and so forth.
Guideline: Attributes are usually assumed private if no visibility is given.
Notice that this attribute-as-association line has the following style:
a navigability arrow pointing from the source (Register) to target (Sale) object,
indicating a Register object has an attribute of one Sale
a multiplicity at the target end, but not the source end
o use the multiplicity notation
a rolename (currentSale) only at the target end to show the attribute name
no association name
How to Show Collection Attributes with Attribute Text and Association Lines?
Suppose that a Sale software object holds a List (an interface for a kind of collection) of
many SalesLineItem objects. For example, in Java:
public class Sale
{
private List<SalesLineItem> lineItems = new ArrayList<SalesLineItem>();
// …}
Operations
One of the compartments of the UML class box shows the signatures of operations. At
the time of this writing, the full, official format of the operation syntax is:
visibility name (parameter-list) {property-string}
visibility name (parameter-list) : return-type {property-string}
Assume the version that includes a return type.
Operations are usually assumed public if no visibility is shown.
The property string contains arbitrary additional information, such as exceptions that
may be raised, if the operation is abstract, and so forth.
For example, both expressions are possible:
+ getPlayer( name : String ) : Player {exception IOException}
public Player getPlayer( String name ) throws IOException
In a DCD this create message will usually be mapped to a constructor definition, using
the rules of the language such as the constructor name equal to the class name (Java,
C#, C++,…).
2. Operations to Access Attributes
Accessing operations retrieve or set attributes, such as getPrice and setPrice.
These operations are often excluded (or filtered) from the class diagram because of
the high noise-to-value ratio they generate; for n attributes, there may be 2n
uninteresting getter and setter operations.
Most UML tools support filtering their display, and it's especially common to ignore
them while wall sketching.
Keywords
A UML keyword is a textual adornment to categorize a model element.
For example, the keyword to categorize that a classifier box is an interface is (shocking
surprise!) «interface». The «actor» keyword was used to replace the human stick-figure
actor icon with a class box to model computer-system or robotic actors.
Most keywords are shown in guillemet (« ») but some are shown in curly braces, such as
{abstract}, which is a constraint containing the abstract keyword.
In general, when a UML element says it can have a "property string" such as a UML
operation and UML association end have some of the property string terms will be
keywords used in the curly brace format.
{ordered} a set of objects have some imposed in class diagrams, at an association end
order
Dependency
Dependency lines may be used on any diagram, but are especially common on class and
package diagrams.
The UML includes a general dependency relationship that indicates that a client element
(of any kind, including classes, packages, use cases, and so on) has knowledge of another
supplier element and that a change in the supplier could affect the client.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Dependency is illustrated with a dashed arrow line from the client to supplier.
Dependency can be viewed as another version of coupling, a traditional term in software
development when an element is coupled to or depends on another.
There are many kinds of dependency; here are some common types in terms of objects
and class diagrams:
having an attribute of the supplier type
sending a message to a supplier; the visibility to the supplier could be:
o an attribute, a parameter variable, a local variable, a global variable,
or class visibility (invoking static or class methods)
receiving a parameter of the supplier type
the supplier is a superclass or interface
For example figure 2.31, the following Java code shows an updatePriceFor method in
the Sale class:
public class Sale
{
public void updatePriceFor( ProductDescription description )
{ Money basePrice = description.getPrice(); //… } // … }
Dependency Labels
To show the figure 2.35 the type of dependency or to help a tool with code generation,
the dependency line can be labeled with keywords or stereotype
Interfaces
The UML provides several ways to show interface implementation, providing an
interface to clients, and interface dependency. In the UML, interface implementation is formally
called interface realization is shown in figure 2.36.
The UML includes class diagrams to illustrate in figure 2.35, classes, interfaces, and their
associations. They are used for static object modeling.
Interaction Diagrams
The reception of a message by an object triggers the execution of a method, which in turn may
send messages to other objects.
Arguments may be passed along with a message and are bound to the parameters of the
executing method in the receiving object.
In UML, interaction diagrams can take one of two forms: sequence diagrams or
communication diagrams.
Sequence diagrams represent the objects participating in the interaction horizontally and time
vertically.
For example, consider a watch with two buttons (hereafter called 2Bwatch). Setting the time
on 2Bwatch requires the actor 2BWatchOwner to first press both buttons simultaneously, after
which 2Bwatch enters the set time mode.
In the set time mode, 2Bwatch blinks the number being changed (e.g., the hours, minutes,
seconds, day, month, or year). Initially, when the 2BWatchOwner enters the set time mode,
the hours blink.
If the actor presses the first button, the next number blinks (e.g, if the hours are blinking and
the actor presses the first button, the hours stop blinking and the minutes start blinking). If the
actor presses the second button, the blinking number is incremented by one unit.
If the blinking number reaches the end of its range, it is reset to the beginning of its range (e.g.,
assume the minutes are blinking and its current value is 59, its new value is set to 0 if the actor
presses the second button). The actor exits the set time mode by pressing both buttons
simultaneously.
Figure 2-36 depicts a sequence diagram for an actor setting his 2Bwatch one minute ahead.
Each column represents an object that participates in the interaction. Messages are shown by
solid arrows.
Labels on solid arrows represent message names and may contain arguments. Activations (i.e.,
executing methods) are depicted by vertical rectangles. The actor who initiates the
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
interaction is shown in the left-most column. The messages coming from the actor represent
the interactions described in the use case diagrams.
If other actors communicate with the system during the use case, these actors are represented
on the right-hand side and can receive messages.
Although for simplicity, interactions among objects and actors are uniformly represented as
messages, the modeler should keep in mind that interactions between actors and the system are
of a different nature than interactions among objects.
Sequence diagrams can be used to describe either an abstract sequence (i.e., all possible
interactions) or concrete sequences (i.e., one possible interaction, as in Figure 2-38). When
describing all possible interactions, sequence diagrams provide notations for iterations and
conditionals.
Iteration is denoted by a combined fragment labeled with the loop operator (see Figure 2- 38).
An alternative is denoted by a combined fragment containing a partition for each alternative.
The alternatives are selected by guards on the first message of the partition ([i>0] and [else] in
Figure 2-36). If i is positive, the top alternative of the alt combined fragment is executed and the
op1() message is sent. Otherwise, the bottom alternative is executed and the op2() message is sent.
Communication diagrams depict the same information as sequence diagrams. Communication diagrams
represent the sequence of messages by numbering the interactions. On one hand, this removes the need
for geometrical constraints on the objects and results in a more compact diagram. On the other hand, the
sequence of messages becomes more difficult to follow. Figure 2-38 depicts the communication diagram
that is equivalent to the sequence diagram of Figure 2-36
Figure 2-38 Example of a communication diagram: setting the time on 2Bwatch. This diagram
represents the same use case as the sequence diagram of Figure 2-36.
Applying interaction diagrams Interaction diagrams describe interactions among several objects. One of
the main reasons for constructing an interaction diagram is to uncover the responsibilities of the classes
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
in the class diagrams and to discover even new classes. In other words, the interaction diagram helps the
developer in deciding which objects require particular operations.
Typically, there is an interaction diagram for every use case with focus on the event flow. The developer
identifies the objects that participate in the use case, and assigns pieces of the use case behavior to the
objects in the form of operations.
The class diagram and the associated interaction diagrams are usually constructed in tandem after the
initial class diagram has been defined. This process often also leads to refinements in the use case (e.g.,
correcting ambiguous descriptions, adding missing behavior) and consequently, the discovery of more
objects and more services.
Computer Aided Software Engineering (CASE) tools are set of software application programs,
which are used to automate SDLC activities. CASE tools are used by software project managers,
analysts and engineers to develop software system.
There are number of CASE tools available to simplify various stages of Software Development
Life Cycle such as Analysis tools, Design tools, Project management tools, Database
Management tools, Documentation tools are to name a few.
Use of CASE tools accelerates the development of project to produce desired result and helps to
uncover flaws before moving ahead with next stage in software development.
The programming tools category encompasses the compilers, editors, and debuggers that are
available to support most conventional programming languages.
Web development tools:
The activities associated with Web engineering are supported by a variety of tools for WebApp
development. These include tools that assist in the generation of text, graphics, forms, scripts, applets,
and other elements of a Web page.
Static analysis tools:
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Static testing tools assist the software engineer in deriving test cases. Three different types of
static testing tools are used in the industry: codebased testing tools, specialized testing languages,
and requirements-based testing tools.
Code-based testing tools accept source code (or PDL) as input and perform a number of analyses
that result in the generation of test cases.
Specialized testing languages (e.g., ATLAS) enable a software engineer to write detailed test
specifications that describe each test case and the logistics for its execution.
Requirements-based testing tools isolate specific user requirements and suggest test cases (or
classes of tests) that will exercise the requirements.
Dynamic analysis tools:
Dynamic testing tools interact with an executing program, checking path coverage, testing
assertions about the value of specific variables, and otherwise instrumenting the execution flow of
the program.
Dynamic tools can be either intrusive or nonintrusive. An intrusive tool changes the software to be
tested by inserting probes (extra instructions) that perform the activities just mentioned.
Nonintrusive testing tools use a separate hardware processor that runs in parallel with the processor
containing the program that is being tested.
Test management tools:
Test management tools are used to control and coordinate software testing for each of the major
testing steps. Tools in this category manage and coordinate regression testing, perform comparisons
that ascertain differences between actual and expected output, and conduct batch testing of programs
with interactive human/computer interfaces.
In addition to the functions noted, many test management tools also serve as generic test drivers.
A test driver reads one or more test cases from a testing file, formats the test data to conform to the
needs of the software under test, and then invokes the software to be tested.
Client/server testing tools:
The c/s environment demands specialized testing tools that exercise the graphical user interface
and the network communications requirements for client and server.
Reengineering tools:
Tools for legacy software address a set of maintenance activities that currently absorb a
significant percentage of all software-related effort. The reengineering tools category can be subdivided
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
into the following functions Reverse engineering to specification tools take source code as input and
generate graphical structured analysis and design models, where-used lists, and other design information.
• Code restructuring and analysis tools analyze program syntax, generate a control flow graph, and
automatically generate a structured program.
• On-line system reengineering tools are used to modify on-line database systems.
The benefits of integrated CASE
The benefits of integrated CASE (I-CASE) include
(1) Smooth transfer of information (models, programs, documents, data) from one tool to another and
one software engineering step to the next
(2) A reduction in the effort required to perform umbrella activities such as software configuration
management, quality assurance, and document production
(3) An increase in project control that is achieved through better planning, monitoring, and
communication and
(4) Improved coordination among staff members who are working on a large software project.
17. Explain about UML State Machine Diagrams and Modeling. Or Differentiate state
independent and state dependent objects. How to model them using State Machine Diagrams?
Differentiate events, states and transitions with suitable examples.
A UML state machine is a notation for describing the sequence of states an object goes through
in response to external events.
UML state machines are extensions of the finite state machine model. On one hand, state
machines provide notation for nesting states and state machines (i.e., a state can be described by
a state machine).
On the other hand, state machines provide notation for binding transitions with message sends
and conditions on objects. UML state machines are largely based on Harel’s state charts and have
been adapted for use with object models.
UML state machines can be used to represent any Mealy or Moore state machine.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
A state is a condition satisfied by the attributes of an object. For example, an Incident object in
FRIEND can exist in four states: Active, Inactive, Closed, and Archived (see Figure 2-39).
An active Incident denotes a situation that requires a response (e.g., an ongoing fire, a traffic
accident). An inactive Incident denotes a situation that was handled, but for which reports are yet
to be written (e.g., the fire has been put out, but damage estimates have not yet been completed).
A closed Incident denotes a situation that has been handled and documented.
An archived Incident is a closed Incident whose documentation has been moved to off-site storage. In
this example, we can represent these four states with a single attribute in the Incident class—a status
attribute that can take any of four values: Active, Inactive, Closed, and Archived. In general, a state can
be computed from the values of several attributes.
A transition represents a change of state triggered by events, conditions, or time. For example, Figure 2-
39 depicts three transitions: from the Active state into the Inactive state, from the Inactive state to the
Closed state, and from the Closed state to the Archived state.
A state is depicted by a rounded rectangle. A transition is depicted by an open arrow connecting two
states. States are labeled with their name. A small solid black circle indicates the initial state. A circle
surrounding a small solid black circle indicates a final state.
Figure 2.39 - A UML state machine diagram for the Incident class.
Figure 2.40 displays another example, a state machine for the 2Bwatch. At the highest level of
abstraction, 2Bwatch has two states, MeasureTime and SetTime. 2Bwatch changes states when
the user presses and releases both buttons simultaneously. During the transition from the SetTime
state to the MeasureTime state, 2Bwatch beeps.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
This is indicated by the action /beep on the transition. When 2Bwatch is first powered on, it is in
the SetTime state. This is modeled by making SetTime the initial state. When the battery of the
watch runs out, the 2Bwatch is permanently out of order.
This is indicated with a final state. In this example, transitions can be triggered by an event
(e.g.,pressBothButtons) or by the passage of time (e.g., after 2 min.).
Figure 2.40 depicts a refined state machine diagram for the 2Bwatch depicted in Figure 2.39 using
actions to denote the behavior within the states.
Actions are fundamental units of processing that can take a set of inputs, produce a set of outputs,
and can change the state of the system. Actions normally take a short amount of time to execute
and are not interruptable.
For example, an action can be realized by an operation call. Actions can occur in three places in a state
machine:
• When a transition is taken (e.g., beep when the transition between SetTime and MeasureTime is fired
on the pressBothButtons event)
• When a state is entered (e.g., blink hours in the SetTime state in Figure 2.40)
• When a state is exited (e.g., stop blinking in the SetTime state in Figure 2.40).
During a transition, the exit actions of the source state are executed first, then the actions
associated with the transition are executed, then the entry actions of the destination state are
executed.
The exit and entry actions are always executed when a state is exited or entered, respectively.
They do not depend on the specific transition that was used to exit or enter the state. An internal
transition is a transition that does not leave the state.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
Internal transitions are triggered by events and can have actions associated with them. However,
the firing of an internal transition does not result in the execution of any exit or entry actions. For
example, in Figure 2.40, the SetTime state has two internal transitions, one associated with
pressing the left button and one associated with pressing the right button.
An activity is a coordinated set of actions. A state can be associated an activity that is executed
as long as an object resides in this state. While an action is short and non-interruptable, an activity
can take a substantial amount of time and is interrupted when a transition exiting the state is fired.
Activities are associated with state using the do label and are placed inside the state where they
executed. For example, in Figure 2.40, count ticks is an activity associated with the MeasureTime
state Nested state machines reduce complexity.
They can be used instead of internal transitions. In Figure 2.41, the current number is modeled
as a nested state, whereas actions corresponding to modifying the current number are modeled
using internal transitions. Note that each state could be modeled as a nested state machine. For
example, the BlinkHours state machine would have 24 substates that correspond to the hours in
the day; transitions between these states would correspond to pressing the second button.
State machines are used to identify object attributes and to refine the behavior description of an
object, and interaction diagrams are used to identify participating objects and the services they
provide.
State machine diagrams can also be used during system and object design to describe solution
domain objects with interesting behavior.
UML activity diagrams represent the sequencing and coordination of lower level behaviors. An
activity diagram denotes how a behavior is realized in terms of one or several sequences of
activities and the object flows needed for coordinating the activities.
Activity diagrams are hierarchical: an activity is made out of either an action or a graph of sub
activities and their associated object flow. Figure 2.42 is an activity diagram corresponding to the
state diagram in Figure 2-38. Rounded rectangles represent actions and activities. Edges between
activities represent control flow. An activity can be executed only after all predecessor activities
completed.
Control nodes coordinate control flows in an activity diagram, providing mechanisms for
representing decisions, concurrency, and synchronization. The main control nodes we use are
decisions, fork nodes, and join nodes.
Decisions are branches in the control flow. They denote alternatives based on a condition of the
state of an object or a set of objects. Decisions are depicted by a diamond with one or more
incoming open arrows and two or more outgoing arrows.
The outgoing edges are labeled with the conditions that select a branch in the control flow. The
set of all outgoing edges from a decision represents the set of all possible outcomes.
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
In Figure 2.43, a decision after the OpenIncident action selects between three branches: If the
incident is of high priority and if it is a fire, the FireChief is notified. If the incident is of high
priority and is not a fire, the PoliceChief is notified.
Finally, if neither condition is satisfied, that is, if the Incident is of low priority, no superior is
notified and the resource allocation proceeds.
Fork nodes and join nodes represent concurrency. Fork nodes denote the splitting of the flow of control
into multiple threads, while join nodes denotes the synchronization of multiple threads and their merging
of the flow of control into a single thread.
For example, in Figure 2.44, the actions AllocateResources, Coordinate–Resources, and
DocumentIncident may all occur in parallel. However, they can only be initiated after the OpenIncident
action, and the ArchiveIncident action may only be initiated after all other activities have been completed.
Activities may be grouped into swimlanes (also called activity partitions) to denote the object or
subsystem that implements the actions. Swimlanes are represented as rectangles enclosing a group of
actions. Transitions may cross swimlanes. In Figure 2.45, the Dispatcher swimlane groups all the actions
that are performed by the Dispatcher object. The FieldOfficer swimlane denotes that the FieldOfficer
object is responsible for the DocumentIncident action.
Figure 2.45
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING UNIT 2
19. For the Hospital management system draw the following UML diagram.